-3

我對對數正態分佈的概率密度函數(p.d.f)有問題。我真的需要你的幫助。如維基百科定義: http://en.wikipedia.org/wiki/Log-normal_distribution#Probability_density_function在MATLAB中創建對數正態隨機變量

的對數正態分佈的概率密度函數爲:

pdf of log-normal distribution

我的問題是,如何在MATLAB定義x變量?謝謝你的幫助!

+0

yeap,我已經嘗試了很多時間,但它不成功。我真的需要每個人的提示。 – user2443165

回答

1

如果你有Stats toolbox,你可以使用lognpdf

y = lognpdf(x,mu,sigma); 

雖然這是一個很簡單的功能 - 完全矢量化,這是有效的只是:

Y = EXP(-0.5 *((日誌(x)的-mu)./西格馬)^ 2)./(X * SQRT(2 * PI)*西格瑪)。;

但是,您可能要檢查x > 0sig > 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); 
+0

謝謝。也許這是我正在尋找的東西。我會再試一次 – user2443165

+0

我認爲「x = 0:0.01:3;」應該用x = 0:0.1:3代替; :) – user2443165

+0

@ user2443165:如果你喜歡,它當然可以被替換。您的'x'樣本之間只會有一個更大的間距,並以一個塊狀圖結束,就像任何功能的離散化一樣。 – horchler

1

我很困惑,就像你可以在一個班輪爲此,

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)) 

log plot

從這個情節一樣x越接近零,它的實際上正在該值增加相對可能性。 免責聲明我只是把這個功能放在一起,需要檢查它的準確性,前面只是爲了說明。

+0

我以前沒有遇到'logspace'。非常好用的功能! – Floris

+0

謝謝。我會按你的提示嘗試,我的朋友! – user2443165