Numerische Berechnung von unendlichen Reihen - Public.fh ...
Numerische Berechnung von unendlichen Reihen - Public.fh ...
Numerische Berechnung von unendlichen Reihen - Public.fh ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Numerische</strong> <strong>Berechnung</strong> <strong>von</strong><br />
<strong>unendlichen</strong> <strong>Reihen</strong><br />
© Peter Riegler, FH Wolfenbüttel<br />
In[1]:=<br />
Needs@"Graphics`Master`"D<br />
Die pseudomathematische Methode<br />
Idee: Wir berechnen die Partialsummen und brechen ab, sobald sich zwei aufeinanderfolgende Partialsummen<br />
um weniger als ein vorgegebenes e (Genauigkeit) ändern.<br />
Beispiel: <strong>Berechnung</strong> <strong>von</strong> ⁄ k=0 k -1<br />
In[2]:=<br />
eps = 10^−3; s = 0; kk = 1; While@1 ê kk > eps, s = s + N@1 ê kkD; kk++D;<br />
Print@"kk=", kk, " s=", sD<br />
kk=1000 s=7.48447<br />
Tatsächlich ist diese Reihe noch gar nicht konvergiert. Nach 10 6 Termen sieht die Situation nämlich so aus:<br />
In[3]:=<br />
s = 0; For@k = 0, k ≤ 1000000, s = s + N@1 ê k, 20D;, k++D; s<br />
Out[3]= 14.392727722864723632<br />
In[4]:=<br />
s = 0; For@k = 0, k ≤ 1000001, s = s + N@1 ê k, 20D;, k++D; s<br />
Out[4]= 14.392728722862723636<br />
Der Wert der Summe ändert sich immer noch auf der 18. Nachkommastelle und hat sich auch mehr als<br />
verdoppelt.<br />
Die Reihe konvergiert im Übringen gar nicht, denn ⁄ k=0 k -1 ist die harmonische Reihe.<br />
Es liegt auch kein Widerspruch zum Cauchy-Konvergenzkriterium vor. Es wurde nur falsch angewendet!<br />
Denn es fordert, dass<br />
» s n - s n-1 » n 0 und für alle e. Wir haben das hier nur für ein e nachgeweisen (und das nicht einmal richtig,<br />
denn wir können das ja nicht für alle n ausprobieren).
2 reihenberechnen-1.nb<br />
Der Fehler ist letztendlich, dass nicht zuerst die Konvergenz geprüft wurde!<br />
Wenn man allerdings weiss, dass eine Reihe konvergiert, dann kann man sich ein Abbruchschranke e<br />
vorgeben und die Iteration abbrechen, sobald das Inkrement kleiner als e ist.<br />
Beispiel: Berechnen <strong>von</strong> ⁄ k=0 k -2 (Konvergenztest z.B. über Abschätzen mit Integral)<br />
In[5]:=<br />
eps = 10^−3; s = 0; kk = 1; While@1 ê kk^2 > eps, s = s + N@1 ê kk^2D; kk++D;<br />
Print@"kk=", kk, " s=", sD<br />
kk=32 s=1.61319<br />
Der Fehler zum Grenzwert p 2 ê 6<br />
In[6]:=<br />
π 2<br />
<br />
6 − s<br />
Out[6]= 0.0317434<br />
ist jedoch immer noch unbekannt und unzugänglich (wir kennen den Grenzwert ja nicht, sonst würden wir<br />
die Reihe nicht numerisch berechnen).<br />
Abschätzen des Fehlers<br />
Wenn wir nur bis k = n iterieren, machen wir einen Fehler r n+1<br />
k -2 n<br />
= ⁄ k=0 k -2 + r n+1 ,<br />
⁄ k=0<br />
den sogenannten Restfehler<br />
<br />
r n+1 = ⁄ k=n+1 k -2<br />
Um tatsächlich eine gegebene Genauigkeit zu erreichen, müssen wir wissen, wie der Restfehler r n+1 <strong>von</strong> n<br />
abhängt. Dazu genügt eine Abschätzung des Restfehlers, z.B.<br />
<br />
r n+1 = ⁄ k=n+1 k -2 <br />
§ Ÿ n+1 x<br />
-2<br />
„ x<br />
∞<br />
In[7]:= ‡<br />
n+1<br />
Out[7]=<br />
1<br />
<br />
1 + n<br />
x −2 x<br />
Um diesen Restfehler zu unterschreiten, müssen wir fordern, dass das Inkrement der Iteration mindestens<br />
kleiner ist als eps. Das ist ab diesem n der Fall:
eihenberechnen-1.nb 3<br />
In[8]:= SolveA 1 <br />
1 + n<br />
Out[8]= 88n → 999
4 reihenberechnen-1.nb<br />
In[12]:=<br />
plainconv = LogLogListPlot@<br />
Table@8n, −NSum@1 ê k^2, 8k, 1, n
eihenberechnen-1.nb 5<br />
bzw.<br />
⁄ k=1 k -2 <br />
1<br />
- 1 ÿa 1 =‚ ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ<br />
k=1 k 2 Hk+1L<br />
⁄ k=1 k -2 <br />
1<br />
= 1 + ‚ ÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅ<br />
k=1 k 2 Hk+1L<br />
mit einer wesentlich schnelleren Konvergenz der rechten Seite:<br />
In[13]:=<br />
accelconv = LogLogListPlot@<br />
Table@8n, −H1 + NSum@1 êHk^2 Hk + 1LL, 8k, 1, n