Kurs:Numerik I/Nullstellenverfahren

Aus testwiki
Zur Navigation springen Zur Suche springen

Nullstellenbestimmung reeller Funktionen einer Veränderlichen

Häufig sucht man in Anwendungen für eine gegebene stetige Funktion f𝒞([a,b],) eine Nullstelle (auch Wurzel genannt), d. h. einen Punkt x*(a,b) mit f(x*)=0.

Diffentialrechnung - Extremalpunkte

Weiß man zusätzlich, dass die Funktion 2x stetig differierbar g𝒞2([a,b],) ist, benötigt man für die Bestimmung der Extremalpunkte einer Funktion g die Nullstellen der 1. Ableitung und man setzt dazu f:=g und wendet auf f das Nullstellenverfahren an. Mit der 2. Ableitung entscheidet man, ob ein Minimum oder Maximum vorliegt.

Wurzeln mit Nullstellenverfahren bestimmen

Wenn die Wurzel c für c>0 näherungsweise bestimmen möchte, sucht man z.B. für nach der Nullstelle der Funktion f(x):=x2c

  • in dem Intervall [a,b]:=[1,c] für c1 und
  • in dem Intervall [a,b]:=[0,1] für 0<c<1.

Fixpunkte

Ein Fixpunkt x[a,b] einer Funktion g:[a,b] ist ein Punkt mit der Eigenschaft g(x)=x, also dem Schnittpunkt des Graphen von g mit der Winkelhalbierenden. Auch diese Problem kann man in ein Problem der Nullstellensuche überführen, indem man f:[a,b] über f(x):=g(x)x definiert. Ein Fixpunkt von g ist damit eine Nullstelle von f.

Aufgaben

  • Analysieren die folgenden Nullstellenverfahren und berechnen Sie die Wurzel von 5 näherungsweise mit Tabellenkalkulation (LibreOffice).
  • Definieren Sie eine Funktion f:[a,b] mit der man die 3. Wurzel aus c bestimmen kann.
  • Geben Sie eine Funktion f:[a,b] mit dem Intervall [a,b] an, wobei man mit Nullstellenverfahren die Stellen x[a,b] näherungsweise bestimme kann, für die sin(x)=cos(x) gilt.

Startintervall für Nullstellenverfahren

Ist eine Funktion f:[a,b] gehen, so ist es im allgemeinen nicht notwendigerweise der Fall, dass f(a)f(b)<0 gilt und damit eine Vorzeichenwechsel bei den Intervallrenzen vorliegt. In einem solchen Fall kann ggf. auf ein Teilintervall [α,β] in [a,b] übergehen, für das f(α)f(β)<0.

Teilintervall mit Vorzeichenwechsel

Um eine möglichst gute Startnäherung für jede solche Nullstelle zu erhalten, sucht man dann Teilintervalle [α,β] in [a,b], in dem ein Vorzeichenwechsel f(α)f(β)<0 vorliegt und möglichst nur eine Nullstelle x*[α,β] liegt.

Zerlegung des Intervalls in Teilintervalle

Dazu berechnet man im Allgemeinen Funktionswerte f(ξi) mit

ξi:=a+ih(i=0,,n),h:=bam

für ein gegebenes, genügend großes m. Dadurch zerlegt man das Ausgangsintervall [a,b] in m Teilintervalle und identifiziert die Teilintervalle in denen ein Vorzeichenwechsel vorliegt.

Funktionswerte an Gitterpunkten

Die Menge aller ξi bezeichnet man auch als ein Gitter in [a,b], die ξi selbst als Gitterpunkte und den Prozess der Auswahl von endlich vielen Punkten aus [a,b] als Diskretisierung des Intervalls.

Zwischenwertsatz - Analysis

Sind f(ξi)0 und f(ξi+1)0 (anderenfalls hätte man eine Nullstelle von f gefunden) und ist

f(ξi)f(ξi+1)<0(i=0,,n1),

so muss f nach dem Zwischenwertsatz im Intervall [ξi,ξi+1] eine (einfache) Nullstelle besitzen und können wir α:=ξi und β:=ξi+1 setzen.

Anwendung unterschiedlicher Nullstellenverfahren

