# Calcolo di uno zero di una funzione

In matematica si presentano spesso problemi che richiedono di calcolare uno zero (o radice) di una funzione di variabile reale $f(x)$.
La risoluzione del problema dipende strettamente dalla forma della funzione $f$: ad esempio, se essa è un polinomio o una funzione razionale esistono, per i gradi più bassi (cioè fino al quarto grado o solo in casi particolari di grado maggiore, si veda Teoria di Galois), formule che permettono di determinare in modo preciso tutti gli zeri, senza approssimazioni. In tutti gli altri casi, come ad esempio per una funzione esponenziale o trigonometrica (più in generale trascendente), a parte alcuni casi elementari risolvibili attraverso le definizioni, ma anche per un polinomio di grado maggiore di 4, non esistono metodi algebrici per ricavare con esattezza i valori degli zeri. Di questi casi si occupa la presente voce.
Per questo tipo di problema si preferisce parlare di algoritmi per la soluzione di equazioni, sottintendendo che questi metodi possono applicarsi sia ad equazioni lineari che ad equazioni non lineari. Taluni algoritmi per il calcolo di uno zero di una funzione reale possono essere direttamente generalizzati per risolvere equazioni non lineari.
Definendo il problema con un'equazione della forma $f(\mathbf {x} )=0$, dove il parametro $\mathbf {x}$ della funzione $\mathbf {f}$ è un vettore $n$-dimensionale (vedi funzione vettoriale), il problema si generalizza con la ricerca di un vettore $n$-dimensionale che sia soluzione della suddetta equazione.

## Descrizione generale

I metodi per calcolare in modo approssimato le radici di un'equazione (valori dell'incognita che soddisfano l'equazione) si articolano in due fasi: nella prima fase si separano le radici, ovvero si determinano gli intervalli della retta reale che contengono una sola radice dell'equazione (si può utilizzare il metodo grafico); nella seconda fase si calcola un valore approssimato della radice dell'equazione applicando uno dei metodi di seguito descritti.
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.

## Alcuni algoritmi specifici

Il metodo di ricerca della radice più semplice è il metodo di bisezione (metodo dicotomico / di Bolzano). Si parte conoscendo un intervallo reale $\left[a,b\right]$ che considerazioni precedenti garantiscono contenere una e una sola radice. Per esempio, dovendo ricercare una radice di una funzione continua, $a$ e $b$ saranno valori presi in maniera tale che $f(a)$ e $f(b)$ assumano segno opposto; infatti, per il teorema degli zeri, l'intervallo conterrà sicuramente una radice $x$ per l'equazione. Definito l'intervallo, con successive iterazioni si procede a progressivi dimezzamenti dello stesso. Alla prima iterazione si sceglie fra i sottointervalli $\left[a,c\right]$ e $\left[c,b\right]$, dove $c={\frac {a+b}{2}}$ è il punto a metà tra $a$ e $b$, attraverso la valutazione del segno di $f(c)$. La convergenza del procedimento è garantita, ma è lenta in quanto ha andamento lineare. Questo metodo può essere in parte paragonato all'algoritmo di ricerca binaria dell'informatica, per la ricerca di un determinato valore all'interno di un insieme ordinato di dati. La ricerca binaria ha tuttavia andamento logaritmico, cioè molto più rapido, perché opera su interi (le posizioni degli elementi nell'insieme).
Il metodo delle tangenti (chiamato anche metodo di Newton o metodo di Newton - Raphson) si serve della approssimazione lineare (mediante la tangente) della funzione f in un intorno di una approssimazione corrente della radice. Questo porta alla relazione di ricorrenza
    $x_{k+1}=x_{k}-{\frac {f(x_{k})}{f'(x_{k})}}$.
Questo metodo potrebbe non convergere se si parte da un valore della variabile $x$ troppo lontano da una radice. Se però viene bene avviato converge più rapidamente del metodo di bisezione (la convergenza è quadratica). Inoltre questo metodo si generalizza facilmente ai problemi multidimensionali.
Se nel metodo delle tangenti si rimpiazza la derivata della funzione con una differenza finita, si ottiene il metodo delle secanti. Esso è caratterizzato dalla relazione di ricorrenza
    $x_{n+1}=x_{n}-{\frac {x_{n}-x_{n-1}}{f(x_{n})-f(x_{n-1})}}f(x_{n})$ .
Questo metodo quindi non richiede il calcolo della derivata della funzione, ma presenta una convergenza più lenta (il suo ordine è circa 1,6).
Il metodo di falsa posizione in Fibonacci, chiamato anche metodo della regula falsi, è simile al metodo di bisezione, ma ad ogni iterazione invece di tagliare l'intervallo di appartenenza della radice in due parti uguali, lo bipartisce nel punto suggerito dalla formula del metodo delle secanti. Questo metodo eredita la robustezza del metodo della bisezione e la convergenza sovralineare del metodo delle secanti.

## Applicabilità dei metodi di calcolo

Si noti come non tutti i metodi possono essere applicati in tutti i casi. Ad esempio, l'equazione
$\,x^{2}=0$
ha soluzione per $x=0$; se volessimo applicare il metodo della bisezione a questa equazione dovremmo innanzitutto determinare, per iniziare l'iterazione, due punti $a$ e $b$ tali che $f(a)$ e $f(b)$ abbiano segni opposti (vedi teorema degli zeri).
Nel caso in oggetto, qualunque valore di $x$ si prenda, il valore calcolato $y=x^{2}$ sarà sempre maggiore o uguale a $0$. L'algoritmo della bisezione risulta quindi non applicabile.

## Elenco dei metodi numerici

* Metodo della bisezione o di dicotomia
* Metodo delle tangenti o di Newton-Raphson
* Metodo delle secanti
* Metodo Regula Falsi
* Metodo di doppia falsa posizione in Fibonacci
* Metodo di Muller
* Metodo di Brent
* Metodo di Laguerre
* Iterazione di punto fisso