mma8 中 Integrate 与 NIntegrate 的错误

问题描述 投票:0回答:1

这里发生了什么(Mathematica 版本 8.x):

NIntegrate[Log[1/2 + Sqrt[1/4 - 1/(4 x^2)]]/x, {x, 1, Infinity}]
--> -0.171007

Integrate[Log[1/2 + Sqrt[1/4 - 1/(4 x^2)]]/x, {x, 1, Infinity}] // N
--> 0.171007

NIntegrate[]
值正确。我之前遇到过
PrincipalValue
选择的问题,但是 a) 这些已在 mma8 中修复,b) 这个积分在积分区域中没有或至少不应该有极点。

编辑:感谢人们提出了解决这个问题的方法,通用的解决方案是,例如,专门使用

NIntegrate
。然而,我有兴趣找出为什么会发生这种情况,以及这个错误是否是可以预测的。

wolfram-mathematica numerical-integration mathematica-8
1个回答
5
投票

恐怕这是

Integrate
中的一个错误。作为解决方法,更改变量
x->u^(-1/2)
:

In[12]:= Log[1/2 + Sqrt[1/4 - 1/(4*x^2)]]/x Dt[x]/Dt[u] /. 
 x -> 1/Sqrt[u]

Out[12]= Log[1/2 + Sqrt[1/4 - u/4]]/(2 u)

然后

In[14]:= Integrate[%, {u, 1, 0}]

Out[14]= 1/24 (-\[Pi]^2 + Log[8] Log[16])

In[15]:= N[%]

Out[15]= -0.171007

这与

NIntegrate
一致。

© www.soinside.com 2019 - 2024. All rights reserved.