Corso di Calcolo Numerico Dottssa MC De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Corso di Calcolo Numerico - Dottssa MC De Bonis
Metodi Iterativi Sia A R n n e siano D, C R n n, D non singolare, tali che A = D + C Il sistema Ax = b è equivalente al sistema x = D 1 Cx + D 1 b, ossia, posto P = D 1 C R n n e q = D 1 b R n, al sistema x = P x + q Partendo da un vettore x (0) R n e utilizzando la formula iterativa x (k) = P x (k 1) + q (1) si costruisce la successione di vettori {x (k) } k=1,2, La matrice P viene detta Matrice di iterazione Corso di Calcolo Numerico - Dottssa MC De Bonis
Se si ha e cioè lim k x(k) = x, x = P x + q Ax = b x R n Ovviamente per ciascuna scelta di x (0) otteniamo diverse successioni {x (k) } k=1,2, che possono essere convergenti o non convergenti Il procedimento iterativo individuato dalla formula iterativa (1) si dice convergente se, comunque si sceglie il vettore x (0), la successione {x (k) } k=1,2, è convergente Analizziamo il problema della convergenza del procedimento iterativo individuato dalla formula iterativa (1) Corso di Calcolo Numerico - Dottssa MC De Bonis
Convergenza del procedimento iterativo Sottraendo membro a membro le formule si ha x (k) = P x (k 1) + q e x = P x + q x x (k) = P (x x (k 1) ) e, denotando con e (k) = x x (k) l errore al k esimo passo, si ha e (k) = P e (k 1) = P 2 e (k 2) = = P k e (0) Il procedimento iterativo è convergente se lim k e(k) = 0 lim k P k = 0 Vale il seguente Teorema 1 Condizione necessaria e sufficiente affinchè per una data matrice P R n n valga è che lim P k = 0 k ρ(p ) < 1 (ρ(p ) è il raggio spettrale di P ) Corso di Calcolo Numerico - Dottssa MC De Bonis
Poichè P = D 1 C = D 1 (A D) = (I D 1 A), se la matrice D viene scelta in modo tale che ρ(i D 1 A) < 1, il procedimento iterativo è sicuramente convergente Ma, per ogni norma matriciale compatibile con una vettoriale, si ha pertanto vale il seguente ρ(b) B, Teorema 2 Condizione sufficiente per la convergenza del procedimento iterativo individuato dalla formula iterativa (1) è che esista una norma matriciale per cui I D 1 A < 1 Corso di Calcolo Numerico - Dottssa MC De Bonis
Conclusioni Se D viene scelto in modo tale che det(d) 0; tale che I D 1 A < 1, il procedimento iterativo individuato dalla formula iterativa (1) è convergente Osservazione Si può verificare che, anche se I D 1 A < 1 in pratica il metodo non converge Ciò può accadere, per esempio, se I D 1 A è molto vicina a 1 e la matrice A è fortemente mal condizionata Corso di Calcolo Numerico - Dottssa MC De Bonis
Costo computazionale Se la matrice A non ha specifiche proprietà e la matrice D ha una forma semplice, ad esempio diagonale o triangolare, il costo computazionale del procedimento iterativo individuato dalla formula iterativa (1) ha un costo computazionale dell ordine di n 2 ad ogni passo Dunque se converge in p passi il costo computazionale è dell ordine pn 2 Se, invece, A è sparsa, esso è dell ordine di n ad ogni passo Dunque se converge in p passi è dell ordine di pn Ecco perchè un metodo iterativo risulta essere competitivo con un metodo diretto solo se A è sparsa Corso di Calcolo Numerico - Dottssa MC De Bonis
Criteri di Arresto e scelta di x (0) Come, già detto a proposito del metodo iterativo di Newton, dovendo implementare la formula iterativa (1) in maniera automatica, occorrono dei criteri per arrestarla Fissata una tolleranza T OLL arbitrariamente piccola si utilizzano come criteri di arresto: 1 x (k) x (k 1) < T OLL, x (k) tanto più è piccolo T OLL tanto più x (k) è vicino al limite della succession x ; 2 numero delle iterazioni IT MAX, IT MAX è una variabile intera fissata detta tappo È necessario utilizzarli entrambi In generale, x (0) viene scelto con tutte le componenti uguali a 0 Corso di Calcolo Numerico - Dottssa MC De Bonis
Metodo di Jacobi È il più famoso e il più semplice dei metodi iterativi Se la matrice del sistema è a 1,1 a 1,2 a 1,n a 2,1 a 2,2 a 2,n A = a n,1 a n,2 a n,n Si scelgono D = a 1,1 0 0 0 a 2,2 0 C = Ovviamente A = D + C 0 0 a n,n 0 a 1,2 a 1,n a 2,1 0 a n 1,n a n,1 a n,n 1 0 Corso di Calcolo Numerico - Dottssa MC De Bonis
Partendo dal sistema Ax = b, cioè a 1,1 x 1 +a 1,2 x 2 + +a 1,n x n = b 1 a 2,1 x 1 +a 2,2 x 2 + +a 2,n x n = b 2 a n,1 x 1 +a n,2 x 2 + +a n,n x n = b n la formula Dx = Cx + b non è altro che a 1,1 x 1 = a 1,2 x 2 a 1,n x n +b 1 a 2,2 x 2 = a 2,1 x 1 a 2,n x n +b 2 a n,n x n = a n,1 x 1 a n,n 1 x n 1 +b n cioè x i = 1 a i,i b i n a i,j x j, j=1 j i i = 1,, n Corso di Calcolo Numerico - Dottssa MC De Bonis
Dunque la formula iterativa x (k) = D 1 Cx (k 1) + D 1 b, k = 0, 1,, scritta per componenti, diventa x (k) i = 1 n b i a i,j x (k 1) j, i = 1,, n, k = 0, 1, a i,i j=1 j i Per l implementazione del metodo iterativo di Jacobi occorrono 2 vettori, uno per x (k) e l altro per x (k 1) Poichè alla fine di ogni iterazione le componenti di x (k) prendono il posto delle componenti di x (k 1), il metodo iterativo di Jacobi viene detto anche Metodo degli spostamenti simultanei Corso di Calcolo Numerico - Dottssa MC De Bonis
Affinchè det(d) 0, è necessario che a i,i 0, i Se la matrice A ha qualche elemento diagonale nullo scambiamo opportunamente le righe (poichè stiamo supponendo che A è non singolare sicuramente esiste una matrice di permutazione Π tale che ΠA ha elementi diagonali tutti non nulli) Per essere sicuri della convergenza è necessario verificare che I D 1 A < 1 Vale anche il seguente Teorema 3 Sia A R n n, se è soddisfatta una delle seguenti condizioni: 1 A è a predominanza diagonale per righe in senso stretto; 2 A è a predominanza diagonale per colonne in senso stretto; allora il metodo di Jacobi è convergente Corso di Calcolo Numerico - Dottssa MC De Bonis
Conclusioni Per implementare correttamente il metodo di Jacobi: 1 controllare che a i,i 0, i = 1,, n, altrimenti effettuare scambi di righe; 2 controllare che se per qualche p =, 1, 2, F si ha I D 1 A p < 1 Se la matrice A è a predominanza diagonale per righe o per colonne in senso stretto la convergenza è assicurata 3 fissare una tolleranza T OLL e un numero di iterazioni IT MAX; 4 porre x (0) = (0,, 0) e calcolare per k = 1,, IT MAX x (k) i = 1 n b i a i,j x (k 1) j, i = 1,, n, a i,i j=1 j i Corso di Calcolo Numerico - Dottssa MC De Bonis
Metodo di Gauss-Siedel È una variante del metodo di Jacobi Si osserva infatti che nel calcolare x (k) i = 1 n b i a i,j x (k 1) j, i = 1,, n, a i,i j=1 j i a secondo membro potrebbero essere utilizzati i valori x (k) j, j = 1,, i 1, già calcolati e quindi più precisi Il metodo diventa x (k) i = 1 b i a i,i i 1 j=1 a i,j x (k) j n j=i+1 a i,j x (k 1) j, i = 1,, n Il metodo iterativo di Gauss-Siedel viene anche detto Metodo degli spostamenti successivi in quanto per costruire le componenti del vettore x (k) si utilizzano non solo le componenti di x (k 1) ma anche le componenti precedentemente calcolate di x (k) stesso Dunque per la sua implementazione basta 1 solo vettore Corso di Calcolo Numerico - Dottssa MC De Bonis
Dal punto di vista matriciale è facile vedere che consiste nel considerare A = D + C dove D = a 1,1 0 0 a 2,1 a 2,2 0 e C = a n,1 a n 1,n a n,n 0 a 1,2 a 1,n 0 0 a n 1,n 0 0 0 Corso di Calcolo Numerico - Dottssa MC De Bonis
Per il metodo di Gauss-Siedel vale il seguente Teorema 3 Sia A R n n, se è soddisfatta una delle seguenti condizioni: 1 A è a predominanza diagonale per righe in senso stretto; 2 A è simmetrica definita positiva; allora il metodo di Gauss-Siedel è convergente Osservazione Il metodo di Gauss-Siedel che utilizza un solo vettore è in generale più velocemente convergente del metodo di Jacobi, ma ci sono anche dei casi in cui, non solo il metodo di Jacobi converge più velocemente, ma il metodo di Jacobi è convergente e il metodo di Gauss-Siedel non lo è Corso di Calcolo Numerico - Dottssa MC De Bonis
Conclusioni Per implementare correttamente il metodo di Gauss-Siedel: 1 controllare che a i,i 0, i = 1,, n, altrimenti effettuare scambi di righe; 2 controllare che se per qualche p =, 1, 2, F si ha I D 1 A p < 1 Se la matrice A è a predominanza diagonale per righe in senso stretto o simmetrica e definita positiva la convergenza è assicurata 3 fissare una tolleranza T OLL e un numero di iterazioni IT MAX; 4 porre x (0) = (0,, 0) e calcolare per k = 1,, IT MAX e i = 1,, n x (k) i = 1 i 1 n b i a i,j x (k) j a i,i j=1 j=i+1 a i,j x (k 1) j Corso di Calcolo Numerico - Dottssa MC De Bonis