欢迎光临散文网 会员登陆 & 注册

布朗运动-北太天元学习32

2023-08-09 11:37 作者:卢朓  | 我要投稿

在北太天元学习31中,我们介绍了泊松过程。现在,我们再简单介绍一下维纳过程(Wiener process)。 这是一种应用很广的也很有名的随机过程, 又被称为布朗运动(Brownian motion)。

我们先介绍一维的布朗运动,假设 X(0) = 0, X(t), t \in [0,\infty) 是一个随机过程, 布朗运动区别于其它的随机过程的一个特点是对于任意的 0<s<t,  X(t) - X(s) 服从正态分布,
X(t)-X(s) ~ N(0,simga^2 *(t-s)), 这里的sigma 是常数,不依赖于t和s.  参数 sigma = 1 的布朗运动称为标准布朗运动。

我们利用上面的知识,可以用北太天元计算并画出布朗运动的轨迹。布朗运动X(t) 的t 属于 [0,\infty), 我们选择 [0,T] 来观察布朗运动的轨迹,而且也只能选择一些时间点来观察。 我们每一次模拟获得一个轨迹, 得到的图像如下

北太天元做了5次试验,得了5个布朗运动的轨迹


使用的北太天元的代码如下:

%北太天元 模拟 布朗运动
close all
clc
clear all
hold on
num模拟 = 5;

sigma = 1 %  设值根方差
T = 10;  % 设置观察的时间区间[0,T];
h = 0.01; % 设置时间步长
n = floor( T/h) ;

for k = 1:num模拟
   x = zeros( n +1 ,1);
   t = (0:n) * h ; % 计算的所有时间点
   for i= 1:n
      x(i+1) = x(i) + randn*sigma*sqrt(h);
  end    

  plot(t, x, 'LineWidth', 5);
end

title("北太天元 画 一维布朗运动的运动轨迹")
xlabel("时间")
ylabel("位置")

hold off


然后,我们再计算一下二维的布朗运动,此时对应于一个时间t的是一个随机向量,有两个随机变量组成, [X(t), Y(t)], 其中X(t) 和Y(t) 都是一维的布朗运动。

我们不再画时间了,而是把每一个时刻的位置画出来,得到了二维布朗运动的轨迹,

北太天元画二维布朗运动的轨迹

所用的北太天元的脚本如下:


%北太天元 画 二维布朗运动的轨迹
close all
clc
clear all

sigma = struct();
sigma.x = 1;
sigma.y = 1;

T = 10;
h = 0.1;
N = floor(T/h);
t = (0:N)*h;   

particle = struct();
particle.x = [0; cumsum( sigma.x*sqrt(h) * randn(N, 1) )];
particle.y = [0; cumsum( sigma.y *sqrt(h) * randn(N, 1) )];
plot(particle.x, particle.y,'LineWidth', 4);
text(particle.x(1), particle.y(1), '起点');
text(particle.x(N+1), particle.y(N+1), '终点');


ylabel('Y');
xlabel('X');
title('北太天元模拟粒子做二维布朗运动的轨迹');


布朗运动-北太天元学习32的评论 (共 条)

分享到微博请遵守国家法律