matlab中怎樣按概率產生隨機數

2021-03-05 09:21:59 字數 5299 閱讀 8509

1樓:匿名使用者

function y=genrannum1(n)%本函式產生n個指定概率分佈的隨機數,本例中的%概率密度函式為f(x)=(1-x*x)/(1+x*x)/(pi-2) |x|<1

min=-1;% 概率密度區間的左邊界

max=1; %概率密度區間的右邊界

uper=1/(pi-2);%概率密度函式的上確界%rand('state',0);sum(100*clock)for k=1:n

x1= min + (max-min).*rand(1);

x2=uper*rand(1);

x3=(1-x1*x1)/(1+x1*x1)/(pi-2); %此處為指定的概率密度函式f(x)的位置

while x2>x3

x1= min + (max-min).*rand(1);

x2=uper*rand(1);

x3=(1-x1*x1)/(1+x1*x1)/(pi-2);

endy(k)=x1;end

2樓:匿名使用者

a=randsrc(1,3,1:100)

這個函式的意思是產生一個1*3的隨機陣列,取值是從1到100等概率的。

設s為a的某個元素,你可以假定:

如果 s<=40 則 s'=a

如果 41<=s<=65 則s'=b

如果 66<=s<=100 則 s'=c這樣做可能比較麻煩,應該有直接實現以上功能的函式。

你可以查一下。

我也是初學者,共同學習,望採納

3樓:

採用輪盤賭法,把100看做一個輪盤,則產生1-40之間的數概率為40%,41到65之間的數概率為25,66到100之間的概率為35%。

matlab 中怎樣按概率產生隨機數

4樓:

首先,matlab自帶很多生成滿足一定分佈的隨機數的函式,例如:

rnd:服從0~1的均勻分佈u(0,1)。

randn:服從標準正態分佈n(0,1)。

exprnd(mu):服從引數為mu的指數分佈。

等等,這些都是最基本的。

如果要生成除上面這些之外的隨機數,需要嚴密的數學推導,利用這些分佈進行構造,例如a+b*randn就是服從n(a,b),這些都可以在概率論的書上找到他們之間的聯絡。如果推導不出,還可以利用大數定律進行生成,通過一組隨機數確定一個隨機數的方式。

matlab怎樣產生按某概率函式分佈的隨機數

5樓:休閒居大偉

對於你的問題,如果 y 是m*n的服從0~1均勻分佈的隨機矩陣: y = rand(m,n) 用統計工具箱, y = unifrnd(0,1,m,n)

6樓:跳出桎梏

matlab統計工具箱中提供了slicesample函式,用來生成任意指定分佈隨機數

rand=slecesample(initial,nasample,『pdf』,pdffun)

initial:指定一個初始值

nasample:產生隨機數的個數

『pdf』:概率分佈函式

pdffun: 概率分佈函式的控制代碼

想用matlab生成指定概率分佈的隨機數,怎麼生成

7樓:硪丨曖戀

均勻分佈u(a,b):

產生m*n階[a,b]均勻分佈u(a,b)的隨機數矩陣:unifrnd (a,b,m, n)

產生一個[a,b]均勻分佈的隨機數:unifrnd (a,b)

0-1分佈u(0,1)

產生m*n階[0,1]均勻分佈的隨機數矩陣:rand (m, n)

產生一個[0,1]均勻分佈的隨機數:rand

二類分佈binornd(n,p,mm,nn) 如binornd(10,0.5,mm,nn)

即產生mm*nn均值為n*p的矩陣

binornd(n,p)則產生一個。而binornd(10,0.5,mm)則產生mm*mm的方陣,軍陣為n*p。

產生m*n階離散均勻分佈的隨機數矩陣:

unidrnd(n,mm,nn) 產生一個數值在1-n區間的mm*nn矩陣

產生mm nn階期望值為 的指數分佈的隨機數矩陣:

exprnd ( ,mm, nn)

matlab中如何按照 給定的概率密度函式 產生隨機數呢?

8樓:匿名使用者

可以看一些關於舍選法,反變換法。

就是通過一些變換,將均勻隨機數,變成一定概率密度的隨機數。

主要還是反變換法,不過反變換法一般要求被積函式可積。

goodluck

matlab 如何生成指定分佈的隨機數? 50

9樓:白肚河蟹不讓說

抄別的一個函式給你吧:

****************************************=

function y=dis_rand(x,p,n)

%dis_rand 產生離散分佈隨機數

% x:可能取值

% p:取值概率

% n:擬生成隨機數的數目

cp=cumsum(p);

y=zeros(1,n);

for i=1:n

y(i)=x(sum(cp<=rand(1))+1);

end演算法說明:利用matlab中的rand函式獲取區間[0,1]上均勻分佈的隨機數,根據希望的分佈律把[0,1]區間分段,各段的長度依次為隨機數取各個可能值的概率。當那個均勻分佈的隨機數落在其中第i個小段上時,就把第i個可能取值輸出。

****************************************=

你的問題這樣呼叫:

y=dis_rand([0 0.5 1],[1/3 1/3 1/3],100)

即按照你要的概率從0,0.5,1三個數字中產生100個隨機數。但我看了下因為rand本身在樣本數少的時候就不是很準確,這樣100個樣本下,1/3概率還是有明顯偏差的。

不過所有概率方面的東西要在小樣本下都很難」準確「了。

10樓:牧樂志秋慕

均勻分佈u(a,b):

