A workaround for an elliptic integral
- To: mathgroup at smc.vnet.net
- Subject: [mg76029] A workaround for an elliptic integral
- From: dimitris <dimmechan at yahoo.com>
- Date: Tue, 15 May 2007 04:48:29 -0400 (EDT)
In previous post I talked about the elliptic integral
In[30]:=
Integrate[Sqrt[(1 - x)/((x - 2)*(x^2 - 2*x + 3))], {x, 1, 2}]
which stays unevaluated in version 5.2 of Mathematica
whereas version 4.0 gets a closed form result.
(As I was informed version 6 also fails!)
So here it comes one approach of workaround. I look forward for any
kind of comments!
Here is the integrand
In[31]:=
g[x_] := Sqrt[(1 - x)/((x - 2)*(x^2 - 2*x + 3))]
Here is the indefinite integral
In[33]:=
G[x_] = Integrate[g[x], x]
Out[33]=
(2^(3/4)*(-2 + x)*Sqrt[(I + Sqrt[2] - I*x)/((-I + Sqrt[2])*(-1 +
x))]*Sqrt[(-I + Sqrt[2] + I*x)/((I + Sqrt[2])*(-1 + x))]*
Sqrt[(1 - x)/(-6 + 7*x - 4*x^2 + x^3)]*EllipticPi[1 - I/Sqrt[2],
ArcSin[2^(1/4)*Sqrt[(-2 + x)/((-I + Sqrt[2])*(-1 + x))]],
(-I + Sqrt[2])/(I + Sqrt[2])])/Sqrt[(-2 + x)/((-I + Sqrt[2])*(-1 +
x))]
Here is the verification
In[41]:=
Factor /@ Simplify[D[G[x], x]]
Out[41]=
Sqrt[-((-1 + x)/((-2 + x)*(3 - 2*x + x^2)))]
Define now
In[43]:=
GS[x] = FullSimplify[G[x], 1 < x < 2]
Out[43]=
(2^(3/4)*Sqrt[(I + Sqrt[2] - I*x)/(-I + Sqrt[2])]*(-2 + x)*Sqrt[-(I/
((-2 + x)*(I - 2*Sqrt[2] + (I + Sqrt[2])*x)))]*
EllipticPi[1 - I/Sqrt[2], ArcSin[2^(1/4)*Sqrt[(-2 + x)/((-I +
Sqrt[2])*(-1 + x))]], (1/3)*(1 - 2*I*Sqrt[2])])/
Sqrt[(-2 + x)/(-I + Sqrt[2])]
Here is an attempt of application of the Newton-Leibniz formula
in the integration range (GS is continouus there)
In[45]:=
lim = Limit[GS[x], x -> 2, Direction -> 1] - Limit[GS[x], x -> 1,
Direction -> -1]
Out[45]=
-Limit[(2^(3/4)*Sqrt[(I + Sqrt[2] - I*x)/(-I + Sqrt[2])]*(-2 +
x)*Sqrt[-(I/((-2 + x)*(I - 2*Sqrt[2] + (I + Sqrt[2])*x)))]*
EllipticPi[1 - I/Sqrt[2], ArcSin[2^(1/4)*Sqrt[(-2 + x)/((-I +
Sqrt[2])*(-1 + x))]], (1/3)*(1 - 2*I*Sqrt[2])])/
Sqrt[(-2 + x)/(-I + Sqrt[2])], x -> 1, Direction -> -1]
As we see Mathematica gets the limit at 2 (it is zero) and fails to
evaluate the limit at 1.
I think the reason for this failure is by ArcSin[2^(1/4)*Sqrt[(-2 + x)/
((-I + Sqrt[2])*(-1 + x))]].
For x->1, this expression diverges logarithmically.
In[85]:=
FullSimplify[Normal[Series[ArcSin[2^(1/4)*Sqrt[(-2 + x)/((-I +
Sqrt[2])*(-1 + x))]], {x, 1, 1}, Assumptions -> 1 < x < 2]]]
Limit[ArcSin[2^(1/4)*Sqrt[(-2 + x)/((-I + Sqrt[2])*(-1 + x))]], x ->
1, Direction -> -1]
Out[85]=
(1/8)*(-2*I + Sqrt[2] - (-2*I + Sqrt[2])*x + 4*ArcCot[Sqrt[2]] +
2*I*Log[6] - 4*I*Log[8] + 4*I*Log[-1 + x])
Out[86]=
DirectedInfinity[-I]
I will use the integral represantation of EllipticPi in order to
calculate
EllipticPi[1 - I/Sqrt[2], (-I)*Infinity, (1/3)*(1 - 2*I*Sqrt[2])].
In[87]:=
o = FullSimplify[Integrate[1/((1 - (1 - I/Sqrt[2])*Sin[=E8]^2)*Sqrt[1 -
(1/3)*(1 - 2*I*Sqrt[2])*Sin[=E8]^2]),
{=E8, 0, (-I)*Infinity}, GenerateConditions -> False]]
Out[87]=
(-1 + I)*2^(3/4)*(EllipticPi[(((1 + I) - I*2^(1/4))*(5 + 2*I*Sqrt[2] +
2*Sqrt[6 + 6*I*Sqrt[2]]))/
(((1 - I) + 2^(1/4))*(I + 2*Sqrt[2])), I*ArcSinh[Root[3 + 4*#1^2
+ 50*#1^4 + 4*#1^6 + 3*#1^8 & , 5]],
-1 + 1/(1/2 + Root[12 - 76*#1^2 + 121*#1^4 & , 2])] -
EllipticPi[(((1 - I) + 2^(1/4))*(-5*I + 2*Sqrt[2] + Root[1728 +
48*#1^2 + #1^4 & , 3]))/
(((-1 + I) + 2^(1/4))*(I + 2*Sqrt[2])), I*ArcSinh[Root[3 + 4*#1^2
+ 50*#1^4 + 4*#1^6 + 3*#1^8 & , 5]],
-1 + 1/(1/2 + Root[12 - 76*#1^2 + 121*#1^4 & , 2])])*Root[3 -
12*#1 + 14*#1^2 - 4*#1^3 + 3*#1^4 & , 2]
Here is a quick check of the last result
In[89]:=
{(N[#1, 30] & )[EllipticPi[1 - I/Sqrt[2], ArcSin[2^(1/4)*Sqrt[(-2 + x)/
((-I + Sqrt[2])*(-1 + x))]], (1/3)*(1 - 2*I*Sqrt[2])] /.
x -> 1 + 10^(-40)], (N[#1, 30] & )[o],
NIntegrate[1/((1 - (1 - I/Sqrt[2])*Sin[=E8]^2)*Sqrt[1 - (1/3)*(1 -
2*I*Sqrt[2])*Sin[=E8]^2]), {=E8, 0, (-I)*Infinity},
WorkingPrecision -> 50, PrecisionGoal -> 30]}
Out[89]=
{0.231172407496034449016465231148189638820114680495`29.631822080262413
-
0=2E727329509018479709907956522274451298714332212402`30.129617292377752*I,
0=2E231172407496034449016465231148192196752982617568`29.631822080262413
-
0=2E727329509018479709907956522274448474978799078007`30.129617292377752*I,
0=2E231172407496034449016465231148189638755554362212`29.637614251854142
-
0=2E727329509018479709907956522274451297859216481608`30.13540946396948*I}
So that, by a replacement rule we have
In[92]:=
res = ToRadicals[lim /. EllipticPi[_, __] -> o]
Out[92]=
-((1/Sqrt[(1/2)*(-I - Sqrt[2])])*((2 - 2*I)*(1/3 + (2*I*Sqrt[2])/3 -
(1/2)*Sqrt[-(40/9) - (8*I*Sqrt[2])/9])*
(-EllipticPi[(((1 - I) + 2^(1/4))*(-5*I + 2*Sqrt[2] + 2*Sqrt[6*(-1
- I*Sqrt[2])]))/(((-1 + I) + 2^(1/4))*(I + 2*Sqrt[2])),
I*ArcSinh[Sqrt[-(1/3) + (4*I*Sqrt[2])/3 + (1/2)*Sqrt[-(160/9) -
(32*I*Sqrt[2])/9]]],
-1 + 1/(1/2 - Sqrt[38/121 - (2*I*Sqrt[2])/121])] +
EllipticPi[(((1 + I) - I*2^(1/4))*(5 + 2*I*Sqrt[2] + 2*Sqrt[6 +
6*I*Sqrt[2]]))/(((1 - I) + 2^(1/4))*(I + 2*Sqrt[2])),
I*ArcSinh[Sqrt[-(1/3) + (4*I*Sqrt[2])/3 + (1/2)*Sqrt[-(160/9) -
(32*I*Sqrt[2])/9]]],
-1 + 1/(1/2 - Sqrt[38/121 - (2*I*Sqrt[2])/121])])))
Check
In[98]:=
{N[res, 30], NIntegrate[Sqrt[(1 - x)/((x - 2)*(x^2 - 2*x + 3))], {x,
1, 2}, WorkingPrecision -> 60, MaxRecursion -> 12,
PrecisionGoal -> 30]}
Out[98]=
{0.975261536923865518804845371749299297277448206407`30.15051499783199
+ 0``30.16139390130114*I,
0=2E975261536923865518804845371747769411552590737095`30.189694608876156
+ 0``30.2005735123453*I}
Recall that 4's result is a little simpler.
In[108]:=
math4 = (1/9)*Sqrt[(2/3)*(-2 - 5*I*Sqrt[2])]*
(Sqrt[3*(7 - 4*I*Sqrt[2])]*EllipticPi[1 + I/Sqrt[2],
ArcSin[Sqrt[(1/3)*I*(2*I + Sqrt[2])]], (1/3)*(1 + 2*I*Sqrt[2])] +
3*I*(I + Sqrt[2])*(EllipticF[ArcSin[Sqrt[-1 - I/Sqrt[2]]], 1/3 -
(2*I*Sqrt[2])/3] -
EllipticPi[2/3 - (I*Sqrt[2])/3, ArcSin[Sqrt[-1 - I/Sqrt[2]]],
1/3 - (2*I*Sqrt[2])/3]));
Obviously "playing" a little someone can show the equivalence of the
two expressions.
FullSimplify fails.
In[110]:=
Developer`ZeroQ[math4 - res]
Out[110]=
True
Dimitris