12.02.2014 Aufrufe

Mathematik für Physiker - Numerische Physik: Modellierung

Mathematik für Physiker - Numerische Physik: Modellierung

Mathematik für Physiker - Numerische Physik: Modellierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4.6. DIFFERENTIALRECHNUNG IN MATLAB 157<br />

§ 620 Die Funktion kann natürlich vorher definiert und dann aus fzero aufgerufen werden:<br />

>> fun=’x*x-1’;lims=[-1.1 0.9];fzero(fun,lims) ←↪<br />

Ein derartiges Verfahren kann z.B. dann sinnvoll sein, wenn man nacheinander mehrere Funktion<br />

oder nacheinander mehrere Intervalle bei einer Funktion auf Nullstellen untersuchen<br />

möchte und die verschiedenen Werte von fun bzw. lims mit Hilfe einer Schleife nacheinander<br />

in fzero füttert.<br />

§ 621 Fazit zur Verwendung von fzero: seien Sie vorsichtig bei Verwendung von fzero. Die<br />

gefundenen Nullstellen sind echte Nullstellen der Funktion. Aber fzero findet nicht immer<br />

alle Nullstellen: findet kein Vorzeichenwechsel statt, so funktioniert das Suchprinzip nicht. Ist<br />

nur eine Nullstelle ohne Vorzeichenwechsel vorhanden, so ist fzero hilflos. Bei einer geraden<br />

Zahl von Nullstellen mit Vorzeichenwechsel müssen die Intervalle so gewählt werden, dass in<br />

jedem zu testenden Intervall ein Vorzeichenwechsel stattfindet – liegen beide Nullstellen im<br />

Suchintervall, so hat fzero wieder das problem des fehlenden Vorzeichenwechsels. Bei einer<br />

ungeraden Zahl von Nullstellen mit Vorzeichenwechsel im Testinzervall findet fzero eine der<br />

Nullstellen – verrät Ihnen aber nicht, ob es noch andere gibt.<br />

4.6.2 <strong>Numerische</strong> Differentiation<br />

§ 622 Die Ableitung einer Funktion ist definiert als der Quotient aus der Differenz der Funktionswerte<br />

an zwei um ∆x aus einander liegenden Stellen dividiert durch ∆x für den Grenzwert<br />

∆x → 0:<br />

f ′ f(x) + f(x + ∆x)<br />

(x) = lim<br />

.<br />

∆x→0 ∆x<br />

§ 623 <strong>Numerische</strong> Differentiation verwendet den gleichen Quotienten, jedoch ohne den Grenzübergang<br />

∆x → 0. Für die praktische Durchführung des numerischen Verfahrens gibt es<br />

verschiedene Möglichkeiten:<br />

• Die Vorwärts-Differenz (forward finite difference) δf + (x) ist der eigentlichen Definition der<br />

Ableitung am ähnlichsten:<br />

δf + (x o ) = f(x o + ∆x) − f(x o )<br />

∆x<br />

.<br />

In ihrer Genauigkeit ist diese Differenz von erster Ordnung: 5 die Genauigkeit hängt von<br />

der zweiten Ableitung der Funktion ab, d.h. von der ersten Ableitung der gesuchten Ableitung.<br />

Für stark veränderliche Funktionen ist diese aber relativ groß, so dass die Vorwärts-<br />

Differenz in der Nähe starker Veränderungen ungenau wird.<br />

• Die Rückwärts-Differenz (backward finite difference) δf − (x) ist auf ähnliche Weise definiert<br />

δf − (x o ) = f(x o) − f(x o − ∆x)<br />

∆x<br />

und ebenfalls von einer Genauigkeit erster Ordnung.<br />

• Die zentrale Differenz (centered finite difference) δf(x) ist definiert als<br />

δf(x o ) = f(x o + ∆x) − f(x o − ∆x)<br />

.<br />

2∆x<br />

Sie hat eine Genauigkeit von zweiter Ordnung und ist daher wesentlich robuster als die<br />

beiden anderen Differenzen-Verfahren.<br />

§ 624 Ein einfaches Verfahren zur numerischen Differentiation verwendet die MatLab-<br />

Funktion diff, die aus einem n-elementigen Vektor einen (n-1)-elementigen Vektor erzeugt,<br />

diff<br />

5 Die Ordnung eines numerischen Verfahrens lässt sich mit Hilfe einer Taylor-Entwicklung bestimmen.<br />

Da das numerische Differenzieren hier nicht sehr ernst gemeint ist, wird das Verfahren zur Bestimmung der<br />

Ordnung einer numerischen Methode erst im Zusammenhang mit der numerischen Lösung von Differentialgleichungen<br />

in Abschn. 7.9 erläutert.<br />

c○ M.-B. Kallenrode 13. März 2007

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!