4.6.1 均勻亂數(shù)用 MATLAB 函數(shù) rand產(chǎn)生在區(qū)間 [0, 1] 的均勻亂數(shù),它是平均分布在 [0, 1]之間。一個(gè)稱為 seed的值則是 用來控制產(chǎn)生亂數(shù)的次數(shù)。均勻亂數(shù)函數(shù)的語(yǔ)法為rand(n), rand(m,n),其結(jié)果分別產(chǎn)生一矩陣含nxn個(gè)亂數(shù) 和一矩陣含mxn的亂數(shù)。注意每次產(chǎn)生亂數(shù)的值都不會(huì)一樣,這些值代表的是隨機(jī)且不可預(yù)期的,這正是 我們用亂數(shù)的目的。我們可利用這些亂數(shù)代入算式中,來表示某段訊號(hào)的不規(guī)則振幅或是某個(gè)事件出現(xiàn)的 機(jī)率。均勻亂數(shù)其值平均的分布于一區(qū)間的特性可以從其統(tǒng)計(jì)密度函數(shù)(probability density function, PDF) 說明 。從其PDF分布 類似長(zhǎng)條圖的分布 可以看出其每一個(gè)亂數(shù)值出現(xiàn)的機(jī)率皆相同,所以它被稱為均勻亂數(shù)。 見以下的例子: >> rand(1,6) % 第一次使用亂數(shù)產(chǎn)生器 ans = 0.2190 0.0470 0.6789 0.6793 0.9347 0.3835 >>hist(ans) % 看看長(zhǎng)條圖的長(zhǎng)相 >>plot(ans) % 比較上個(gè)圖與這個(gè)圖有何差異?何者能代表不規(guī)則數(shù)據(jù)的分布 >> rand(1,6) % 第二次使用亂數(shù)產(chǎn)生器,注意每次產(chǎn)生的亂數(shù)值皆不同 ans = 0.5194 0.8310 0.0346 0.0535 0.5297 0.6711 因?yàn)槊看蝸y數(shù)產(chǎn)生的值皆不同,如果因?yàn)轵?yàn)證算式需要確定所使用的亂數(shù)值是相同的,可以利用seed這個(gè) 選項(xiàng),用以設(shè)定使用計(jì)算亂數(shù)產(chǎn)生器的起始值,其語(yǔ)法為rand('seed',n),n的規(guī)定是 >> rand('seed',0) % 將亂數(shù)值的起始值重設(shè),相當(dāng)于是第一次產(chǎn)生亂數(shù)值 >>rand('seed') % 顯示現(xiàn)在使用的 seed 值=931316785 ans = 931316785 >> rand(2,3) % 注意亂數(shù)值的上下限介于 [0,1] 區(qū)間 ans = 0.2190 0.6789 0.9347 0.0470 0.6793 0.3835 >> rand('seed') % 顯示再產(chǎn)生亂數(shù)值所用的seed=412659990 ans = 412659990 >> rand('seed',0) >> rand(1,6) ans = 0.2190 0.0470 0.6789 0.6793 0.9347 0.3835 >> rand('seed',100) % 設(shè)定亂數(shù)值的起始值=100 >> rand('seed') ans = 100 >> rand(2,5) ans = 0.2909 0.0395 0.3671 0.5968 0.9253 0.0484 0.5046 0.9235 0.8085 0.3628 如果需要產(chǎn)生亂數(shù)值不是介于[0,1]區(qū)間,可以采用以下步驟將亂數(shù)值從[0,1]區(qū)間轉(zhuǎn)換到其它區(qū)間。假設(shè)要 得到一組亂數(shù)值是介于[2,4]區(qū)間,我們先產(chǎn)生一組亂數(shù) 介于[0,1]區(qū)間 ,再將其值乘以2,因?yàn)?等于區(qū) 間上下限的差值(4-2)。接著再加上下限值 (2),即可得到亂數(shù)值是介于[2,4]區(qū)間。例如區(qū)間為[a,b],a為下 限值,b為上限值。則算式如下 x=(b-a)*r + a, 其中x代表轉(zhuǎn)換后的亂數(shù)值的陣列。請(qǐng)看下列示范: >>data_1 = 2*rand(1,500)+2; %原亂數(shù)值有500個(gè) >>plot(data_1) %這個(gè)圖是否看來眼熟? >>axis([1 500 0 6]) %調(diào)整橫軸/縱軸上下限 >>hist(data_1) %看看其長(zhǎng)條圖 |
|
|