C-Uebung

Nullstellensuche, eine Ãœbung zum Thema Funktionszeiger

Zufallszahlen | | Numerische Integration

Gegeben sei eine beliebige Funktion $f(x)$ mit einer Nullstelle im Intervall $x\in[a,b]$.

Die Nullstellensuche bezeichnet die Suche nach denjenigen Stellen x, an denen die Funktion den Wert Null hat, d.h. $f(x)=0$.

Die Nullstellensuche kann analytisch erfolgen durch Auflösen nach x. Ist eine analytische Lösung nicht möglich, werden numerische Näherungsverfahren eingesetzt, die sich bei jedem Iterationsschritt näher an die tatsächliche Lösung herantasten. Die Iteration wird abgebrochen, wenn ein Fehlermass unterschritten wird.

Ein einfacher Vertreter der iterativen Nullstellensuche ist die sogenannte binäre Suche oder Bisektion.

Unter der Annahme, dass das Suchintervall eine echte Nullstelle enthält und die Funktion monoton ist, so muss die Funktion im Intervall $ [a,b] $ das Vorzeichen genau einmal wechseln. Der Ort des Vorzeichenwechsels entspricht der Nullstelle. Es gilt $f(a)<0 \land f(b)>0$ für monoton steigende und $f(a)>0 \land f(b)<0$ für monoton fallende Funktionen, oder allgemein $f(a)f(b)<0$.

Halbiert man das Intervall und betrachtet das Vorzeichen an den jeweiligen Teilintervallgrenzen, so kann man das Suchintervall auf denjenigen Teilbereich einschränken, in dem der Vorzeichenwechsel stattfindet. Die Halbierung des Suchintervalls wird solange fortgesetzt, bis das Suchintervall eine gewisse Größe $\epsilon$ unterschreitet.

$\displaystyle{ \displaystyle{ bisect(a,b) = \left\{ \begin{array}{l c l} \frac{a+b}2 & \textrm{ , } & \textrm{ if } |a-b|<\epsilon \\ bisect(a,\frac{a+b}2) & \textrm{ , } & \textrm{ if } f(a)f(\frac{a+b}2)<0 \\ bisect(\frac{a+b}2,b) & \textrm{ , } & \textrm{ if } f(\frac{a+b}2)f(b)<0 \end{array} \right. } }$

Implementieren Sie obige rekursive Definition der binären Suche.

Verwenden Sie Funktionszeiger, um beliebige Funktionen als Parameter der Suche angeben zu können.

Q Suchen Sie damit die Nullstelle der Funktion

$ f(x) = \frac{x}{2} - sin(x) $ für $ x\in[1,2] $


Zufallszahlen | | Numerische Integration

Options: