绘制对数正态分布
Plotting lognormal distribution
这是概率密度函数:
代码:
f=exp(-(((log(x)-log(100)-(.1((.15)^2)/2))^2))/(2*.15^2))/(x(.15)*sqrt(2*pi));
plot(f);
我似乎无法在 Matlab 中绘制这个对数正态分布。我试图找出此图的百分比高于 100,但不知道如何在代码中执行该步骤。
也许您想给 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
MATLAB 使用 makedist()
, pdf()
, and cdf()
函数使这个过程变得更加简单**。
在下面的示例中,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) % = 0.0638 % Uses `cdf` function on the object
** MATLAB 2013a 中引入的概率分布对象。
这是概率密度函数:
代码:
f=exp(-(((log(x)-log(100)-(.1((.15)^2)/2))^2))/(2*.15^2))/(x(.15)*sqrt(2*pi));
plot(f);
我似乎无法在 Matlab 中绘制这个对数正态分布。我试图找出此图的百分比高于 100,但不知道如何在代码中执行该步骤。
也许您想给 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
MATLAB 使用 makedist()
, pdf()
, and cdf()
函数使这个过程变得更加简单**。
在下面的示例中,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) % = 0.0638 % Uses `cdf` function on the object
** MATLAB 2013a 中引入的概率分布对象。