Metodo di Gauss-Seidel

Niente fonti!
Questa voce o sezione sull'argomento matematica non cita le fonti necessarie o quelle presenti sono insufficienti.

In analisi numerica il metodo di Gauss-Seidel è un metodo iterativo, simile al metodo di Jacobi, per la risoluzione di un sistema lineare, scritto nella forma matriciale A x = b . {\displaystyle Ax=b.}

Algoritmo

Come per il metodo di Jacobi, la matrice A {\displaystyle A} viene scritta come differenza di due matrici: A = M N . {\displaystyle A=M-N.} Nel metodo di Gauss-Seidel si prendono M = L , {\displaystyle M=L,} matrice triangolare inferiore, e N = U , {\displaystyle N=-U,} matrice triangolare superiore con diagonale nulla.

Preso un qualunque vettore x 0 , {\displaystyle x_{0},} si costruisce quindi una successione di vettori per iterazione (come per il metodo di Jacobi)

x k + 1 = L 1 ( U x k + b ) . {\displaystyle x_{k+1}=L^{-1}(Ux_{k}+b).}

Come sistema lineare

Come per il metodo di Jacobi, la ricorrenza si può ottenere riscrivendo il sistema di equazioni lineari in modo da isolare una variabile per ogni riga. In questo caso, tuttavia, ogni nuova componente di x k + 1 {\displaystyle x_{k+1}} viene immediatamente sostituita per il calcolo delle successive

Ad esempio, se con il metodo di Jacobi in un sistema 3x3 si utilizza la ricorrenza

{ x k + 1 = a 1 , 2 a 1 , 1 y k a 1 , 3 a 1 , 1 z k + b 1 a 1 , 1 y k + 1 = a 2 , 1 a 2 , 2 x k a 2 , 3 a 2 , 2 z k + b 2 a 2 , 2 z k + 1 = a 3 , 1 a 3 , 3 x k a 3 , 2 a 3 , 3 y k + b 3 a 3 , 3 {\displaystyle {\begin{cases}x_{k+1}=-{\frac {a_{1,2}}{a_{1,1}}}y_{k}-{\frac {a_{1,3}}{a_{1,1}}}z_{k}+{\frac {b_{1}}{a_{1,1}}}\\y_{k+1}=-{\frac {a_{2,1}}{a_{2,2}}}x_{k}-{\frac {a_{2,3}}{a_{2,2}}}z_{k}+{\frac {b_{2}}{a_{2,2}}}\\z_{k+1}=-{\frac {a_{3,1}}{a_{3,3}}}x_{k}-{\frac {a_{3,2}}{a_{3,3}}}y_{k}+{\frac {b_{3}}{a_{3,3}}}\end{cases}}}

con il metodo di Gauss-Seidel si utilizza la ricorrenza

{ x k + 1 = a 1 , 2 a 1 , 1 y k a 1 , 3 a 1 , 1 z k + b 1 a 1 , 1 y k + 1 = a 2 , 1 a 2 , 2 x k + 1 a 2 , 3 a 2 , 2 z k + b 2 a 2 , 2 z k + 1 = a 3 , 1 a 3 , 3 x k + 1 a 3 , 2 a 3 , 3 y k + 1 + b 3 a 3 , 3 {\displaystyle {\begin{cases}x_{k+1}=-{\frac {a_{1,2}}{a_{1,1}}}y_{k}-{\frac {a_{1,3}}{a_{1,1}}}z_{k}+{\frac {b_{1}}{a_{1,1}}}\\y_{k+1}=-{\frac {a_{2,1}}{a_{2,2}}}x_{k+1}-{\frac {a_{2,3}}{a_{2,2}}}z_{k}+{\frac {b_{2}}{a_{2,2}}}\\z_{k+1}=-{\frac {a_{3,1}}{a_{3,3}}}x_{k+1}-{\frac {a_{3,2}}{a_{3,3}}}y_{k+1}+{\frac {b_{3}}{a_{3,3}}}\end{cases}}}

Convergenza

Come per il metodo di Jacobi, la successione converge indipendentemente dalla scelta di x 0 {\displaystyle x_{0}} se e solo se la matrice B = M 1 N = L 1 U {\displaystyle B=M^{-1}N=L^{-1}U} ha tutti autovalori con valore assoluto minore di 1.

Una condizione sufficiente perché questo avvenga è che A {\displaystyle A} sia una matrice a diagonale dominante per righe o per colonne in senso stretto. (Questa condizione implica la non singolarità di A , {\displaystyle A,} quindi l'unicità della soluzione.)

Per risolvere il sistema lineare si utilizza quindi una successione x ( k ) {\displaystyle x^{(k)}} che converge verso la soluzione x {\displaystyle x} del sistema lineare. Siano A = ( a i j ) {\displaystyle A=(a_{ij})} e b = ( b i ) {\displaystyle b=(b_{i})} , la successione è costruita come segue:

x i ( k + 1 ) = b i j < i a i j x j ( k + 1 ) j > i a i j x j ( k ) a i i . {\displaystyle x_{i}^{(k+1)}={\frac {b_{i}-\sum \limits _{j<i}a_{ij}x_{j}^{(k+1)}-\sum \limits _{j>i}a_{ij}x_{j}^{(k)}}{a_{ii}}}.}

Aspetti computazionali

A differenza del metodo di Jacobi, il metodo di Gauss-Seidel richiede di tenere in memoria un solo vettore, purché i calcoli non vengano svolti in parallelo.

Considerando il fatto che per calcolare la componente i {\displaystyle i} -esima x i ( k + 1 ) {\displaystyle x_{i}^{(k+1)}} del nuovo vettore della successione si utilizzano le j < i {\displaystyle j<i} componenti x j ( k + 1 ) {\displaystyle x_{j}^{(k+1)}} già calcolate, si osserva che una iterazione del metodo di Gauss-Seidel equivale a due iterazioni del metodo di Jacobi (che utilizza soltanto le componenti del vecchio vettore x i ( k ) {\displaystyle x_{i}^{(k)}} ), quindi nel metodo di Gauss-Seidel si eseguano meno iterazioni e, quindi, converge più velocemente. Tuttavia la complessità computazionale non varia ed entrambi i due metodi hanno una complessità di O ( n 2 ) {\displaystyle O(n^{2})} iterazioni.

Voci correlate

  • Metodo di Jacobi
  • Successive Over Relaxation

Collegamenti esterni

  • (EN) Eric W. Weisstein, Metodo di Gauss-Seidel, su MathWorld, Wolfram Research. Modifica su Wikidata
Controllo di autoritàGND (DE) 4156115-6
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica