Lösung von Aufgabe 2
- Alle Berechnungen können mit dem
Matlab-Skript ex02.m ausgeführt werden.
- Mit dem Skript erhält man für die relativen
Fehler err1,2 von exp(10) und exp(-10) folgende Werte:
-
N |
err1 |
err2 |
30 |
7.9838e-08 |
2.0373e+01 |
40 |
1.7788e-13 |
5.3128e-05 |
50 |
3.3033e-16 |
7.2223e-09 |
Die Fehler bei exp(-10) sind dramatisch viel größer; umgekehrt
braucht man viel mehr Terme, um eine vergleichbare Genauigkeit zu erhalten.
Ursache ist die Auslöschung bei der Taylorreihe von exp(-10), deren
Terme jedesmal das Vorzeichen wechseln.
- Für x = 20 ergeben sich folgende Werte:
-
N |
err1 |
err2 |
30 |
1.3475e-02 |
7.7612e+14 |
50 |
4.8287e-09 |
5.0793e+08 |
70 |
2.4571e-16 |
1.1302e+00 |
100 |
2.4571e-16 |
1.0249e+00 |
Die Reihe konvergiert generell langsamer, d. h. man braucht mehr Terme
für einen vorgegebenen Fehler. Bei exp(-20) sind die numerischen
Fehler durch Auslöschung so groß, dass auch mit beliebig vielen
Termen kein sinnvolles Ergebnis erzielt wird.
- Das Problem der Auslöschung lässt sich hier
leicht umgehen, indem man exp(-x) nicht direkt über die Taylorreihe
bestimmt, sondern durch exp(-x) = 1/exp(x). Die sich dabei für exp(-x)
ergebenden relativen Fehler sind etwa so groß wie die von exp(x).