常态乱数

MATLAB

4.6.2 常态乱数


用 MATLAB 函数 randn产生常态乱数,它是以高斯分布在乱数出现的上下限区间。常态乱数其值分布于一区间的特性可以从 其统计密度函数(PDF) 说明。从其 PDF 分布可以看出其每一个乱数值出现的机率皆不相同,靠近中间的乱 数值出现的机率比起两端的值要高,这是一般不规则现象较可能出现的情形,所以它被称为常态乱数。由 于常态乱数并非以上下限来定义,它是用数据的平均值和变异数定义之。因此在产生一常态乱数时,需设 定平均值和变异数的大小。randn(n)randn(n,m) 是分别产生一矩阵含 nxn个乱数和一矩阵含mxn的常态乱数, 其平均值为0变异数为1。

见以下的例子:

>> x=-2.9:0.2:2.9; % 这个例子用到 hist 函数来画出二种乱数的分布图

>> y=randn(1,5000);

>> hist(y,x)

>> title('Histogram of Normal Random Data')

>> y1=rand(1,5000);

>> hist(y1,x)

>> title('Histogram of Uniform Random Data')

如果需要产生常态乱数值的平均值和变异数并非0和1,可以采用以下步骤将平均值和变异数做转换。假设要 得到一组常态乱数值的平均值为b和变异数为a,我们先产生一组乱数r,再将其值乘以变异数a。接著再加平 均值b。算式如下

x=a*r + b

其中x代表转换后的乱数值的阵列。请看下列示范:

>>data_2 = randn(1,500)+3 %原乱数值有500个

>>plot(data_2) %这个图是否看来眼熟?

>>axis([1 500 0 6])

>>hist(data_2) %看看其长条图



上一页 下一页 讲义大纲