Es werden im Folgenden eine Reihe von Verfahren behandelt, die, ausgehend von einem solchen Intervall mit Vorzeichenwechsel, unter geeigneten Bedingungen eine genäherte Nullstelle von f liefern. Dabei geht man davon aus, dass eine Funktion zumindest stetig ist, denn f𝒞([a,b],) liefert dem Zwischenwertsatz die Existenz einer Nullstelle x*(a,b) mit f(x*)=0. Für das Newtonverfahren benötigt man noch die zusätzliche Eigenschaft der Differenzierbarkeit, weil die Ableitung f(xn) für die Interation von xn zu xn+1 benötigt wird.

Bemerkung

Im Folgenden wird vorausgesetzt, dass f(a)f(b)<0 für f:[a,b] erfüllt ist.


Das Bisektionsverfahren

Das erste Verfahren, das wir vorstellen wollen, ist das Intervallschachtelungs- oder auch Bisektionsverfahren. Bei diesem wird, beginnend mit dem Intervall [a0,b0][a,b], eine Folge von Intervallen [ak,bk] erzeugt, so dass f(ak)f(bk)<0 und damit x*(a,b) gilt. Dieses Verfahren verwendet in jeder Iteration als einzige Information nur die Vorzeichen der Funktionswerte an den Randpunkten des aktuellen Intervalls, so dass keine schnelle Konvergenzgeschwindigkeit zu erwarten ist.

Animation - Bisektionsverfahren

Ablauf der Bisektion (Animation)


Algorithmus - Bisektionsverfahren

(0) Gib a0,b0[a,b] mit f(a0)f(b0)<0 und ε>0. Setze k=0.
(1) Berechne xk+1:=12(ak+bk) und f(xk+1).
(2) Falls |f(xk+1)|ε, stop!
(3) Falls f(ak)f(xk+1)<0, setze ak+1:=ak,bk+1:=xk+1.
Falls f(ak)f(xk+1)>0, setze ak+1:=xk+1,bk+1:=bk.
(4) Setze k:=k+1 und gehe nach (1).

Intervallbreite im Bisektionsverfahren

Offenbar gilt für die Länge der bei der Bisektionsmethode erzeugten Intervalle [ak,bk]

|bkak|=12|bk1ak1|=12k|b0a0|,k=0,1,.

Wenn Algorithmus in Schritt (2) nicht abgebrochen wird, folgt damit

limk|bkak|=0.

Einschachtelung der Nullstelle

Wegen ak+1x*bk+1 sowie xk+1=ak+1 oder xk+1=bk+1 hat man weiter mit der Abschätzung der Intervallbreite

|xk+1x*||bk+1ak+1|12k+1|b0a0|,k=0,1,

und demnach

limkxk=limkak=limkbk=x*.

Bemerkung - Abbruchkriterium Bisektionsverfahren

Die Abbruchbedingung (2) |f(xk+1)|ε schließt u.a. den Fall mit ein, dass f(xk+1)=0 gilt, also bei der Intervallmitte bereits die gesuchte Nullstelle gefunden wurde.

Abbruchkriterium

Da f(x*)=0 und f stetig ist, ist daher das Abbruchkriterium |f(xk+1)|ε in Schritt (2) von Algorithmus nach endlich vielen Schritten erfüllt. Statt dieses Abbruchkriteriums, das beispielsweise im Fall

0f(x)1,x[a,b]

ungünstig ist, könnte man alternativ oder zusätzlich auch die Abfrage |bkak|ϑ mit einer kleinen Konstante ϑ>0 als Abbruchkriterium verwenden.


Beispiel - Genauigkeit Bisektionsverfahren

Ist b0a0=1, so folgt aus (5.6)

|x1x*|12=0.5,
|x5x*|1250.031,
|x20x*|12200.00000095.

Bemerkung - Konvergenzgeschwindigkeit und Stabilität

Das Bisektionsverfahren ist ein sicheres und numerisch stabiles Verfahren, aber mit langsamer Konvergenz. Es konvergiert i. a. nicht einmal linear. Für die Fehler zweier aufeinander folgender Iterierter xk+1 und xk kann sogar gelten:

|xk+1x*|>|xkx*|.

Beispiel für Fehlervergrößerung in einem Iterationsschritt

Für die Funktion f(x):=x+0.1 kann man die Nullstelle x*=0.1 in [1,1] direkt angeben. Im Beispiel wird diese mit Bisektionsverfahren berechnet. Ferner ist f stetig und erfüllt f(1)<0 und f(1)>0 die Voraussetzung für die Anwendung des Bisektionsverfahrens:

[a0,b0]:=[1,1],x1:=0,f(x1)=0.1>0,
[a1,b1]:=[1,0],x2:=0.5,f(x2)=0.4<0

und demzufolge wird der Fehler von x1 zu x2 größer:

|x1x*|=0.1<|x2x*|=0.3.

Die Regula falsi

Bei der Regula Falsi verwendet man im k-ten Schritt die Sekante, welche die Punkte (ak,f(ak)) und (bk,f(bk)) verbindet. Diese Gerade kann durch Graph einer Funktion gk(x)=ckx+dk dargestellt werden

gk(x)=f(bk)f(ak)bkak=:ck(xak)+f(ak)dk:=f(ak)cak

Schnittpunkt mit der x-Achse

Der Graph der k-ten Sekante gk schneidet die x-Achse in dem folgenden Punkt:

xk+1:=akf(ak)bkakf(bk)f(ak).

Der Punkt xk+1 wird nun als neue Näherung für x* genommen. Ansonsten verfährt man wie bei der Bisektion.

Aufgabe

Zeigen Sie, dass der Punkt xk+1:=akf(ak)bkakf(bk)f(ak) ein Nullstelle der Funktion gk:[ak,bk] ist.

Animation - Regular Falsi

Regula Falsi Animation

Algorithmus (Regula Falsi)

Man startet mit einer stetigen Funktion f:[a0,b0], die auf dem Intervall [a0,b0] einen Vorzeichenwechsel bei den Funktionswerten besitzt (d.h. f(a0)f(b0)<0). Dann berechnet in jedem Iterationsschritt jeweils den Schnittpunkt der Sekante durch die Punkte (ak,f(ak)) und (bk,f(bk)). Die Schnittpunkt teilt das Intervall [ak,bk] in zwei Teilintervalle. Wenn f(xk+1)=0 gilt, hat man eine Nullstelle gefunden. Falls das f(xk+1)=0, betrachtet man das Teilintervall [ak+1,bk+1] in dem dann ein Vorzeichnenwechsel vorliegt.

Algorithmus - Regula Falsi

(0) Gib a0,b0[a,b] mit f(a0)f(b0)<0 und ε>0. Setze k=0.
(1) Berechne xk+1:=akf(ak)bkakf(bk)f(ak) sowie f(xk+1).
(2) Falls |f(xk+1)|ε, stop!
(3) Falls f(ak)f(xk+1)<0, setze ak+1:=ak,bk+1:=xk+1.
Falls f(ak)f(xk+1)>0, setze ak+1:=xk+1,bk+1:=bk.
(4) Setze k:=k+1 und gehe nach (1).

Bemerkung - Abbruchkriterium Regula Falsi

Die Abbruchbedingung (2) |f(xk+1)|ε schließt wieder den Fall mit ein, dass f(xk+1)=0 gilt, also die Sekante durch die Punkte (k,f(k)) die x-Achse bereits in der gesuchten Nullstelle schneidet.

Fehlerabschätzung - Regula Falsi

Für die Regula Falsi ist keine aussagekräftige Fehlerabschätzung erhältlich. Aber sie konvergiert unter gewissen Voraussetzungen mindestens linear (siehe z. B. Stoer). Man beachte, dass wegen f(ak)f(bk)<0 keine Auslöschung bei der Berechnung von xk+1 eintritt, so dass das Verfahren überdies numerisch stabil ist. Die erzeugten Näherungen xk liegen alle im Ausgangsintervall [a0,b0] und können alle auf einer Seite der gesuchten Nullstelle liegen.

Sekantenverfahren

Beim Sekantenverfahren wählt man, ähnlich wie bei der Regula Falsi, die Nullstelle einer Sekante als neue Iterierte, wobei jeweils die Sekante von den beiden letzten Iterationspunkten (xk1,f(xk1)) und (xk,f(xk)) des Graphen von f verbunden werden. Der nächste Stelle xk+1 der Iteration wieder der Schnittpunkt der Sekante gk mit der x-Achse, wenn dieser existiert.

Unterschiede - Regula Falsi und Sekantenverfahren

  • Bei Regula Falsi wird die Sekante zwischen den Punkten (ak,f(ak)) und (bk,f(bk)) gebildet.
  • Beim Sekantenverfahren wird die Sekante zwischen den beiden letzten Iterationspunkten (xk1,f(xk1)) und (xk,f(xk)) des Graphen von f gebildet.

Konsequenzen der Unterschiede - Regula Falsi und Sekantenverfahren

  • Bei Regula Falsi wird die Sekante in einem Teilintervall [ak,bk] zwischen den Punkten (ak,f(ak)) und (bk,f(bk)) gebildet, in dem ein Vorzeichenwechsel f(ak)f(bk)<0. Damit liegt die nachfolgende Iterationstelle xk+1 in dem Teilintervall [ak,bk].
  • Beim Sekantenverfahren kann es möglich sein, dass die Sekantensteigung zwischen den beiden letzten Iterationspunkten (xk1,f(xk1)) und (xk,f(xk)) so gering ist, dass der Schnittpunkt mit der x-Achse außerhalb des Definitionsbereiches [a,b] liegt.
  • Im ungünstigen Fall, dass f(xk1)=f(xk) gilt, hat die Sekante sogar überhaupt keinen Schnittpunkt mit der x-Achse und das Verfahren bricht ab.

Wahl der Startwerte - Sekantenverfahren

Im Allgemeinen kann man zwei Startstellen x1,x0[a,b] wählen, die die Eigenschaft haben sollten, dass die zugehörige Sekante g0 eine Schnittpunkt mit der x-Achse in [a,b] besitzt. Dabei muss nicht notwendig f(x1)f(x0)<0 gelten. Wenn allerdings die Voraussetzung f(a)f(b)<0 erfüllt ist, so kann man analog zu Regula Falsi x1:=a und x0:=b wählen. In weiteren Iterationsschritten werden sich dann aber die Sekanten von Regula Falsi und dem Sekantenverfahren unterscheiden.

Berechnung der Nullstelle der Sekanten

Die Nullstelle der Sekante beim Sekantenverfahren ist offenbar durch

xk+1:=xkf(xk)xkxk1f(xk)f(xk1)

gegeben.

Animation (Sekantenverfahren)

Animation Sekantenverfahren

Algorithmus - Sekantenverfahren

(0) Gib x1,x0[a,b] und ε>0. Berechne f(x1) sowie f(x0) und setze k=0.
(1) Berechne
xk+1:=xkf(xk)xkxk1f(xk)f(xk1)
sowie f(xk+1).
(2) Falls |f(xk+1)|ε, stop!
(3) Setze k:=k+1 und gehe nach (1).

Bemerkung - Korrektur der Iterierten

Man beachte hier beim Sekantenverfahren in Schritt (1), dass man die Iterierte im (k+1)-ten Schritt eines Verfahrens meist als Korrektur der Iterierten im k-ten Schritt schreibt, also in der Form xk+1:=xk+hk mit einem hk mit:

hk:=f(xk)xkxk1f(xk)f(xk1)

Bei Konvergenz des Verfahrens gegen x*0 muss man |hk||xk| zumindest für größere k voraussetzen, dass also die Iterationsstellen genügend nahe bei der gesuchten Nullstelle x*0 liegen.

Konvergenz vom Sekantenverfahren

Während bei dem Bisektionsverfahren und der Regula Falsi die Konvergenz durch den Vorzeichenwechsel in dem jeweils betrachtet nächsten Teilintervall [ak,bk] mit xk+1[ak,bk] und den sich immer weiter halbierende Intervallen sofort einleuchtet, ist das beim Sekantenverfahren nicht klar.

Monotonie

Bei Regula Falsi wird die Sekante bzgl. der Intervallgrenzen von [ak,bk] gebildet, was zu einer monoton steigenden Folge (ak)k0 und einer monoton fallenden Folge (bk)k0 führt, die beide gegen die Nullstelle konvergieren x*. Beim Sekantenverfahren weist die Folge der Iterationsstellen (xk)k0 in der Regel kein Monotonieverhalten auf (weder steigend noch fallend)

Intervalle aus Interationstellen

Auch der Fall

  • xk+1[xk1,xk] bei xk1xk bzw.
  • xk+1[xk,xk1] bei xkxk1

muss im Allgemeinen beim Sekantenverfahren nicht gelten, so dass das Verfahren im Allgemeinen nur lokal konvergiert. Genauer kann man den folgenden Satz beweisen (vgl. Isaacson and Keller[1]):

Unterschied zwischen Sekantenverfahren und Regula Falsi

