Metodi numerici per la risoluzione di Sistemi Lineari

Documenti analoghi
Corso di Matematica per la Chimica

Corso di Calcolo Numerico

Sistemi lineari. 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0. x 1 x 2 x 3

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Metodi diretti: eliminazione gaussiana

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

8 Metodi iterativi per la risoluzione di sistemi lineari

Sistemi lineari. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Problema. Sistemi lineari. Problema. Problema. Quali sono i potenziali in ogni nodo? Leggi di Kirkoff e di Ohm:

Corso di Calcolo Numerico

Applicazioni eliminazione di Gauss

Un sistema lineare si rappresenta in generale come

Note per il corso di Geometria Corso di laurea in Ing. Edile/Architettura. 4 Sistemi lineari. Metodo di eliminazione di Gauss Jordan

Esercitazione 5: Sistemi a risoluzione immediata.

Motivazioni. Sistemi lineari. Obiettivo. Il problema

Esercitazione di Calcolo Numerico 1 27 Maggio Calcolare la fattorizzazione P A = LU della matrice A =

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

Per esempio, una matrice 4 4 triangolare alta ha la forma. 0 a. mentre una matrice di ordine 4 triangolare bassa è del tipo

Appunti su Indipendenza Lineare di Vettori

Calcolo Numerico Informatica Manolo Venturin A.A Guida all esame

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

LEZIONE 3. Typeset by AMS-TEX

ALGEBRA LINEARE PARTE III

Note sull algoritmo di Gauss

Programmare con MATLAB c Parte 5 Cicli: for e while

Argomento 13 Sistemi lineari

Trasformazione elementari di Givens

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali

Laboratorio di Calcolo Numerico Laboratorio 11: Metodi diretti per la soluzione di sistemi lineari

Autovalori ed autovettori di una matrice

Sistemi lineari - Parte Seconda - Esercizi

Sistemi lineari. a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2 : : : a m1 x 1 + a m2 x 2 +..

Sistemi di equazioni lineari

Matrici di permutazione

Registro di Matematica Applicata /18 - Dott.ssa L. Fermo 2

SISTEMI LINEARI MATRICI E SISTEMI 1

Metodi per la risoluzione di sistemi lineari

RISOLUZIONE DI SISTEMI LINEARI

Transcript:

Metodi numerici per la risoluzione di Sistemi Lineari Dipartimento di Matematica tel. 011 0907503 stefano.berrone@polito.it http://calvino.polito.it/~sberrone Laboratorio di modellazione e progettazione materiali

Problemi Triangolari - Sostituzione in avanti Vogliamo risolvere il sistema lineare Ly = b con L triangolare inferiore (lower triangular) non singolare. l 11 0 0... 0 y 1 b 1 l 21 l 22 0... 0 y 2 b 2 l 31 l 32 l 33... 0 y 3 = b 3.. l n1 l n2 l n3... l nn Osservazione Se L è non singolare, tutti gli elementi diagonali sono diversi da 0: det(l) = n i=1 l ii. y n. b n

Esplicitando le equazioni: l 11 y 1 = b 1, l 21 y 1 + l 22 y 2 = b 2,. l n1 y 1 + l n2 y 2 +... + l nn y n = b n. = y 1 = b 1 /l 11 = y 2 = (b 2 l 21 y 1 )/l 22 i 1 = y i = (b i l ij y j )/l ii j=1

Metodo di sostituzione in avanti (o forward substitution): for i=1:n y(i)=b(i); for j=1:i-1 y(i)=y(i)-l(i,j)*y(j); end y(i)=y(i)/l(i,i); end

Un alternativa che sfrutta la capacità di MATLAB di operare su sottomatrici è la seguente: y(1) =b(1)/l(1,1); for i=2:n y(i)=(b(i)-l(i,1:i-1)*y(1:i-1))/l(i,i); end

