6
7.9A. Nullstellensuche nach Newton Wir haben früher bemerkt, daß zur Auffindung von Nullstellen einer gegebenen Funktion oft nur Näherungsverfahren helfen. Eine alte, aber wirkungsvolle Methode ist das Newton-Verfahren zur näherungsweisen Bestimmung von Nullstellen. Wie der Name sagt, stammt es von dem genialen Mathematiker und Physiker Isaak Newton, der unabhängig von Leibniz um 1670 die moderne Infinitesimalrechnung entwickelte. Die Grundidee basiert auf der Beobachtung, daß eine Tangente an die gegebene Kurve meist die x-Achse in der Nähe eines Schnittpunktes der Kurve mit der x-Achse schneidet, falls der Tangentialpunkt nicht allzu weit von der Nullstelle entfernt ist. Haben wir irgendwie nach k Schritten eine Näherung a k für die gesuchte Nullstelle konstruiert, so ergibt sich die x-Koordinate des Schnittpunktes der durch = T , a k 1 ( ) f x + ( ) f a k ( ) f ´ a k ( ) - x a k beschriebenen Tangente mit der x-Achse als Lösung der Gleichung = 0 + ( ) f a k ( ) f ´ a k ( ) - x a k , und diese lautet = a + n 1 - a k ( ) f a k ( ) f ´ a k (*) sofern die Ableitung im Punkt a k nicht Null war. Es steht also zu hoffen, daß die durch (*) rekursiv definierte Folge (a k ) gegen eine Nullstelle konvergiert, sofern der Startwert a 0 nicht zu ungünstig gewählt wurde.

7.9A. Nullstellensuche nach Newtonerne/Mathematik2/dateien/maple/MB_7_9… · Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau: -0.724491959000515611588372282187

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 7.9A. Nullstellensuche nach Newtonerne/Mathematik2/dateien/maple/MB_7_9… · Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau: -0.724491959000515611588372282187

7.9A. Nullstellensuche nach Newton

Wir haben früher bemerkt, daß zur Auffindung von Nullstellen einer gegebenen Funktion oft nur Näherungsverfahren helfen. Eine alte, aber wirkungsvolle Methode ist das Newton-Verfahren

zur näherungsweisen Bestimmung von Nullstellen. Wie der Name sagt, stammt es von dem genialen Mathematiker und Physiker Isaak Newton, der unabhängig von Leibniz um 1670 die moderne Infinitesimalrechnung entwickelte. Die Grundidee basiert auf der Beobachtung, daß eine Tangente an die gegebene Kurve meist die x-Achse in der Nähe eines Schnittpunktes der Kurve mit der x-Achse schneidet, falls der Tangentialpunkt nicht allzu weit von der Nullstelle entfernt ist. Haben wir irgendwie nach k Schritten eine Näherung ak für die gesuchte Nullstelle konstruiert, so

ergibt sich die x-Koordinate des Schnittpunktes der durch

= T ,ak

1 ( )f x + ( )f ak ( )f ´ ak ( ) − x ak

beschriebenen Tangente mit der x-Achse als Lösung der Gleichung

= 0 + ( )f ak ( )f ´ ak ( ) − x ak ,

und diese lautet

= a + n 1 − ak

( )f ak

( )f ´ ak

(*)

sofern die Ableitung im Punkt ak nicht Null war. Es steht also zu hoffen, daß die durch (*) rekursiv

definierte Folge (ak) gegen eine Nullstelle konvergiert, sofern der Startwert a0 nicht zu ungünstig gewählt wurde.

Page 2: 7.9A. Nullstellensuche nach Newtonerne/Mathematik2/dateien/maple/MB_7_9… · Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau: -0.724491959000515611588372282187

Dies bestätigt sich eindrucksvoll in

Beispiel 1: Nullstellen des Polynoms

= ( )f x − − x4 x 1.

Es gibt, wie früher erwähnt, zwar monströse Formeln zur exakten Lösung von Gleichungen 4. Grades, aber auch das sehr versierte MAPLE streicht hier die Waffen. Und selbst wenn irgend ein anderes Programm die exakte Lösungsformel zustandebringen sollte - sie ist so unüberschaubar, daß niemand etwas damit anfangen kann. Versuchen wir es also näherungsweise - für die Praxis braucht man ohnehin Dezimaldarstellungen und nicht irgendwelche chaotischen Wurzelausdrücke.

Stichprobenartig eingesetze Werte liefern zunächst

< 0 ( )f −1 , <

f −

1

20 , < ( )f 0 0 , < ( )f 1 0 , < 0

f

3

2 ,

und der Zwischenwertsatz verrät uns, daß sowohl zwischen −1 und −1

2 als auch zwischen 1 und

3

2