Bei der Anwendung des Sekantenverfahrens wird die Sekanten immer bzgl. der beiden vorhergehenden Iterationsstellen xk1 und xk gebildet und damit die nächste Iterationsstelle xk+1 berechnet, während bei der Regula Falsi die Sekante bzgl. der linken und rechten Intervallgrenze ak bzw. bk gebildet wird, in dem ein Vorzeichenwechsel der stetigen Funktion zu finden ist.


Konsequenz der Unterschiede zwischen Sekantenverfahren und Regula Falsi

Als Konsequenz der der Unterschiede zwischen Sekantenverfahren und Regula Falsi ergibt sich daher,

  • dass bei der Regula Falsi der nächste Iterationspunkt xk+1 immer im Intervall [an,bn] liegen muss,
  • dass bei dem Sekantenverfahren der Schnittpunkt der Sekante mit der x-Achse nicht notwendigerweise zwischen xn und xn1 liegen muss.

Ferner ergeben sich auch Unterschiede in der Konvergenzgeschwindigkeit.

Satz - Konvergenz Sekantenverfahren

Sei f𝒞2([a,b],), und es existiere ein x*[a,b] mit f(x*)=0 und f(x*)0. Sind die Anfangsnäherungen x1 und x0 hinreichend nahe bei x* gewählt, so konvergiert nach Streichung des Abbruchkriterium in Schritt (2) durch das Sekantenverfahren erzeugte Folge (xk) superlinear gegen x* von der Ordnung p:=(1+5)/2=1.618.

Bemerkung - Konvergenz Sekantenverfahren

Das Sekantenverfahren konvergiert also im Allgemeinen schneller als das Bisektionsverfahren und die Regula Falsi. Anders als diese, neigt es aber zu instabilem Verhalten, da der Fall sgn(f(xk))=sgn(f(xk1)) und damit Auslöschung bei der Berechnung von xk+1 eintreten kann.

Die schnelle Konvergenz des Sekantenverfahrens soll an einem Beispiel demonstriert werden.

Beispiel - Berechnung Wurzel 2 mit Sekantenverfahren

Es soll 2 berechnet werden. Dies kann man tun, indem man die positive Nullstelle der Funktion f(x):=x22. Mit dem Startintervall [a,b]:=[2,0] sucht man die Nullstelle x*=2 und z.B. mit dem Startintervall [a,b]:=[0,5] bestimmt man näherungsweise die Nullstelle x*=2. In dem folgenden Beispiel setzen wir [a,b]:=[0,5].

Näherungsweise Angabe der Nullstelle

Der gesuchte Wert lautet auf 12 Stellen hinter dem Dezimalpunkt genau

2=1.414213562373.

Vereinfachung der Interationsvorschrift

Die Iterationsvorschrift des Sekantenverfahrens lässt sich hier durch Anwendung der 3. Binomischen Formel im Quotienten wie folgt vereinfachen:

xk+1:=xk(xk22)=f(x)xkxk1xk2xk12=xkxk22xk+xk1.

Startstellen des Sekantenverfahrens

Die Startstellen sollte nahe bei der gesuchten Nullstelle liegen und verwendet daher als Startstellen x1:=1.3 und x0:=1.5

Interationsschritt 1

Man errechnet mit x1:=1.3 und x0:=1.5 für k:=0

x1:=1.5(1.5)221.5+1.3=1.41071428571.

mit x0:=1.5 und x1:=1.41071428571 für k:=1

Interationsschritt 2

x2:=1.41071428571(1.41071428571)221.41071428571+1.5

usw.

Iteriertenfolge

Insgesamt erhält man die Iteriertenfolge

  • x1=1.41_071428571,
  • x2=1.414_11042945,
  • x3=1.414213_69013,
  • x4=1.41421356237_,,

wobei die richtigen Ziffern jeweils unterstrichen sind.

Bemerkung - Berechnungsaufwand

Hätte man mit der ursprünglichen Formel gearbeitet, wie man das meist in der Praxis zu tun hat, so hätte man 2 Funktionsauswertungen von f zur Berechnung von x1 und jeweils eine für die von x2 bis x4, d. h. insgesamt 5 Funktionsauswertungen zur Berechnung von x4 benötigt.

Funktionsauswertungen sind in vielen Situationen ein gutes praktisches Vergleichskriterium für unterschiedliche Algorithmen zur Lösung eines Problems, da diese häufig die numerisch teuersten Teilaufgaben bei der Problemlösung darstellen.

