我正在使用一本带有我想要使用的功能的书。但是我不认为我从我的函数中获得了正确的值。
以下是本书的说明:
这是我在MATLAB中创建的函数:
function [ shortProbability ] = pShort( zkt, zktStar, short)
if zkt > zktStar
shortProbability = 0;
else
normalizer = 1/(1-exp(-short*zktStar));
shortProbability = normalizer * (short * exp(-short*zkt));
end
end
我插入的值是:
zkt = 0:1:100
zktStar = 50;
short = 0.01;
然而,我的图表并不像我应该最终得到的那样,这就是:
我从图表中得到了这个,看起来是正确的,但我不认为它正常化:
有人可以帮我纠正这个功能吗?
答案 0 :(得分:1)
这是exponential distribution。您可以使用统计工具箱中的EXPPDF和EXPCDF:
normalizer = 1 ./ ( expcdf(zktStar,1/short) - expcdf(0,1/short) );
shortProbability = exppdf(zkt, 1/short) * normalizer;
它应该等同于你所拥有的......
这是我将previous question:
中的图表与之结合使用时得到的结果
要确认,我们计算每条曲线下的面积(足够接近1
):
>> trapz(zkt,hitProbabilty)
ans =
1
>> trapz(zkt,shortProbability)
ans =
1.0077