Wolfram mathematica mma8中集成与任天堂的缺陷

Wolfram mathematica mma8中集成与任天堂的缺陷,wolfram-mathematica,integrate,mathematica-8,Wolfram Mathematica,Integrate,Mathematica 8,这里发生了什么(Mathematica 8.x版): NIntegrate[]值正确。我以前遇到过PrincipalValue选择的问题,但是a)那些在mma8和b)这个积分在积分区域中没有极点,或者至少不应该有极点 编辑:由于有人建议解决这个问题,一般的解决方案是,例如,只使用NIntegrate。然而,我很想知道为什么会发生这种情况,以及这个错误是否可以预测。这恐怕是集成中的一个错误。作为一种解决方法,请更改变量x->u^(-1/2): 然后 这与NIntegrate一致,我得到了Mma7,

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

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


编辑:由于有人建议解决这个问题,一般的解决方案是,例如,只使用
NIntegrate
。然而,我很想知道为什么会发生这种情况,以及这个错误是否可以预测。

这恐怕是
集成中的一个错误。作为一种解决方法,请更改变量
x->u^(-1/2)

然后


这与
NIntegrate

一致,我得到了Mma7,两者都给出了-0.171007。啊,是的,谢谢你确认这一点。我澄清了标题和问题,即mma的哪个版本受到影响。Timo,祝贺2000年众议员Woot Woot在我的用户配置文件页面上五次聚会:-P。更好的解决办法是专门使用
NIntegrate
,你知道为什么变量的变化会纠正结果吗?反导数计算错误(符号错误)的原因。这就给出了
ad=Integrate[f=Log[1/2+Sqrt[1/4-1/(4*x^2)]]/x,x];D[ad,x]+f//FullSimplify[#,x>1]&
zero。这就解释了错误的符号。在v7中,这个反导数保持未赋值,确定被积函数也是如此。变量改变后,反导数和定积分都是正确的。你的意思是在v7中只计算定积分,而在v8中通过不定积分(反导数)有一个中间步骤吗?不,我的意思是在v7中既不计算定积分,也不计算不定符号积分。将
N
应用于未计算的
Integrate
会自动调用
NIntegrate
。在v8中,反导数和定积分都以符号关闭。
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
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