Sostituzione all indietro Metodi diretti Vogliamo risolvere il sistema lineare Ux = y con U triangolare superiore (upper triangular) non singolare. u 11 u 12 u 13... u 1n 0 u 22 u 23... u 2n.. 0 0... u n 1,n 1 u n 1,n 0 0... 0 u nn x 1 x 2 x 3. x n = y 1 y 2 y 3. y n. Osservazione Di nuovo, dalla nonsingolarità di U segue che u ii 0 i

u 11 x 1 + u 12 x 2 +... + u 1n x n = y 1, u 22 x 2 +... + u 2n x n = y 2,. u n 1,n 1 x n 1 + u n 1,n x n = y n 1, u nn x n = y n. = x n = y n /u nn. = x n 1 = (y n 1 u n 1,n x n )/u n 1,n 1. n = x i = (y i u ij x j )/u ii. j=i+1

Metodo di sostituzione all indietro (o backward substitution): for i=n:-1:1 x(i)=y(i); for j=i+1:n x(i)=x(i)-u(i,j)*x(j); end x(i)=x(i)/u(i,i); end Sfruttando le funzioni ottimizzate della libreria BLAS: x(n)=y(n)/u(n,n); for i=n-1:-1:1 x(i)=(y(i)-u(i,i+1:n)*x(i+1:n))/u(i,i); end

Metodi diretti La risoluzione di sistemi triangolari è quindi un problema particolarmente semplice da trattare. Idea: Nel caso di sistemi non triangolari, cercare di ricondursi ad uno o più sistemi equivalenti di forma triangolare. Dato un sistema lineare Ax = b le seguenti operazioni conducono ad un sistema equivalente (ovvero con la stessa soluzione): 1 scambiare due equazioni; 2 moltiplicare un equazione per uno scalare; 3 sostituire un equazione con una combinazione lineare della stessa e di un altra equazione.

Metodo di eliminazione di Gauss: consiste nell applicare ripetutamente l operazione 3 in modo da: 1 trasformare il sistema assegnato in un sistema a matrice triangolare superiore 2 e quindi nel risolvere il sistema equivalente così ottenuto con una backward substitution.

Scriviamo il sistema Ax = b esplicitamente: a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1, a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2, a 31 x 1 + a 32 x 2 +... + a 3n x n = b 3, Supponiamo a 11 0. a n1 x 1 + a n2 x 2 +... + a nn x n = b n. r 2 r 2 + ( a 21 a 11 ) r 1

a 21 x 1 + a 22 x 2 +... + a 2n x n = b 2 + a 21 a 11 ( a 11 x 1 + a 12 x 2 +... + a 1n x n = b 1 ) 0x 1 + a (2) 22 x 2 +... + a (2) 2n x n = b (2) 2. a (2) 22 = a 22 a 12 a 21 /a 11,...,a (2) 2n = a 2n a 1n a 21 /a 11, b (2) 2 = b 2 b 1 a 21 /a 11 Nella seconda equazione non compare più la prima incognita.

Procediamo con tutte le ultime n 1 equazioni: = r i r i + m i1 r 1, i = 2,..., n m i1 = a i1 a 11, i = 2,..., n. a (1) 11 x 1 + a (1) 12 x 2 +... + a (1) 1n x n = b (1) 1 0 + a (2) 22 x 2 +... + a (2) 2n x n = b (2) 2 0 + a (2) 32 x 2 +... + a (2) 3n x n = b (2) 3. 0 + a (2) n2 x 2 +... + a nn (2) x n = b n (2) a (1) ij = a ij, b (1) i = b i, i, j = 1,..., n; a (2) ij = a (1) ij + m i1 a (1) 1j, b (2) i = b (1) i + m i1 b (1) 1, i, j = 2,..., n.

Seconda colonna: Metodi diretti supponiamo a (2) 22 0. Eliminiamo x 2 dalle ultime n 2 equazioni trasformate: = r i r i + r 2 m i2, m i2 = a(2) i2 a (2) 22 i = 3,..., n a (1) 11 x 1 + a (1) 12 x 2 + a (1) 13 x 3 +... + a (1) 1n x n = b (1) 1 0 + a (2) 22 x 2 + a (2) 23 x 3 +... + a (2) 2n x n = b (2) 2 0 + 0 + a (3) 33 x 3 +... + a (3) 3n x n = b (3) 3. 0 + 0 + a (3) n3 x 3 +... + a nn (3) x n = b n (3) a (3) ij = a (2) ij + m i2 a (2) 2j, b (3) i = b (2) i + m i2 b (2) 2, i, j = 3,..., n