eine Nullstelle liegen muß. Es ist also vernünftig, diese Zahlen als Startwerte zu nehmen. Für den Startwert

= a0 −1

berechnet MAPLE bei schrittweise verdoppelter Stellenzahl

, , = k 0 = ak -1. = ( )f ak 1.

, , = k 1 = ak -0.80 = ( )f ak 0.2096000000

, , = k 2 = ak -0.7312 = ( )f ak 0.01714043591

, , = k 3 = ak -0.72454848 = ( )f ak 0.0001425057630

, , = k 4 = ak -0.7244919629910424 = ( )f ak 0.1006055827 10-7

, , = k 5 = ak -0.72449195900051563148076470985776 = ( )f ak 0.5015091497 10-16

= k 6 = ak -0.7244919590005156115883722821870370600978455954423770171218710302, ,

= ( )f ak 0.1246213427 10-32

Und für den Startwert = b0 1 kommt heraus:

, , = k 0 = bk 1. = ( )f bk -1.

, , = k 1 = bk 1.3 = ( )f bk 0.8271604938

, , = k 2 = bk 1.236 = ( )f bk 0.09659632871

, , = k 3 = bk 1.2210590 = ( )f bk 0.001977477570

, , = k 4 = bk 1.220744225795051 = ( )f bk 0.8862015978 10-6

, , = k 5 = bk 1.2207440846057878724120649605478 = ( )f bk 0.1782394837 10-12

= k 6 = bk 1.220744084605759475361685350257557482895676462493199013748970373, ,

= ( )f bk 0.7210194350 10-26

Page 3: 7.9A. Nullstellensuche nach Newtonerne/Mathematik2/dateien/maple/MB_7_9… · Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau: -0.724491959000515611588372282187

Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau:

,-0.724491959000515611588372282187 1.22074408460575947536168534911

Die Newton-Approximationen konvergieren so rasant gegen je eine Nullstelle, daß bereits nach drei Schritten die Tangenten im Bild sich nicht mehr von der Kurve unterscheiden lassen und die Zahl der korrekten Dezimalstellen nach dem Komma sich pro Schritt etwa verdoppelt. Das ist kein Zufall, wie die folgende raffinierte Anwendung des Mittelwertsatzes allgemein zeigt: Konvergenz des Newton-Verfahrens

Ist f stetig differenzierbar und die Ableitung nirgends Null, so gibt es zu einer Nullstelle a von f und jeder Vorgabe ε > 0 ein δ > 0, so daß für Startwerte a0, die weniger als δ von a entfernt sind,

alle Iterationen ak die folgende Abschätzung erfüllen:

≤ − a + k 1 a − ak a ε.

Induktiv folgt dann

≤ − ak a − a0 a εk < δ εk.

Falls f zweimal stetig differenzierbar ist, kann δ > 0 sogar so gewählt werden, daß die Iterationsfolgen ak "quadratisch" konvergieren, d.h.

≤ − a + k 1 a γ − ak a2

mit einer geeigneten Konstante γ.

Durch Logarithmieren zur Basis 10 wird daraus

≤ ( )log − a + k 1 a + 2 ( )log − ak a ( )log γ ,

und das ist im Wesentlichen (bis auf die additive Konstante ( )log γ ) die Aussage, daß sich die Anzahl der korrekten Nachkommastellen beim Schritt von ak zu a + k 1 ungefähr verdoppelt. So frappierend und effektiv das Newtonsche Verfahren ist - es klappt nicht immer.

Page 4: 7.9A. Nullstellensuche nach Newtonerne/Mathematik2/dateien/maple/MB_7_9… · Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau: -0.724491959000515611588372282187

Beispiel 2: Ein Halbkreis

Es kann passieren, daß die Glieder der Iterationsfolge aus dem Definitionsbereich der Funktion hinausrutschen. Das ist zum Beispiel bei der Halbkreisfunktion

− 1 x2

schon im ersten Schritt der Fall, wenn man nicht gerade mit einer der beiden Nullstellen startet.

Beispiel 3: Ein Flip-Flop

Es kann auch vorkommen, daß man einen Startwert erwischt, von dem aus das Verfahren ständig zwischen zwei Werten hin und her springt, etwa bei der Funktion

= ( )f x − x3 x

mit der Ableitung

= ( )f ´ x − 3 x2 1

und dem Startwert

= a0

1

5 .

Denn dann ergibt sich

= − 5 a0

21 0 , = − 2 6 a0

2 − 1 a0

2 , = 2 a0 ( ) − 1 3 a0

2a0 ( ) − 1 a0

2 ,

= a1 − a0

− a0

3a0

− 3 a0

21

= −a0 und = a2 − a1

− a1

3a1

− 3 a1

21

= −a1 = a0 .

