随机过程实验报告全
- 格式:docx
- 大小:594.20 KB
- 文档页数:21
过程试验汇报班级: 通信1004班姓名: 杨靖学号: U13098试验目:了解数产生, 而且利用数来模拟均匀分布、 正态分布、 指数分布、 泊松分布而且计算均值和自相关序列。
试验工具:C++编程模拟试验原理:数产生原理: 经过数学算法产生伪数来, 模拟数产生。
数序列含有循环周期性。
能够证实, 任何产生伪数算法总会进入循环, 这么为了确保随机数序列不产生反复数据, 就要求循环周期足够长。
均匀分布产生原理:利用线性同余法(1)设置y0, 即设置种子(2)yn=kyn-1(mod N), un=yn/N泊松分布产生原理: 从泊松分布分布律可知, 采取前述方法很不适用。
因为: 所以, 采取递推法组成泊松分布: (1)产生均匀分布数u; (2) (3)若u<F, 令X=i, 停止; (4) (5)转向(3)。
正态分布产生原理:标准正态变量分布函数 反函数不存在显式, 所以也不能用逆变法产生。
故采取以下方法:设Ui ~U(0, 1), i=1,2,…,n, 且相互独立, 由中心极限定理可知, 当n 较大时设Ui ~U(0, 1), i=1,2,…,n, 且相互独立, E(Ui)=1/2, D(Ui)=1/12, 当n 较大时有:取n=12, 近似有:也就是说, 只要产生12个伪数u1,u2,…u12, 将它们加起来, 再减去6, 就能近似得到标准正态变量样本值。
{}!i i e p P X i i λλ-===11(1)!1i i i e p p i i λλλ+-+==++0,,;i p e F p λ-===/(1),,1;p p i F F p i i λ=+=+=+()~(0,1)n i i U nE U Z N -=∑~(0,1)ni n U Z N -=∑1216~(0,1)i i Z U N ==-∑指数分布产生原理:(1)产生均匀分布数{ui};(2)计算指数分布数: xi=-ln ui /λ试验代码:(1)数产生/*函数功效, 采取线性同余法, 依据输入种子数产生一个伪数, 假如种子不变,则将能够反复调用产生一个伪序列利用CMyRand类中定义全局变量: S, K, N, Y。
数学与计算科学学院实验报告实验项目名称随机数及Poisson过程的模拟所属课程名称随机过程实验类型综合实验日期班级学号姓名成绩一、实验概述: 【实验目的】通过模拟产生随机数,进一步编程实现对possion 过程样本轨道的模拟。
掌握生成随机变量的方法,深入了解poisson 过程的性质。
【实验原理】1、随机变量的生成(逆函数法):利用均匀分布并结合分布函数的逆变换,生成分布函数为F (x )的变换:若U 是[0,1]区间上的均匀分布,F (x )为任一给定的分布函数,定义1()inf{:()}F x t F t x -=>,则随机变量1()Y F U -=的分布函数为F (x );2、Poisson 过程的模拟:(1)利用事件发生的间隔时间是独立同分布的随机变量序列,(2)给定事件发生次数的条件下,事件发生的时刻与该区间上对应的均匀分布的顺序统计量相同【实验环境】 硬件环境Windows 7 Microsoft Corporation Inter(R)Core(TM) i5-3210 软件环境 Matlab 7.0 二、实验内容: 【实验方案】1、利用求逆函数的方法生成指数分布随机变量;2、(a )利用独立同分布的指数分布序列模拟强度为1的Poisson 过程; (b )利用均匀分布的顺序统计量模拟强度为1的Poisson 过程 【实验过程】(实验步骤、记录、数据、分析) 1.利用求逆函数的方法生成指数分布随机变量;步骤一:我们知道一个指数分布的概率密度函数是:其中λ > 0是分布的一个参数,常被称为率参数(rate parameter )。
即每单位时间发生该事件的次数。
指数分布的区间是[0,∞)。
如果一个随机变量X 呈指数分布,则可以写作:X ~ Exponential (λ)。
累积分布函数:累积分布函数可以写成:所以在 0≥x 时该分布函数的逆变换为:步骤二:生成均匀分布在[0,1]上的随机数Matlab 里生成[0,1]上的均匀随机数的语句是:rand(1,1); rand(n,m)。
随机过程实验报告一.实验目的通过随机过程的模拟实验, 熟悉随机过程编码规律以及各种随机过程的实现方法, 通过理论与实际相结合的方式, 加深对随机过程的理解。
二. 实验原理及实现代码1.伪随机数的产生函数功能: 采用线性同余法, 根据输入的种子数产生一个伪随机数, 如果种子不变, 则将可以重复调用产生一个伪随机序列实现思路:利用CMyRand类中定义的全局变量:S, K, N, Y。
其中K和N为算法参数, S用于保存种子数, Y为产生的随机数, 第一次调用检查将seed赋值与S获得Y的初值, 之后调用选择rand()函数赋值与Y。
代码如下:unsigned int CMyRand::MyRand(unsigned int seed){Y=seed;Y=K*seed%N;S=Y;return Y;}2.均匀分布随机数的产生在上面实验中, 已经产生了伪随机序列, 所以为了得到0~N 的均匀分布序列, 只需将其转化为min 到max 的均匀分布即可, 代码如下:double CMyRand::AverageRandom(double min,double max) {double dResult;dResult = (double(MyRand(S))/N)*(max-min)+min; dResult=(int(dResult*10000))/10000.0 ;return dResult; }3.正态分布随机数的产生由AverageRandom 函数获得0-1间隔均匀分布随机数U(0,1), i=1,2,…,n, 且相互独立, 由中心极限定理可知, 当n 较大时,()~(0,1)nU nE U Z N -=取n=12, 近似有, 也就是说, 只要产生12个伪随机数u1,u2,…u12, 将它们加起来, 再减去6, 就能近似得到标准正态变量的样本值。
代码如下:double CMyRand::NormalRandom(double miu, double sigma, double min, double max){double dResult;dResult = 0;for(int i=0;i<12;i++)dResult+=(double(MyRand(S))/N); //循环相加12次dResult-=6;dResult=(dResult*sigma+miu)*(max-min)+min;return dResult;}3.指数分布的随机数的产生用AverageRandom产生均匀分布随机数{ui}, 计算指数分布随机数: xi=-ln ui /λdouble CMyRand::ExpRandom(double lambda, double min, double max){double dResult = 0.0;dResult=-log(AverageRandom(min,max))/lambda;return dResult;}4.泊松分布的随机数产生unsigned int CMyRand::PoisonRandom(double lambda, double min, double max){unsigned int dResult = 0;double F=exp(-lambda);while(AverageRandom(0,1)>=F){F+=(lambda*F)/(dResult+1);dResult++;}return dResult;}5.计算任意分布的随机过程的均值根据大数定律, 调用任意函数加和求平均即为该分布的均值。
一、实验目的1. 理解随机过程的基本概念和性质。
2. 掌握随机过程的基本运算和性质。
3. 通过实验验证随机过程的性质和规律。
二、实验原理随机过程是指一系列随机变量按照一定规则排列而成的序列。
在现实生活中,随机过程广泛存在于自然界和人类社会,如股票价格、气象变化、生物进化等。
随机过程的研究有助于我们更好地理解和预测这些现象。
随机过程可以分为两类:离散随机过程和连续随机过程。
本实验主要研究离散随机过程。
三、实验设备与材料1. 计算机2. 随机过程模拟软件(如Matlab)3. 纸笔四、实验内容1. 随机过程的基本概念(1)随机变量的概念随机变量是指具有不确定性的变量,它可以取多个值。
在随机过程中,随机变量是基本的研究对象。
(2)随机过程的概念随机过程是由一系列随机变量按照一定规则排列而成的序列。
2. 随机过程的基本性质(1)无后效性无后效性是指随机过程的前后状态相互独立。
(2)无记忆性无记忆性是指随机过程的状态只与当前时刻有关,与过去时刻无关。
(3)马尔可夫性马尔可夫性是指随机过程的状态只与当前时刻有关,与过去时刻无关。
3. 随机过程的运算(1)随机过程的和设{Xn}和{Yn}是两个随机过程,则它们的和{Zn}定义为Zn = Xn + Yn。
(2)随机过程的差设{Xn}和{Yn}是两个随机过程,则它们的差{Zn}定义为Zn = Xn - Yn。
(3)随机过程的乘积设{Xn}和{Yn}是两个随机过程,则它们的乘积{Zn}定义为Zn = Xn Yn。
4. 随机过程的模拟利用随机过程模拟软件(如Matlab)模拟随机过程,观察其性质和规律。
五、实验步骤1. 初始化随机数生成器2. 定义随机过程(1)根据随机过程的基本性质,定义随机过程{Xn}。
(2)根据随机过程的运算,定义随机过程{Yn}。
3. 模拟随机过程(1)使用随机过程模拟软件(如Matlab)模拟随机过程{Xn}和{Yn}。
(2)观察模拟结果,分析随机过程的性质和规律。
随机信号实验报告课程:随机信号实验题目:随机过程的模拟与特征估计学院:学生名称:实验目的:1.学会利用MATLAB模拟产生各类随即序列。
2.熟悉和掌握随机信号数字特征估计的基本方法。
实验内容:1.模拟产生各种随即序列,并画出信号和波形。
(1)白噪声(高斯分布,正弦分布)。
(2)随相正弦波。
(3)白噪声中的多个正弦分布。
(4)二元随机信号。
(5)自然信号:语音,图形(选做)。
2.随机信号数字特征的估计(1)估计上诉随机信号的均值,方差,自相关函数,功率谱密度,概率密度。
(2)各估计量性能分析(选做)实验仪器:PC机一台MATLAB软件实验原理:随机变量常用到的数字特征是数字期望值、方差、自相关函数等。
相应地,随机过程常用到的数字特征是数字期望值、方差、相关函数等。
它们是由随机变量的数字特征推广而来,但是一般不再是确定的数值,而是确定的时间函数。
1.均值:m x(t)=E[X(t)]=;式中,p(x,t)是X(t)的一维概率密度。
m x(t)是随机过程X(t)的所有样本函数在时刻t的函数值的均值。
在matlab中用mea()函数求均值。
2.方差:(t)=D[X(t)]=E[];(t)是t的确定函数,它描述了随机过程诸样本函数围绕数学期望m x(t)的分散程度。
若X(t)表示噪声电压,则方差(t)则表示瞬时交流功率的统计平均值。
在matlab中用var()函数求均值。
3.自相关函数:Rx(t1,t2)=E[X(t1)X(t2)];自相关函数就是用来描述随机过程任意两个不同时刻状态之间相关性的重要数字特征。
在matlab中用xcorr()来求自相关函数。
4.在matlab中可用函数rand、randn、normr、random即可生成满足各种需要的近似的独立随机序列。
实验步骤:(一)大体实验步骤(1)利用MATLAB编写程序。
(2)调试程序。
(3)得出各项输出结果,产生波形。
(4)分析各参数的物理意义,各个波形参数相比较。
2015-2016第一学期随机过程第二次上机实验报告实验目的:通过随机过程上机实验,熟悉Monte Carlo计算机随机模拟方法,熟悉Matlab的运行环境,了解随机模拟的原理,熟悉随机过程的编码规律即各种随机过程的实现方法,加深对随机过程的理解。
上机内容:(1 )模拟随机游走。
(2)模拟Brown运动的样本轨道。
(3)模拟Markov过程。
实验步骤:(1)给出随机游走的样本轨道模拟结果,并附带模拟程序。
①一维情形%—维简单随机游走% “从0开始,向前跳一步的概率为p,向后跳一步的概率为1-p”n=50;p=0.5;y=[0 cumsum(2.*(rand(1,n-1)v=p)-1)]; % n 步。
plot([0:n-1],y); %画出折线图如下。
w%一维随机步长的随机游动%选取任一零均值的分布为步长,比如,均匀分布。
n=50;x=rand(1,n)-1/2;y=[0 (cumsum(x)-l)];plot([0:n],y);②二维情形%在(u, v)坐标平面上画出点(u(k), v(k)), k=1:n,其中(u(k)) 和(v(k))是一维随机游动。
例%子程序是用四种不同颜色画了同一随机游动的四条轨道。
n=100000;colorstr=['b' 'r' 'g' 'y'];for k=1:4z=2.*(rand(2,n)<0.5)-1;x=[zeros(1,2); cumsum(z')];col=colorstr(k);plot(x(:,1),x(:,2),col);③%三维随机游走 ranwalk3dp=0.5;n=10000; colorstr=['b' 'r' 'g' 'y'];for k=1:4z=2.*(rand(3,n)v=p)-1; x=[zeros(1,3); cumsum(z')];col=colorstr(k);plot3(x(:,1),x(:,2),x(:,3),col);hold on end gridhold onendgrid4:04003?0-200-300-400-2OD20050、-100-200 -20D⑵给出一维,二维Brown运动和Poisson过程的模拟结果,并附带模拟程序,没有结果的也要把程序记录下来。
随机过程实验报告学院:专业:学号:姓名:一、实验目的通过随机过程的模拟实验,熟悉随机过程编码规律以及各种随机过程的实现方法,通过理论与实际相结合的方式,加深对随机过程的理解。
二、实验内容(1)熟悉Matlab工作环境,会计算Markov链的n步转移概率矩阵和Markov链的平稳分布。
(2)用Matlab产生服从各种常用分布的随机数,会调用matlab自带的一些常用分布的分布律或概率密度。
(3)模拟随机游走。
(4)模拟Brown运动的样本轨道的模拟。
(5)Markov过程的模拟。
三、实验原理及实验程序n步转移概率矩阵根据Matlab的矩阵运算原理编程,Pn = P ^n。
已知随机游动的转移概率矩阵为:P =0.5000 0.5000 00 0.5000 0.50000.5000 0 0.5000求三步转移概率矩阵p3及当初始分布为P{x0 = 1} = p{x0 = 2} = 0, P{x0 = 3} = 1 时经三步转移后处于状态3的概率。
代码及结果如下:P = [0.5 0.5 0; 0 0.5 0.5; 0.5 0 0.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;boxon3、泊松分布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 % simulate 10 timesclear;m=10; lamda=1; x=[];for i=1:ms=exprnd(lamda,'seed',1);x=[x,exprnd(lamda)];t1=cumsum(x);end[x',t1']5.2%输入:N=[];for t=0:0.1:(t1(m)+1)if t<t1(1)N=[N,0];elseif t<t1(2)N=[N,1];elseif t<t1(3)N=[N,2];elseif t<t1(4)N=[N,3];elseif t<t1(5)N=[N,4];elseif t<t1(6)N=[N,5];elseif t<t1(7)N=[N,6];elseif t<t1(8)N=[N,7];elseif t<t1(9)N=[N,8];elseif t<t1(10)N=[N,9];elseN=[N,10];endendplot(0:0.1:(t1(m)+1),N,'r-') 5.3% simulate 100 timesclear;m=100; lamda=1; x=[];for i=1:ms= rand('seed');x=[x,exprnd(lamda)];t1=cumsum(x);end[x',t1']N=[];for t=0:0.1:(t1(m)+1)if t<t1(1)N=[N,0];endfor i=1:(m-1)if t>=t1(i) & t<t1(i+1)N=[N,i];endendif t>t1(m)N=[N,m];endendplot(0:0.1:(t1(m)+1),N,'r-')6、泊松过程function I=possion(lambda,m,n)for j=1:mX=poissrnd(lambda,[1,n]); %参数为lambda的possion 过程N(1)=0;for i=2:nN(i)=N(i-1)+X(i-1);endt=1:n;plot(t,N)grid onhold onend7、布朗运动7.1一维布朗运动程序:function [t,w]=br1(t0,tf,h)t=t0:h:tf;t=t';x=randn(size(t));w(1)=0;for k=1:length(t)-1w(k+1)=w(k)+x(k);endw=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;for k=1:length(x)-1m(k+1)=m(k)+a(k);n(k+1)=n(k)+b(k);endm=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);hold on;scatter3(bm(:, 1), bm(:, 2), bm(:, 3), ...10, pcol, 'filled');grid on;hold off;8、马尔科夫链离散服务系统中的缓冲动力学m=200;p=0.2;N=zeros(1,m); %初始化缓冲区A=geornd(1-p,1,m); %生成到达序列模型, for n=2:mN(n)=N(n-1)+A(n)-(N(n-1)+A(n)>=1);endstairs((0:m-1),N);9、随机数游走9.1 100步随机游走n = 100; %选取步数。
随机信号实验报告课程:随机信号实验题目:随机过程的模拟与特征估计学院:四川大学电子信息学院学生名称:实验目的:1.学会利用MATLAB模拟产生各类随即序列。
2.熟悉和掌握随机信号数字特征估计的基本方法。
实验内容:1.模拟产生各种随即序列,并画出信号和波形。
(1)白噪声<高斯分布,正弦分布)。
(2)随相正弦波。
(3)白噪声中的多个正弦分布。
(4)二元随机信号。
(5)自然信号:语音,图形<选做)。
2.随机信号数字特征的估计(1)估计上诉随机信号的均值,方差,自相关函数,功率谱密度,概率密度。
(2)各估计量性能分析<选做)实验仪器:PC机一台MATLAB软件实验原理:随机变量常用到的数字特征是数字期望值、方差、自相关函数等。
相应地,随机过程常用到的数字特征是数字期望值、方差、相关函数等。
它们是由随机变量的数字特征推广而来,但是一般不再是确定的数值,而是确定的时间函数。
b5E2RGbCAP均值:mx(t>=E[X(t>]=;式中,p(x,t>是X<t)的一维概率密度。
mx(t>是随机过程X<t)的所有样本函数在时刻t的函数值的均值。
在matlab中用mea(>函数求均值。
p1EanqFDPw方差:<t)=D[X(t>]=E[];<t)是t 的确定函数,它描述了随机过程诸样本函数围绕数学期望mx(t>的分散程度。
若X<t)表示噪声电压,则方差<t)则表示瞬时交流功率的统计平均值。
在matlab中用var(>函数求均值。
DXDiTa9E3d自相关函数:Rx(t1,t2>=E[X(t1>X(t2>];自相关函数就是用来描述随机过程任意两个不同时刻状态之间相关性的重要数字特征。
在matlab中用xcorr<)来求自相关函数。
RTCrpUDGiT在matlab中可用函数rand、randn、normr、random即可生成满足各种需要的近似的独立随机序列。
随机过程实验报告一、实验问题两赌徒模型对于上述模型现在假定赌徒甲的对手赌徒乙有N-i的初始财富,N为两个赌徒的总财富。
则赌徒甲破产的概率有多大?模拟之。
二、问题分析该问题实质上为带有两个吸壁的随机游动,我们可以仍可把它看作数学中的一个一维随机游动问题。
其马尔可夫链状态空间为{0,1,2,…,N},N为赌徒甲、乙的总财富。
类似于赌徒与游戏机模型,我们也可以把财富抽象地看成是一个质点。
可知求赌徒甲破产的概率转化为现在的问题就是求质点从i点出发到达0状态先于到达N状态的概率。
这里较赌徒与游戏机模型中多出一个条件,即:赌徒甲先于赌徒乙到达0状态。
我们不难得到这一模型的解:三、问题解决1、先讨论p=q的随机游动情况对于简单的随机游动,如果从0开始,向前跳一步的概率为p,向后跳一步的概率为1-p,则由计算机可以模拟此情形。
这只是许多模拟结果中的一种。
现在我们假设,有A、B两个赌徒,他们共同用于赌博的财富M=100(元),A、B输赢的概率(即赌博的技巧相同)时,他们破产的概率。
假设,共同的财富中A、B分别投入的资金如下表:运算结果如下:由上图可知,当赌徒甲、乙输赢的概率相等时,其中一人破产的概率与对方所拥有的财富成正比关系。
这样我们可以得出结论:在两人的赌博游戏中,如果赌徒甲、乙的赌博技术差不多即输赢概率相当的话,那么谁要想最终获胜的最好方法就是多带赌本。
2、下面讨论p!=q时随机游动情况我们不妨将之具体为p=0.4,q=0.6。
用计算机模拟上述数据。
可得图如下:由上图可知,在每次输赢都为1元时,就算甲90元、乙10元,甲也几乎不可能赢。
如果我们把每次下的赌注加大到5元,修改程序三,模拟之,又可得图如下:由上图我们可以更清晰地看出:在两人的赌博游戏中,如果赌徒甲的赌博技术比乙的赌博技术差的话,那么甲要想最终获胜就要带比乙多很多的赌本。
四、结果拓展现实中的赌博还可能有三人、四人甚至更多的人一起进行。
下面我们简单地讨论当赌徒输赢概率相等时的二维随机游动。
随机过程实验报告学院专业学号姓名实验目的通过随机过程的模拟实验,熟悉随机过程编码规律以及各种随机过程的实现方法,通过理论与实际相结合的方式,加深对随机过程的理解。
二、实验内容(1)熟悉Matlab 工作环境,会计算Markov 链的n 步转移概率矩阵和Markov 链的平稳分布。
(2)用Matlab 产生服从各种常用分布的随机数,会调用matlab 自带的一些常用分布的分布律或概率密度。
(3)模拟随机游走。
(4)模拟Brown 运动的样本轨道的模拟。
(5)Markov 过程的模拟。
三、实验原理及实验程序n 步转移概率矩阵根据Matlab的矩阵运算原理编程,Pn = P A n o已知随机游动的转移概率矩阵为:P =0.5000 0.5000 00 0.5000 0.50000.5000 0 0.5000求三步转移概率矩阵p3 及当初始分布为P{x0 = 1} = p{x0 = 2} = 0, P{x0 = 3} = 1 时经三步转移后处于状态 3 的概率。
代码及结果如下:P = [0.5 0.5 0; 0 0.5 0.5; 0.5 0 0.5] % 一步转移概率矩阵P3 = P A3 %三步转移概率矩阵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;boxon3、泊松分布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 % simulate 10 times clear;m=10; lamda=1; x=[]; for i=1:m s=exprnd(lamda,'seed',1);x=[x,exprnd(lamda)]; t1=cumsum(x);end[x',t1']5.2%输入:for t=0:0.1:(t1(m)+1)if t<t1(1)N=[N,0];elseif t<t1(2)N=[N,1];elseif t<t1(3)N=[N,2];elseif t<t1(4)N=[N,3];elseif t<t1(5)N=[N,4];elseif t<t1(6)N=[N,5];elseif t<t1(7)N=[N,6];elseif t<t1(8)N=[N,7];elseif t<t1(9)N=[N,8];elseif t<t1(10)N=[N,9];elseN=[N,10];endend plot(0:0.1:(t1(m)+1),N,'r-') 5.3% simulate 100 times clear;m=100; lamda=1; x=[]; for i=1:ms= rand('seed'); x=[x,exprnd(lamda)]; t1=cumsum(x);[x',t1']N=[];for t=0:0.1:(t1(m)+1)if t<t1(1)N=[N,0];endfor i=1:(m-1)if t>=t1(i) & t<t1(i+1)N=[N,i];endend if t>t1(m)N=[N,m];endend plot(0:0.1:(t1(m)+1),N,'r-')6、泊松过程function I=possion(lambda,m,n)for j=1:mX=poissrnd(lambda,[1,n]); % 参数为lambda 的possion 过程N(1)=0;for i=2:nN(i)=N(i-1)+X(i-1);endt=1:n;plot(t,N)grid onhold on7、布朗运动7.1 一维布朗运动程序:function [t,w]=br1(t0,tf,h)t=t0:h:tf;t=t';x=randn(size(t));w(1)=0;for k=1:length(t)-1w(k+1)=w(k)+x(k);endw=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;for k=1:length(x)-1 m(k+1)=m(k)+a(k); n(k+1)=n(k)+b(k);endm=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); dtS.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);hold on;scatter3(bm(:, 1), bm(:, 2), bm(:, 3), ...10, pcol, 'filled');grid on; hold off;8、马尔科夫链离散服务系统中的缓冲动力学m=200;p=0.2;N=zeros(1,m); % 初始化缓冲区A=geornd(1-p,1,m); %生成到达序列模型for n=2:mN(n)=N(n-1)+A(n)-(N(n-1)+A(n)>=1);endstairs((0:m-1),N);9、随机数游走9.1 100 步随机游走n = 100; % 选取步数。
x = rand(n,1); %生成均匀分布随机数。
y = 2*(x > 0.5) - 1; % 转换这些数到为-1 和+1。
z = cumsum(y); %计算y 的累积和。
clfplot(z) %画出z 的第1, 2, 3, ...等的值。
9.2 5000 步随机游走n = 5000; % 选取步数。
x = rand(n,1); %生成均匀分布随机数。
y = 2*(x > 0.5) - 1; % 转换这些数到为-1 和+1。
z = cumsum(y); %计算y 的累积和。
clfplot(z) %画出z 的第1, 2, 3, ...等的值。
9.3 复杂随机数游走clear all;close all;clcn=70000; % 游走的步数。
也是图像中像素个数,有些位置可能重复,所以白像素小于等于nx=0; % 初始x 坐标y=0; % 初始y 坐标pix=zeros(n,2); % 游走产生的像素坐标neighbour=[-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1]; %当前像素邻域for i=1:nr=floor(1+8*rand());y=y+neighbour(r,1);x=x+neighbour(r,2);pix(i,:)=[y x];endminy=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); 图像for i=1:nimg(pix(i,1),pix(i,2))=1;%八邻域随机选一个来走%y 方向游走%x 方向游走%保存坐标%图像坐标不可能为负,所%同上%像素坐标整体变为正%找最大坐标值,为开辟% 根据maxy、maxx 产生%将游走的值赋给图像end imshow(img)9.4 二维随机游动模拟n=90000;colorstr=['b' 'r' 'g' 'y'];for k=1:4z=2.*(rand(2,n)<0.5)-1;x=[zeros(1,2); cumsum(z')];col=colorstr(k);plot(x(:,1),x(:,2),col);hold on end Grid9.5 三维随机游动模拟p=0.5;n=9000; colorstr=['b' 'r' 'g''y'];for k=1:4z=2.*(rand(3,n)<=p)-1;x=[zeros(1,3); cumsum(z')];col=colorstr(k);plot3(x(:,1),x(:,2),x(:,3),col);hold on endGrid四、实验结果1、两点分布2、二项式分布3、泊松分布4、几何分布5、泊松过程仿真5.1 ans =0.6509 0.65092.40613.05700.1002 3.15720.1229 3.28000.8233 4.10330.2463 4.34961.9074 6.25700.4783 6.73531.3447 8.08000.8082 8.8882 5.25.36、泊松过程possion(2,1,500)possion(2,10,500)possion(2,100,500)7、布朗运动7.1 一维布朗运动7.2二维布朗运动7.3三维布朗运动&马尔科夫平稳分布8.1 p=0.28.2 P=0.58.3 P=0.88.4 P=19、随机数游走9.1 100步随机游走gl :ighje 1 讣叵—wrh td<i Int-ert Tosl$ Dwktcp 璽F 皿叶空lp< 古□ * LJ M ft®r* n □ i ■口9.2 5000步随机游走Q卜①严19.3 复杂随机数游走-igur^ 19.4二维随机数游走9.5三维随机数游走五、实验总结通过这几次随机过程的上机实验,更加深了对在随机过程课堂上的学习内容,而且有重新学习了了matlab环境及应用,熟悉Matlab工作环境,计算Markov链的n步转移概率矩阵和Markov链的平稳分布,用Matlab产生服从各种常用分布的随机数,调用matlab自带的一些常用分布的分布律或概率密度,模拟随机游走,模拟Brown运动的样本轨道的模拟以及Markov过程的模拟。