Dopo n 1 passi: a (1) 11 x 1 + a (1) 12 x 2 + a (1) 13 x 3 +... + a (1) 1n x n = b (1) 1 0 + a (2) 22 x 2 + a (2) 23 x 3 +... + a (2) 2n x n = b (2) 2 0 + 0 + a (3) 33 x 3 +... + a (3) 3n x n = b (3) 3. 0 + 0 + 0 +... + a nn (n) x n = b n (n) Osservazione Il termine noto b ha subito esattamente tutte le trasformazioni subite dagli elementi della matrice A.

Definizione (pivot e moltiplicatori) L elemento a 11 e i successivi elementi a (i) ii sono detti elementi pivot. I coefficienti m ij sono detti moltiplicatori.

Metodo di eliminazione di Gauss e fattorizzazione LU In notazione matriciale, il k-esimo passo di eliminazione Gaussiana puó essere rappresentato come segue: A (k+1) = M k A (k) con 1 M k = 1 m k+1,k 1.... m n,k 1

Dopo n 1 passi: A (n) = M n 1 A (n 1) = M n 1 M n 2 A (n 2) =... = M n 1... M 2 M } {{ } 1 A M e con A (n) triangolare superiore Posto U = MA, si può scrivere b (n) = M n 1... M 2 M 1 b A (n) x = b (n) Ax = b MAx = Mb Ux = Mb da cui ottengo la soluzione con sostituzione all indietro.

Esempio Dati 4 4 8 12 A = 2 8 7 b = 9 1 3 6 7 calcolare la soluzione con eliminazione gaussiana. 1 0 0 M 1 = 1 2 1 0 1 4 0 1 e 4 4 8 12 M 1 (A b) = 0 6 3 3. 0 2 4 4

Esempio e 1 0 0 M 2 = 0 1 0 0 1 3 1 4 4 8 12 M 2 M 1 (A b) = 0 6 3 3 = (U b (3) ). 0 0 3 3 Con sostituzione all indietro: x 3 = 1 x 2 = (3 3 1)/6 = 0 x 1 = (12 4 0 8 1)/4 = 1

Com è fatta M? - triangolare inferiore, ma 1 0 0... 0 m 21 1 0... 0 M m 31 m 32 1... 0..... m n1 m n2 m n3... 1 Poniamo L = M 1 U = MA = LU = LMA = A Quindi il sistema di partenza equivale a LUx = b. Com è fatta L? Suo ruolo?

Struttura di L Metodi diretti L triangolare inferiore. Il calcolo è meno complicato e costoso di quanto sembri a prima vista: non occorre costruire M e poi calcolarne l inversa. 1 0 0... 0 m 21 1 0... 0 L = m 31 m 32 1... 0.... m n1 m n2... m n,n 1 1 Osservazione L può quindi essere costruita durante l eliminazione gaussiana semplicemente conservando gli elementi m ij e cambiandogli il segno.

Metodi diretti Abbiamo fattorizzato A = LU con L triangolare inferiore U triangolare superiore Utilizzo per risolvere il sistema lineare: Ax = b LUx = b L }{{} Ux = b y Ly = b, Ux = y

Il problema di partenza può essere affrontato in due fasi, risolvendo due sistemi a matrice triangolare: 1 prima determiniamo y risolvendo Ly = b; 2 una volta noto y, determiniamo x risolvendo Ux = y. Osservazione La risoluzione del sistema lineare Ly = b è del tutto equivalente ad effettuare sul vettore b le trasformazioni dell eliminazione gaussiana. Quindi il vettore y calcolato come soluzione del sistema lineare Ly = b coincide con b (n)!

Meglio fattorizzazione LU + 2 sistemi lineari triangolari, o eliminazione gaussiana senza costruire esplicitamente L? Con l eliminazione Gaussiana, b subisce le stesse trasformazioni di A. Su un solo sistema sono equivalenti. Se devo risolvere un secondo sistema lineare Ax = c con eliminazione gaussiana devo rieseguire tutto il procedimento per effettuare le trasformazioni su c e ottenere c (n) ; con fattorizzazione LU già calcolata devo solo risolvere i sistemi Ly = c e Ux = y. È veramente più conveniente fare così piuttosto che rieffettuare ex-novo l eliminazione gaussiana sul sistema Ax = c?

Costo computazionale Metodi diretti Per costo computazionale di un algoritmo intendiamo l ordine di grandezza del numero di moltiplicazioni o divisioni effettuate, calcolato in funzione della dimensione n del problema (in questo caso l ordine della matrice). Costo computazionale per calcolo fattorizzazione LU (coincidente con quello della sola eliminazione gaussiana): ( ) n 3 O moltiplicazioni. 3 Il costo computazionale soluzione di un sistema triangolare (superiore o inferiore indifferentemente): ( ) n 2 O moltiplicazioni. 2

Risolvendo un sistema lineare con fattorizzazione LU la maggior parte del costo risiede nella fattorizzazione e non nella soluzione dei sistemi triangolari ottenuti: il costo totale è infatti di O( n3 3 ) + O(n2 ) O( n3 3 ) operazioni, essendo (per n grande) n 2 trascurabile rispetto a n 3. Osservazione I metodi di fattorizzazione sono quindi particolarmente convenienti quando si debbano risolvere un certo numero di sistemi lineari in cui la matrice dei coefficienti è sempre la stessa e cambia solo il vettore dei termini noti.

Esempio Data la matrice 4 4 8 A = 2 8 7 1 3 6 calcolarne la fattorizzazione LU. Basta recuperare i moltiplicatori: 4 4 8 1 0 0 U = 0 6 3 L = 1 2 1 0 1 0 0 2 1 4 3 1 Osservazione: det(a) = det(l) det(u) = 1 n i=1 u ii = 48.

Osservazione L può essere memorizzata nella stessa matrice A via via che in questa vengono azzerati gli elementi sotto la diagonale. 4 4 8 4 4 8 4 4 8 2 8 7 1 2 6 3 1 2 6 3 1 1 1 1 3 6 4 2 4 4 3 2

L eliminazione di Gauss / fattorizzazione LU può essere sempre portata a termine con successo? Definizione Sia A R n n ; definiamo A k, con k = 1,..., n, sottomatrice principale di testa di ordine k la matrice ottenuta intersecando le prime k righe e k colonne di A. Teorema Sia A una matrice di ordine n. Se A k è non singolare per k = 1,..., n 1 allora esiste ed è unica la fattorizzazione LU di A.

Osservazione Le matrici a diagonale dominante per righe o per colonne e le matrici simmetriche definite positive soddisfano le ipotesi del teorema precedente. Osservazione Il teorema precedente non esclude che la matrice A sia singolare. Se anche A è singolare, ma det(a k ) 0, k = 1,..., n 1, esiste comunque la fattorizzazione LU, con la matrice U che avrà un elemento u ii nullo.

La Strategia del Esempio Che sucede se voglio applicare eliminazione gaussiana a ( ) 0 1 A =? 1 0 Occorre ricorrere alle matrici di permutazione.

Definizione Sia P ij la matrice ottenuta dalla matrice identità permutando la i-esima e la j-esima riga: P ij = i j 1 0 0... 0... 0... 0 0 1 0... 0... 0... 0 0 0 1... 0... 0... 0.. i 0 0 0... 0... 1... 0... j 0 0 0... 1... 0... 0.. 0 0 0... 0... 0... 1 Le matrici P ij sono dette matrici di permutazione semplice.

Data una matrice A la moltiplicazione a sinistra di A per P ij (P ij A) produce lo scambio della i-esima e j-esima riga di A; la moltiplicazione a destra di A per P ij (AP ij ) produce lo scambio della i-esima e j-esima colonna di A. Se moltiplichiamo più matrici di permutazione semplice fra loro, otteniamo una matrice (che indicheremo con P e che chiameremo matrice di permutazione) il cui effetto su una matrice A sarà quello di effettuare tutti gli scambi di righe (colonne) associate alle matrici di permutazione semplice.

Teorema Sia A una matrice di ordine n. Allora esiste una matrice di permutazione P per cui si può ottenere la fattorizzazione LU di A, cioè: PA = LU. Si osservi che, data A, vi possono essere diverse matrici di permutazione P tali che PA ammette fattorizzazione LU. Come individuare una matrice di permutazione? Strategia di pivoting parziale.

Parziale Metodi diretti Se durante l eliminazione di Gauss al passo k-esimo risulta a (k) kk = 0, scambiamo due equazioni in modo che il nuovo elemento pivot a (k) kk = 0 sia diverso da zero. La scelta è sempre tra le equazioni che seguono la k-esima.

Esempio Consideriamo il seguente sistema lineare: x 1 + x 2 + x 3 = 1 x 1 + x 2 + 2x 3 = 2 x 1 + 2x 2 + 2x 3 = 1 Eliminazione gaussiana: m 21 = 1 e m 31 = 1 = x 1 + x 2 + x 3 = 1 0 + 0 + x 3 = 1 0 + x 2 + x 3 = 0 a (2) 22 = 0!

Esempio (segue) x 1 + x 2 + x 3 = 1 0 + x 2 + x 3 = 0 0 + 0 + x 3 = 1 Questo è già in forma triangolare e si può ottenere per sostituzione all indietro la soluzione: x 3 = 1 x 2 = x 3 = 1 x 1 = 1 x 2 x 3 = 1 Abbiamo det(a) = det(u) = 1; in generale, det(a) = ( 1) s det(u), dove s è il numero di permutazioni di riga effettuate.

Fattorizzazione PA = LU Cosa accade alla fattorizzazione LU con il pivoting? n 1 passi: A (k+1) = M k P k A (k) A (n) = M n 1 P n 1 A (n 1) =... = M n 1 P n 1 M n 2 P n 2... M 2 P 2 M 1 P 1 A U = M n 1 P n 1 M n 2 P n 2 M n 3... M 2 P 2 M 1 P 1 A = M n 1 M n 2 P n 1 P n 2 M n 3... M 2 P 2 M 1 P 1 A = M n 1 M n 2... M 2 M } {{ } 1 P n 1 P n 2... P 2 P 1 A } {{ } M P = MPA

U = MPA M 1 U = PA Posto L = M 1 abbiamo determinato fattorizzazione LU di PA, i.e. fattorizzazione PA = LU. Fattorizzazione PA = LU per risolvere un sistema lineare: 1 Ly = Pb 2 Ux = y

In generale la strategia di permutare equazioni/righe viene usata anche se si incontrano elementi pivot diversi da zero per aumentare la stabilità dell eliminazione gaussiana. Si può infatti dimostrare che per aumentare la stabilità è opportuno evitare moltiplicatori troppo grandi, poiché amplificano gli errori di arrotondamento, con conseguente instabilità dell algoritmo. Per prevenire la crescita dei moltiplicatori è necessario prevenire elementi pivot troppo piccoli. Per raggiungere questo obiettivo possiamo applicare la strategia del pivoting parziale ammettendo scambi di righe anche se al passo k l elemento pivot a (k) kk non è nullo. Più precisamente, al passo k si determina l elemento di modulo massimo fra tutti gli elementi a (k) rk, con r k; una volta individuato l indice r corrispondente all elemento di modulo massimo si scambiano fra loro la riga k-esima e r-esima.

In questo modo ci si assicura che ad ogni passo si sta usando l elemento pivot più grande possibile. Questa strategia incrementa in modo significativo la stabilità dell algoritmo. Osservazione Se la matrice A è a diagonale dominante per colonne è possibile dimostrare che la strategia del pivoting parziale è del tutto superflua in quanto non provoca alcun scambio di equazioni.inoltre, se la matrice A è simmetrica e definita positiva, il metodo di Gauss senza pivoting risulta numericamente stabile, quindi non c è bisogno di effettuare pivoting. Per tale classe di matrici esiste una diversa fattorizzazione molto più conveniente da usare (la fattorizzazione di Cholesky).

Come costruire L Metodi diretti P = P n 1... P 1 U = A (n) L =? È facilmente ottenibile con l eliminazione gaussiana tenendo conto delle permutazione anche nell immagazzinamento dei moltiplicatori sotto la diagonale.

Esempio P 1 = P 13 : 1 4 8 A = 2 0 7 4 2 6 4 2 6 P 13 A = 2 0 7 1 4 8 4 2 6 A (2) = 1 2 1 4 1 4 7 2 13 2

Esempio (segue...) P 2 = P 23 : 4 2 6 P 23 A (2) = 1 7 13 4 2 2 1 2 1 4 4 2 6 A (3) = 1 13 7 2 4 1 2 2 7 2 41 7 1 0 0 4 2 6 0 0 1 L = 1 4 1 0 U = 7 13 0 1 2 2 2 2 P = P 23 P 13 = 1 0 0 41 7 1 0 0 7 0 1 0

Fattorizzazione di Cholesky Se A è simmetrica e definita positiva, essendo l eliminazione gaussiana stabile senza pivoting, si può sfruttare la simmetria di A per ridurre il costo computazionale del calcolo della fattorizzazione usando la fattorizzazione di Cholesky anziché fattorizzazione LU. Teorema (Fattorizzazione di Cholesky) Sia A una matrice di ordine n simmetrica e definita positiva. Allora esiste un unica matrice triangolare superiore R con elementi diagonali positivi tale che A = R T R. Costo computazionale per fattorizzazione di Cholesky: O( n3 6 )

Comandi MATLAB Metodi diretti 1 [L,U,P]=lu(A) 2 R=chol(A) Attenzione! chol assume che A sia simmetrica definita positiva e usa solo la parte triangolare superiore! 3 \ Altre fattorizzazioni 1 Fattorizzazione QR (qr(a)): Q è ortogonale, R è triangolare superiore. Molto stabile ma anche più costosa della fattorizzazione PA = LU. Utile per altre applicazioni. Varie 1 norm(x), norm(a): calcolo di norme 2 cond(a): numero di condizionamento

Metodi iterativi Metodi diretti Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel I metodi diretti consentono la costruzione della soluzione esatta, a meno degli errori di arrotondamento, in un numero finito di passi. Per sistemi con matrici dense i metodi diretti sono generalmente preferibili. Per sistemi con matrici sparse e di ordine elevato, i metodi diretti diventano impraticabili a causa del fill in non può essere sfruttata la sparsità della matrice.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel I metodi iterativi lasciano inalterata la struttura di A e costruiscono una successione infinita di vettori {x (k) } k 0, che sotto opportune ipotesi converge alla soluzione x. Per i metodi iterativi dovremo discutere: 1 condizioni di applicabilità 2 costo computazionale (di ogni iterazione) 3 problemi connessi alla convergenza: convergenza si/no e velocità di convergenza.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Definizione Una successione di vettori {x (k) } k 0 di R n si dice convergente ad un vettore x R n se esiste una norma per cui lim x (k) x = 0, k ed in tal caso si pone lim x (k) = x. k Osservazione Grazie all equivalenza delle norme su R n tale definizione risulta indipendente dalla norma scelta in R n ; se una successione di vettori converge in una norma di R n, allora converge in tutte le norme di R n.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Osservazione La condizione di convergenza in una qualunque norma di R n si traduce in una condizione di convergenza per componenti: lim x (k) = x lim x (k) k k i = x i, i = 1,..., n. Simili argomenti valgono anche per successioni di matrici {A (k) } k 0. Inoltre vale il seguente teorema: Teorema Sia A R n n. Allora indicando con ρ(a) il raggio spettrale di A lim k Ak = 0 R n n ρ(a) < 1 Ricordiamo che per ogni norma di matrice compatibile con una norma di vettore si ha ρ(a) A.

Generalità sui metodi iterativi Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Idea base: data una stima iniziale x (0) della soluzione del sistema lineare Ax = b, con A R n n, det(a) 0, b R n, si costruisce una successione di vettori {x (k) } k 0 che converga (si spera) ad x, risolvendo ad ogni iterazione dei sistemi lineari molto più semplici di quello di partenza. Come? Consideriamo uno splitting della matrice A del tipo Allora si ha A = M + N, det(m) 0. Ax = (M + N) x = b Mx = Nx + b.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Supponiamo di essere all iterazione k + 1, di avere quindi a disposizione x (k) e di voler calcolare x (k+1). Definiamo x (k+1) in modo che valga Allora abbiamo Mx (k+1) = Nx (k) + b x (k+1) = M 1 Nx (k) + M 1 b che può essere scritto in forma compatta come x (k+1) = Bx (k) + c, avendo posto B = M 1 N e c = M 1 b. La matrice B = M 1 N è la matrice d iterazione ed individua il particolare metodo; è fondamentale nello stabilire le condizioni e la velocità di convergenza.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Proprietà (consistenza) Se x (k) x, allora x soddisfa l equazione x = B x + c e quindi il limite della successione x è proprio la soluzione x di Mx = Nx + b (cioè di Ax = b). Osservazione Al variare della stima iniziale x (0) si ottengono diverse successioni {x (k) } k 0. Definizione Un metodo iterativo si dice convergente se per ogni stima iniziale x (0) la successione {x (k) } k 0 è convergente.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Studio della convergenza dei metodi iterativi Sotto quali condizioni la successione {x (k) } k 0 generata da un metodo iterativo converge? Se la successione converge ad un vettore x, questo è senz altro soluzione del sistema lineare. Definiamo l errore e (k) commesso al passo k come la differenza fra l approssimazione corrente e la soluzione: e (k) = x (k) x. Chiaramente, x (k) x e (k) 0. Studiamo l errore: e (k) = x (k) x = Bx (k 1) + c x Allora = Bx (k 1) + c (Bx + c) = B(x (k 1) x) = Be (k 1). e (k) = Be (k 1) = B(Be (k 2) ) = B 2 e (k 2) =... = B k e (1) = B k e (0).

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Poiché abbiamo e (k) = B k e (0) lim x (k) = x lim k k e(k) = 0 lim k Bk e (0) = 0 lim k Bk = 0 Quindi c è convergenza se e solo se ρ(b) < 1.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Teorema Il metodo iterativo definito dalla matrice di iterazione B converge per ogni x (0) R n se e solo se ρ(b) < 1. La condizione necessaria e sufficiente espressa dal teorema per la convergenza non è di facile verifica. Una condizione sufficiente è espressa dal seguente Teorema. Teorema Sia una norma di matrice naturale. Se B < 1 il metodo iterativo converge. Dimostrazione: È sufficiente ricordare che per ogni norma naturale ρ(b) B

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Il raggio spettrale indica non solo se il metodo iterativo converge ma anche quanto velocemente converge. Intuitivamente, la velocitá di convergenza è una misura di quanto velocemente l errore tende a zero. La velocitá di convergenza di un metodo iterativo è tanto maggiore quanto più il raggio spettrale della matrice di iterazione è vicino a 0; viceversa è tanto più lenta quanto più è vicino a 1.

Metodo di Jacobi Metodi diretti Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Detto anche metodo delle sostituzioni simultanee. Consideriamo il seguente splitting di A: F A = E + D + F, A = D E dove 1 E è la parte di A sotto la diagonale, 2 D è la diagonale di A, 3 F è la parte di A sopra la diagonale Prendiamo M = D, N = E + F. Matrice d iterazione B J : B J = D 1 (E + F )

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Data l iterata corrente x (k) R n, la x (k+1) R n viene calcolata tramite il seguente algoritmo: for i = 1 : n x (k+1) i = ( b i i 1 j=1 a ijx (k) j ) n j=i+1 a ijx (k) j /a ii end In forma compatta, può essere scritto x (k+1) = D 1 ( b Ex (k) Fx (k)). Osservazione Se a ii = 0 per qualche i, D non è invertibile. Si possono però preliminarmente riordinare le equazioni del sistema lineare in modo da portare in posizione ii un elemento non nullo. Ciò è sempre possibile se A è non singolare.

Metodo di Gauss-Seidel Metodi diretti Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Consideriamo sempre lo splitting ma M = E + D e N = F. La matrice di iterazione: A = E + D + F, B GS = (E + D) 1 F

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Data l iterata corrente x (k) R n, la x (k+1) R n viene calcolata tramite il seguente algoritmo: for i = 1 : n x (k+1) i = ( b i i 1 j=1 a ijx (k+1) j ) n j=i+1 a ijx (k) j /a ii end In forma compatta, può essere scritto x (k+1) = D 1 ( b Ex (k+1) Fx (k)).

2 oppure se x (k+1) x (k) tol, Test di arresto Metodi diretti Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Un metodo iterativo fornisce una successione infinita di iterate x (k). Questo diventerà un algoritmo solo se stabiliremo in modo preciso quando interrompere il procedimento di generazione di iterate. Dobbiamo ovvero stabilire un criterio di arresto delle iterazioni. 1 si arresta il processo iterativo quando risulta x (k+1) x (k) x (k+1) tol, dove tol è una tolleranza relativa fissata sulla base di opportuni criteri di utilizzo della soluzione. dove tol è questa volta una tolleranza assoluta.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Una strada alternativa per definire un test d arresto consiste nel controllo del residuo dell equazione. Sia x (k+1) la soluzione ottenuta al passo k + 1, il residuo corrispondente è definito come r (k+1) = b Ax (k+1). Test di arresto relativo sul residuo: b Ax (k+1) b tol.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Osservazione Residuo piccolo non garantisce errore piccolo. e (k) = x (k) x = x (k) A 1 ( b = A 1 Ax (k) b) = A 1 r (k) A 1 r (k). Ricordando 1 x A b e (k) x A 1 r (k) (v. conti su condizionamento) abbiamo A b = K(A) r (k) b Quindi r (k) b tol = e (k) x K(A) r (k) b K(A)tol

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Teorema (Condizioni di convergenza per il metodo di Jacobi) Per matrici a predominanza diagonale stretta (per righe o per colonne indifferentemente) il metodo di Jacobi converge. Teorema (Condizioni di convergenza per il metodo di Gauss-Seidel) Per matrici a predominanza diagonale stretta (per righe o per colonne) il metodo di Gauss-Seidel converge. Teorema (Condizioni di convergenza per il metodo di Gauss-Seidel) Per matrici simmetriche definite positive il metodo di Gauss-Seidel converge.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Confronto delle proprietà di convergenza del metodo di Jacobi e di Gauss-Sidel In generale la convergenza di uno dei metodi non implica la convergenza dell altro e viceversa. Tuttavia quando entrambi convergono la velocità di convergenza del metodo di Gauss-Seidel è generalmente superiore. Teorema (Teorema di Stein-Rosenberg) Sia A R n n con a ij 0, i j e a ii > 0, allora si verifica uno e uno solo dei seguenti risultati: 1 0 < ρ(b GS ) < ρ(b J ) < 1, 2 1 < ρ(b J ) < ρ(b GS ), 3 ρ(b GS ) = ρ(b J ) = 0, 4 ρ(b GS ) = ρ(b J ) = 1.

Generalità Metodo di Jacobi Metodo di Gauss-Seidel Test di arresto Condizioni di convergenza per Jacobi e Gauss-Seidel Teorema Sia A R n n una matrice tridiagonale con elementi diagonali non nulli, allora ρ(b GS ) = ρ 2 (B J ), cioè il metodo di Gauss-Seidel ed il metodo di Jacobi convergono o divergono simultaneamente e il tasso asintotico di convergenza del metodo di Gauss-Seidel è doppio di quello del metodo di Jacobi.