Application Center - Maplesoft

App Preview:

Approximations of Elliptic Integrals

You can switch back to the summary page by clicking here.

Learn about Maple
Download Application


 

Image 

 Approximations of  Elliptic Integrals 

Univ.-Prof. Dr.-Ing. habil. J. BETTEN
RWTH University Aachen
Mathematical Models in Materials Science and Continuum Mechanics
Augustinerbach 4-20
D-52056  A a c h e n ,  Germany
betten@mmw.rwth-aachen.de 

 Abstract 

Using MAPLE V , Release 10, Elliptic Integrals hve been presented.  Furthermore, the author proposes approximations based on both FOURIER and TAYLOR series. 

  

 Keywords:  Elliptic Integrals; Approximation; FOURIER-Series; TAYLOR-Series 

  

 Elliptic Integral of the Second Kind 

> restart:

 

> E(t,k):=Int(sqrt(1-k^2*(sin(x))^2),x=0..arcsin(t))=simplify(int(sqrt(1-k^2*(sin(x))^2),x=0..arcsin(t))) assuming t>=0 and t<1, k>=0 and k<1;

 

Int(`*`(`^`(`+`(1, `-`(`*`(`^`(k, 2), `*`(`^`(sin(x), 2))))), `/`(1, 2))), x = 0 .. arcsin(t)) = EllipticE(t, k) (2.1)

 

> for i in [0,1/2,2/3,1] do
E(t,i):=radsimp(subs(k=i,rhs(E(t,k))))
od;

 

 

 

 

 

 

 

arcsin(t)
EllipticE(t, `/`(1, 2))
EllipticE(t, `/`(2, 3))
t (2.2)

 

> E(1,k):=EllipticE(1,k);

 

EllipticE(k) (2.3)

 

> for i in [0,1/2,2/3,1] do
E(1,i):= evalf(subs(k=i,EllipticE(k)))
od;

 

 

 

 

 

 

 

1.570796327
1.467462209
1.378103938
1. (2.4)

 

> alias(H=Heaviside,th=thickness,co=color):

 

> plot1:=plot({E(t,0),E(t,1/2),E(t,2/3),E(t,1)},t=0..1,scaling=constrained,th=1,co=black):

 

> plot2:=plot({1,1.3781,1.4675,Pi/2,(Pi/2)*H(t-1)},t=0..1.001,co=black):

 

> plots[display](plot1,plot2);

 

Plot_2d  

 

>  

 

> for i in [0,1/4,1/2,3/4,1] do
E(i,2/3):= evalf(simplify(subs(t=i,E(t,2/3))))
od;

 

 

 

 

 

 

 

 

 

0.
.2514954049
.5133558987
.8072546704
`+`(1.378103938, `-`(`*`(0., `*`(I)))) (2.5)

 

> alias(H=Heaviside,th=thickness,c=color): plot1:=plot(E(t,2/3),t=0..1,scaling=constrained,th=1,c=black):      

 

> plot2:=plot({E(1,2/3),E(1,2/3)*H(t-1)},t=0..1.001,c=black):

 

> plots[display](plot1,plot2);

 

Plot_2d  

 

 FOURIER-Approximation 


Integrand  w(x)  des elliptischen Integrals  E(t, 2/3)  zweiter Gattung in der
LEGENDREschen Normalform f?r  k = 2/3: 

> w(x):=sqrt(1-(4/9)*(sin(x))^2);

 

`+`(`*`(`/`(1, 3), `*`(`^`(`+`(9, `-`(`*`(4, `*`(`^`(sin(x), 2))))), `/`(1, 2))))) (3.1)

 

> w(Pi/2):=simplify(subs(x=Pi/2,%));

 

`+`(`*`(`/`(1, 3), `*`(`^`(5, `/`(1, 2))))) (3.2)

 

> w(Pi/2):=evalf(%);

 

.7453559923 (3.3)

 

Der Integrand  w(x)  wird angn?hert durch folgende FOURIER-Reihe, die weiter unten hergeleitet wird: 

