20.11.2013 Aufrufe

6. Numerische Lösung des Nullstellenproblems

6. Numerische Lösung des Nullstellenproblems

6. Numerische Lösung des Nullstellenproblems

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Problemstellung<br />

<strong>6.</strong> <strong>Numerische</strong> <strong>Lösung</strong> <strong>des</strong><br />

<strong>Nullstellenproblems</strong><br />

Zwischenwertsatz:<br />

Sei f : [a,b] → R stetig und c ∈ R mit<br />

f(a) ≤ c ≤ f(b) oder f(b) ≤ c ≤ f(a).<br />

Dann gibt es ein x ∈ [a,b] mit f(x) = c.<br />

Frage: Wie lässt sich x bestimmen?<br />

Nullstellenproblem: c = 0.<br />

1<br />

2<br />

Bisektionsverfahren<br />

Fixpunktiteration (1)<br />

Einfach Methode: Unterteile Intervall in der Mitte und berechne den<br />

Wert. Der gesuchte Wert muss in einer der beiden Teilintervalle liegen.<br />

Für eine Nullstelle:<br />

Definition:<br />

Eine Gleichung der Form F(x) = x heißt Fixpunktgleichung. Ihre<br />

<strong>Lösung</strong>en, also ¯x mit F(¯x) = ¯x heißen Fixpunkte<br />

Gegeben sei f : [a 0 ,b 0 ] → R mit f(a 0 )·f(b 0 ) < 0. Erzeuge rekursiv die<br />

Intervalle<br />

⎧ [<br />

⎪⎨ ai , a ]<br />

i+b i<br />

2 falls f ( a i +b i<br />

2<br />

)·f(ai ) ≤ 0<br />

[a i+1 ,b i+1 ] := [<br />

⎪⎩ ai +b i<br />

2 ,b ]<br />

i sonst<br />

Die Nullstelle liegt im Intervall [a i ,b i ] und es gilt<br />

lim (b b−a<br />

i −a i ) = lim<br />

i→∞ i→∞ 2 i = 0.<br />

Definition:<br />

Gegeben sie F : [a,b] → R,<br />

x 0 ∈ [a,b]. Die rekursive Folge<br />

x n+1 := F(x n ), n = 0,1,...<br />

heißt Fixpunktiteration von F<br />

zum Startwert x 0 .<br />

X 2<br />

X 1<br />

X 3<br />

4<br />

X 0<br />

X 1<br />

X 2<br />

X 3<br />

3<br />

numinf_6_nullstellen 1


Fixpunktiteration (2)<br />

Fixpunktiteration (3)<br />

Beispiel<br />

Bestimme die Nullstelle von p(x) = x 3 −x+0.3.<br />

Methode: Führe die Fixpunktiteration x n+1 = F(x n ) = x 3 n +0.3, durch<br />

Ergebnis:<br />

• Startwert x 0 = −1: konvergiert gegen x = 0.3389...<br />

Satz<br />

Sei F : [a,b] → R mit stetiger Ableitung F ′ und ¯x ∈ [a,b] ein Fixpunkt<br />

von F. Dann gilt für die Fixpunktiteration x n+1 = F(x n )<br />

• Ist |F ′ (¯x)| < 1, so konvergiert x n gegen ¯x, falls der Startwert x 0<br />

nahe genug bei ¯x liegt. Der Punkt ¯x heißt anziehender Fixpunkt.<br />

• Ist |F ′ (¯x)| > 1, so konvergiert x n für keinen Startwert x 0 ≠ ¯x. Der<br />

Punkt ¯x heißt abstoßender Fixpunkt.<br />

• Startwert x 0 = 0 : konvergiert gegen x = 0.3389...<br />

• Startwert x 0 = 1: divergiert<br />

5<br />

In unserem Beispiel ist nur der Fixpunkt bei x = 0.3389... anziehend.<br />

Die anderen beiden Fixpunkte (liegen bei den anderen beiden Nullstellen<br />

von p(x)) sind abstoßend.<br />

6<br />

