# Metodo iterativo

In analisi numerica un metodo numerico iterativo è un tipo di metodo numerico nel quale le successive approssimazioni della soluzione al problema matematico esaminato sono ottenute a partire dalle precedenti. Ciò comporta che un metodo numerico iterativo necessiti di una stima iniziale (valori di starting) sul quale innestarsi e la possibilità che le approssimazioni convergano solo alla soluzione, ovvero che non sia possibile giungere alla soluzione esatta in un numero finito di passi.

## Nella risoluzione di sistemi lineari

I metodi iterativi sono un'alternativa ai metodi diretti per la risoluzione di sistemi lineari; in generale sono preferibili a questi perché più efficienti o più stabili, soprattutto quando si devono trattare matrici di dimensioni considerevoli o matrici sparse.
Si ricorda che, in quanto si parla di un sistema lineare, bisogna cercare di risolvere un problema del tipo $Ax=b$.
I metodi iterativi partono da un dato iniziale arbitrario $x^{(0)}$ e sono fatti in modo che $\lim _{k\to \infty }x^{(k)}=x$, dove $x$ è la soluzione esatta del sistema (proprietà di convergenza). Trattandosi di vettori si parla di convergenza in norma.

### Costruzione di un metodo iterativo per la risoluzione di un sistema lineare

Dato che lo scopo finale del metodo iterativo è la risoluzione del sistema $Ax=b$ si parte proprio da questa uguaglianza, o, più comodamente $b-Ax=0$.
Si supponga poi di prendere una matrice $M$ non singolare (cioè invertibile); sommando $Mx$ ad ambo i membri si ha che:
* $Mx+(b-Ax)=Mx$
* moltiplicando ambo i membri per l'inversa di $M$ si ottiene:
* $M^{-1}(Mx+b-Ax)=M^{-1}Mx$
* sapendo che $M^{-1}M=MM^{-1}=I$ e che $Ix=xI=x$, si opera sul secondo membro e si invertono i membri:
* $x=M^{-1}(Mx+b-Ax)$
* si sviluppa la moltiplicazione al secondo membro:
* $x=M^{-1}Mx+M^{-1}b-M^{-1}Ax$
* si mette in evidenza la x nel secondo membro:
* $x=x(I-M^{-1}A)+M^{-1}b$
Se, in questa uguaglianza, sostituiamo $B=I-M^{-1}A$ e $c=M^{-1}b$, si ottiene quindi che:
$x=Bx+c$
dove $B$ viene definita matrice di iterazione.
Questo risultato vale per qualunque matrice M non singolare e quindi si ha che $x^{(k+1)}=Bx^{(k)}+c$.
Con questa regola ricorsiva si può procedere da un $x^{(0)}$ fissato.

### Analisi di convergenza

Dopo aver costruito un metodo iterativo è opportuno domandarsi se la scelta di M è stata opportuna, cioè se dopo infinite iterazioni la soluzione ottenuta è realmente quella del sistema (la proprietà di convergenza di cui sopra).
Condizione necessaria e sufficiente affinché il metodo converga alla soluzione del sistema per ogni scelta di $x^{(0)}$ è che il raggio spettrale (cioè il più grande autovalore in modulo) di B sia strettamente inferiore a 1, in formule:
    $\lim _{k\to \infty }x^{(k)}=x,\forall x^{(0)}\Leftrightarrow \rho (B)<1$

### Dimostrazione

Essendo il teorema un se e solo se, la dimostrazione si svolge in due fasi.
Definiamo con $e^{(k)}$ l'errore della soluzione al passo $k$, cioè $x-x^{(k)}$ e notiamo che dire che il metodo converge equivale a dire che l'errore tende a zero: $\lim _{k\to \infty }e^{(k)}=0$.
Dalla costruzione del metodo iterativo sappiamo che:
* $x=Bx+c$
* $x^{(k+1)}=Bx^{(k)}+c$
Sottraiamo la 1 dalla 2 ottenendo:
    $x^{(k+1)}-x=Bx^{(k)}+c-Bx-c$.
Semplifichiamo e mettiamo in evidenza $B$ al secondo termine:
    $x^{(k+1)}-x=B(x^{(k)}-x)$.
In base alla definizione dell'errore $e^{(k)}$ di cui sopra, possiamo riscrivere l'equazione come
    $e^{(k+1)}=Be^{(k)}$,
ottenendo quindi una definizione di $e$ in termini di $B$ come relazione di ricorrenza.
Proviamo a sviluppare tale relazione di ricorrenza per ottenere una nuova definizione di $e$ in termini di $B$ che non sia ricorsiva ma diretta; procediamo quindi:
* $\,e^{(0)}$ è la base della relazione di ricorrenza e dipenderà dalla scelta di $x^{(0)}$;
* $\,e^{(1)}=Be^{(0)}$;
* $e^{(2)}=Be^{(1)}\Rightarrow e^{(2)}=BBe^{(0)}\Rightarrow e^{(2)}=B^{2}e^{(0)}$;
* $e^{(3)}=Be^{(2)}\Rightarrow e^{(3)}=BB^{2}e^{(0)}\Rightarrow e^{(3)}=B^{3}e^{(0)}$;
* $e^{(4)}=Be^{(3)}\Rightarrow e^{(4)}=BB^{3}e^{(0)}\Rightarrow e^{(4)}=B^{4}e^{(0)}$;
Possiamo quindi riscrivere la relazione come $e^{(k)}=B^{k}e^{(0)}$.
Dall'osservazione di cui sopra quindi il metodo convergerà se:
    $\lim _{k\to \infty }B^{k}e^{(0)}=0,\forall x^{(0)}\Leftrightarrow \lim _{k\to \infty }B^{k}=0$.
Sapendo che esiste un lemma che afferma che: sia $A$ una matrice quadrata, allora
    $\lim _{k\to \infty }A^{k}=0\Leftrightarrow \rho (A)<1$
possiamo quindi concludere che $\lim _{k\to \infty }B^{k}=0\Leftrightarrow \rho (B)<1$.
Dimostriamo ora il teorema nel verso opposto.
Supponiamo per assurdo che il metodo converga per ogni scelta di $x^{(0)}$ ma $\rho (B)\geq 1$, cioè che almeno un autovalore di $B$ in modulo sia maggiore o uguale di 1. Denotiamo tale autovalore con $\lambda$.
Potendo scegliere arbitrariamente $x^{(0)}$, scegliamo quel $x^{(0)}$ tale che $e^{(0)}$ sia l'autovettore di $\lambda$. Ciò significa che:
    $\lim _{k\to \infty }B^{k}e^{(0)}=0\Leftrightarrow \lim _{k\to \infty }\lambda ^{k}e^{(0)}=0$
dato che per definizione un autovettore, quale è $e^{(0)}$, non può essere nullo
    $\lim _{k\to \infty }\lambda ^{k}e^{(0)}=0\Leftrightarrow \lim _{k\to \infty }\lambda ^{k}=0$
ma ciò è un assurdo dato che $\lambda \geq 1$.

## Metodi iterativi noti

Alcuni metodi iterativi particolarmente noti sono:
* il metodo di Newton: per la soluzione di equazioni
* il metodo di Jacobi, il metodo di Gauss-Seidel e il metodo del rilassamento: per la soluzione di sistemi lineari
* l'algoritmo del simplesso: per la soluzione di problemi di programmazione lineare