为什么Mathematica不能解决这个明确的积分?

Mar*_*ler 8 wolfram-mathematica integral

当我尝试在Mathematica 8中计算以下积分时,我得到了这个奇怪的结果:

In[1]:= Integrate[y/((1 + x^2 + y^2)^(3/2)), {y, 0, 1}]
Run Code Online (Sandbox Code Playgroud)

Mathematica图形

Maple 14可以轻松解决这个问题:


为什么Mathematica给我一个不同的结果?

Nas*_*ser 12

试试这个

r = Integrate[y/((1 + x^2 + y^2)^(3/2)), {y, 0, 1}]
r = Assuming[Element[x, Reals], Simplify[r]];
Together[r]
Run Code Online (Sandbox Code Playgroud)

这使

(-Sqrt[1+x^2]+Sqrt[2+x^2])/(Sqrt[1+x^2] Sqrt[2+x^2])
Run Code Online (Sandbox Code Playgroud)

这与Maple的相同:

在此输入图像描述

  • @MartinKoller你可以在文档中查找[`ConditionalExpression`](http://goo.gl/orIqS)来查找它是什么.当结果仅在某些假设为真时有效时使用.如果`x == I`,那么M​​aple给出的结果就是不正确.在这种情况下,Mathematica可以检测到这一点,并生成结果有效的条件.如果你只对真正有价值的`x'感兴趣,那就说*在'Integrate`函数里面,`整合[y /((1 + x ^ 2 + y ^ 2)^(3/2)),{ y,0,1},假设 - > x\[Element] Reals]`它会更快. (10认同)