Fixpunktiteration (4)<br />

Fixpunktiteration (5)<br />

Sehr einfaches Anwendungsbeispiel<br />

• Zum diskreten Zeit t i sind k i Menschen an einer Grippe erkrankt<br />

• Die Zahl der Neuerkrankungen ist proportional zur Zahl der möglichen<br />

Begegnungen zwischen kranken und gesunden Menschen.<br />

• Ein zum Zeitpunkt t i kranker Menschen ist zum Zeitpunkt t i+1<br />

wieder gesund.<br />

• Die Übertragungswahrscheinlichkeit sein α, falls alle innerhalb eines<br />

Zeitintervalls miteinander in Kontakt sind.<br />

• Frage: Wie entwickelt sich die Anzahl der kranken?<br />

• Antwort: Iteriere k i+1 = αk i (1−k i )<br />

• Iterationsfunktion: F(x) = αx(1−x)<br />

• Fixpunkt:<br />

¯x = F(¯x) = α¯x(1−¯x) ⇒ ¯x = 1−α<br />

α<br />

• Geometrische Interpretation: Der Fixpunkt ist der Schnittpunkt<br />

der Kurven y = F(x) und y = x.<br />

Die aktuellen Modelle zur Schweinegrippe oder Vogelgrippe funktionieren<br />

analog, sind nur erheblich komplizierter.<br />

7<br />

8<br />

numinf_6_nullstellen 2


Banachscher Fixpunktsatz (1)<br />

Banachscher Fixpunktsatz (2)<br />

Sei F : [a,b] → [a,b] eine kontrahierende Abbildung, d.h. es existiere<br />

eine Konstante α < 1 mit<br />

Dann gilt<br />

|F(x)−F(y)| ≤ α|x−y| für alle x,y ∈ [a,b].<br />

• F hat genau einen Fixpunkt ¯x in [a,b].<br />

• Die Fixpunktiteration x n+1 = F(X n ) konvergiert gegen ¯x für alle<br />

Startwerte x 0 ∈ [a,b].<br />

• Es gelten die Fehlerabschätzungen<br />

|x n − ¯x| ≤ αn<br />

1−α |x 1 −x 0 |<br />

|x n − ¯x| ≤ α<br />

1−α |x n −x n−1 |<br />

a-periori-Abschätzung<br />

a-posteriori-Abschätzung<br />

9<br />

Beweis von Abschätzung 1: mit x n+1 = F(x n ) gilt:<br />

|x n+1 −x n | = |F(x n )−F(x n−1 )| ≤ α|x n −x n−1 |<br />

Damit gilt für zwei Werte |x n und |x k |<br />

≤ α 2 |x n−1 −x n−2 | ≤ ... ≤ α n |x 1 −x 0 |<br />

|x n −x k | = |(x n −x n−1 )+(x n−1 −x n−2 )+...+(x k+1 −x k )|<br />

≤ |(x n −x n−1 )|+|(x n−1 −x n−2 )|+...+|(x k+1 −x k )|<br />

≤ (α n−1 +α n−2 +...+α k )·|x 1 −x 0 |<br />

n−1 ∑<br />

= ( α i k−1<br />

( )<br />

∑<br />

− α i 1−α n<br />

)·|x 1 −x 0 | =<br />

i=0 i=0 1−α − 1−αk ·|x 1 −x 0 |<br />

1−α<br />

Für lim n→∞ wird x n → ¯x und α n → 0 und damit<br />

|¯x−x k | ≤ αk<br />

1−α |x 1 −x 0 |<br />

10<br />

Newtonverfahren (1)<br />

Newtonverfahren (2)<br />

Gesucht ist die Nullstelle einer steig differenzierbaren Funktion f :<br />

[a,b] → R, also f(¯x) = 0.<br />

Zurückführung auf das Fixpunktproblem über Taylorentwicklung<br />

f(x+h) = f(x)+f ′ (x)·h+O(x 2 ) mit x+h = ¯x und x = x k und damit<br />

h = ¯x−x k<br />

