一,均匀分布的产生思路和方法:
首先我们必须借助于rand()函数产生一个随机數必须由这源源不断的无规律的随机数去构造满足其他符合规律的随机数,当然高斯分布就是这其中的一种规律但是由rand()函数产生的随機数在程序执行过程中总是不变的,所以如果想要产生大量的随机数rand()必须做一下处理,一种常规的很有效的方式就是将rand()函数植入系统时間种子代码如下:
Box-Muller算法正是利用均匀分布产生高斯分布随机数,算法如下:
";指令将所有数据输出到F:\VC6.0\MSDev98\Bin\Gauss.txt记事本文件中这是为了便于做Matlab统计仿真的需要。我执荇了两次程序输入期望和方差为(0,1)和(0,4)。
四Matlab仿真结果:
纵观其实整个过程很简单,最关键的只有两点一是均匀分布产生的方法,二是套用Box-Muller算法作为整个程序的灵魂还是那句话,不得不承认算法才是王道另外由于我习惯了C++,所以程序用的C++写的其实用C完全可以,两者的区别在这个小程序里仅仅体现在头文件输入输出语句,文件操作语句这一点点差别而已
加载中,请稍候......