如何使用MATLAB產生指數分布的隨機數
在matlab中用來產生指數分布隨機數的函數是exprnd( );
語法:
1. R=exprnd(MU)
生成服從參數為MU的指數分布隨機數。
2. R=exprnd(MU,m)
生成服從參數為MU的指數分布的隨機數矩陣,矩陣的形式由m定義。
例如,n=exprnd(5,[1 6])
3. R=exprnd(MU,m,n)
生成m×n形式的指數分布的隨機數矩陣。
當產生的數組是一維向量時,若想排序可以利用sort(A)函數,A為隨機數組,默認的結果是升序排列。
如果排序后還需要保留原來的索引可以用返回值,即[B,ind]=sort(A),計算后,B是A排序后的向量,A保持不變,ind是B中每一項對應于A 中項的索引。
若想對A數組進行降序排列,先用X=eye(n)生成一個n維的單位陣,然后用X=rot90(X)將其旋轉為次對角線的單位陣,再用原來矩陣乘以X即可,如要講A逆序排列采用如下步驟:
X=eye(size(A));
X=rot90(X);
A=A*X;
指數分布--matlab
函數exprnd( )
功能:生成服從指數分布的隨機數
語法:R=exprnd(MU)
R=exprnd(MU,m)
R=exprnd(MU,m,n)
說明:
R=exprnd(MU) 生成服從參數為MU的指數分布的隨機數。輸入MU與輸出
R的形式相同。
R=exprnd(MU,m) 生成服從參數為MU的指數分布的隨機數矩陣,矩陣的形式由m定義。m是一個1×2向量,其中的兩個元素分別代表返回值R中行與列的維數。
R=exprnd(MU,m,n) 生成m×n形式的指數分布的隨機數矩陣。
例:
生成指數分布隨機數。
n1=exprnd(5:10)
n1=
4.0076 3.8735 12.3433 16.2809 13.6772 22.4923
n2=exprnd(5:10,[1 6])
n2=
9.7799 4.6988 1.6666 10.1534 13.4334 0.9555
n3=exprnd(5,2,3)
n3=
24.5797 3.0614 5.8008
2.6489 2.1269 7.3233
如何使用matlab擬合指數分布函數
頻率直方圖我沒太用過 但是其他形式的曲線 比如控制領域的時域圖用一下方法是可以實現的。
首先:想辦法讀出樣本點,x=(),y=() (在7.0里用小括號就可以了,不同版本可以自行改一下)
之后可參見如下方法,我也是轉載ilove.MATLAB論壇上的方法 用過很好用
轉載:“在Matlab 6.5以上的環境下,在左下方有一個"Start"按鈕,如同Windows的開始菜單,點開它,在目錄"Toolboxes"下有一個"Curve Fitting",點開"Curve Fitting Tool",出現數據擬合工具界面,基本上所有的數據擬合和回歸分析都可以在這里進行。
下面給你簡單介紹一下它的使用方法。
首先在Matlab的命令行輸入兩個向量,一個向量是你要的x坐標的各個數據,另外一個是你要的y坐標的各個數據。輸入以后假定叫x向量與y向量,可以在workspace里面看見這兩個向量,要確保這兩個向量的元素數一致,如果不一致的話是不能在工具箱里面進行擬合的。
例如在命令行里輸入下列數據:
x=(0:0.02:0.98)';
y=sin(4*pi*x+rand(size(x)));
此時x-y之間的函數近似的為正弦關系,頻率為2,但是存在一個誤差項。
可以通過作圖看出它們的大體分布:
plot(x,y,'*','markersize',2);
打開曲線擬合共工具界面,點擊最左邊的"Data..."按鈕,出現一個Data對話框,在Data Sets頁面里,在X Data選項中選取x向量,Y Data選項中選取y向量,如果兩個向量的元素數相同,那么Create data t按鈕就激活了,此時點擊它,生成一個數據組,顯示在下方Data Sets列表框中。關閉Data對話框。此時Curve Fitting Tool窗口中顯示出這一數據組的散點分布圖。
點擊Fitting...按鈕,出現Fitting對話框,Fitting對話框分為兩部分,上面為Fit Editor,下面為Table of Fits,有時候窗口界面比較小,Fit Editor部分會被收起來,只要把Table of Fits上方的橫條往下拉就可以看見Fit Editor。在Fit Editor里面點擊New Fit按鈕,此時其下方的各個選框被激活,在Data Set選框中選中剛才建立的x-y數據組,然后在Type of fit選框中選取擬合或回歸類型,各個類型的擬合或回歸相應的分別是:
Custom Equations 用戶自定義函數
Expotential e指數函數
Fourier 傅立葉函數,含有三角函數
Gaussian 正態分布函數,高斯函數
Interpolant 插值函數,含有線性函數,移動平均等類型的擬合
Polynomial 多項式函數
Power 冪函數
Rational 有理函數(不太清楚,沒有怎么用過)
Smooth Spline ??(光滑插值或者光滑擬合,不太清楚)
Sum of sin functions正弦函數類
Weibull 威布爾函數(沒用過)
不好意思,沒有學過數理統計,所以很多東西都是用了才知道,翻譯也就不太準確。不過在Type of fit選框下方有一個列表框,基本上各個函數類里的函數都寫成解析式列在下方以供選擇,所以找合適的函數還是比較容易的。
在這個Type of fit選框中選擇好合適的類型,并選好合適的函數形式。于是點擊Apply按鈕,就開始進行擬合或者回歸了。此時在Curve Fitting Tool窗口上就會出現一個擬合的曲線。這就是所要的結果。
在上面的例子中,選擇sum of sin functions中的第一個函數形式,點擊Apply按鈕,就可以看見擬合得到的正弦曲線。
在Fitting對話框中的Results文本框中顯示有此次擬合的主要統計信息,主要有
General model of sin1:
....... (函數形式)
Coefficients (with 95% conffidence range) (95%致信區間內的擬合常數)
a1=... ( ... ...) (等號后面是平均值,括號里是范圍)
....
Godness of fit: (統計結果)
SSE: ... (方差)
R-squared: ... (決定系數,不知道做什么的)
Adjusted R-squared: ... (校正后的決定系數,如何校正的不得而知)
RMSE: ... (標準差)
上面的例子中經過擬合得到的函數最后為
y=0.9354*sin(12.36x+6.886)
頻率為1.98加減0.03,和原來設置的頻率為2符合,相對誤差為1.5%。
這是曲線擬合工具箱的一個最簡單的使用方法,上面還有很多功能,寫是寫不完的,自己參照這個基本的思路,翻著英漢詞典,看著幫助,然后一個按鈕一個按鈕的試吧。
另外要說的是,如果想把這個擬合的圖像導出的話,在Curve Fitting Tool窗口的File菜單下選Print to Figure,此時彈出一個新的圖像窗口,里面是你要導出的圖像,在這個figure窗口的File菜單里再選Export,選擇好合適的格式,一般是jpeg,選擇好路徑,點擊OK就可以了。出來的圖像可以在Word等編輯環境中使用,就不多說了。
要修改圖像的性質,如數據點的大小、顏色等等的,只需要在對象上點右鍵,就差不多可以找到了。”
上面所說的X,Y向量就是樣本點。
下面是轉載的網址,希望有用處http://www.ilovematlab.cn/viewthread.php?tid=28854&extra=&page=1
ilovematlab是個不錯的論壇,我也是剛發現,不過幫助很大,基本的問題在那都會有答案。
matlab:采用直接抽樣方法產生指數分布的隨機數
指數分布的概率密度函數形式為
f(x)= λexp(-λx) (x>0)
0 (x<=0)
其中λ > 0是分布的一個參數
指數分布的累積分布函數
F(x)= 1-exp(-λx) (x>0)
=0 (x<=0)
指數分布的累積分布函數的反函數是
G(y)= -log(1-y)/λ (0<y<1)
使用直接抽取的方法 先產生 [0,1]間的隨機數列
利用累積分布函數的反函數,得到的結果就是符合指數分布的序列
N=10000;%產生隨機數的個數
lambda=3;%參數λ
y=rand(1,N);%生成N個0,1間均勻分布隨機數
x=-log(1-y)/lambda;%生成指數分布隨機數
[n,xout]=hist(x,30);%分區間統計隨機數出現概率
nn=n/N/mean(diff(xout));
bar(xout,nn,1);holdon;%畫圖驗證隨機數是否符合概率密度函數
plot([0xout],lambda*exp(-lambda*([0xout])),'r');holdoff;
xlabel('x');
ylabel('p(x)');
最后加了驗證畫圖的程序,可以檢驗結果是否符合概率密度分布
怎么創建一個指數均勻分布的向量用matlab?
用matlab怎么創建一個指數均勻分布的向量,可以用exprnd( )函數。該函數使用格式為
r=exprnd(mu,sz1,…,szN)
該命令函數的意思是,從平均mu的指數分布生成一個隨機數數組,其中sz1,…,szN表示每個維度的大小。
例如:
r = exprnd(0.1,5,2) %產生mu=0.1時的5行2列的隨機數