Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 如何在MATLAB中实现此功能?_Math_Matlab - Fatal编程技术网

Math 如何在MATLAB中实现此功能?

Math 如何在MATLAB中实现此功能?,math,matlab,Math,Matlab,我正在使用一本具有我想要使用的功能的书。但是,我认为我没有从函数中获得正确的值 以下是本书中的说明: 以下是我在MATLAB中创建的函数: function [ shortProbability ] = pShort( zkt, zktStar, short) if zkt > zktStar shortProbability = 0; else normalizer = 1/(1-exp(-short*zktStar)); shortProbability =

我正在使用一本具有我想要使用的功能的书。但是,我认为我没有从函数中获得正确的值

以下是本书中的说明:

以下是我在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;
但是,我的图表的行为与我最终应该得到的图形不同,即:

我从图中得到了这个结果,它看起来是正确的,但是我认为它没有被正确地标准化:

有人能帮我纠正这个功能吗?

这是最简单的。您可以使用统计工具箱中的和:

normalizer = 1 ./ ( expcdf(zktStar,1/short) - expcdf(0,1/short) );
shortProbability = exppdf(zkt, 1/short) * normalizer;
它应该相当于你所拥有的


这是我将其与您的

为了确认,我们计算了每条曲线下的面积(足够接近
1
):

这是最新的。您可以使用统计工具箱中的和:

normalizer = 1 ./ ( expcdf(zktStar,1/short) - expcdf(0,1/short) );
shortProbability = exppdf(zkt, 1/short) * normalizer;
它应该相当于你所拥有的


这是我将其与您的

为了确认,我们计算了每条曲线下的面积(足够接近
1
):


当p(zkt)是概率密度函数时,对vom-inf积分到+inf应该等于1。只要看一看你的图,分布看起来就不会错。@James:假设我们要看的是蓝色的图形,那看起来差不多正确(至少是正常化)。它大致是高度0.02和宽度50的矩形函数,所以面积大约等于1。所以它是一个有效的PDF。当p(zkt)是一个概率密度函数时,将vom-inf积分到+inf应该等于1。只要看一看你的图,分布看起来就不会错。@James:假设我们要看的是蓝色的图形,那看起来差不多正确(至少是正常化)。它大致是高度0.02和宽度50的矩形函数,所以面积大约等于1。因此,这是一个有效的PDF。再次感谢Amro,你真的帮助了我!我已经能够使用MathsDotNet库将这些MATLAB函数转换为C#,它们包含了许多用于这些统计函数的有用方法。再次感谢Amro,你真的帮助了我!通过使用MathsDotNet库,我已经能够将这些MATLAB函数转换为C#,它们包含了许多用于这些统计函数的有用方法。