0 = f(¯x) = f(x k )+f ′ (x k )(¯x−x k )+O((¯x−x k ) 2 ).<br />

¯x = x k + f(x k)<br />

f ′ (x k ) +O((¯x−x k) 2 )<br />

Setze ¯x → x k+1 . Falls f ′ (x k ) ≠ 0 verwende die Iterationvorschrift unter<br />

Vernachlässigung <strong>des</strong> Terms 2. Ordnung<br />

x k+1 = x k − f(x k)<br />

f ′ (x k )<br />

11<br />

Geometrische Interpretation:<br />

Ersetze f(x) lokal an der Stelle x k<br />

durch die Tangente<br />

t(x) = f(x k )+f ′ (x k )(x−x k )<br />

und bestimme die Nullstelle der<br />

Tangente. Verwende diesen Wert<br />

als Näherung der gesuchten Nullstelle.<br />

y<br />

x<br />

x<br />

1 0<br />

Tangente<br />

Problem:<br />

Ist die Ableitung “klein”, konvergiert das Verfahren eventuell nicht.<br />

f(x ) 0<br />

f(x)<br />

t(x)<br />

x<br />

12<br />

numinf_6_nullstellen 3


Newtonverfahren (3)<br />

Newtonverfahren (4)<br />

Da das Problem äquivalent zu dem Fixpunktproblem ¯x = F(¯x) ist mit<br />

der Fixpunktfunktion<br />

F(x) = x− f(x)<br />

f ′ (x) ,<br />

gelten die Aussagen über Iterationsgleichungen wie z.B. der Banachsche<br />

Fixpunktsatz.<br />

Definition Konvergenzordnung:<br />

Sie x n eine Folge mit lim n→∞ = ¯x. Dann hat das Verfahren die<br />

Konvergenzordnung q ≥ 1, wenn es eine Konstante c > 0 gibt mit<br />

|x n+1 − ¯x| ≤ c·|x n − ¯x| q<br />

Ist q = 1, wird zusätzlich verlangt: c < 1.<br />

13<br />

Das Newtonverfahren für eine stetig differenzierbare Funktion f mit<br />

einfacher Nullstelle ¯x ist lokal quadratisch konvergent.<br />

Beweis:<br />

Taylorentwicklung liefert<br />

0 = f(¯x) = f(x k )+f ′ (x k )(¯x−x k )+ 1 2 f′′ (z)(¯x−x k ) 2<br />

mit einer Zwischenstelle z.<br />

(¯x−x k )+ f(x k)<br />

f ′ (x k ) = (¯x−x k+1) = − 1 f ′′ (z)<br />

2f ′ (x k ) (¯x−x k) 2<br />

1 f ′′ (z)<br />

|¯x−x k+1 | =<br />

∣2f ′ ∣<br />

(x k ) ∣·|¯x−x k| 2 = C|¯x−x k | 2<br />

C ist beschränkt, falls f ′ (x) ≠ 0 in der Umgebung von ¯x<br />

14<br />

Sekantenverfahren<br />

Newton-Verfahren für Polynome<br />

Anstatt die Ableitung zu berechnen,<br />

verwende einen Differenzenquotient.<br />

Mit<br />

f ′ (x k ) ≈ f(x k)−f(x k−1 )<br />

x k −x k−1<br />

= f ′ D (x k)<br />

und<br />

folgt<br />

S(x) = f(x k )+f ′ D (x k)(x−x k )<br />

y<br />

f(x)<br />

Sekante<br />

t(x)<br />

f(x 0<br />

)<br />

f(x 1)<br />

x<br />

x<br />

x 2 0 x<br />

1<br />

Betrachte Polynom mit n reelle Nullstellen ξ 1 > ξ 2 > ... > ξ n .<br />

Das Newton-Verfahren konvergiert für x 0 > ξ 1 gegen die größte Nullstelle.<br />

Methode für alle Nullstellen:<br />

• Bestimme die größte Nullstelle und führe Polynomdivision mit (x−<br />

ξ 1 ) durch.<br />

x<br />

x k+1 = x k − k −x k−1<br />

