matlab二重数值积分 第一重积分还有符号积分上限
展开全部
1、这个积分可用下面的表达式进行计算:
quadl(@(x)arrayfun(@(X)quadgk(@(z)exp(-z)./z,((X-10)^2+10)/4e-6,inf),x),-10,10)
但结果为Inf,原因很简单,exp(z)/z的积分上限是inf,而且函数值趋近于inf,所以结果必然是inf。
2、指数积分函数的指数项应该是exp(-z)才对,但如果加了这个负号,积分值为0,这是因为积分下限的值太大(至少是2500000),此时exp(-z)/z的值已经小到可以忽略不计,积分的结果也只能是0。
3、如果使用符号运算,不同版本下可能遇到不同的现象。
在6.5版的结果:
>> syms x z
>> a=int(int(exp(-z)/z,((x-10)^2+10)/4e-6,inf),x,-10,10);
Warning: Explicit integral could not be found.
> In D:\MATLAB6p5\toolbox\symbolic\@sym\int.m at line 58
>> double(a)
ans =
0
>> a=int(int(exp(z)/z,((x-10)^2+10)/4e-6,inf),x,-10,10)
a =
inf
与数值计算的结果吻合。
2013版计算第一个积分结果相同,但计算第二个积分得到的表达式再转换为double时会出错;2007b计算该积分会导致崩溃,原因不详。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询