Metodo di bisezione

Da Wikipedia

I metodi per calcolare in modo approssimato le radici di un’equazione (valori dell’incognita che soddisfano l’equazione) si articolano in due fasi:

  1. nella prima fase si separano le radici, ovvero si determinano gli intervalli della retta reale che contengono una sola radice dell’equazione;
  2. nella seconda fase si calcola un valore approssimato della radice dell’equazione applicando uno dei metodi disponibili.

Quando si sono separate le radici, ad esempio, si è trovato che la radice alpha è compresa nell’intervallo [a,b] abbiamo due valori approssimati, uno per difetto a ed uno per eccesso b della radice.

Si tratta di restringere l’intervallo in modo da ottenere valori più approssimati, secondo una approssimazione fissata.
I procedimenti sono iterativi.

In analisi matematica il teorema di Bolzano, detto anche teorema degli zeri per le funzioni continue, assicura l’esistenza di almeno una radice delle funzioni continue reali che assumano segni opposti ai due estremi di un intervallo.

Nel caso ci si trovi in presenza di una funzione strettamente monotona, il teorema dice che lo zero è unico; se non si fa tale ipotesi gli zeri possono essere più di uno.

Sia

  • a_1 < b_1
  • f(a_1) < 0 < f(b_1)

il metodo di bisezione funziona perché

\displaystyle a_1 < x_* < b_1\displaystyle f(a_1) < 0 < f(b_1)
\displaystyle a_1 \le a_2 \le x_* \le b_2 \le b_1\displaystyle f(a_1) \le f(a_2) \le 0 \le f(b_2) \le f(b_1)
\displaystyle a_1 \le a_2 \le \dots \le a_n \le x_* \le b_n \le \dots \le b_2 \le b_1\displaystyle f(a_1) \le f(a_2) \le \dots \le f(a_n) \le 0 \le f(b_n) \le \dots \le f(b_2) \le f(b_1)
\displaystyle a_n \rightarrow x_*  \leftarrow b_n\displaystyle f(a_n) \rightarrow 0 \leftarrow f(b_n)

Naturalmente il metodo funziona anche se f(a_1) > 0 > f(b_1)

Esempio

Data l’equazione \displaystyle \frac{1}{3}x^3 - \frac{5}{3}x^2 + 2 x = 0 calcolare una delle radici con il metodo di bisezione.
L’equazione può essere studiata facilmente e le radici sono 0, 2, 3.

Separazione delle radici (per tentativi…)

  • x-0,5, f(x1) = 1.5…
  • x0,5, f(x2) = +0,625…
  • x2,5, f(x3) = 0,208…
  • x4 = 4,0, f(x4) = +2,667…

Avendo individuato 3 intervalli dove la funzione cambia segno abbiamo separato le 3 radici dell’equazione.
Concentriamo l’attenzione su uno dei 3 intervalli: [2,5, 4,0]

xy
Passoambf(a)f(m)f(b)
12,5000003,2500004,000000-0,208333+0,338542+2,666667
22,5000002,8750003,250000-0,208333-0,104818+0,338542
32,8750003,0625003,250000-0,104818+0,067790+0,338542
42,8750002,9687503,062500-0,104818-0,029958+0,067790
52,9687503,0156253,062500-0,029958+0,015952+0,067790
62,9687502,9921883,015625-0,029958-0,007731+0,015952

Dopo pochi passi

  • y = -0,007731, molto vicina a 0
  • x = 2,992188, molto vicina a 3.

Il criterio per fermare l’iterazione si basa però su un altro ragionamento: se si ferma l’iterazione a un certo passo l’errore che si commette è minore di (b-m), oppure (m-a), la dimensione del prossimo intervallo delle x

xErrore
minore di
y
Passoambm-a
b-m
f(a)f(m)f(b)
12,5000003,2500004,0000000,750000-0,208333+0,338542+2,666667
22,5000002,8750003,2500000,375000-0,208333-0,104818+0,338542
32,8750003,0625003,2500000,187500-0,104818+0,067790+0,338542
42,8750002,9687503,0625000,093750-0,104818-0,029958+0,067790
52,9687503,0156253,0625000,046875-0,029958+0,015952+0,067790
62,9687502,9921883,0156250,023438-0,029958-0,007731+0,015952

Dopo 6 passi la soluzione approssimata è x = 2,992188.
Se si ferma l’iterazione si commette un errore minore di 0,023438.


Wikipedia: Teorema di Bolzano – Metodo della bisezione – Calcolo di uno zero di una funzione