產生m*n階[a,b]均勻分佈u(a,b)的隨機數矩陣:unifrnd

(a,b,m,

n)產生一個[a,b]均勻分佈的隨機數:unifrnd(a,b)

0-1分佈u(0,1)

產生m*n階[0,1]均勻分佈的隨機數矩陣:rand(m,n)

產生一個[0,1]均勻分佈的隨機數:rand二類分佈binornd(n,p,mm,nn)如binornd(10,0.5,mm,nn)即產生mm*nn均值為n*p的矩陣

binornd(n,p)則產生一個。而binornd(10,0.5,mm)則產生mm*mm的方陣,軍陣為n*p。

產生m*n階離散均勻分佈的隨機數矩陣:

unidrnd(n,mm,nn)

產生一個數值在1-n區間的mm*nn矩陣

產生mm

nn階期望值為

的指數分佈的隨機數矩陣:

exprnd

(,mm,nn)

11樓:盛昱扈語兒

用概率密度

擬合工具箱,命令視窗輸入:dfittool

檢視原帖》

matlab:通過概率密度函式產生隨機數的函式編寫 10

12樓:匿名使用者

只需一行**足矣:

function r=jyfb(a,b,varargin)r=rand(varargin)*(b-a)+a;

注意:使用了可變參數列,呼叫時可以像rand函式那樣指定維數從而產生一個隨機陣列,例如

jyfb(3,4)

產生一個3-4之間均勻分佈的隨機數,

r=jyfb(3,4,1000,1);

產生一個1000x1的隨機陣列,其元素在3-4之間均勻分佈。

matlab中怎樣生成一個區間內不重複的隨機數?

13樓:草是一顆植物

即產生隨機排列:

p = randperm(n) returns

a random permutation of the integers 1:n.

所以要產生[16 31]的隨機排列,可以執行:

randperm(31-16+1)+15

隨機數是專門的隨機試驗的結果。在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。

在統計學的不同技術中需要使用隨機數,比如在從統計總體中抽取有代表性的樣本的時候,或者在將實驗動物分配到不同的試驗組的過程中,或者在進行蒙特卡羅模擬法計算的時候等等。

產生隨機數有多種不同的方法。這些方法被稱為隨機數發生器。隨機數最重要的特性是:它所產生的後面的那個數與前面的那個數毫無關係。

真正的隨機數是使用物理現象產生的:比如擲錢幣、骰子、轉輪、使用電子元件的噪音、核裂變等等。這樣的隨機數發生器叫做物理性隨機數發生器,它們的缺點是技術要求比較高。

在實際應用中往往使用偽隨機數就足夠了。這些數列是「似乎」隨機的數,實際上它們是通過一個固定的、可以重複的計算方法產生的。計算機或計算器產生的隨機數有很長的週期性。

如何用matlab生成依概率服從多個均勻分佈的隨機數?比如已知一組資料,

14樓:

rand(n):生成0到1之間的n階隨機數

方陣 rand(m,n):生成0到1之間的m×n的隨機數矩陣 (現成的函式) 另外: matlab隨機數生成函式 betarnd 貝塔分佈的隨機數生成器 binornd 二項分佈的隨機數生成器 chi2rnd 卡方分佈的隨機數生成器 exprnd 指數分佈的隨機數生成器 frnd f分佈的隨機數生成器 gamrnd 伽瑪分佈的隨機數生成器 geornd 幾何分佈的隨機數生成器 hygernd 超幾何分佈的隨機數生成器 lognrnd 對數正態分佈的隨機數生成器 nbinrnd 負二項分佈的隨機數生成器 ncfrnd 非中心f分佈的隨機數生成器 nctrnd 非中心t分佈的隨機數生成器 ncx2rnd 非中心卡方分佈的隨機數生成器 normrnd 正態(高斯)分佈的隨機數生成器 poissrnd 泊松分佈的隨機數生成器 raylrnd 瑞利分佈的隨機數生成器 trnd 學生氏t分佈的隨機數生成器 unidrnd 離散均勻分佈的隨機數生成器 unifrnd 連續均勻分佈的隨機數生成器 weibrnd 威布林分佈的隨機數生成器

matlab中怎麼產生Matlab中怎麼產生1到1之間的隨機數

x 2 rand m,n 0.5 產生m n個數,他們構成一個矩陣。一樓正解 例如 x 2 rand 5,5 0.5 x 0.7867 0.7374 0.1372 0.7279 0.7061 0.9238 0.8311 0.8213 0.7386 0.2441 0.9907 0.2004 0.636...

matlab中怎樣在A集合中產生任意分佈的隨機數?求詳細程式,謝謝

function output getrandomdata x a 0,1,2,3,4,x,x 1,x 2,x 3,x 4,2 x 1,2 x 2,2 x 3,2 x 4,3 x 1,3 x 2,3 x 3,3 x 4,4 x 1,4 x 2,4 x 3,4 x 4 index randi size...

matlab中概率情況怎麼程式設計,matlab怎樣產生按某概率函式分佈的隨機數

隨機變數的累積概率值 分佈函式值 1 通用函式計算累積概率值 命令 通用函式cdf用來計算隨機變數的概率之和 累積概率值 函式 cdf 格式 說明 返回以name為分佈,隨機變數x k的概率之和的累積概率值,name的取值見表4 1 常見分佈函式表 2 專用函式計算累積概率值 隨機變數的概率之和 命...