首页
/ 计算思维项目:随机漫步II - 从帕斯卡三角形到概率分布演化

计算思维项目:随机漫步II - 从帕斯卡三角形到概率分布演化

2025-07-10 07:38:23作者:卓炯娓

引言

本文将深入探讨计算思维项目中关于随机漫步的第二部分内容,重点介绍帕斯卡三角形与随机漫步概率分布演化之间的深刻联系。我们将从基础概念出发,逐步构建理解框架,最终实现概率分布随时间演化的可视化。

帕斯卡三角形与矩阵结构

帕斯卡三角形的数学本质

帕斯卡三角形是组合数学中的重要概念,其元素实际上是二项式系数:

pascal(N) = [binomial(n, k) for n = 0:N, k=0:N]

这个矩阵具有以下特性:

  • 下三角结构:主对角线上方全为零
  • 每个元素C(n,k)表示从n个元素中取k个的组合数
  • 满足递推关系:C(n,k) = C(n-1,k-1) + C(n-1,k)

Julia中的特殊矩阵类型

Julia提供了多种特殊矩阵类型来处理这类结构化数据:

L = LowerTriangular(pascal(10))  # 下三角矩阵
sparse(pascal(10))               # 稀疏矩阵

这些特殊类型不仅优化了存储,还提供了特定的显示方式(如用点表示结构零)。

随机漫步的概率视角

从轨迹到概率分布

随机漫步可以看作是一系列独立同分布(IID)随机变量的累积和:

steps = rand((-1, +1), 10)
trajectory = cumsum(steps)

当我们考虑大量轨迹时,关注点转向概率分布随时间的变化。

概率演化的主方程

一维简单随机漫步的概率演化遵循:

pᵢᵗ⁺¹ = 0.5 × (pᵢ₋₁ᵗ + pᵢ₊₁ᵗ)

这实际上是一个卷积运算,与帕斯卡三角形的构建方式惊人地相似。

实现概率演化

初始条件设置

function initial_condition(n)
    p₀ = zeros(n)
    p₀[n ÷ 2 + 1] = 1  # 初始集中在中心点
    return p₀
end

概率演化函数

function evolve(p)
    p′ = similar(p)
    for i in 2:length(p)-1
        p′[i] = 0.5 * (p[i-1] + p[i+1])
    end
    p′[1] = 0       # 边界条件
    p′[end] = 0
    return p′
end

时间演化过程

function time_evolution(p0, N)
    ps = [p0]
    p = p0
    for i in 1:N
        p = evolve(p)
        push!(ps, copy(p))
    end
    return ps
end

可视化技术

热图展示

M = reduce(hcat, ps)'  # 将向量序列转换为矩阵
heatmap(M, yflip=true)

3D表面图

plotly()  # 切换到交互式后端
surface(M)

堆叠直方图

更直观的展示方式:

begin
    plot(leg=false)
    for which in 1:15
        for i in 1:length(ps[which])
            plot!([which, which], [-grid_size÷2 + i, -grid_size÷2 + i], 
                 [0, ps[which][i]], c=which, alpha=0.8, lw=2)
        end
    end
    xlims!(1, 15)
    plot!()
end

边界条件的物理意义

代码中设置的零边界条件(p′[1] = p′[end] = 0)对应于:

  • 概率在边界处"逃逸"
  • 模拟开放系统中的随机漫步行为
  • 类似于化学物质从系统边缘扩散出去

教学启示

  1. 计算思维:将数学概念(帕斯卡三角形)与物理过程(随机漫步)通过计算联系起来
  2. 渐进式理解:从单一轨迹到概率分布,再到时间演化
  3. 可视化验证:多种图形展示方式帮助理解抽象概念
  4. 边界处理:展示实际问题中边界条件的重要性

结论

通过本项目,我们建立了从组合数学到概率论,再到数值模拟的完整链条。帕斯卡三角形不仅是数学上的优美结构,更揭示了随机漫步概率分布演化的本质特征。Julia语言的高效实现和丰富可视化工具使得这一探索过程既直观又深刻。

这种计算思维方法可以推广到更复杂的随机过程研究,为理解扩散过程、金融模型等提供了坚实基础。