matlab二重数值积分 第一重积分还有符号积分上限

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 03:29:21

matlab二重数值积分 第一重积分还有符号积分上限
matlab二重数值积分 第一重积分还有符号积分上限

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计算该积分会导致崩溃,原因不详.