Metodi numerici per sistemi lineari quadrati a.a. 2012/2013 Prof. Maria Lucia Sampoli Richiami sulle matrici Norme di vettori e di matrici Il concetto di norma e’ una generalizzazione del concetto di lunghezza di x ∈ Ron di una matrice A ∈ R n× n un vettore DEFINIZIONE: Una funzione da Rn in R: x e’ detta norma vettoriale Esempi ||x||, tale che Norme matriciali indotte DEFINIZIONE: Una funzione da RnXn in R: A ||A||, tale che e’ detta norma matriciale. In generale si considerano norme matriciali indotte Sistemi lineari quadrati ‘ Condizionamento Condizionamento Condizionamento: proprietà Condizionamento: proprietà Dato Ax=b, come calcolare x? Sistemi triangolari Sistemi triangolari Metodi diretti: fattorizzazione LR Metodi diretti: fattorizzazione LR Metodo di eliminazione di Gauss Metodo di eliminazione di Gauss Metodo di eliminazione di Gauss Metodo di eliminazione di Gauss Metodo di eliminazione di Gauss Metodo di eliminazione di Gauss Metodo di eliminazione di Gauss Algoritmo di Gauss (n - 1)n(2n - 1) (n - 1)n n 3 (n - k) + ∑ (n - k) = ≈ + ∑ 2 3 6 k =1 k=1 n-1 n -1 2 Algoritmo di Gauss Metodo di Gauss: pivoting e scaling Metodo di Gauss: pivot totale Metodo di Gauss: pivot parziale Metodo di Gauss: pivot parziale Metodo di Gauss: pivot parziale Metodo di fattorizzazione diretta Metodo di fattorizzazione diretta Fattorizzazione di Choleski Fattorizzazione di Choleski Fattorizzazione di Choleski Metodi iterativi per sistemi lineari Nei metodi diretti la presenza di eventuali elementi nulli nella matrice non può essere sfruttata ai fini di ridurre il costo computazionale e l'occupazione di memoria ( aspetti signicativi per sistemi di grandi dimensioni) Infatti la trasformazione di A può introdurre un numero diverso da zero laddove prima c'era uno zero (fill-in) I metodi iterativi sono utili per la risoluzione di sistemi lineari di grandi dimensioni con matrici A sparse (il numero degli elementi non nulli è dell'ordine di n) Costruzione di un metodo iterativo Consideriamo il sistema lineare Ax = b con det(A) ≠ 0. Introduciamo la seguente decomposizione della matrice A = P − N. Allora si ha Ax = b ⇒ (P - N ) x = b ⇒ Px = Nx + b ⇒ x = P -1Nx + P -1b Il sistema è ricondotto ad un problema di punto fisso. Applichiamo il procedimento delle approssimazioni successive dove B e’ matrice di iterazione Convergenza di un metodo iterativo Matrici sparse Il costo di un metodo iterativo è dato dal numero delle iterazioni x costo del prodotto di B per un vettore Quindi l’uso dei metodi iterativi è consigliato nel caso di matrici sparse e di grandi dimensioni. Il formato sparse è utilizzato in Matlab per ridurre i costi di memorizzazione della matrice. Decomposizione della matrice Metodo di Jacobi Metodo di Gauss-Seidel Criteri di arresto Condizioni per la convergenza In generale non si può affermare che il metodo di Gauss-Seidel converga più velocemente del metodo di Jacobi (o viceversa). Tuttavia, nel caso di matrici tridiagonali il metodo di Gauss-Seidel converge se e solo se converge il metodo di Jacobi e, asintoticamente, sono necessarie metà iterazioni di Gauss-Seidel per ottenere la stessa precisione di Jacobi. Il vettore residuo è nullo se e solo se calcolato nella soluzione esatta. Un residuo piccolo non necessariamente implica vicinanza alla soluzione (dipende dal condizionamento della matrice A). Se una matrice A è a diagonale dominante in senso forte sia Jacobi che Gauss-Seidel convergono (cond. SUFF.) Gauss-Seidel converge se A è una matrice simmetrica e definita positiva (SUFF.)