标签: 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。不知道是什么问题?在这种情况下,可以用什么方法来评估积分?
d
d<t
inf
请注意,a,b,d和t都是正面的。例如:a=0.1,b=1,t=4。
a
b
t
a=0.1
b=1
t=4
答案 0 :(得分:1)
如果你看一下fun第一个词的分母,你会发现它取决于t,x和d。那么如果d == t和x == 0会发生什么?分母转到0.0。如果d > t x没有正值,则会导致分母转到0.0。
fun
x
d == t
x == 0
0.0
d > t
如果我们让d == t并为x = 3:.001:5的值绘制第一个字词,我们就会看到:
x = 3:.001:5
该不连续性导致值在[-Inf, Inf]范围内。现在,如果我们绘制这些值的exp,我们就会看到:
[-Inf, Inf]
exp