Bisektionsverfahren

Bisektionsverfahren

Studium
m=a+b2,[a,b]→{[a,m],f(a)⋅f(m)≤0[m,b],sonstm = \frac{a + b}{2}, \qquad [a, b] \to \begin{cases} [a, m], & f(a) \cdot f(m) \leq 0 \\ [m, b], & \text{sonst} \end{cases}

Voraussetzung: ff stetig auf [a,b],[a, b], f(a)⋅f(b)<0f(a) \cdot f(b) < 0

a,ba, b
linke und rechte Grenze des aktuellen Intervalls
mm
Mittelpunkt des Intervalls, neue Näherung
ff
stetige Funktion, deren Nullstelle gesucht ist

Das Bisektionsverfahren halbiert ein Intervall mit Vorzeichenwechsel so lange, bis die Nullstelle genau genug eingeschlossen ist.

Erklärung

Das Bisektionsverfahren (Intervallhalbierung) sucht eine Nullstelle einer stetigen Funktion in einem Intervall [a,b][a, b], an dessen Enden ff verschiedene Vorzeichen hat. Nach dem Zwischenwertsatz liegt dann mindestens eine Nullstelle im Intervall.

In jedem Schritt berechnet man den Mittelpunkt mm und prüft das Vorzeichen von f(m)f(m). Man behält die Hälfte, in der der Vorzeichenwechsel liegt. Ist f(m)=0f(m) = 0, hat man die Nullstelle gefunden.

Das Verfahren ist robust: Es konvergiert immer, wenn die Voraussetzungen erfüllt sind, und braucht keine Ableitung. Dafür ist es langsam. Nach nn Schritten ist das Intervall b−a2n\frac{b - a}{2^n} lang, pro Schritt gewinnt man also nur ein Bit an Genauigkeit (lineare Konvergenz mit Faktor 12\frac{1}{2}). Liegen mehrere Nullstellen im Intervall, findet man eine davon. Nullstellen ohne Vorzeichenwechsel, z.B. bei x2x^2, findet das Verfahren nicht.

Beispiele

Nullstelle von f(x)=x2−2f(x) = x^2 - 2 auf [1,2][1, 2]: Es ist f(1)=−1<0f(1) = -1 < 0 und f(2)=2>0f(2) = 2 > 0.

m=1,5:f(m)=0,25>0⇒[1; 1,5]m=1,25:f(m)=−0,4375<0⇒[1,25; 1,5]m=1,375:f(m)=−0,109375<0⇒[1,375; 1,5]m=1,4375:f(m)≈0,0664>0⇒[1,375; 1,4375]\begin{aligned} m &= 1{,}5: & f(m) &= 0{,}25 > 0 & &\Rightarrow [1;\ 1{,}5] \\ m &= 1{,}25: & f(m) &= -0{,}4375 < 0 & &\Rightarrow [1{,}25;\ 1{,}5] \\ m &= 1{,}375: & f(m) &= -0{,}109375 < 0 & &\Rightarrow [1{,}375;\ 1{,}5] \\ m &= 1{,}4375: & f(m) &\approx 0{,}0664 > 0 & &\Rightarrow [1{,}375;\ 1{,}4375] \end{aligned}

Nach vier Schritten ist das Intervall 124=0,0625\frac{1}{2^4} = 0{,}0625 lang. Der Mittelpunkt 1,406251{,}40625 weicht höchstens 0,031250{,}03125 von 2\sqrt{2} ab.

Wie viele Schritte braucht man, um ein Intervall der Länge 11 auf höchstens 10−610^{-6} zu verkleinern? Aus 2n≥1062^n \geq 10^6 folgt n≥log⁡2106≈19,93n \geq \log_2 10^6 \approx 19{,}93, also n=20n = 20. Denn 219=524288<1062^{19} = 524288 < 10^6, aber 220=1048576≥1062^{20} = 1048576 \geq 10^6.

Typische Fehler

  • Die falsche Hälfte behalten. Entscheidend ist, wo das Vorzeichen wechselt, nicht, welcher Funktionswert kleiner ist.
  • Das Verfahren auf ein Intervall ohne Vorzeichenwechsel anwenden. Aus f(a)⋅f(b)>0f(a) \cdot f(b) > 0 folgt nicht, dass keine Nullstelle existiert, aber das Verfahren garantiert dann nichts.
  • Stetigkeit vergessen: f(x)=1xf(x) = \frac{1}{x} wechselt auf [−1,1][-1, 1] das Vorzeichen, hat aber keine Nullstelle.

Verwandte Formeln