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
> |
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; |
> |
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; |
> |
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; |
> |
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) |
 |
(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):
> |
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))](/view.aspx?SI=5475/Approx_Elliptic_Int_24.gif) |
(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) |
 |
(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; |
> |
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) |
 |
(3.16) |
> |
for i in [0,Pi/2,Pi] do F(i):=evalf(simplify(subs(x=i,F(x))),5) od; |
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; |
> |
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; |
> |
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; |
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:
> |
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)); |
, x = 0 .. arcsin(t)) = `+`(arcsin(t), `-`(`*`(`/`(2, 27), `*`(`^`(arcsin(t), 3)))), `*`(`/`(4, 405), `*`(`^`(arcsin(t), 5))))](/view.aspx?SI=5475/Approx_Elliptic_Int_73.gif) |
(4.4) |
> |
e(1,2/3):=simplify(subs(t=1,%)); |
, x = 0 .. arcsin(1)) = `+`(`*`(`/`(1, 2), `*`(Pi)), `-`(`*`(`/`(2, 27), `*`(`^`(arcsin(1), 3)))), `*`(`/`(4, 405), `*`(`^`(arcsin(1), 5))))](/view.aspx?SI=5475/Approx_Elliptic_Int_74.gif) |
(4.5) |
, x = 0. .. 1.570796327) = 1.378151692](/view.aspx?SI=5475/Approx_Elliptic_Int_75.gif) |
(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.