随机过程试验上机报告华科

上传人:s9****2 文档编号:456947968 上传时间:2023-08-08 格式:DOC 页数:10 大小:145KB
返回 下载 相关 举报
随机过程试验上机报告华科_第1页
第1页 / 共10页
随机过程试验上机报告华科_第2页
第2页 / 共10页
随机过程试验上机报告华科_第3页
第3页 / 共10页
随机过程试验上机报告华科_第4页
第4页 / 共10页
随机过程试验上机报告华科_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《随机过程试验上机报告华科》由会员分享,可在线阅读,更多相关《随机过程试验上机报告华科(10页珍藏版)》请在金锄头文库上搜索。

1、随机模拟与实验上机实验报告 通信0809 潇洒哥 学号 一. 随机模拟的典型步骤: 1、根据问题构建模拟系统 2、仿真系统中各种分布的随机变量3、运行模拟系统,进行统计测量 4、分析数据,输出结果二主要工具基本工具:C、C+等编程模拟、matlab网络模拟:OPNET Modeler、NS2:大型网络仿真 CASSAP:数字信号处理;SPW:电子系统三编译代码/ MyRand.cpp: implementation of the CMyRand class./#include stdafx.h#include random.h#include MyRand.h#include math.h#i

2、fdef _DEBUG#undef THIS_FILEstatic char THIS_FILE=_FILE_;#define new DEBUG_NEW#endif/ Construction/Destruction/CMyRand:CMyRand()CMyRand:CMyRand()void CMyRand:MyRandInit(void)N = 0x7FFFFFFF; /231-1K = 16807; /75seed = 2;/*函数功能,采用线性同余法,根据输入的种子数产生一个伪随机数,如果种子不变, 则将可以重复调用产生一个伪随机序列实现思路:利用CMyRand类中定义的全局变量:S

3、, K, N, Y。其中K和N为算法参数,S用于保存种子数,Y为产生的随机数,第一次调用检查将seed赋值与S获得Y的初值,之后调用选择rand()函数赋值与Y。*/unsigned int CMyRand:MyRand(unsigned int seed)if(S != seed)S = seed;Y = (seed * K) % N;elseY = (Y * K) % N;if(Y = 0)Y = rand();return Y;/*函数功能,产生一个在minmax范围内精度为4位小数的平均分布的随机数实现思路:min和max代表该均匀随机变量的取值范围,精确到小数点后4位。该参数在ran

4、domDlg.cpp中OnAverage ()和OnAverageStat()函数中已经设置,因此只需将该数小数点右移四位强制取整即可获得整数范围内的随机数,采用对(max-min)求余再加上min并将获得的结果缩小10000倍即可。*/double CMyRand:AverageRandom(double min,double max)int minInteger = (int)(min*10000);int maxInteger = (int)(max*10000);int randInteger = MyRand(seed);int diffInteger = maxInteger -

5、minInteger;int resultInteger = randInteger % diffInteger + minInteger;return resultInteger/10000.0;/*函数功能,在min 到max 范围内产生正态分布的随机数miu,最大概率密度处的随机变量,即产生的随机数中,概率最大的那个sigma实现思路:设由AverageRandom函数获得01间隔均匀分布随机数U(0,1),i=1,2,n,且相互独立,由中心极限定理可知,当n较大时*/double CMyRand:NormalRandom(double miu, double sigma, double

6、 min, double max)double dResult;dResult = 0;for(int i=0;i12;i+)dResult += AverageRandom(min,max);dResult = (dResult-6)/(max-min);dResult = dResult*sigma + miu;return dResult;/*函数功能,产生指数分布的随机数实现思路: 1)用AverageRandom产生均匀分布随机数ui; 2)计算指数分布随机数:xi=-ln ui /*/double CMyRand:ExpRandom(double lambda, double mi

7、n, double max)double dResult = 0.0;while(dResult = F)p = lambda*p/(i+1);F += p;i +;dResult = i;return dResult;/*函数功能,计算任意分布的随机过程的均值实现过程:用for语句调用任意函数加和循环再求平均*/double CMyRand:Ex(void)int m;double Ex=0.0;/添加均值计算代码for (m=0; m1000; m+)Ex += NormalRandom(0,1.2, 0,1);return Ex/1000;/*函数功能,计算随机过程的自相关序列实现过程:

8、由平稳随机过程数字特征求解的相关原理可得RX(m)=I2e-2|m|; */double* CMyRand:Rx(double lambda, int points)int m,I=5;double *Rx = (double*)malloc(2*points+1)*sizeof(double);/添加自相关序列产生代码/产生的自相关序列存入Rx中,Rx可当作数组使用/不要在本函数中释放该数组!for (m=-points; m=points; m+)Rx(m+points) = I * I * exp(-2 * lambda * abs(m);return Rx;四 执行截图均匀分布均匀统计

9、正态分布正态统计指数分布指数统计泊松分布泊松统计均值(此时取NormalRandom(0,1.2, 0,1))自相关(此时取int m,I=5;)五 实验心得1. 该课程设计所设计的各种模块和原理与随机过程的理论知识紧密结合。所以这样与课本知识关联紧的课程实际比较容易完成,同时不仅加强了对书本基础知识的理解,而且实践环节得到了很好的锻炼,能够激发实践者对随机的兴趣甚至能够自己动手完成一些课题项目。2. 学习使用该软件,可以方便轻松的解决一些复杂编程的问题,可是说是书本知识的具体实际话。3. 课程设计的多样化可以开发思维,鼓励创新,同时也检验了自己对所学知识的牢固性,没有扎实的理论知识基础是不可能有自己的设计方案的,所以我们以后应该学好理论知识,才能创造出我们自己感兴趣的设计和作品。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号