Das ist aber nicht schlimm - wir verschieben den Startwert einfach etwas und nehmen z.B.

Page 5: 7.9A. Nullstellensuche nach Newtonerne/Mathematik2/dateien/maple/MB_7_9… · Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau: -0.724491959000515611588372282187

:= a0 0.4

... und schon konvergiert die Folge wie der Wirbelwind gegen 0.

, , , , ,0.4 -0.2461538462 0.0364566877 -0.00009729639 0.184 10-11 0.

Beim Startwert = a0 .5 ergibt sich zufällig schon als erste Iteration die Nullstelle −1, aber das ist

die von .5 am weitesten entfernte! Das Auffinden eines günstigen Startwertes für das Newton-Verfahren ist nicht immer einfach. Man wird zunächst versuchen, gewisse Bereiche einzugrenzen, innerhalb derer eine Nullstelle liegen muß. Hat man zum Beispiel zwei Stellen gefunden, an denen die Funktion verschiedenes Vorzeichen hat, so sichert der Zwischenwertsatz die Existenz einer dazwischen liegenden Nullstelle. Sollte die Funktion im gesamten Definitionsbereich keinen Vorzeichenwechsel haben, so muß bei einer Nullstelle ein Extremum liegen, und die Ableitung hat dort eine Nullstelle. Man kann dann mit f ´ ebenso verfahren wie mit f . Der folgende Satz ist deshalb nützlich, weil man unter den genannten Voraussetzungen sicher sein kann, daß das Verfahren konvergiert, ohne bereits nahe an einer Nullstelle zu starten.

Konvergenzsatz

Gegeben sei eine auf dem kompakten Intervall [ ,a b] zweimal stetig differenzierbare Funktion f , so daß zwar f , aber weder f ´ noch f ´´ in [ ,a b] eine Nullstelle hat.

Liegen die Iterationswerte a1 für = a0 a und b1 für = b0 b ebenfalls in [ ,a b], so liegt für jeden

Startwert x0 aus [ ,a b] auch die zugehörige Iterationsfolge ganz in diesem Intervall und konvergiert quadratisch gegen eine Nullstelle von f .

Berechnung von Wurzeln

Schließlich soll nicht unerwähnt bleiben, daß das uralte Babylonische Wurzelziehen (siehe 4.4) ein Spezialfall des Newton-Verfahrens ist: Für

= ( )f x − x2 z

lautet die Iteration

= a + k 1 − ak

− ak

2z

2 ak

= − ak

2

z

2 ak

.

Page 6: 7.9A. Nullstellensuche nach Newtonerne/Mathematik2/dateien/maple/MB_7_9… · Mit Digits:=30 und fsolve liefert MAPLE die beiden Nullstellen auf 30 Stellen genau: -0.724491959000515611588372282187

Ebenso kann man mit dem Newton-Verfahren auch Wurzeln höheren Grades sehr schnell näherungsweise berechnen: Um die n-te Wurzel aus einer positiven Zahl z zu finden, sucht man die Nullstelle der Funktion

= ( )f x − xn z.

Daß es eine solche Nullstelle gibt, sichert der Zwischenwertsatz, denn = ( )f 0 −z ist kleiner als 0 und ( )f + z 1 ist größer als 0. Daß es genau eine gibt, folgt aus der strengen Monotonie der Funktion im positiven Bereich. Wir leiten also ab:

= ( )f ´ x n x( ) − n 1

und erhalten die Rekursion

= a + k 1 − ak

− ak

nz

n ak

( ) − n 1 = −

− 1

1

nak

z

n ak

( ) − n 1 .

Beispiel 4: Vierte Wurzel aus 5

Wir starten mit dem (schon recht guten) Wert

:= a0

3

2

und iterieren, wobei wir beim k-ten Schritt + 2k 1 Nachkommastellen von ak angeben:

, = k 0 = ak 1.50

= ( )f ak 0.06250000000

, = k 1 = ak 1.495

= ( )f ak 0.0002887569371

, = k 2 = ak 1.49535

= ( )f ak 0.6253121338 10-8

, = k 3 = ak 1.495348781

= ( )f ak 0.2932614481 10-17

, = k 4 = ak 1.49534878122122054

= ( )f ak 0.6450170771 10-36

, = k 5 = ak 1.495348781221220541911898994140913

= ( )f ak 0.3120352723 10-73

, = k 6 = ak 1.49534878122122054191189899414091339536345975761470634551659350005

= ( )f ak 0.7302450836 10-148

Das ist nach 6 Iterationen bereits auf 64 Stellen genau! MAPLE bestätigt:

= 5( ) / 1 4

1.495348781221220541911898994140913395363459757614706345516593500048

aber auch das ist natürlich nur ein Näherungswert, denn die vierte Wurzel aus 5 ist irrational.