Newton-Verfahren für Nullstellen

Es sei nun f𝒞1[a,b] und die Existenz eines x*(a,b) mit f(x*)=0 vorausgesetzt. Beim Newton-Verfahren benötigt man nur eine Startnäherung x0(a,b) für x*. Ist xk die Näherung für x* zu Beginn der k-ten Iteration, so wählt man bei diesem Verfahren die Nullstelle xk+1 der Tangente im Punkt (xk,f(xk)) an den Graphen von f als nächste Näherung.

Gleichung der Tangente

Die Funktion gk:[a,b], dessen Graph die Tangente in xk[a,b] beschreibt, wird wie folgt definiert:

g(x):=f(xk)+f(xk)(xxk)

gegeben, so dass man g(x)=0 für folgendes xk+1 erfüllt ist:

xk+1:=xkf(xk)f(xk)

erhält.

Aufgaben

  • Erläutern Sie an einem Schaubild/Zeichnung die Herleitung des Funktionsterms von g(x)!
  • Erläutern Sie an einem eigenzeichnet Steigungsdreieck in einer Skizze die geometrische Herleitung des Terms xk+1:=xkf(xk)f(xk)!

Bemerkung - Eigenschaft der Ableitung an der gesuchten Nullstelle

Wenn wir beispielsweise f(x*)0 voraussetzen (x* ist dann eine einfache Nullstelle), können wir dabei zumindest für solche xk, die nahe bei x* liegen, f(xk)0 annehmen. Wenn die Ableitung stetig ist, gibt es eine Umgebung (x*ε,x*+ε), in der f nur positiv (streng monoton steigend) oder nur negativ ist (streng monoton fallend).

Abgebraische und geometrische Konsequenzen von f'(x)=0

  • (Algebra) Wenn man sich die Iterationsvorschrift vom Newtonverfahren ansieht, führt f(xk)=0 im Nenner zu einem undefinierten Iterationsschritt für die Definition von xk+1.
  • (Geometrie) Im Fall f(xk)0 und f(xk)=0 hätte die Tangente als Parallele zur x-Achse auch keine Nullstelle, wobei das Newton-Verfahren keine nächste Iterationsstelle liefert.

Animation der Iteration

Animation: Iteration mit dem newtonschen Verfahren

Algorithmus - Newton-Verfahren

(0) Wähle ein ε>0 und x0(a,b), berechne f(x0) und setze k:=0.
(1) Berechne f(xk),
(5.9) xk+1:=xkf(xk)f(xk)
und f(xk+1).
(2) Falls |f(xk+1)|ε, stop!
(3) Setze k:=k+1 und gehe nach (1).

Beispiel - Newton-Verfahren zur Berechnung der Wurzel 2

Man betrachtet nun eine Funktion f:[1,2] mit dem Funktionsterm f(x):=x22 und damit ist f(x)=2x. Gesucht ist die positive Nullstelle 21.414213562373 von f.

Berechnung der Iterationsvorschrift

Die Iterationsvorschrift des Newton-Verfahrens lässt sich hier schreiben als

xk+1:=xkf(xk)f(xk)=xkxk222xk=12xk+1xk.

Startwert der Iteration

Beginnend mit x0:=1.5[1,2] und k:=0 berechnet man die Iterierten

  • x1=1.41_6,
  • x2=1.41421_568627,
  • x3=1.4142135623_8,.

Bemerkung - Notation

Die unterstrichen Ziffern nach dem Iterationsschritt bezeichnen, wie viele Stelle bereits mit der gesuchten Nullstelle von f(x):=x22 übereinstimmen

Berechnungsaufwand

Bei direkter Verwendung von der allgemeinen Iterationsvorschrift

xk+1=xkf(xk)f(xk)

muss man für jeden Iterationsschritt neben Division und Subtraktion einmal f und einmal f auswerten. Das wären für die Berechnung von x3 jeweils 3 Funktionsauswertungen von f und f, also insgesamt 6 Funktionsauswertungen erforderlich gewesen. Das Newtonverfahren ist also in diesem Fall ein sehr schnelles Verfahren.

Vergleich mit Sekantenverfahren im Beispiel

