伊藤随机微积分与随机游走相关知识解析
1. 随机激励下波方程的求解
1.1 概率密度函数
研究了一个略微阻尼的振荡器在时间 $\omega_0T$ 超过 $b$ 的概率密度函数。通过 50,000 次实现来计算该密度函数,使用的参数为 $y(0) = 0$,$y’(0) = 0$,$\zeta = 0.05$,以及 $\omega_0\Delta\tau = 0.05$。不同 $b$ 值下 $\omega_0T$ 的均值不同,例如当 $b = 0.4$ 时,均值为 10.7;当 $b = 0.8$ 时,均值为 41.93 等。
当随机激励 $X(t) = 0$ 时,可以计算积分得到:
$u(x, t) = \frac{1}{2\omega} H(t - |x|) \sin[\omega(t - |x|)]$
1.2 计算 $u(x, t)$ 的步骤
步骤 1:生成随机激励
调用 MATLAB 命令
randn
,利用高斯分布数值生成激励 $X(t)$。
步骤 2:编写 MATLAB 代码计算 $u(x, t)$
使用步骤 1 中的高斯分布,开发 MATLAB 代码计算 $u(x, t)$。图 8.1.7 展示了使用梯形法则计算积分的一个实现。
步骤 3:计算多次实现的均值和方差
将代码进行泛化,计算
irun
次实现。对于特定的 $x$ 和 $t$ 值,可以从
irun
次实现中计算相应的均值和方差。图 8.1.8 显示了使用 10,000 次实现的结果。
步骤 4:使用随机相位正弦波重新计算
使用随机相位的正弦波 $X(t) = A \sin(\Omega t + \xi)$ 重新进行计算,其中 $A$ 和 $\Omega$ 是常数,$\xi$ 是在 $[0, 2\pi]$ 上均匀分布的随机变量。
2. 随机游走与布朗运动
2.1 布朗运动的发现
1827 年,苏格兰植物学家罗伯特·布朗(Robert Brown)在研究一种新发现的花朵的受精过程时,在显微镜下观察到花粉颗粒悬浮在水中时会进行“快速振荡运动”,这种运动现在被称为布朗运动。布朗运动是一种随机过程,也被称为随机游走,它在生物学、金融等多个领域都有发现。
2.2 一维随机游走
考虑一个粒子沿着直线以相等长度的步长移动,每一步向前或向后移动的概率均为 $\frac{1}{2}$。经过 $N$ 步后,粒子可能位于 $-N$ 到 $N$ 之间的任意位置,用 $m$ 表示粒子的位置,$m$ 是一个随机变量。
可以使用以下 MATLAB 代码生成一维布朗运动的实现:
clear
NN = 50; % 选择粒子要走的步数
t = (0:1:NN); % 创建“时间”作为粒子移动的记录
% 创建一个数组来记录每个时间步的位置
m = zeros(size(t));
m(1) = 0; % 初始化粒子的位置
for N = 1:NN % 现在移动粒子
x = rand(1); % 生成一个介于 [0, 1] 之间的随机变量
if (x <= 0.5)
step = 1; % 如果小于 0.5,向前移动一步
else
step = -1; % 否则向后移动一步
end
% 移动粒子一步
m(N+1) = m(N) + step;
end
% 绘制结果
hold on
plot(t,m,'--ko','LineWidth',2,'MarkerSize',8)
xlabel('N','FontSize',25);
ylabel('m','FontSize',25)
grid on % 添加网格到坐标轴
图 8.2.1 展示了三次这样的实现。
2.3 随机游走的定量性质
概率计算
粒子在 $N$ 次位移后位于点 $m$ 的概率 $P(m, N)$ 为:
$P(m, N) = \frac{N!}{\left[\frac{1}{2}(N + m)\right]!\left[\frac{1}{2}(N - m)\right]!} \left(\frac{1}{2}\right)^N$
这是一个二项分布,因此可以知道 $E(m) = 0$,$Var(m) = N$,即平均位置是原点,布朗运动的扩散随着步数的平方根增加。
大 $N$ 时的近似
当 $N$ 很大且 $m \ll N$ 时,可以用泊松分布近似 $P(m, N)$:
$P(m, N) \approx \sqrt{\frac{2}{\pi N}} \exp\left(-\frac{m^2}{2N}\right)$
用 $x = m\Delta x$ 和 $t = N\Delta t$ 重新表示,定义 $D = \frac{(\Delta x)^2}{2\Delta t}$,则有:
$P(x, t) = \frac{1}{2\sqrt{\pi Dt}} \exp\left(-\frac{x^2}{4Dt}\right)$
这是热函数的格林函数。
数值计算概率密度函数
可以使用以下 MATLAB 代码计算多次随机游走的概率密度函数:
clear
NN = 100; % 设置随机游走的终点
% 引入随机游走的中间位置
t = (0:1:NN);
% 初始化数组“m”,记录任意时间的位置
m = zeros(size(t));
for icount = 1:2000 % 现在进行多次随机游走
m(1) = 0; % 每次游走中粒子的初始位置
for N = 1:NN
x = rand(1); % 创建一个介于 [0, 1] 之间的随机变量
if (x <= 0.5)
step = 1; % 如果小于 0.5,向前移动一步
else
step = -1; % 否则向后移动一步
end
% 移动粒子一步
m(N+1) = m(N) + step;
end
% 设置数组,跟踪粒子的最终位置
location(icount) = m(N+1);
end
xx = -40:1:40;
% 统计粒子在 -40 到 40 之间的位置
[n,xout] = hist(location,xx);
% 为了比较,计算理论概率
w_exact = sqrt(2/(pi*NN))*exp(-xout.*xout/(2*NN));
n = n / 2000; % 现在计算质量概率函数
% 绘制结果
bar_h = bar(xout,n);
bar_child = get(bar_h,'Children');
set(bar_child,'CData',n);
colormap(Autumn);
hold on;
plot(xout,w_exact,'-k','LineWidth',3);
xlabel('\it m','FontSize',25);
ylabel('Estimated \it P(m,100)','FontSize',25);
图 8.2.2 展示了模拟随机游走的结果。
2.4 示例:撞击屏障的概率
问题描述
考虑一维布朗运动,求粒子在 $N$ 步后到达 $\xi$ 且在之前从未接触或越过 $m = \xi$ 线的概率。
理论计算
粒子在 $N$ 步后到达 $\xi$,意味着在 $N - 1$ 步后其位置必须是 $\xi - 1$ 或 $\xi + 1$。但从 $(\xi + 1, N - 1)$ 到 $(\xi, N)$ 的轨迹是不允许的,因为它必须在之前越过了 $m = \xi$ 线。从 $(\xi - 1, N - 1)$ 到 $(\xi, N)$ 的轨迹中,也有一部分在最后一步之前接触或越过了 $m = \xi$ 线。
从原点到 $(\xi, N)$ 的可能方式数为:
$\frac{N!}{\left[\frac{1}{2}(N + \xi)\right]!\left[\frac{1}{2}(N - \xi)\right]!}$
从原点到 $(\xi + 1, N - 1)$ 的可能方式数为:
$\frac{(N - 1)!}{\left[\frac{1}{2}(N + \xi)\right]!\left[\frac{1}{2}(N - \xi - 2)\right]!}$
到达 $(\xi - 1, N - 1)$ 但在之前接触或越过 $m = \xi$ 线的轨迹数也为:
$\frac{(N - 1)!}{\left[\frac{1}{2}(N + \xi)\right]!\left[\frac{1}{2}(N - \xi - 2)\right]!}$
因此,从原点到 $(\xi, N)$ 且从未接触或越过 $m = \xi$ 线的轨迹数为:
$\frac{N!}{\left[\frac{1}{2}(N + \xi)\right]!\left[\frac{1}{2}(N - \xi)\right]!} - 2\frac{(N - 1)!}{\left[\frac{1}{2}(N + \xi)\right]!\left[\frac{1}{2}(N - \xi - 2)\right]!} = \frac{\xi}{N} \frac{N!}{\left[\frac{1}{2}(N + \xi)\right]!\left[\frac{1}{2}(N - \xi)\right]!}$
所求概率 $P(\xi, N)$ 为:
$P(\xi, N) = \frac{\xi}{N} \frac{N!}{\left[\frac{1}{2}(N + \xi)\right]!\left[\frac{1}{2}(N - \xi)\right]!} \left(\frac{1}{2}\right)^N$
对于大 $N$,$P(\xi, N)$ 近似为:
$P(\xi, N) = \frac{\xi}{N} \sqrt{\frac{2}{\pi N}} \exp\left(-\frac{\xi^2}{2N}\right)$
MATLAB 代码计算
可以使用以下 MATLAB 代码计算该概率:
clear
NN = 100; % 设置随机游走的步数
% 引入随机游走的中间位置
t = (0:1:NN);
% 初始化数组“m”,记录任意时间的位置
m = zeros(size(t));
jcount = 0;
for icount = 1:50000 % 现在进行多次随机游走
m(1) = 0; % 每次游走中粒子的初始位置
for N = 1:NN
x = rand(1); % 创建一个介于 [0, 1] 之间的随机变量
if (x <= 0.5)
step = 1; % 如果小于 0.5,向前移动一步
else
step = -1; % 否则向后移动一步
end
% 移动粒子一步
m(N+1) = m(N) + step;
end
b = sort(m);
if ( (m(NN+1) == b(NN+1)) & (b(NN+1)>b(NN)) )
jcount = jcount + 1;
location(jcount) = m(NN+1);
end
end
xx = -5:1:45;
% 统计粒子在 -5 到 45 之间的位置
[n,xout] = hist(location,xx);
n = n / jcount; % 现在计算质量概率函数
% 为了比较,计算理论概率
w_exact = (xout/NN).*sqrt(2/(pi*NN)).*exp(-xout.^2/(2*NN));
% 绘制结果
bar_h = bar(xout,n);
bar_child = get(bar_h,'Children');
set(bar_child,'CData',n);
colormap(Autumn);
hold on;
plot(xout,w_exact,'-k','LineWidth',3);
xlabel('\xi','FontSize',25);
ylabel('Estimated P(\xi,100)','FontSize',25);
图 8.2.4 展示了使用 50,000 次随机游走的结果,并与理论概率进行了比较。
2.5 维纳过程
随机过程描述
考虑时间区间 $(0, t]$,将其细分为长度为 $\Delta t$ 的子区间,共有 $t/\Delta t$ 个子区间。一个初始位于 $x = 0$ 的粒子在 $\Delta t, 2\Delta t, \cdots$ 时刻进行一维步长为 $\Delta x$ 或 $-\Delta x$ 的移动,每一步向左或向右的概率均为 $\frac{1}{2}$。粒子在时间 $t$ 的位置 $X(t)$ 是一个随机游走,它执行了 $t/\Delta t$ 步。
数学上可以用以下公式描述这个随机过程:
$X(t) = \sum_{n = 1}^{t/\Delta t} Z_i$
其中 $Z_i$ 是独立同分布的随机变量,$P(Z_i = \Delta x) = P(Z_i = -\Delta x) = \frac{1}{2}$,$E(Z_i) = 0$,$Var(Z_i) = E(Z_i^2) = (\Delta x)^2$。
因此,$E[X(t)] = 0$,$Var[X(t)] = \frac{t}{\Delta t} Var(Z_i) = \frac{t(\Delta x)^2}{\Delta t}$。
维纳过程的定义
为了使方差合理,选择 $\Delta x = \sqrt{\Delta t}$,这样 $Var[X(t)] = t$ 对于所有的 $\Delta t$ 都成立。当 $\Delta t \to 0$ 时,随机变量 $X(t)$ 收敛为一个随机变量 $B(t)$,其性质为 $E[B(t)] = 0$,$Var[B(t)] = t$。随机变量集合 ${B(t), t > 0}$ 是一个连续的时间过程,称为维纳过程。
标准布朗运动(维纳过程)的性质
- 从零点开始:$B(0) = 0$。
- $B(t) - B(s) \sim N(0, t - s)$,$E{[B(t) - B(s)]^2} = t - s$,$Var{[B(t) - B(s)]^2} = 2(t - s)^2$。将 $t$ 替换为 $t + dt$,$s$ 替换为 $t$,可得 $E{[dB(t)]^2} = dt$。
- 具有平稳和独立增量。平稳增量意味着对于所有的 $h$,$B(t + h) - B(\eta + h) = B(t) - B(\eta)$;独立增量意味着 $B(t_2) - B(t_1), \cdots, B(t_n) - B(t_{n - 1})$ 是独立的随机变量。
- 由于布朗运动在相邻区间的增量是独立的,无论区间长度如何,当 $\Delta x \to 0$ 时,导数会剧烈振荡且不会收敛,因此布朗运动处处不可微。
- 具有连续的样本路径,即“无跳跃”。
-
矩的期望值为:
$E[B^{2n}(t)] = \frac{(2n)!t^n}{n!2^n}$,$E[B^{2n - 1}(t)] = 0$,其中 $n > 0$。
2.6 相关问题
- 证明 $E{\sin[aB(t)]} = 0$,其中 $a$ 是实数。
- 证明 $E{\cos[aB(t)]} = \sum_{n = 0}^{\infty} \frac{(-1)^n}{2^n n!} (a^2t)^n$,其中 $a$ 是实数。
- 证明 $E{\exp[aB(t)]} = \exp(\frac{a^2t}{2})$,其中 $a$ 是实数。
3. 拉普拉斯方程的概率解法
3.1 问题描述
考虑拉普拉斯方程:
$\frac{\partial^2 u}{\partial x^2} + \frac{\partial^2 u}{\partial y^2} = 0$,$0 < x < 1$,$0 < y < 1$
边界条件为:
$u(x, 0) = 0$,$u(x, 1) = x$,$0 < x < 1$
$u(0, y) = u(1, y) = 0$,$0 < y < 1$
引入均匀网格,$\Delta x = \Delta y = \Delta s$,有限差分方法得到差分方程:
$4u(i, j) = u(i + 1, j) + u(i - 1, j) + u(i, j + 1) + u(i, j - 1)$,其中 $i, j = 1, N - 1$,$\Delta s = \frac{1}{N}$。
3.2 随机过程与概率计算
考虑一个马尔可夫类型的随机过程,大量非相互作用的粒子从点 $(x_1, y_1)$ 释放,随后以步长 $\Delta s$ 进行布朗运动。当一些粒子到达点 $(x, y)$ 时,定义 $P(i, j)$ 为其中任何一个粒子在未来某个时间到达边界 $y = 1$ 且电位为 $u_k$ 的概率。
由于过程是马尔可夫的,$P(i, j)$ 可以表示为:
$P(i, j) = p(i + 1, j|i, j)P(i + 1, j) + p(i - 1, j|i, j)P(i - 1, j) + p(i, j + 1|i, j)P(i, j + 1) + p(i, j - 1|i, j)P(i, j - 1)$
其中 $p(i + 1, j|i, j)$ 是给定粒子在 $(x, y)$ 时跳到 $(x + \Delta s, y)$ 的条件概率。
3.3 电位与概率的关系
当条件概率 $p(i + 1, j|i, j) = p(i - 1, j|i, j) = p(i, j + 1|i, j) = p(i, j - 1|i, j) = \frac{1}{4}$,并且 $u(i, N) = P(i, N) = i$,$u(i, 0) = P(i, 0) = 0$,$u(0, j) = P(0, j) = 0$,$u(N, j) = P(N, j) = 0$ 时,电位 $u(i, j)$ 和概率 $P(i, j)$ 相等。
因此,$u(i, j) \equiv P(i, j) = \lim_{N \to \infty} \frac{1}{N} \sum_{k} N_k u_k$,其中 $N$ 是从 $(x, y)$ 开始的粒子数,$N_k$ 是最终到达电位为 $u_k$ 的边界的粒子数。
3.4 二维布朗运动的 MATLAB 代码
% 开发 MATLAB 代码进行二维布朗运动
N = 10; % 网格大小
i = 4; % 起始点的 i 坐标
j = 6; % 起始点的 j 坐标
U = rand; % 生成一个介于 0 和 1 之间的随机变量
if (0 < U && U <= 1/4)
i = i + 1; % 向右移动一步
elseif (1/4 < U && U <= 1/2)
i = i - 1; % 向左移动一步
elseif (1/2 < U && U <= 3/4)
j = j - 1; % 向下移动一步
else
j = j + 1; % 向上移动一步
end
% 对于任意点 i,j 位于 N×N 网格上,2 ≤ i, j ≤ N - 1,重复随机步
总结
本文介绍了随机激励下波方程的求解方法,包括使用高斯分布和随机相位正弦波进行计算。同时,详细阐述了随机游走和布朗运动的概念,包括一维随机游走的定量性质、撞击屏障的概率计算以及维纳过程的定义和性质。最后,介绍了使用布朗运动求解拉普拉斯方程的概率方法,并给出了相应的 MATLAB 代码。这些知识在多个领域都有重要的应用,如物理学、生物学和金融等。
流程图
graph TD;
A[开始] --> B[生成随机激励 X(t)];
B --> C[计算 u(x, t)];
C --> D[计算多次实现的均值和方差];
D --> E[使用随机相位正弦波重新计算];
E --> F[研究随机游走与布朗运动];
F --> G[计算随机游走的概率];
G --> H[研究撞击屏障的概率];
H --> I[定义维纳过程];
I --> J[使用布朗运动求解拉普拉斯方程];
J --> K[结束];
表格
主题 | 主要内容 |
---|---|
随机激励下波方程求解 | 生成随机激励,计算 $u(x, t)$,多次实现的均值和方差,随机相位正弦波计算 |
随机游走与布朗运动 | 一维随机游走,概率计算,撞击屏障概率,维纳过程定义 |
拉普拉斯方程求解 | 有限差分方程,随机过程与概率计算,电位与概率关系,二维布朗运动代码 |
4. 随机激励下波方程求解与随机游走的应用意义
4.1 随机激励下波方程求解的实际应用
随机激励下波方程的求解在多个领域有着重要的实际应用。在物理学中,它可以用于描述波动在随机介质中的传播,例如声波在不均匀大气中的传播、电磁波在复杂电磁环境中的传播等。通过计算 $u(x, t)$ 以及其均值和方差,我们可以了解波动在随机环境中的统计特性,从而更好地预测和控制波动的行为。
在工程领域,这种求解方法可以应用于结构动力学中。当结构受到随机载荷(如地震、风载荷等)的作用时,波方程可以用来描述结构的振动响应。通过对随机激励下波方程的求解,工程师可以评估结构在随机载荷下的可靠性和安全性,为结构的设计和优化提供依据。
4.2 随机游走与布朗运动的广泛应用
随机游走和布朗运动的概念在生物学、金融等领域有着广泛的应用。
生物学中的应用
在生物学中,随机游走模型可以用来描述生物个体的运动行为。例如,动物在寻找食物、栖息地或配偶时的运动可以近似看作随机游走。通过研究随机游走的性质,生物学家可以更好地理解生物的行为模式,预测生物的分布和扩散情况,为生物保护和生态管理提供支持。
金融领域中的应用
在金融领域,随机游走模型被广泛用于描述股票价格的波动。股票价格的变化可以看作是一种随机过程,类似于随机游走。通过对随机游走的研究,金融分析师可以建立股票价格的预测模型,评估投资风险,制定投资策略。
4.3 维纳过程的重要性
维纳过程作为随机游走在连续时间下的极限情况,在随机分析和金融数学中具有核心地位。在金融衍生品定价中,如期权定价,维纳过程是构建随机微分方程的基础。通过对维纳过程的性质的研究,金融数学家可以推导出期权定价的公式,为金融市场的风险管理和投资决策提供重要的工具。
5. 代码优化与拓展
5.1 随机激励下波方程求解代码的优化
在计算 $u(x, t)$ 的过程中,使用梯形法则进行积分计算可能会导致计算效率较低。可以考虑使用更高效的数值积分方法,如高斯积分法,来提高计算速度和精度。
另外,对于多次实现的计算,可以使用并行计算技术,充分利用多核处理器的性能,减少计算时间。例如,在 MATLAB 中可以使用
parfor
循环来实现并行计算。
5.2 随机游走代码的拓展
在一维随机游走的基础上,可以拓展到二维、三维甚至更高维度的随机游走。对于二维随机游走,可以修改代码中的随机步规则,使其能够在平面上进行随机移动。例如,可以使用两个独立的随机变量来控制水平和垂直方向的移动。
以下是一个简单的二维随机游走的 MATLAB 代码示例:
clear
NN = 100; % 选择粒子要走的步数
t = (0:1:NN); % 创建“时间”作为粒子移动的记录
% 创建数组来记录每个时间步的 x 和 y 位置
x_pos = zeros(size(t));
y_pos = zeros(size(t));
x_pos(1) = 0; % 初始化粒子的 x 位置
y_pos(1) = 0; % 初始化粒子的 y 位置
for N = 1:NN % 现在移动粒子
U1 = rand(1); % 生成一个介于 [0, 1] 之间的随机变量,用于 x 方向
U2 = rand(1); % 生成一个介于 [0, 1] 之间的随机变量,用于 y 方向
if (U1 <= 0.5)
x_step = 1; % 如果小于 0.5,x 方向向前移动一步
else
x_step = -1; % 否则 x 方向向后移动一步
end
if (U2 <= 0.5)
y_step = 1; % 如果小于 0.5,y 方向向前移动一步
else
y_step = -1; % 否则 y 方向向后移动一步
end
% 移动粒子一步
x_pos(N+1) = x_pos(N) + x_step;
y_pos(N+1) = y_pos(N) + y_step;
end
% 绘制结果
plot(x_pos,y_pos,'--ko','LineWidth',2,'MarkerSize',8);
xlabel('x','FontSize',25);
ylabel('y','FontSize',25);
grid on; % 添加网格到坐标轴
5.3 拉普拉斯方程求解代码的完善
在使用布朗运动求解拉普拉斯方程的代码中,可以增加边界条件的处理逻辑,使其能够适应更复杂的边界条件。例如,可以使用反射边界条件或吸收边界条件,以更准确地模拟实际物理问题。
另外,可以对代码进行优化,减少不必要的计算,提高计算效率。例如,可以使用数据结构来存储粒子的位置和状态,避免重复计算。
6. 未来研究方向
6.1 多尺度随机过程的研究
目前的研究主要集中在单一尺度的随机过程,如随机游走和维纳过程。未来可以研究多尺度随机过程,即同时考虑不同尺度下的随机行为。例如,在生物学中,生物个体的运动可能在微观尺度上表现为随机游走,而在宏观尺度上可能受到环境因素的影响呈现出更复杂的行为模式。研究多尺度随机过程可以更全面地理解生物系统的行为。
6.2 随机过程与深度学习的结合
深度学习在图像识别、自然语言处理等领域取得了巨大的成功。未来可以探索随机过程与深度学习的结合,利用深度学习的强大能力来处理随机过程中的复杂问题。例如,可以使用深度学习模型来预测随机过程的未来状态,或者对随机过程进行分类和识别。
6.3 随机过程在新兴领域的应用
随着科技的不断发展,出现了许多新兴领域,如量子计算、人工智能安全等。未来可以研究随机过程在这些新兴领域的应用,为这些领域的发展提供理论支持和方法指导。
流程图
graph TD;
A[开始] --> B[优化随机激励下波方程求解代码];
B --> C[拓展随机游走代码到高维];
C --> D[完善拉普拉斯方程求解代码];
D --> E[研究多尺度随机过程];
E --> F[结合随机过程与深度学习];
F --> G[探索随机过程在新兴领域的应用];
G --> H[结束];
表格
未来研究方向 | 主要内容 |
---|---|
多尺度随机过程的研究 | 考虑不同尺度下的随机行为,理解复杂系统的行为模式 |
随机过程与深度学习的结合 | 利用深度学习处理随机过程中的复杂问题 |
随机过程在新兴领域的应用 | 在量子计算、人工智能安全等新兴领域探索应用 |
结论
本文全面介绍了随机激励下波方程的求解、随机游走与布朗运动以及使用布朗运动求解拉普拉斯方程的相关知识。通过对这些内容的深入研究,我们可以看到随机过程在多个领域都有着重要的应用价值。同时,我们也探讨了代码的优化与拓展以及未来的研究方向。随着研究的不断深入,随机过程的理论和方法将在更多领域发挥重要作用,为解决实际问题提供有力的支持。