各位大侠,
我已知一个Lognormal分布的概率分布函数,小弟想利用matlab计算出x在0,-0.05。。。-0.45下的概率值是多少?
但是我跑出的结果却是复数形式,这是怎么回事啊??郁闷,请高手指点一二。
我的程序是:
function y=lognormalprob1(x)
% aim to evaluate the loss prob for lognormal(2P or 3P)分布
%pdf=@(x)(1./(sqrt(2.*pi).*b.*(x-r)).*exp(-0.5.*((log(x-r)-u)./b).^2)); % lognormal分布pdf的形式
%F(x)=1./(sqrt(2.*pi).*quad(e.^(-t.^2)./2),0,(log(x-r)-u)./b) %lognormal分布的CDF形式
%u=input('please input your mean parameter:mu=');
%b=input('please input your variable parameter:sigma=');
%r=input('please input your location parameter:r=');%r=0时,即为2参数分布
%为简单起见,这里哥们直接给出了三个参数的值。
u=-0.6051;
b=0.7017;
r=-0.6396;
%=========按照PDF来的
pdf=@(x)(1./(sqrt(2.*pi).*b.*(x-r)).*exp(-0.5.*((log(x-r)-u)./b).^2));
rt=[0
-0.05
-0.1
-0.15
-0.2
-0.25
-0.3
-0.35
-0.4
-0.45
];
n=length(rt);
for i=1:n
y(i)=quad(pdf,-1,rt(i));
end
y
----------运行结果
y =
1.0e+003 *
Columns 1 through 6
1.0529 + 1.4131i 1.0528 + 1.4131i 1.0528 + 1.4131i 1.0527 + 1.4131i 1.0527 + 1.4131i 1.0526 + 1.4131i
Columns 7 through 10
1.0525 + 1.4131i 1.0525 + 1.4131i 1.0524 + 1.4131i 1.0524 + 1.4131i
[em16] [此贴子已经被作者于2009-2-11 20:07:30编辑过]