> F(x):=0.87733+0.12698*cos(2*x)-0.0046192*cos(4*x);

 

`+`(.87733, `*`(.12698, `*`(cos(`+`(`*`(2, `*`(x)))))), `-`(`*`(0.46192e-2, `*`(cos(`+`(`*`(4, `*`(x)))))))) (3.4)

 

> plot3:=plot(w(x),x=0..2*Pi,sqrt(5)/3..1,th=1,c=red):

 

> plot4:=plot(F(x),x=0..2*Pi,th=3,c=blue,transparency=0.6,linestyle=DASH):

 

> plot5:=plot({1,H(x-2*Pi)},x=0..2.001*Pi,c=black):

 

> plots[display](plot3,plot4,plot5);

 

Plot_2d  

 

Herleitung der FOURIER-Reihe  F(x)  des Integranden  w(x)  des elliptischen Integrals  E(t, k): 

> restart:

 

> Fourierreihe:= a[0]/2+sum(a[k]*cos(k*x)+b[k]*sin(k*x),k=1..infinity);

 

`+`(`*`(`/`(1, 2), `*`(a[0])), sum(`+`(`*`(a[k], `*`(cos(`*`(k, `*`(x))))), `*`(b[k], `*`(sin(`*`(k, `*`(x)))))), k = 1 .. infinity)) (3.5)

 

> a[k]:=(1/Pi)*Int(f(x)*cos(k*x),x=-Pi..Pi); # k=0,1,2,...

 

`/`(`*`(Int(`*`(f(x), `*`(cos(`*`(k, `*`(x))))), x = `+`(`-`(Pi)) .. Pi)), `*`(Pi)) (3.6)

 

> a[0]:=simplify(subs(k=0,%));

 

`/`(`*`(Int(f(x), x = `+`(`-`(Pi)) .. Pi)), `*`(Pi)) (3.7)

 

> b[k]:=(1/Pi)*Int(f(x)*sin(k*x),x=-Pi..Pi); # k=0,1,2,...

 

`/`(`*`(Int(`*`(f(x), `*`(sin(`*`(k, `*`(x))))), x = `+`(`-`(Pi)) .. Pi)), `*`(Pi)) (3.8)

 

Integrand des elliptischen Integrals: 

> w(x):=sqrt(1-(4/9)*(sin(x))^2);

 

`+`(`*`(`/`(1, 3), `*`(`^`(`+`(9, `-`(`*`(4, `*`(`^`(sin(x), 2))))), `/`(1, 2))))) (3.9)

 

> A[0]:=value(subs(f(x)=w(x),a[0]));

 

`+`(`/`(`*`(4, `*`(EllipticE(`/`(2, 3)))), `*`(Pi))) (3.10)

 

> A[0]:=evalf(%,6);

 

1.75465 (3.11)

 

> A[k]:=value(subs(f(x)=w(x),a[k]));

 

`/`(`*`(int(`+`(`*`(`/`(1, 3), `*`(`^`(`+`(9, `-`(`*`(4, `*`(`^`(sin(x), 2))))), `/`(1, 2)), `*`(cos(`*`(k, `*`(x))))))), x = `+`(`-`(Pi)) .. Pi)), `*`(Pi)) (3.12)

 

> for i in [0,2,4,6] do
A[i]:=evalf(value(subs(k=i,A[k])),6)
od;

 

 

 

 

 

 

 

1.75466
.126982
-0.461919e-2
0.336543e-3 (3.13)

 

> B[k]:=value(subs(f(x)=w(x),b[k]));

 

0 (3.14)

 

Da der Integrand eine gerade Funktion ist, stellt die FOURIER-Reihe eine Cosinus-Reihe dar: 

> Fourierreihe[k=4]:=A[0]/2+sum(A[2*k]*cos(2*k*x),k=1..2);

 

`+`(.8773300000, `*`(.126982, `*`(cos(`+`(`*`(2, `*`(x)))))), `-`(`*`(0.461919e-2, `*`(cos(`+`(`*`(4, `*`(x)))))))) (3.15)

 

