随机过程实验报告全.docx
《随机过程实验报告全.docx》由会员分享,可在线阅读,更多相关《随机过程实验报告全.docx(22页珍藏版)》请在冰豆网上搜索。
随机过程实验报告全
随机过程实验报告
学院:
专业:
学号:
姓名:
一、实验目的
通过随机过程的模拟实验,熟悉随机过程编码规律以及各种随机过程的实现方法,通过理论与实际相结合的方式,加深对随机过程的理解。
二、实验内容
(1)熟悉Matlab工作环境,会计算Markov链的n步转移概率矩阵和Markov链的平稳分布。
(2)用Matlab产生服从各种常用分布的随机数,会调用matlab自带的一些常用分布的分布律或概率密度。
(3)模拟随机游走。
(4)模拟Brown运动的样本轨道的模拟。
(5)Markov过程的模拟。
三、实验原理及实验程序
n步转移概率矩阵
根据Matlab的矩阵运算原理编程,Pn=P^n。
已知随机游动的转移概率矩阵为:
P=
0.50000.50000
00.50000.5000
0.500000.5000
求三步转移概率矩阵p3及当初始分布为
P{x0=1}=p{x0=2}=0,P{x0=3}=1时经三步转移后处于状态3的概率。
代码及结果如下:
P=[0.50.50;00.50.5;0.500.5]%一步转移概率矩阵
P3=P^3%三步转移概率矩阵
P3_3=P3(3,3)%三步转移后处于状态的概率
1、两点分布
x=0:
1;
y=binopdf(x,1,0.55);
plot(x,y,'r*');
title('两点分布');
2、二项分布
N=1000;p=0.3;k=0:
N;
pdf=binopdf(k,N,p);
plot(k,pdf,'b*');
title('二项分布');
xlabel('k');
ylabel('pdf');
gridon;
boxon
3、泊松分布
x=0:
100;
y=poisspdf(x,50);
plot(x,y,'g.');
title('泊松分布')
4、几何分布
x=0:
100;
y=geopdf(x,0.2);
plot(x,y,'r*');
title('几何分布');
xlabel('x');
ylabel('y');
5、泊松过程仿真
5.1%simulate10times
clear;
m=10;lamda=1;x=[];
fori=1:
m
s=exprnd(lamda,'seed',1);
x=[x,exprnd(lamda)];
t1=cumsum(x);
end
[x',t1']
5.2%输入:
N=[];
fort=0:
0.1:
(t1(m)+1)
ift(1)
N=[N,0];
elseift(2)
N=[N,1];
elseiftN=[N,2];
elseiftN=[N,3];
elseiftN=[N,4];
elseiftN=[N,5];
elseiftN=[N,6];
elseiftN=[N,7];
elseiftN=[N,8];
elseiftN=[N,9];
else
N=[N,10];
end
end
plot(0:
0.1:
(t1(m)+1),N,'r-')
5.3%simulate100times
clear;
m=100;lamda=1;x=[];
fori=1:
m
s=rand('seed');
x=[x,exprnd(lamda)];
t1=cumsum(x);
end
[x',t1']
N=[];
fort=0:
0.1:
(t1(m)+1)
ift(1)
N=[N,0];
end
fori=1:
(m-1)
ift>=t1(i)&tN=[N,i];
end
end
ift>t1(m)
N=[N,m];
end
end
plot(0:
0.1:
(t1(m)+1),N,'r-')
6、泊松过程
functionI=possion(lambda,m,n)
forj=1:
m
X=poissrnd(lambda,[1,n]);%参数为lambda的possion过程
N
(1)=0;
fori=2:
n
N(i)=N(i-1)+X(i-1);
end
t=1:
n;
plot(t,N)
gridon
holdon
end
7、布朗运动
7.1一维布朗运动程序:
function[t,w]=br1(t0,tf,h)
t=t0:
h:
tf;
t=t';
x=randn(size(t));
w
(1)=0;
fork=1:
length(t)-1
w(k+1)=w(k)+x(k);
end
w=sqrt(h)*w;
w=w(:
);
end
调用
t0=1;
tf=10;
h=0.01;
[t,w]=br1(t0,tf,h);
figure;
plot(t,w,'*');
xlabel('t');
ylabel('w');
title('一维Brown运动模拟图');
7.2二维布朗运动:
function[x,y,m,n]=br2(x0,xf,y0,yf,h)
x=x0:
h:
xf;
y=y0:
h:
yf;
a=randn(size(x));
b=randn(size(y));
m
(1)=0;
n
(1)=0;
fork=1:
length(x)-1
m(k+1)=m(k)+a(k);
n(k+1)=n(k)+b(k);
end
m=sqrt(h)*m;
n=sqrt(h)*n;
end
调用
x0=0;
xf=10;
h=0.01;
y0=0;yf=10;
[x,y,m,n]=br2(x0,xf,y0,yf,h);
figure;
plot(m,n);
xlabel('m');
ylabel('n');
title('二维Brown运动模拟图');
7.3三维布朗运动:
npoints=1000;
dt=1;
bm=cumsum([zeros(1,3);dt^0.5*randn(npoints-1,3)]);
figure
(1);
plot3(bm(:
1),bm(:
2),bm(:
3),'k');
pcol=(bm-repmat(min(bm),npoints,1))./...
repmat(max(bm)-min(bm),npoints,1);
holdon;
scatter3(bm(:
1),bm(:
2),bm(:
3),...
10,pcol,'filled');
gridon;
holdoff;
8、马尔科夫链
离散服务系统中的缓冲动力学
m=200;
p=0.2;
N=zeros(1,m);%初始化缓冲区
A=geornd(1-p,1,m);%生成到达序列模型,
forn=2:
m
N(n)=N(n-1)+A(n)-(N(n-1)+A(n)>=1);
end
stairs((0:
m-1),N);
9、随机数游走
9.1100步随机游走
n=100;%选取步数。
x=rand(n,1);%生成均匀分布随机数。
y=2*(x>0.5)-1;%转换这些数到为-1和+1。
z=cumsum(y);%计算y的累积和。
clf
plot(z)%画出z的第1,2,3,...等的值。
9.25000步随机游走
n=5000;%选取步数。
x=rand(n,1);%生成均匀分布随机数。
y=2*(x>0.5)-1;%转换这些数到为-1和+1。
z=cumsum(y);%计算y的累积和。
clf
plot(z)%画出z的第1,2,3,...等的值。
9.3复杂随机数游走
clearall;closeall;clc
n=70000;%游走的步数。
也是图像中像素个数,有些位置可能重复,所以白像素小于等于n
x=0;%初始x坐标
y=0;%初始y坐标
pix=zeros(n,2);%游走产生的像素坐标
neighbour=[-1-1;-10;-11;0-1;01;1-1;10;11];%当前像素邻域
fori=1:
n
r=floor(1+8*rand());%八邻域随机选一个来走
y=y+neighbour(r,1);%y方向游走
x=x+neighbour(r,2);%x方向游走
pix(i,:
)=[yx];%保存坐标
end
miny=min(pix(:
1));%图像坐标不可能为负,所以找最小值再整体提升为正
minx=min(pix(:
2));%同上
pix(:
1)=pix(:
1)-miny+1;%像素坐标整体变为正
pix(:
2)=pix(:
2)-minx+1;
maxy=max(pix(:
1));%找最大坐标值,为开辟图像做准备
maxx=max(pix(:
2));
img=zeros(maxy,maxx);%根据maxy、maxx产生图像
fori=1:
n%将游走的值赋给图像
img(pix(i,1),pix(i,2))=1;
end
imshow(img)
9.4二维随机游动模拟
n=90000;
colorstr=['b''r''g''y'];
fork=1:
4
z=2.*(rand(2,n)<0.5)-1;
x=[zeros(1,2);cumsum(z')];
col=colorstr(k);
plot(x(:
1),x(:
2),col);
holdon
end
Grid
9.5三维随机游动模拟
p=0.5;
n=9000;
colorstr=['b''r''g''y'];
fork=1:
4
z=2.*(rand(3,n)<=p)-1;
x=[zeros(1,3);cumsum(z')];
col=colorstr(k);
plot3(x(:
1),x(:
2),x(:
3),col);
holdon
end
Grid
四、实验结果
1、两点分布
2、二项式分布
3、泊松分布
4、几何分布
5、泊松过程仿真
5.1ans=
0.65090.6509
2.40613.0570
0.10023.1572
0.12293.2800
0.82334.1033
0.24634.3496
1.90746.2570
0.47836.7353
1.34478.0800
0.80828.8882
5.2
5.3
6、泊松过程
possion(2,1,500)
possion(2,10,500)
possion(2,100,500)
7、布朗运动
7.1一维布朗运动
7.2二维布朗运动
7.3三维布朗运动
8、马尔科夫平稳分布
8.1p=0.2
8.2P=0.5
8.3P=0.8
8.4P=1
9、随机数游走
9.1100步随机游走
9.25000步随机游走
9.3复杂随机数游走
9.4二维随机数游走
9.5三维随机数游走
五、实验总结
通过这几次随机过程的上机实验,更加深了对在随机过程课堂上的学习内容,而且有重新学习了了matlab环境及应用,熟悉Matlab工作环境,计算Markov链的n步转移概率矩阵和Markov链的平稳分布,用Matlab产生服从各种常用分布的随机数,调用matlab自带的一些常用分布的分布律或概率密度,模拟随机游走,模拟Brown运动的样本轨道的模拟以及Markov过程的模拟。
通过实验,还让我重新认识到,理论知识的学习和上机实践相结合的重要性,能顺利成功的把实验做出来,这二者是缺一不可的,对我自己再以后的学习以及人生当中都有着重要的意义。