使用Matlab在数值上评估积分

时间:2017-02-20 21:03:26

标签: matlab numerical-integration

fun= @(x)exp(- a*(d+1).*(t-x)./(d-(t-x))  ) *b.*exp(-b*x); 
int= integral(fun,0,t);

由于我没有找到封闭形式的解决方案,我在Matlab中使用上面的代码来数值计算积分。

我正在为d的不同值评估此积分。 问题是,当我d<t时,我得到inf。不知道是什么问题?在这种情况下,可以用什么方法来评估积分?

请注意,abdt都是正面的。例如:a=0.1b=1t=4

1 个答案:

答案 0 :(得分:1)

如果你看一下fun第一个词的分母,你会发现它取决于txd。那么如果d == tx == 0会发生什么?分母转到0.0。如果d > t x没有正值,则会导致分母转到0.0

如果我们让d == t并为x = 3:.001:5的值绘制第一个字词,我们就会看到:

enter image description here

该不连续性导致值在[-Inf, Inf]范围内。现在,如果我们绘制这些值的exp,我们就会看到:

enter image description here