Esercizio - residuo ed errore in un sistema ben e mal condizionato
Teoria: Norme di matrici e condizionamento dei sistemi lineariNorme di vettore $|x|1=\sum|x_i|$, $|x|2=\sqrt{\sum x_i^2}$, $|x|\infty=\max|x_i|$. Norma di matrice indotta $|A|=\max{x\ne0}\frac{|Ax|}{|x|}$: $|A|1$ = massima somma per colonne, $|A|\infty$ = massima somma per righe, $|A|2=\sqrt{\lambda{\max}(A^TA)}$ (= $\rho(A)$ se $A$ simmetrica); valgono $|Ax|\le|A||x|$, $|AB|\le|A||B|$, $\rho(A)\le|A|$. Numero di condizionamento $\kappa(A)=|A||A^{-1}|\ge1$ ($\kappa_2=\frac{\sigma_{\max}}{\sigma_{\min}}$, per SPD $\frac{\lambda_{\max}}{\lambda_{\min}}$, per ortogonali 1). Se $A\mathbf x=\mathbf b$ e $A(\mathbf x+\delta\mathbf x)=\mathbf b+\delta\mathbf b$: $\frac{|\delta\mathbf x|}{|\mathbf x|}\le\kappa(A)\frac{|\delta\mathbf b|}{|\mathbf b|}$ (D); con residuo $\mathbf r=\mathbf b-A\hat{\mathbf x}$: $\frac1\kappa\frac{|\mathbf r|}{|\mathbf b|}\le\frac{|\mathbf x-\hat{\mathbf x}|}{|\mathbf x|}\le\kappa\frac{|\mathbf r|}{|\mathbf b|}$. Si perdono circa $\log_{10}\kappa$ cifre; un residuo piccolo non garantisce un errore piccolo se $\kappa$ è grande.Norme di matrici e condizionamento dei sistemi lineari →, Fattorizzazione LU, pivoting e CholeskyRisolvere $A\mathbf x=\mathbf b$ con Gauss equivale a fattorizzare $A=LU$ ($L$ triangolare inferiore con $1$ sulla diagonale e i moltiplicatori $l_{ik}=\frac{a_{ik}^{(k)}}{a_{kk}^{(k)}}$ sotto la diagonale, $U$ la matrice a scala finale) e poi risolvere $L\mathbf y=\mathbf b$ (in avanti) e $U\mathbf x=\mathbf y$ (all'indietro). Esiste (ed è unica) se i minori principali di testa $\det A_k$, $k<n$, sono $\ne0$. Costo $\frac23n^3$ flop per la fattorizzazione, $2n^2$ per ogni termine noto; $\det A=\prod u_{kk}$. Con un pivot piccolo l'algoritmo è instabile: il pivoting parziale (scambio di righe che porta in posizione di pivot l'elemento di modulo massimo della colonna) dà $PA=LU$ con $|l_{ik}|\le1$ ed esiste per ogni $A$ invertibile. Se $A$ è simmetrica definita positiva esiste $A=LL^T$ (Cholesky), con $l_{jj}=\sqrt{a_{jj}-\sum_{k<j}l_{jk}^2}$ e $l_{ij}=\frac{a_{ij}-\sum_{k<j}l_{ik}l_{jk}}{l_{jj}}$; costo $\frac13n^3$, senza pivoting.Fattorizzazione LU, pivoting e Cholesky →.
Testo. Due programmi forniscono soluzioni approssimate di due sistemi.
- Sistema I: , (soluzione esatta ), soluzione calcolata .
- Sistema II: , (soluzione esatta ), soluzione calcolata .
Per ciascuno:
- calcolare il residuo e il residuo relativo ;
- calcolare l'errore relativo vero ;
- verificare le disuguaglianze con (sistema I: ; sistema II: );
- dire se il residuo relativo sarebbe un buon criterio d'arresto in ciascun caso.
Soluzione
Sistema I.
- .
- Residuo: , , residuo relativo .
- Errore: , , errore relativo .
- Disuguaglianze: ✓.
Residuo ed errore relativi sono dello stesso ordine ( e ), come ci si aspetta con .
Sistema II.
- .
- Residuo: , , residuo relativo .
- Errore: , , errore relativo (200%).
- Disuguaglianze: ✓.
Il residuo relativo è (cioè «tre cifre giuste»), ma la soluzione è completamente sbagliata. La stima superiore è compatibile con ; quella inferiore è inutile.
Spiegazione geometrica (sistema II). soddisfa quasi perfettamente la prima equazione e la seconda per ; ma le due rette sono quasi parallele, e ci si può spostare lungo di esse di molto ( è a distanza da ) con un residuo minuscolo. In termini di : ✓, perché moltiplica il residuo per fattori dell'ordine di .
4. Criterio d'arresto. Per il sistema I vale: il residuo relativo garantisce un errore relativo , quindi il criterio è affidabile. Per il sistema II no: per garantire un errore relativo servirebbe un residuo relativo . Nei metodi iterativi (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 →) si usa spesso il residuo come criterio d'arresto, e questo risultato mostra che bisogna tenere conto di .
Risultati: sistema I residuo relativo , errore relativo ; sistema II residuo relativo , errore relativo (200%).
Errori tipici. Pensare che un residuo piccolo implichi un errore piccolo; calcolare l'errore con la norma 2 e il residuo con la norma nello stesso rapporto; dimenticare di dividere per e per .
Versione ripasso
Disuguaglianza: , .
- I ( SPD tridiagonale, ): , , residuo relativo ; , errore relativo ; limiti e .
- II (, ): , , residuo relativo ; , errore relativo ; limiti e . Verifica .
- Criterio d'arresto sul residuo: affidabile con piccolo; con per errore serve residuo .
Errori tipici: residuo piccolo errore piccolo; norme diverse nello stesso rapporto; mancano , .