1樓:匿名使用者
可以看一些關於舍選法,反變換法。
就是通過一些變換,將均勻隨機數,變成一定概率密度的隨機數。
主要還是反變換法,不過反變換法一般要求被積函式可積。
goodluck
matlab用randn產生隨機數並畫出概率密度函式
2樓:匿名使用者
產生隨機數用randn你知道我就不說了。畫出概率密度圖可以用histogram
matlab 中怎樣按概率產生隨機數?
3樓:匿名使用者
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
4樓:匿名使用者
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這樣做可能比較麻煩,應該有直接實現以上功能的函式。
你可以查一下。
我也是初學者,共同學習,望採納
5樓:
採用輪盤賭法,把100看做乙個輪盤,則產生1-40之間的數概率為40%,41到65之間的數概率為25,66到100之間的概率為35%。
matlab怎樣產生按某概率函式分布的隨機數
6樓:休閒居大偉
對於你的問題,如果 y 是m*n的服從0~1均勻分布的隨機矩陣: y = rand(m,n) 用統計工具箱, y = unifrnd(0,1,m,n)
7樓:跳出桎梏
matlab統計工具箱中提供了slicesample函式,用來生成任意指定分布隨機數
rand=slecesample(initial,nasample,『pdf』,pdffun)
initial:指定乙個初始值
nasample:產生隨機數的個數
『pdf』:概率分布函式
pdffun: 概率分布函式的控制代碼
matlab:通過概率密度函式產生隨機數的函式編寫 10
8樓:匿名使用者
只需一行**足矣:
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中,求已知概率密度函式的隨機數生成,概率密度如下
9樓:匿名使用者
n=10000; %需要隨機數的個數
a=zeros(n,1); %存放隨機數的數列
n=0;
f1=@(t) 1./(1.2*pi*(1+5*(t-7.3).^2));
f2=@(t) 1./(1.05*pi*(1+6*(t-8.2).^2));
tt=linspace(0,24,1000);
ff=f1(tt).*(tt<=7.5)+f2(tt).*(tt>7.5);%根據公式計算概率密度
s=trapz(tt,ff); %計算整個區間概率密度的積分
ff=ff/s; %歸一化概率密度
while n
一下是某一次執行的結果,可以看到生成的隨機序列的統計直方圖和公式曲線是符合的
如何根據概率密度函式生成隨機數
已知乙個概率密度函式f(x),如何產生對應的隨機數?能不能給個例子或者講義,發在我郵箱409538088@**.***
10樓:銜尾貓寶貝
一般的方法是先產生[0,1]均勻分布隨機數,然後利用分布函式的反函式求對應的隨機數.離散情形和連續情形有所不同。 例如指數分布f(x)=1-exp(-ax),反函式為s(u)=-(1/a)ln(1-u),先產生[0,1]均勻分布隨機數u,帶入s(u),得到指數分布隨機數。
matlab怎麼生成離散截斷高斯密度函式的隨機數。給點參考意見。 10
11樓:devil冷月
要生成n個離散截斷高斯密度函式的隨機數
1、首先用normrnd函式生成n個高斯隨機數
2、剔除截斷區間外的隨機數,例如區間為[0,5],將小於0,大於5的數去掉,剩餘資料長度記為k;
3、繼續利用normrnd函式生成n-k個高斯隨機數,剔除截斷區間外的隨機數,並將其與2的資料合併,計算其資料長度,記為k;重複步驟3直到n-k為0;
n=1000 %生成n個截斷高斯離散隨機資料
a=normrnd(2,3,1,n); %高斯分布均值為2,標準差為3
a=a(a<5&a>0); %截斷區間[0,5]
while 1
k=n-size(a,2)
if k==0
break;
endb=normrnd(2,3,1,k);
b=b(b<5&b>0);
a=[a,b];
這是我的理解···不知道對不對···答題不易,望採納
matlab打亂資料,matlab中如何將某一陣列中資料進行打亂,有沒有相應的函式,謝謝,線上等。
a rand 1,20 隨即生成長度為100的陣列 randindex randperm length a 隨即打亂陣列索引 a a randindex 用新的索引構造打亂後的陣列 求大神matlab中如何打亂二維陣列中已有的排序 其實就是打亂行的順序,很簡單 a 0 0 0 10 2 0 31 0...
matlab中edge的用法,matlab中的edge函式入口引數如何設定?
bw edge i 採用灰度或一個二值化影象i作為它的輸入,並返回一個與i相同大小的二值化影象bw,在函式檢測到邊緣的地方為1,其他地方為0。bw edge i,sobel 自動選擇閾值用sobel運算元進行邊緣檢測。bw edge i,sobel thresh 根據所指定的敏感度閾值thresh,...
在matlab中如何輸出函式的影象
如果要畫y x 3 x 2 x 5在 20,20 上的影象,可利用以下方法,繪畫區間可以自己定義 方法一 利用plot函式來繪畫影象 x 0 0.1 20 規定繪畫區間 從 20畫到20,中間以0,1為間隔 y x.3 x.2 x 5 確定要繪畫的函式,注意不要漏了 plot x,y 方法二 利用e...