f(x k )−f(x k−1 ) ·f(x k)<br />

• Vorteil: Berechnung der Ableitungen fällt weg.<br />

• Nachteil: Es werden zwei Startwerte benötigt und die Konvergenz<br />

ist langsamer.<br />

15<br />

• Führe die Prozedur so lange durch, bis alle Nullstellen gefunden<br />

wurden.<br />

• Achtung: Polynomdivision kann zu großen Rundungsfehlern führen<br />

(es gibt Tricks, diese zu vermeiden).<br />

16<br />

numinf_6_nullstellen 4


Newtonverfahren in mehreren Dimensionen (1)<br />

Newtonverfahren in mehreren Dimensionen (2)<br />

Im Allgemeinen liegen mehrere Funktionen f = f 1 ,f 2 ,...,f n , abhängig<br />

von mehreren Variablen x = x 1 ,x 2 ,...,x n vor.<br />

Frage: Wo liegt die Stelle ¯x, an der f Null wird?<br />

Antwort: Verallgemeinere das Newton-Verfahren unter der Verwendung<br />

der so genannten Jacobi-Matrix, die die Ableitungen der Funktionen<br />

nach allen Variablen enthält.<br />

⎛<br />

J =<br />

⎜<br />

⎝<br />

∂f 1<br />

∂x 1<br />

···<br />

. ... .<br />

∂f n<br />

∂x 1<br />

···<br />

⎞<br />

∂f 1<br />

∂x n<br />

⎟<br />

∂f<br />

⎠ n<br />

∂x n<br />

Anstelle von<br />

gilt nun<br />

x k+1 = x k −(f ′ (x k )) −1 ·f(x k )<br />

x k+1 = x k −J −1 f(x k )<br />

Berechnung der inversen Jacobi-Matrix:<br />

J ·J −1 = I<br />

ergibt n 2 Gleichungen für n 2 Unbekannte in J −1 .<br />

(da gibt es viel bessere Verfahren)<br />

17<br />

18<br />

Optimierungsproblem<br />

Optimierungsproblem<br />

Häufige Anwendungen: Gesucht ist das Minimum einer Funktion in<br />

Abhängigkeit von vielen Variablen.<br />

Methode: Bestimme die Nullstelle der ersten Ableitung. In einer Variablen:<br />

x k+1 = x k − f′ (x k )<br />

f ′′ (x k )<br />

Mit mehreren Variablen ist gesucht<br />

min<br />

x 1 ,...,x n<br />

F(x 1 ,...,x n )<br />

Minimum ist dort, wo die Tangenten waagerecht sind.<br />

Das ist dort, wo der Gradientenvektor<br />

⎛ ⎞<br />

∂F ⎛ ⎞<br />

∂x 1<br />

f 1<br />

∇F = ⎜<br />

⎝ . ⎟<br />

⎠ := ⎜ ⎟<br />

⎝ . ⎠ := f<br />

∂F f n<br />

∂x n<br />

eine Nullstelle hat. Das Problem ist äquivalent zum Newtonverfahren<br />

in mehreren Dimensionen. Berechnet werden muss die Ableitung von<br />

f bzw. ∇F, also die 2. Ableitung von F, die Matrix mit den Elementen<br />

Die Matrix heißt Hesse-Matrix.<br />

∂f i<br />

∂x j<br />

= ∂2 F<br />

∂x i ∂x j<br />

19<br />

20<br />

numinf_6_nullstellen 5


Anwendungen<br />

Diverse weitere Variationen dieser Verfahren existieren.<br />

Einige Anwendungen:<br />

• Optimierungsprobleme<br />

• Neuronale Netze<br />

• Iterationsvorschriften als chaotische Systeme, z.B. für Computergrafiken<br />

• Mein Vortrag in der Vortragsreihe WS 2008/2009 <strong>des</strong> FB03, Thema:<br />

“Hat eine Gleichung eine <strong>Lösung</strong>? Ein Computerbeweis”<br />

21<br />

numinf_6_nullstellen 6

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!