Mathematik Newtonverfahren und Intervallhalbierungsverfahren?

4 Antworten

Mit der Intervalhalbierung kommt man dem Endergebnis in jedem Schritt näher. Die Konvergenz beträgt damit O(log((b-a)/e)), also eine logarithmische Laufzeit.

Wenn man mit dem Startwert "nahe genug" an einer Lösung liegt, nähert sich das Newtonverfahren dagegen quadratisch der Lösung an. Grob gesagt verdoppelt sich die Anzahl korrekter Stellen in jeder Iteration.

Man vergleicht also die Zahl der benötigten Iterationen, bzw. Funktionsauswertungen mit der Differenz zwischen erreichter und korrekter Lösung.

Details dazu findest du z.B. hier: https://de.wikipedia.org/wiki/Bisektion

genau gleich werden sie wohl nicht sein. Es muss ja ein Größeres und ein kleineres ergebnis geben.

Beide Verfahren liefern ein x₀ mit f(x₀)≈0 ist. Der exakte Wert kann in der Regel gar nicht als double dargestellt werden.

Berechne also jeweils |f(x₀)| − wer näher an 0 kommt, hat gewonnen :-)

Programmiere einen Programmabschnitt, wo die jeweilige Nullstelle in die Originalfunktion eingesetzt wird, und dann y = f(x) ausgerechnet wird.

Benutze dabei die höchste Genauigkeit die deine Programmiersprache anzubieten hat, das wäre im Normalfall "Double".

Berechne dann den Absolutwert von y = f(x), d.h. du schneidest ein eventuelles Minuszeichen einfach ab, die meisten Programmiersprachen haben dafür auch einen Befehl, zum Beispiel abs(...) in Programmiersprachen wie BASIC, Pascal usw.

Das machst du für das Newtonverfahren und das Intervallhalbierungsverfahren.

Das Verfahren welches das kleinere y = f(x) liefert ist genauer.