Bei diesem Beispiel f(x):=x22 und der Wahl von Startwerten (!) erreicht das Sekantenverfahren aber mit etwas weniger Aufwand sogar etwas höhere Genauigkeit.

Konvergenz des Newton-Verfahrens

Wir wollen uns nun mit der Konvergenz des Newton-Verfahrens beschäftigen. Dazu holen wir etwas weiter aus. Für eine gegebene Funktion g:nn nennen wir einen Punkt x*n mit

g(x*)=x*

einen Fixpunkt von g. Weiter sprechen wir bei der Iterationsvorschrift

xk+1:=g(xk),k=0,1,2,

von der Fixpunktiteration mit der Verfahrensfunktion g. Ist g stetig und konvergiert die Iteriertenfolge, so muss ihr Grenzwert offenbar notwendig ein Fixpunkt von g sein. Man beachte in diesem Zusammenhang, dass x* genau dann Fixpunkt von g ist, wenn x* Nullstelle z. B. der Funktion f(x):=g(x)x ist, dass also die Probleme der Bestimmung einer Nullstelle und der eines Fixpunktes einer Funktion äquivalent sind.

Bemerkung

Wir beweisen nun folgenden allgemeinen Satz über die lokale Konvergenz der Fixpunktiteration, wobei

𝒰δ(x*):={x:|xx*|<δ}

eine offene δ-Umgebung des Punktes x* bezeichne.

Konvergenzsatz - Fixpunktiteration

Sei g: gegeben und x* Fixpunkt von g. Weiter sei g in x* p-mal differenzierbar mit einem p, und es gelte entweder

  • g(k)(x*)=0,k=1,,p1, für p2 oder
  • 0<|g(x*)|<1, für p=1.

Dann existiert ein δ>0, so dass die durch xk+1:=g(xk),k0 erzeugte Iteriertenfolge (xk) für jeden Startpunkt x0𝒰δ(x*) gegen x* konvergiert und zwar mindestens von der Ordnung p. Im Fall g(p)(x*)0 ist die Konvergenzordnung genau p.

Beweis - Konvergenzsatz - Fixpunktiteration

Taylorentwicklung von g um x* liefert für beide Fälle in (5.10)

g(x)=i=0pg(i)(x*)i!(xx*)i+o(|xx*|p)
=g(x*)=x*+g(p)(x*)p!(xx*)p+o(|xx*|p) für xx*

Somit hat man

(5.11) |g(x)x*(xx*)pg(p)(x*)p!|0(xx*),

so dass zu einem gegebenen ε>0 ein δ>0 existiert und

|g(x)x*|(ε+|g(p)(x*)|p!)|xx*|p
(5.12) =[C|xx*|p1]|xx*|=C~(x)|xx*|,x𝒰δ(x*)

mit C:=ε+|g(p)(x*)|/p! und C~(x):=C|xx*|p1 gilt. Im Fall p=1 sei dabei ε so klein gewählt, dass

C~:=C~(x)C=ε+|g(x*)|<1

ist, was aufgrund der Voraussetzung |g(x*)|<1 möglich ist. Für p>1 ist es offenbar möglich, δ so klein zu wählen, dass C~(x)0.5=:C~<1 für alle x𝒰δ(x*) folgt.

Die Ungleichung (5.12) impliziert nun für |xx*|δ auch |g(x)x*|δ und damit im Fall x0𝒰δ(x*) auch xk𝒰δ(x*) für alle k, so dass man

|xk+1x*|C|xkx*|pC~|xkx*|C~k+1|x0x*|,k0

hat und daraus wegen C~<1 die Konvergenz limkxk=x* von mindestens der Ordnung p schließen kann. Ist die Zusatzbedingung g(p)(x*)0 erfüllt und wird oben ε so gewählt, dass 0<ε<|g(p)(x*)|/p! gilt, so gilt wegen (5.11)

(5.13) |g(x)x*|(|g(p)(x*)|p!ε)|xx*|p=:C^|xx*|p,x𝒰δ(x*)

Daraus folgt die genaue Konvergenzordnung p in diesem Fall, denn wäre diese mindestens p+1, so folgte mit (5.13) für ein C und ein k0

C^|xkx*|p|xk+1x*|C|xkx*|p+1,kk0

und damit im Widerspruch zu Konvergenz von (xk) gegen x*

0<C^C|xkx*|,kk0.

q.e.d.

