Questo sito utilizza cookie per raccogliere dati statistici.
Privacy Policy
# Metodo di Bisezione
Il **metodo di bisezione** è una tecnica numerica utilizzata per trovare gli zeri di una funzione, ovvero i punti in cui $ f(x) = 0 $. È particolarmente utile quando la funzione è continua su un intervallo e si conoscono due valori $ a $ e $ b $ tali che $ f(a) \cdot f(b) \lt 0 $. Questo garantisce, per il teorema di Bolzano, che esista almeno uno zero della funzione nell'intervallo $[a, b]$.
## Idea del metodo

Il metodo si basa sul restringere progressivamente l'intervallo in cui si trova lo zero della funzione:
1. Si calcola il punto medio dell'intervallo:
2. Si valuta il segno di $ f(m) $:
- Se $ f(m) = 0 $, abbiamo trovato lo zero della funzione.
- Se $ f(a) \cdot f(m) \lt 0 $, lo zero si trova nell'intervallo $[a, m]$.
- Altrimenti, si trova nell'intervallo $[m, b]$.
3. Si ripete il processo sull'intervallo ristretto fino a raggiungere una tolleranza desiderata $ \varepsilon $ o un numero massimo di iterazioni.
## Algoritmo in forma generale
### Condizioni iniziali:
- Una funzione continua $ f(x) $.
- Un intervallo iniziale $[a, b]$ con $ f(a) \cdot f(b) \lt 0 $.
- Una tolleranza $ \varepsilon \gt 0 $.
### Passaggi principali:
1. Calcolare il punto medio $ m $:
$$ m = \frac{a + b}{2} $$
2. Controllare il valore di $ f(m) $:
- Se $ |f(m)| \lt \varepsilon $, restituire $ m $ come soluzione.
- Altrimenti, aggiornare l'intervallo:
- Se $ f(a) \cdot f(m) \lt 0 $, allora $ b = m $.
- Altrimenti, $ a = m $
3. Ripetere fino a raggiungere la tolleranza $ \varepsilon $ o un numero massimo di iterazioni.
<im>
## Nota sull'implementazione
Il metodo di bisezione è semplice ed efficace, ma richiede che la funzione sia continua e che l'intervallo iniziale contenga un cambiamento di segno. Inoltre, la versione ricorsiva è elegante ma può soffrire di problemi di profondità di ricorsione per intervalli molto piccoli o tolleranze estremamente basse.
</im>
## Suggerimenti per esercizi
Ecco alcune funzioni con i relativi intervalli iniziali per esercitarsi con il metodo di bisezione:
1. $ f(x) = x^3 - x - 2 $ sull'intervallo $[1, 2]$.
Soluzione: $ x \approx 1.521 $
```python
# Definizione della funzione f1
import math
def f1(x):
return x**3 - x - 2
```
2. $ f(x) = \sin(x) - 0.5 $ sull'intervallo $[0, \pi]$.
Soluzione: $ x \approx \frac{\pi}{6} \approx 0.524 $
```python
# Definizione della funzione f2
import math
def f2(x):
return math.sin(x) - 0.5
```
3. $ f(x) = \ln(x) - 1 $ sull'intervallo $[2, 4]$.
Soluzione: $ x \approx e \approx 2.718 $
```python
# Definizione della funzione f3
import math
def f3(x):
return math.log(x) - 1
```
4. $ f(x) = e^x - 3 $ sull'intervallo $[0, 2]$.
Soluzione: $ x \approx \ln(3) \approx 1.099 $
```python
# Definizione della funzione f4
import math
def f4(x):
return math.exp(x) - 3
```
5. $ f(x) = x^2 - 2 $ sull'intervallo $[1, 2]$.
Soluzione: $ x \approx \sqrt{2} \approx 1.414 $
```python
# Definizione della funzione f5
def f5(x):
return x**2 - 2
```
Provate a calcolare gli zeri di queste funzioni utilizzando il metodo di bisezione!