> F(x):=evalf(%,5);

 

`+`(.87733, `*`(.12698, `*`(cos(`+`(`*`(2., `*`(x)))))), `-`(`*`(0.46192e-2, `*`(cos(`+`(`*`(4., `*`(x)))))))) (3.16)

 

> for i in [0,Pi/2,Pi] do
F(i):=evalf(simplify(subs(x=i,F(x))),5)
od;

 

 

 

 

 

.99969
.74573
.99968 (3.17)

 

Die exakten Werte des Integranden sind  F(0) = F(Pi) = 1  und  F(Pi/2) = 0.745356. 

Das Elliptische Integral  E(t, 2/3)  wird ersetzt durch die N?herung  e(t, 2/3) , die man  

durch folgende Integration erh?lt: 

> e(t,2/3):=Int(F(xi),xi=0..arcsin(t))=int(F(x),x=0..arcsin(t));

 

Int(F(xi), xi = 0 .. arcsin(t)) = `+`(`*`(.8773300000, `*`(arcsin(t))), `*`(0.6349000000e-1, `*`(sin(`+`(`*`(2., `*`(arcsin(t))))))), `-`(`*`(0.1154800000e-2, `*`(sin(`+`(`*`(4., `*`(arcsin(t))))))))) (3.18)

 

> e(t,2/3):=evalf(rhs(%),5);

 

`+`(`*`(.87733, `*`(arcsin(t))), `*`(0.63490e-1, `*`(sin(`+`(`*`(2., `*`(arcsin(t))))))), `-`(`*`(0.11548e-2, `*`(sin(`+`(`*`(4., `*`(arcsin(t))))))))) (3.19)

 

Diese Funktion kann auch folgenderma?en ausgedr?ckt werden: 

> e_(t,2/3):=0.87733*expand(arcsin(t))+ 0.06349*expand(sin(2*arcsin(t)))- 0.0011548*expand(sin(4*arcsin(t)));

 

`+`(`*`(.87733, `*`(arcsin(t))), `*`(.1223608, `*`(t, `*`(`^`(`+`(1, `-`(`*`(`^`(t, 2)))), `/`(1, 2))))), `*`(0.92384e-2, `*`(`^`(`+`(1, `-`(`*`(`^`(t, 2)))), `/`(1, 2)), `*`(`^`(t, 3))))) (3.20)

 

> for i in [0,1/4,1/2,3/4,1] do
e(i,2/3):=evalf(subs(t=i,e(t,2/3)))
od;

 

 

 

 

 

 

 

 

 

0.
.2514425683
.5133527806
.8073087710
1.378106742 (3.21)

 

> for i in [0,1/4,1/2,3/4,1] do
e_(i,2/3):=evalf(subs(t=i,e_(t,2/3)))
od;

 

 

 

 

 

 

 

 

 

0.
.2514425683
.5133527806
.8073087710
1.378106742 (3.22)

 

> E(t,2/3):=EllipticE(t,2/3);

 

EllipticE(t, `/`(2, 3)) (3.23)

 

> for i in [0,1/4,1/2,3/4,1] do
E(i,2/3):=evalf(subs(t=i,E(t,2/3)))
od;

 

 

 

 

 

 

 

 

 

0.
.2514954049
.5133558987
.8072546704
`+`(1.378103938, `-`(`*`(0., `*`(I)))) (3.24)

 

L-zwei Fehlernorm des Integranden: 

> L[2]:=sqrt((1/T)*Int((w(tau)-F(tau))^2,tau=0..T));

 

`*`(`^`(`/`(`*`(Int(`*`(`^`(`+`(w(tau), `-`(F(tau))), 2)), tau = 0 .. T)), `*`(T)), `/`(1, 2))) (3.25)

 

> for i in [Pi/2,Pi] do
L_zwei[0..i]:= evalf(subs(t=i,sqrt((1/i)*int((w(x)-F(x))^2,x=0..t))),5)
od;

 

 

 

0.23896e-3
0.23896e-3 (3.26)

 

