30.11.2012 Aufrufe

Numerische Lösung des mathematischen Pendels mit ...

Numerische Lösung des mathematischen Pendels mit ...

Numerische Lösung des mathematischen Pendels mit ...

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.

Automomer Fall<br />

Da wir es in unserem Fall <strong>mit</strong> einer autonomen Differentialgleichung zu tun<br />

haben, vereinfachen sich die Formeln etwas. Die implizite Mittelpunktsregel<br />

wird zu<br />

� �<br />

xl + xl+1<br />

xl+1 = xl + h · f<br />

(2)<br />

2<br />

Da wir es <strong>mit</strong> einem impliziten Verfahren zu tun haben, können wir nicht<br />

die Ergebnisse xl+1 der Einzelschritte nicht einfach hinschreiben, sondern<br />

müssen die Gleichung (2) numerisch lösen. Dafür bieten sich zwei Varianten<br />

an.<br />

Einzelschritte per Newton<br />

Da sich unsere Funktion f leicht differenzieren lässt, könnten wir das Newtonverfahren<br />

verwenden.<br />

Mit g(y) := xl − y + h · f �xl+y �<br />

müssten wir also eine Nullstelle von g<br />

2<br />

finden. Hierbei könnten wir y0 := xl als Startwert nehmen, und verwendeten<br />

dann die normale Newtoniteration<br />

yj+1 = yj + zj, wobei zj <strong>Lösung</strong> von g ′ (yj) · zj = −f(yj).<br />

Auch eine Variante <strong>des</strong> Newtonverfahrens, wie ein Sekantenverfahren, wäre<br />

denkbar.<br />

Einzelschritte nach Banach<br />

Eine einfachere Variante ist eine Fixpunkt-Iteration nach Banach: Wir betrachten<br />

die Funktion<br />

k : R n → R n<br />

� �<br />

xl + y<br />

k(y) := xl + h · f<br />

2<br />

Offensichtlich ist jeder Fixpunkt dieser Funktion eine <strong>Lösung</strong> für (2) und<br />

umgekehrt.<br />

Da unser f lipschitzstetig war, ist dies ebenso für k der Fall. Für h < 2<br />

ist k kontraktierend, und die Iteration<br />

yi+1 := k(yi)<br />

� �<br />

xl + yi<br />

= xl + h · f<br />

2<br />

konvergiert (bei beliebigem Startwert) gegen den einzigen Fixpunkt (also<br />

xl+1).<br />

In unserem Programm wurde die Banach-Iteration verwendet, die zwar<br />

langsamer ist, aber leichter implementierbar (man muss keine Inverse einer<br />

Matrix bestimmen, das Ableiten kann man sich auch sparen).<br />

8

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!