Application Center - Maplesoft

# Approximations of Elliptic Integrals

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

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;

 (2.1)

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

 (2.2)

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

 (2.3)

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

 (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);

 >

 > 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;

 (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);

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);

 (3.1)

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

 (3.2)

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

 (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);

 (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);

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);

 (3.5)

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

 (3.6)

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

 (3.7)

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

 (3.8)

Integrand des elliptischen Integrals:

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

 (3.9)

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

 (3.10)

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

 (3.11)

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

 (3.12)

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

 (3.13)

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

 (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);

 (3.15)

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

 (3.16)

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

 (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));

 (3.18)

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

 (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)));

 (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;

 (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;

 (3.22)

 > E(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;

 (3.24)

L-zwei Fehlernorm des Integranden:

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

 (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;

 (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);

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);

 (3.27)

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

Relativer Fehler f?r  k = 2/3:

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

 (3.28)

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

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

 (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);

 (4.1)

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

 (4.2)

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

 (4.3)

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

 (4.4)

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

 (4.5)

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

 (4.6)

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

 (4.7)

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

 (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);

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

 (4.9)

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

 (4.10)

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

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

 (4.11)

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

 (4.12)

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

 (4.13)

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

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.