Matlab中的逆铣刀比率

时间:2013-07-18 03:25:21

标签: matlab distribution normal-distribution

我正在尝试在Matlab中编程形式的条件期望:

E [x | A< = x< = B]其中X~N(u,s ^ 2)(对不起,显然这里的数学编辑不是我习惯的)

在Matlab中,我写了以下代码:

Y=u+s*(normpdf(A,u,s)-normpdf(B,u,s))/(normcdf(B,u,s)-normcdf(A,u,s))

问题是它在A和B的较高值处分解。例如,令u = 0,s = 1,A = 10且B = 11。简单的逻辑说答案应该在10到11之间,但是Matlab给了我回Inf,因为分母基本上变为0而分子是10 ^ -23。

制定公式的任何建议都会为所有输入提供实数?

1 个答案:

答案 0 :(得分:1)

一种方法是自己进行数值积分:

x = linspace(A,B,1000);
trapz(x,x.*normpdf(x,u,s)) / trapz(x,normpdf(x,u,s))

使用您的示例值,这给出10.0981,并且它非常快