mma8 中 Integrate 与 NIntegrate 中的错误
这里发生了什么(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
。然而,我有兴趣找出为什么会发生这种情况,以及这个错误是否是可预测的。
What is going on here (Mathematica version 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
The NIntegrate[]
value is correct. I have run into problems with PrincipalValue
selections before but a) those have been fixed in mma8 and b) this integral doesn't, or at least shouldn't, have poles in the integration region.
EDIT: Thanks to people suggesting solutions to this problem, a general solution would be, e.g., using exclusively NIntegrate
. However, I am interested in finding out why specifically this happens and whether thus this bug is predictable.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
恐怕这是
Integrate
中的一个错误。作为解决方法,请更改变量x->u^(-1/2)
:然后
这与
NIntegrate
一致。This is a bug in
Integrate
, I am afraid. As a workaround, do the change of variablesx->u^(-1/2)
:Then
This agrees with
NIntegrate
.