Esercizio - Gauss-Seidel a mano e confronto con Jacobi
Teoria: Metodi iterativi - Jacobi, Gauss-Seidel e convergenzaSi spezza $A=M-N$ con $M$ facile da invertire e si itera $M\mathbf x^{(k+1)}=N\mathbf x^{(k)}+\mathbf b$, cioè $\mathbf x^{(k+1)}=B\mathbf x^{(k)}+\mathbf c$ con $B=M^{-1}N=I-M^{-1}A$. Con $A=D+L+U$ (diagonale, parte strettamente inferiore e superiore): Jacobi $M=D$, $x_i^{(k+1)}=\frac1{a_{ii}}\big(b_i-\sum_{j\ne i}a_{ij}x_j^{(k)}\big)$; Gauss-Seidel $M=D+L$, usa subito i valori nuovi $x_j^{(k+1)}$, $j<i$. Convergenza per ogni $\mathbf x^{(0)}$ se e solo se $\rho(B)<1$ (D); basta $|B|<1$. Matrice a dominanza diagonale stretta per righe: convergono entrambi; $A$ SPD: converge Gauss-Seidel; per matrici tridiagonali $\rho(B_{GS})=\rho(B_J)^2$. Errore: $\mathbf e^{(k)}=B^k\mathbf e^{(0)}$, $|\mathbf e^{(k)}|\le|B|^k|\mathbf e^{(0)}|$ e $|\mathbf x-\mathbf x^{(k)}|\le\frac{|B|}{1-|B|}|\mathbf x^{(k)}-\mathbf x^{(k-1)}|$. Per guadagnare $d$ cifre servono $k\approx\frac d{-\log_{10}\rho(B)}$ iterazioni.Metodi iterativi - Jacobi, Gauss-Seidel e convergenza →. Il sistema è quello di Esercizio - Jacobi a mano, dominanza diagonale e stima del numero di iterazioni.
Testo. Per
- Eseguire due iterazioni di Gauss-Seidel da .
- Confrontare gli errori con quelli di Jacobi (iterazioni e : e in norma ).
- Scrivere e del metodo e dire quanti sistemi triangolari si risolvono a ogni passo.
- Sapendo che e (calcolati numericamente), stimare quante iterazioni di ciascun metodo servono per guadagnare 6 cifre.
Soluzione
1. Iterazioni di Gauss-Seidel. Ogni componente usa i valori appena calcolati:
- : ; ; .
- : ; ; .
2. Confronto. Errori in norma (esatto ):
| iterazione | Jacobi | Gauss-Seidel |
|---|---|---|
| 1 | 0,375 | 0,375 |
| 2 | 0,075 | 0,0319 |
| 3 | 0,015 | 0,00058 |
| 4 | 0,0028 | 0,000083 |
| Alla prima iterazione sono uguali (in , che non dipende da nulla di nuovo), poi Gauss-Seidel guadagna circa cifre per iterazione contro di Jacobi. |
3. Splitting. , . A ogni passo si risolve , un sistema triangolare inferiore (sostituzione in avanti), esattamente le tre formule sopra: la memoria di un solo vettore basta perché ogni nuovo sostituisce il vecchio.
4. Numero di iterazioni. Per guadagnare 6 cifre: Gauss-Seidel richiede circa la metà delle iterazioni. Confronto con la tabella: l'errore di Gauss-Seidel scende di un fattore – per iterazione ( ha rapporti e : gli autovalori complessi fanno oscillare i rapporti attorno a ).
Risultati: , errore contro di Jacobi; 5 iterazioni contro 9 per 6 cifre.
Errori tipici. Calcolare con il vecchio (è Jacobi); sbagliare il segno di (nel calcolo di compare ); aspettarsi che Gauss-Seidel sia sempre migliore (non lo è per ogni matrice).
Versione ripasso
Stesso sistema: , .
- GS: , , .
- , .
- Errori GS ; Jacobi .
- triangolare inferiore, : sostituzione in avanti, un solo vettore.
- , : , iterazioni per 6 cifre.
Errori tipici: vecchio nel calcolo di ; segno di ; GS non sempre migliore.