According to Maple Help
The incomplete elliptic integral EllipticF is defined by
EllipticF(z,k) = int(1/sqrt(1-t^2)/sqrt(1-k^2*t^2),t=0..z)
Translation into Mathematica yields
Integrate[1/Sqrt[1-t^2]/Sqrt[1-k^2*t^2],{t,0,z}] EllipticF[ArcSin[z], k^2]
Therefore, we can make the following comparison.
Maple 8 Mathematica 4.2 EllipticF(z,k) EllipticF[ArcSin[z], k^2]
Let us substitute concrete values.
These outputs coinside:
evalf(EllipticF(1/2,1/2),20); N[EllipticF[ArcSin[1/2], 1/4], 20] .52942862705190581774 0.52942862705190581774
Another perfect agreement:
evalf(EllipticF(I,1/2),20); N[EllipticF[ArcSin[I], 1/4], 20] 0.+.85122374907118540906*I 0.85122374907118540906 I
Yet another perfect agreement:
evalf(EllipticF(1,I),20); N[EllipticF[ArcSin[1], -1], 20] 1.3110287771460599052 1.3110287771460599052
However, these outputs differ
evalf(EllipticF(I,I),20); N[EllipticF[ArcSin[I], -1], 20] 0.+1.3085903338656260177*I 1.3110287771460599052 I
Question 1) Which of them is correct? (my idea is, the Mathematica’s one)
Question 2) How to prove your answer to 1) in an easy and elegant way? Naturally, one can use the AGM idea but this looks somewhat tedious (me, lazy...)
Yes, Mathematica is correct. Note this:
> restart; evalf(EllipticF(I,I),20); evalf(EllipticF(I,I),30); 0.+1.3006012664935504810 I 0.+1.30348862004180028836030832586 I
So Maple isn’t even consistent with itself. It seems that whatever numerical method Maple is
using for EllipticF
works very poorly in this case, which is right on the circle of
convergence of the power series. Note that EllipticF(I*t,I)
should be I*EllipticF(t,I)
for |t| <= 1
: I think they are different for |t| > 1
because different branches are
chosen.
Just a quick hint:
Have look at the arithmetic-geometric mean (AGM) and its connection to elliptic integrals. Certain elliptic integrals obey an invariance relation involving the AGM. A good book on this is
Borwein, J.M., Borwein, P.B., 1987. Pi and the AGM: A study in analytic number theory and computational complexity. Wiley, New York. 414p. (SAM ETHZ) Borwein, J.M., Borwein, P.B., 1984. The arithmetric-geometric mean and fast computation of elementary functions. SIAM review 26,3: 351-366.
I trust Maple’s numerical integration; I think that is the most well-written part of Maple. We
can define the EllipticF
function so that it is numerically evaluated via numerical
integration:
> EllF:= (z,k)-> evalf(Int(1/sqrt(1-t^2)/sqrt(1-k^2*t^2), t= 0..z);
Now EllF(I,I)
will correspond with the Mathematica answer, so I think the Mathematica
is correct.
This is my correct answer. Using Bill Carlson’s methods.
LOAD("carlson") ELLIPTICF(#i,#i) ;Approx(#2) 1.311028777146059905232419794945559706841377475715811581408410851*#i 1.3110287771460599052 I
I think Maple is wrong.