In dem folgenden Satz wird nun unter verschiedenen Voraussetzungen eine jeweilige Konvergenzordnung des Newton-Verfahrens angegeben.

Konvergenzsatz - Newton-Verfahren

Es sei f: gegeben und es existiere x* mit f(x*)=0. Mit einem η>0 sei weiter für Aussage (i) f𝒞3(𝒰η(x*)) und für Aussage (ii) fC2(𝒰η(x*)). Dann gilt nach Streichung von Schritt (2) für die durch das Newton-Verfahren (Algorithmus 8) erzeugte Folge (xk):

  • (i) Ist f(x*)0, dann existiert ein δ(0,η], so dass (xk) für jeden Startpunkt x0𝒰δ(x*) gegen x* konvergiert und zwar mindestens quadratisch. Im Fall f(x*)=0 konvergiert (xk) sogar von einer Ordnung p3.
  • (ii) Ist x* andererseits eine m-fache Nullstelle von f mit einem m2, d. h., ist
f(x)=(xx*)mz(x),z(x*)0
und ist weiter z in x* zweimal differenzierbar, so ist die Iterationsfunktion
(5.14) g(x):={xf(x)f(x),falls xx*,x*,falls x=x*

des Newton-Verfahrens differenzierbar in x* mit (5.15) g(x*)=11m und existiert ein δ(0,η], so dass (xk) für jeden Startpunkt x0𝒰δ(x*) (genau) linear gegen x* konvergiert.

Beweis.

Die Behauptung folgt mit Satz 5.9, wenn man diesen auf g in (5.14) anwendet sowie mit den folgenden Darstellungen. Im Fall (i) zeigt man zunächst die Stetigkeit von g,g und g in x*. Man ermittelt dann

g=1(f)2ff(f)2=ff(f)2,g=(f)3f+f(f)2(f)2ff(f)2(f)4,

so dass also

g(x*)=x*,g(x*)=0,g(x*)=f(x*)f(x*)

gilt. Damit folgt die Behauptung.

Im Fall (ii) erhält man

f(x)=m(xx*)m1z(x)+(xx*)mz(x)

und somit

(5.16) f(x)f(x)=(xx*)z(x)mz(x)+(xx*)z(x).

Wegen z(x*)0 folgt damit limxx*f(x)/f(x)=0 und ist demzufolge g aus (5.14) stetig in x*. Weiter hat man mit (5.16) wegen f(x*)=0

g(x*)=limh0g(x*+h)g(x*)h=limh0x*+hf(x*+h)f(x*+h)x*h=1limh0f(x*+h)hf(x*+h)
=1limh0hz(x*+h)h[mz(x*+h)+hz(x*+h)]=11m.

Also ist 0<g(x*)<1 und damit insbesondere auch g(x*)0.

q.e.d.

Man beachte, dass das Newton-Verfahren pro Iteration zwei Funktionsauswertungen benötigt, während das Sekanten-Verfahren nur eine verlangt. Im Fall, dass der Grenzwert eine einfache Nullstelle ist, konvergiert letzteres Verfahren unter geeigneten Voraussetzungen aber nur superlinear, während das Newton-Verfahren dann mindestens quadratisch konvergiert. Es stellt sich also die Frage, welches der Verfahren in der Praxis effizienter ist. Bemerkenswert ist es daher, dass man zeigen kann, dass das Sekantenverfahren, wenn man zwei Iterationen zu einer zusammenfasst und es damit etwa gleichen Aufwand pro Iteration wie das Newton-Verfahren bekommt, eine Konvergenzrate von mindestens p:=2.618 hat, und es folglich lokal schneller als das Newton-Verfahren konvergiert. Allerdings neigt das Sekanten-Verfahren, anders als das Newton-Verfahren, aufgrund von Auslöschungen zu instabilem Verhalten.

Literatur

  1. Isaarcson E., Bishop Keller, H. (1966) Analysis of Numerical Methods, Wiley Sons URL: https://vdocument.in/isaacson-keller-analysis-of-numerical-methods.html?page=1

Siehe auch

Seiteninformation

Diese Lernresource können Sie als Wiki2Reveal-Foliensatz darstellen.

Wiki2Reveal

Dieser Wiki2Reveal Foliensatz wurde für den Lerneinheit Kurs:Numerik I' erstellt der Link für die Wiki2Reveal-Folien wurde mit dem Wiki2Reveal-Linkgenerator erstellt.