【发布时间】:2014-09-07 04:18:21
【问题描述】:
我在使用 MATLAB 时遇到以下问题:
令 Z 服从对数正态分布,使得 ln Z 具有均值 m 和方差 w。设 eta 为负数,c 为正常数。
我正在尝试计算期望值(令 I(Z
E[Z^(eta+1) I(Z
其中 phi() 表示标准正态随机变量的概率分布函数。
我做的第一件事是模拟 10.000 次 Z 试验,将值 >c 的向量的条目设置为 0,提高到 (eta+1) 的幂,然后计算平均值。这应该给我预期值的 MC 估计。
ST = random('Lognormal', m,w_sq,10000,1);
hlp = zeros(10000,1);
hlp(ST<=2) = ST(ST<=2);
hlp(hlp>0) = hlp(hlp>0).^(eta1+1); % 0^(eta1+1) gives infinity
mean(hlp)
对于积分,我使用了以下代码
tmpp = integral(@(x) x.^(eta1) .* normpdf((log(x)-m)/sqrt(w_sq),0,c);
tmpp / sqrt(w_sq(1))
不幸的是,这些程序导致了完全不同的结果,尽管在数学上它们应该是相同的。
这整件事是更大代码的一部分,对我来说使用完整版本会更方便。本来想用 MC 模拟复查,结果发现肯定有问题……
有人可以帮忙吗?
【问题讨论】:
标签: matlab integration montecarlo probability-density