Metodo di Jacobi
In analisi numerica il metodo di Jacobi è un metodo iterativo per la risoluzione di sistemi lineari, un metodo cioè che calcola la soluzione di un sistema di equazioni lineari dopo un numero teoricamente infinito di passi. Per calcolare tale risultato il metodo utilizza una successione
che converge verso la soluzione esatta del sistema lineare e ne calcola progressivamente i valori arrestandosi quando la soluzione ottenuta è sufficientemente vicina a quella esatta.
Indice |
[modifica] Idea
Rappresentando il sistema lineare in forma matriciale con
, a partire da un
iniziale dato, la successione
con
è definita come
dove M è una matrice non singolare (cioè con determinante non nullo e quindi invertibile)

dove F è una funzione affine.
[modifica] Algoritmo

Se x è la soluzione di
allora
.
[modifica] Stima dell'errore
Sia
il vettore errore

Poniamo
, da cui
.
[modifica] Convergenza
L'algoritmo converge se
.
Vi sono inoltre due teoremi, il primo afferma che condizione necessaria e sufficiente affinché
è che il raggio spettrale (cioè il più grande autovalore in modulo) di B sia strettamente inferiore a 1; il secondo che il metodo converge per tutti i sistemi lineari con matrice a diagonale dominante
.
[modifica] Metodo di Jacobi
Si decompone la matrice A come segue: A = D-L-U dove D è la matrice diagonale, -L la parte triangolare inferiore e -U la parte triangolare superiore. Nel metodo di Jacobi si pongono M = D e N = L+U (mentre nel metodo di Gauss-Seidel, M = D-L e N = U).

Osservando che la i-esima riga della matrice
si può scrivere come

si ricava facilmente una espressione che rappresenta in termini più "algoritmici" il passo di iterazione del metodo:

[modifica] Residuo
Sia
il vettore residuo, in cui
è il vettore di errore (vedi sopra). Possiamo scrivere
con
che calcoliamo come segue:
.
[modifica] Test d'arresto
Per il test d'arresto utilizziamo il vettore residuo. Data una tolleranza prefissata
, abbiamo: 
[modifica] Conclusione
Questo metodo ha un costo computazionale dell'ordine di 3n²+2n per ogni iterazione, è facilmente parallelizzabile contrariamente al metodo di Gauss-Seidel che, tuttavia, converge più velocemente (nella maggior parte dei casi). Verificare che la complessità computazionale non sia: 2n²+2n!!
[modifica] Bibliografia
- Alfio Quarteroni; Riccardo Sacco; Fausto Saleri, Risoluzione di sistemi lineari con metodi iterativi in Matematica numerica, 3a edizione, Milano, Springer Verlag, gennaio 2008, Pagg.111-158. ISBN 978-88-470-0782-6
|
|