I think there is a bug in `evalf/EllipticF`
function over the complex numbers (at least in
MapleVR5). Consider the following input:
>Z:=int(sqrt(1+x^4)-x^2,x=a..b):
(The result is rather long expression with elliptic integral of the first kind functions; the
second term was added to produce O(1)
result for large (a-b))
. Now consider, for
example
>Digits:=30: >evalf(eval(Z,{a=0,b=100})); 1.23088423134039493019005903731 - .0000892558644560151253063409319366 I
The error is obvious — the integral of real valued function along the real axis should be real.
Moreover, when the ‘int‘ is invoked with real limits or symbols `assume`d
to be real it gives
manifestly real answer (probably correct).
Well, it gets more and more curious:
> restart; > assume(a<1,b>1); > int(sqrt(1+x^4)-x^2,x=a..b); > 3 3 4 4 - 1/3 b~ + 1/3 a~ + 1/3 b~ sqrt(1 + b~ ) - 1/3 a~ sqrt(1 + a~ )
a nice (but unfortunately wrong) result. Changing the assume-line to
>assume(a<1,b>1,a>-1);
seems to produce the correct result, as does also the explicit command
> int(sqrt(1+x^4)-x^2, x=0..100);