今天分享的是标准布朗运动的定义、代码和图像
如果 { B t , t ≥ 0 } \{B_t,t \ge 0\} {Bt,t≥0} 满足:
(1) B 0 = 0 B_0 = 0 B0=0;
(2) B t B_t Bt 有独立增量,也就是说对于任意 t 0 < t 1 < ⋯ < t n t_0 < t_1 < \cdots < t_n t0<t1<⋯<tn,都有 B t 1 − B t 0 , … , B t n − B t n − 1 B_{t_1} - B_{t_0}, \ldots, B_{t_n} - B_{t_{n -1}} Bt1−Bt0,…,Btn−Btn−1 独立;
(3) B t B_t Bt 有平稳增量,即对于任意 0 ≤ s < t 0\le s < t 0≤s<t,有 B t + s − B s ∼ N ( 0 , σ 2 t ) B_{t+s} - B_s \sim N(0, \sigma^2 t) Bt+s−Bs∼N(0,σ2t)。
则称其是一个方差为 σ 2 \sigma^2 σ2 的布朗运动。特别地, σ 2 = 1 \sigma^2 = 1 σ2=1,那么它是标准布朗运动。
M<-10 #总时间长度
N<-100 #布朗运动路径的数量
T<-0.1 #时间间隔
t<-seq(0,M,T)
B<-matrix(NA,nrow=M/T+1,ncol=N)
#创建一个矩阵,用于存储布朗运动的路径数据
B[1,]<-0
#第一行的所有元素设为0,表示所有路径的初始值均为0
for(j in 1:N){
for(i in 1:(M/T)){
B[i+1,j]<-B[i,j]+rnorm(1,0,sqrt(t[i+1]-t[i]))
}
}
plot(1,type="n",xlim=c(0,M),ylim=
c(min(B),max(B)), xlab="Time",ylab=
"Brownian Motion",main="50 Standard
Brownian Motion Paths")
#创建一个空白图
colors <- rainbow(N)#生成N种不同颜色的颜色向量
for(j in 1:N){
lines(t,B[,j],col=colors[j],lty=1)
}
下列分别是T=0.1,0.01,0.001时的布朗运动图像。
如果您在看完以后,无论是题目还是参考解答过程有什么问题,希望不吝指出!如果有更好的解题思路或者好的问题分享,欢迎通过留言或者后台发送给我们!