我對對數正態分佈的概率密度函數(p.d.f)有問題。我真的需要你的幫助。如維基百科定義: http://en.wikipedia.org/wiki/Log-normal_distribution#Probability_density_function在MATLAB中創建對數正態隨機變量
的對數正態分佈的概率密度函數爲:
我的問題是,如何在MATLAB定義x變量?謝謝你的幫助!
我對對數正態分佈的概率密度函數(p.d.f)有問題。我真的需要你的幫助。如維基百科定義: http://en.wikipedia.org/wiki/Log-normal_distribution#Probability_density_function在MATLAB中創建對數正態隨機變量
的對數正態分佈的概率密度函數爲:
我的問題是,如何在MATLAB定義x變量?謝謝你的幫助!
如果你有Stats toolbox,你可以使用lognpdf
:
y = lognpdf(x,mu,sigma);
雖然這是一個很簡單的功能 - 完全矢量化,這是有效的只是:
Y = EXP(-0.5 *((日誌(x)的-mu)./西格馬)^ 2)./(X * SQRT(2 * PI)*西格瑪)。;
但是,您可能要檢查x > 0
和sig > 0
。要在你引用維基百科的文章創建this plot,你可以這樣做:
mu = 0;
sigma = [1;0.5;0.25];
x = 0:0.01:3;
y = lognpdf([x;x;x],mu,sigma(:,ones(1,length(x))));
figure; plot(x,y);
當你的問題是問如何定義x
,也許你實際上是尋找數正態分佈random variables,即,要隨機抽樣從對數正態PDF /分佈?在這種情況下,你可以使用lognrnd
:
r = lognrnd(mu,sigma);
謝謝。也許這是我正在尋找的東西。我會再試一次 – user2443165
我認爲「x = 0:0.01:3;」應該用x = 0:0.1:3代替; :) – user2443165
@ user2443165:如果你喜歡,它當然可以被替換。您的'x'樣本之間只會有一個更大的間距,並以一個塊狀圖結束,就像任何功能的離散化一樣。 – horchler
我很困惑,就像你可以在一個班輪爲此,
fun = @(x,mu,sigma) (1./(x*sigma*sqrt(2*pi))).*exp(-(power((log(x)-mu),2))/(2*power(sigma,2)))
x
是滿足x > 0
,PDF格式通過Wikipedia
告訴你在概率論中的任何值,概率密度函數(pdf)或連續隨機變量的密度是描述 該隨機變量對給定的的相對可能性的函數0值。
因此,給定對數正態pdf的任何值x
告訴您電話相對可能性隨機變量可能是該值。
考慮這個玩具例子:
mu = 1;
sigma = 10;
x = logspace(-2,0,10);
plot(x, fun(x,1,10))
從這個情節一樣x
越接近零,它的實際上正在該值增加相對可能性。 免責聲明我只是把這個功能放在一起,需要檢查它的準確性,前面只是爲了說明。
我以前沒有遇到'logspace'。非常好用的功能! – Floris
謝謝。我會按你的提示嘗試,我的朋友! – user2443165
yeap,我已經嘗試了很多時間,但它不成功。我真的需要每個人的提示。 – user2443165