Die Werte zeigen, dass  F(x)  eine gute N?herung des Integranden  w(x)  darstellt. 

> alias(H=Heaviside,th=thickness,c=color):

 

> plot1:=plot(E(t,2/3),t=0..1,scaling=constrained,th=5,c=red,transparency=0.6):

 

> plot2:=plot(e(t,2/3),t=0..1,scaling=constrained,th=1,c=black):

 

> plot3:=plot({1.378,1.378*H(t-1)},t=0..1.001,c=black):

 

> plots[display](plot1,plot2,plot3);

 

  

Plot_2d  

 

Die N?herung  e(t, 2/3)  unterscheidet sich vom Elliptischen Integral  E(t, 2/3)  nur innerhalb 

der Strichst?rke und ist somit genauer und wesentlich einfacher als die in  
[
BETTEN, J.: Finite Elemente f?r Ingenieure 2, zweite Auflage, Springer-Verlag, 2004,  * 7.5-23.mws ] diskutierte GAUSS-Quadratur! 

>  

 

Wahrer Fehler f?r  k = 2/3:  

> Delta(t,2/3):=E(t,2/3)-e(t,2/3);

 

`+`(EllipticE(t, `/`(2, 3)), `-`(`*`(.87733, `*`(arcsin(t)))), `-`(`*`(0.63490e-1, `*`(sin(`+`(`*`(2., `*`(arcsin(t)))))))), `*`(0.11548e-2, `*`(sin(`+`(`*`(4., `*`(arcsin(t)))))))) (3.27)

 

> plot(Delta(t,2/3),t=0..1,c=black);

 

Plot_2d  

 

Relativer Fehler f?r  k = 2/3: 

> relativer_Fehler(t,2/3):=Delta(t,2/3)/E(t,2/3);

 

