绘制对数正态分布

问题描述 投票:1回答:2

这是概率密度函数:

“概率密度函数”

代码:

f=exp(-(((log(x)-log(100)-(.1((.15)^2)/2))^2))/(2*.15^2))/(x(.15)*sqrt(2*pi));

plot(f);

我似乎无法在Matlab中绘制这种对数正态分布。我试图找到该图的百分比大于100,并且不知道如何在代码中执行该步骤。

matlab plot graph distribution probability-density
2个回答
0
投票

也许您想给x一些值并将f(x)定义为一个匿名函数

f=@(x) exp(-(((log(x)-log(100)-(.1.*((.15).^2)./2)).^2))./(2*.15^2))./(x*.15*sqrt(2*pi));

x = 50:150
plot(x, f(x))

编辑:x的密度函数的面积> = 100:

>> quad(f,100,Inf)
ans =  0.50299

enter image description here


0
投票

MATLAB通过makedistpdfcdf函数**使此过程更加容易**。

在下面的示例中,大于25的区域为0.0638(6.38%)。

pd = makedist('Lognormal',2,.8);     % Create Lognormal probability distribution object

X = (0:.01:50)';
figure, hold on, box on
p = plot(X,pdf(pd,X),'b-','DisplayName','A')      % Uses `pdf` function on the object
%legend('show')
title('Lognormal Distribution (\mu = 2, \sigma = 0.8)')
set(p,'LineWidth',2.0)

% Percent above 25
1-cdf(pd,25)           % Uses `cdf` function on the object

PDF of Lognormal

** MATLAB 2013a中引入的概率分布对象

© www.soinside.com 2019 - 2024. All rights reserved.