Iteration der Ableitung - merkwürdiges Verhalten

Neue Frage »

kommando_pimperlepim Auf diesen Beitrag antworten »
Iteration der Ableitung - merkwürdiges Verhalten
Hallo. Ich habe ein Programm geschrieben, das die Ableitung der Sinusfunktion an einer Stelle nähern soll, nach der Definition:



Um die Differenz zum wahren Wert zu untersuchen habe ich eine TAYLOR-Entwicklung gemacht:



Setzt man diese in ein, so erhält man


Für den Fall und habe ich nun den relativen Fehler über doppelt logarithmisch aufgetragen und erhalte den Plot (siehe Anhang 1) Die dicken Punkte sind die Werte des relativen Fehlers bei einem bestimmten Wert für h, und die gestrichelte rote Linie ist das erwartete Fehlerverhalten gemäß voriger TAYLOR-Entwicklung.

Seltsamerweise beginnt der Fehler, sich ab einer Stelle sprunghaft von der Erwartung abweichend zu verhalten. Ich vermute, dass die Ursache nicht rein mathematischer Natur ist, sondern durch die beschränkte Genauigkeit der Fließkommazahlen verursacht wird.

Für sehr kleine liefert mein Programm z. B.


Würde das folgende Vorgehen eurer Meinung nach Sinn machen?

1. für die Variablen einen Standardfließkommafehler annehmen
2. Seine Auswirkung nach GAUSSscher Fehlerfortpflanzung berechnen
3. Diesen Fehler zur rein mathematischen Abweichung addieren.
4. Diesen Gesamtfehler nach h ableiten.
5. Hoffentlich eine Nullstelle der Ableitung finden, wo der Knick im Graphen ist.

Oder weiß jemand evtl. auch einen simpleren Grund für die Abweichung?
sqrt(2) Auf diesen Beitrag antworten »
RE: Iteration der Ableitung - merkwürdiges Verhalten
Zitat:
Original von kommando_pimperlepim
Seltsamerweise beginnt der Fehler, sich ab einer Stelle sprunghaft von der Erwartung abweichend zu verhalten. Ich vermute, dass die Ursache nicht rein mathematischer Natur ist, sondern durch die beschränkte Genauigkeit der Fließkommazahlen verursacht wird.

Das vermute ich auch, zumal der Fehler ab Zahlen an der Grenze der Mantisse auftritt (bei einer Mantissenlänge von 23 bit, wie sie IEEE 754 single entspricht). Verwendest du wirklich single? Wenn ja, warum nicht double?
kommando_pimperlepim Auf diesen Beitrag antworten »

Ich verwende float (Python). Das entspricht in dem aus C++,Java... gängigen double, also das wir uns richtig verstehen:

Exponent: 11 Bits
Mantisse: 52 Bits

Damit müsste ich doch zunächst 15 signifikante Stellen haben?
sqrt(2) Auf diesen Beitrag antworten »

Eigentlich ja. Die Frage ist, woher der Fehler dann wirklich kommt. Wahrscheinlich Auslöschungseffekte, wenn die Differenz im Zähler sehr klein wird.
kommando_pimperlepim Auf diesen Beitrag antworten »
RE: Iteration der Ableitung - merkwürdiges Verhalten
Wäre dann eine qualitative Fehleranalyse nach GAUSSscher Fehlerfortpflanzung mit einem Fehler möglich?
sqrt(2) Auf diesen Beitrag antworten »

Ich halte das schon für einen sinnvollen Ansatz.
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »