Näherungsverfahren von Newton

By | 30. März 2016

Das Newton Verfahren ist ein Standardverfahren zur numerischen Lösung von nichtlinearen Gleichungen und Gleichungssystemen (Nullstellen Bestimmung).

Die grundlegende Idee dieses Verfahrens ist, die Funktion in einem Ausgangspunkt zu linearisieren, d. h. ihre Tangente zu bestimmen, und die Nullstelle der Tangente als verbesserte Näherung der Nullstelle der Funktion zu verwenden.

Die erhaltene Näherung dient als Ausgangspunkt für einen weiteren Verbesserungsschritt. Diese Iteration erfolgt, bis die Änderung in der Näherungslösung eine festgesetzte Schranke unterschritten hat.

Mathematisch ausgedrückt sieht das Ganze dann so aus:

    \[ x_{i+1} = \frac{f(x_{i})} {f'(x_{i})} \]

Das Verfahren geht in Kurzform so: Ausgehend von einer groben Schätzung der Nullstelle x_0 bestimmt man eine verbesserte Näherung x_1. Dabei verwendet Newton den Ansatz, die Näherung durch die Bestimmung der Tangente zu verbessern. Dies führt dann zu einer Iterationsfolge, die im Idealfall gegen die gesuchte Nullstelle konvergiert.

Üblicherweise wird das Verfahren in der Ausbildung als  einfache Programmieraufgabe verwendet, um Schüler mit Schleifen und entsprechenden Abbruchbedingungen vertraut zu machen. Lösungen sehen dann in etwa so aus:

Bildschirmfoto 2016-03-30 um 18.25.58

Mathematica bietet neben integrierten Methoden zur Bestimmung von Funktionswerten auch eine interessante Möglichkeit eine Iteration selber zu programmieren, über fie Funktion: NESTLIST.

Diese Funktion setzt einen Ausdruck beliebig viele Male in sich selber ein. D.h. der Ausdruck NestList [ (1 + x)^2 , x, 4 ]  setzt den Ausdruck x vier mal immer wieder in den Ausdruck (1+x)^2 ein, mit folgendem Ergebnis:

Nestlist

Damit lässt sich nun auf ganz einfache Art und Weise das Newton´sche Näherungsverfahren implementieren:

Man erkennt, dass sich bereits nach der dritten Iteration das Ergebnis nicht mehr signifikant ändert.
Um dieses Verfahren auf andere Funktionen anzuwenden, muß nur die entsprechende f[x_] Funktionsbeschreibung angepasst werden. Die Funktionale Sprache hat hier deutliche Vorteile gegenüber prozeduraler Sprachen. Man erkennt sehr deutlich, mit wie wenigen Anweisungen Mathematica in der Lage ist, derartige Iterationsaufgaben zu bearbeiten.