`/`(`*`(`+`(EllipticE(t, `/`(2, 3)), `-`(`*`(.87733, `*`(arcsin(t)))), `-`(`*`(0.63490e-1, `*`(sin(`+`(`*`(2., `*`(arcsin(t)))))))), `*`(0.11548e-2, `*`(sin(`+`(`*`(4., `*`(arcsin(t))))))))), `*`(Elli... (3.28)

 

> plot(relativer_Fehler(t,2/3),t=0..1,c=black);

 

Plot_2d  

 

> relativer_Fehler(0,2/3):=Limit(rel_Fehler(t,2/3),t=0)= evalf(limit(relativer_Fehler(t,2/3),t=0),4);

 

Limit(rel_Fehler(t, `/`(2, 3)), t = 0) = 0.3092e-3 (3.29)

 

 Bemerkung:   Der wahre Fehler  Delta(t, 2/3) := E(t, 2/3) - e(t, 2/3)  in  [0, 1]  liegt 

zwischen  -0.00005  und  0.00006  und der relative Fehler zwischen  -0.00005  und  0.0003. 

 Mithin ist die auf der Basis einer FOURIER-Analyse gewonnene N?herung sehr gelungen. 

Approximationen elliptischer Integrale erster und dritter Gattung oder auch Integrale, die 

von  RAMANUJAN  untersucht wurden, k?nnen in gleicher Weise approximiert werden. 

 TAYLOR-Approximation 

  

  Im Folgenden wird das elliptische Integral  E(t, 2/3)  durch eine TAYLOR-Reihe gen?hert: 

> restart:

 

> w(x):=sqrt(1-(2/3)^2*(sin(x))^2);

 

`+`(`*`(`/`(1, 3), `*`(`^`(`+`(9, `-`(`*`(4, `*`(`^`(sin(x), 2))))), `/`(1, 2))))) (4.1)

 

> TAYLOR_Reihe(x):=taylor(w(x),x=0,5);

 

series(`+`(1, `-`(`*`(`/`(2, 9), `*`(`^`(x, 2)))), `*`(`/`(4, 81), `*`(`^`(x, 4))))+O(`^`(x, 6)),x,6) (4.2)

 

> T[4](x):=1-2*x^2/9+4*x^4/81;

 

`+`(1, `-`(`*`(`/`(2, 9), `*`(`^`(x, 2)))), `*`(`/`(4, 81), `*`(`^`(x, 4)))) (4.3)

 

> e(t,2/3):=Int(TAYLOR[4](x),x=0..arcsin(t))= int(T[4](x),x=0..arcsin(t));

 

Int(TAYLOR[4](x), x = 0 .. arcsin(t)) = `+`(arcsin(t), `-`(`*`(`/`(2, 27), `*`(`^`(arcsin(t), 3)))), `*`(`/`(4, 405), `*`(`^`(arcsin(t), 5)))) (4.4)

 

> e(1,2/3):=simplify(subs(t=1,%));

 

Int(TAYLOR[4](x), x = 0 .. arcsin(1)) = `+`(`*`(`/`(1, 2), `*`(Pi)), `-`(`*`(`/`(2, 27), `*`(`^`(arcsin(1), 3)))), `*`(`/`(4, 405), `*`(`^`(arcsin(1), 5)))) (4.5)

 

> e(1,2/3):=evalf(%);

 

Int(TAYLOR[4](x), x = 0. .. 1.570796327) = 1.378151692 (4.6)

 

> E(t,2/3):=EllipticE(t,2/3);

 

EllipticE(t, `/`(2, 3)) (4.7)

 

> E(1,2/3):=evalf(subs(t=1,%));

 

`+`(1.378103938, `-`(`*`(0., `*`(I)))) (4.8)

 

> alias(H=Heaviside,th=thickness,c=color):

 

> plot1:=plot(E(t,2/3),t=0..1,th=1,c=blue):

 

> plot2:=plot(rhs(e(t,2/3)),t=0..1,th=3,c=red,transparency=0.5,linestyle=DASH):

 

> plot3:=plot({E(1,2/3),E(1,2/3)*H(t-1)}, t=0..1.001,scaling=constrained,c=black):

 

> plots[display](plot1,plot2,plot3);

 

Plot_2d  

 

> wahrer_Fehler(t,2/3):=E(t,2/3)-rhs(e(t,2/3));

 

`+`(EllipticE(t, `/`(2, 3)), `-`(arcsin(t)), `*`(`/`(2, 27), `*`(`^`(arcsin(t), 3))), `-`(`*`(`/`(4, 405), `*`(`^`(arcsin(t), 5))))) (4.9)

 

> wahrer_Fehler(1,2/3):=evalf(subs(t=1,%));

 

`+`(`-`(0.4775446e-4), `-`(`*`(0., `*`(I)))) (4.10)

 

> plot(wahrer_Fehler(t,2/3),t=0..1,th=2,c=black);

 

Plot_2d  

 

> relativer_Fehler(t,2/3):= wahrer_Fehler(t,2/3)/E(t,2/3);

 

`/`(`*`(`+`(EllipticE(t, `/`(2, 3)), `-`(arcsin(t)), `*`(`/`(2, 27), `*`(`^`(arcsin(t), 3))), `-`(`*`(`/`(4, 405), `*`(`^`(arcsin(t), 5)))))), `*`(EllipticE(t, `/`(2, 3)))) (4.11)

 

> relativer_Fehler(1,2/3):=evalf(subs(t=1,%));

 

`+`(`-`(0.3465229195e-4), `-`(`*`(0., `*`(I)))) (4.12)

 

> relativer_Fehler(0,2/3):=Limit(rel_Fehler(t,2/3),t=0)= limit(relativer_Fehler(t,2/3),t=0);

 

Limit(rel_Fehler(t, `/`(2, 3)), t = 0) = 0 (4.13)

 

> plot(relativer_Fehler(t,2/3),t=0..1,th=2,c=black);

 

Plot_2d  

 

 Conclusion 

  

Die G?te der Approximation des elliptischen Integrals  E(t, 2/3)  durch eine TAYLOR-Reihe 

ist vergleichbar mit der G?te der N?herung auf der Basis einer FOURIER-Analyse. 

 
Legal Notice: The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities.
 

Image