METODI ITERATIVI PER SISTEMI LINEARI



Похожие документы
Corso di Calcolo Numerico

Dimensione di uno Spazio vettoriale

RICHIAMI SULLE MATRICI. Una matrice di m righe e n colonne è rappresentata come

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

Parte 2. Determinante e matrice inversa

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

Parte 3. Rango e teorema di Rouché-Capelli

ESERCIZI APPLICAZIONI LINEARI

Autovalori e Autovettori

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

Esempi di funzione. Scheda Tre

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Introduzione al MATLAB c Parte 2

Lezione 9: Cambio di base

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

risulta (x) = 1 se x < 0.

Ottimizazione vincolata

Documentazione esterna al software matematico sviluppato con MatLab

LE FUNZIONI A DUE VARIABILI

RETTE, PIANI, SFERE, CIRCONFERENZE

Appunti sul corso di Complementi di Matematica - prof. B.Bacchelli Equazioni differenziali lineari omogenee a coefficienti costanti.

Corso di Analisi Numerica

Matematica generale CTF

Condizionamento del problema

Funzioni inverse Simmetrie rispetto alla bisettrice dei quadranti dispari. Consideriamo la trasformazione descritta dalle equazioni : = y

Equazioni alle differenze finite (cenni).

Corso di Matematica per la Chimica

1. Limite finito di una funzione in un punto

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni.

u 1 u k che rappresenta formalmente la somma degli infiniti numeri (14.1), ordinati al crescere del loro indice. I numeri u k

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0.

Algebra Lineare e Geometria

Metodi iterativi per sistemi lineari

1 Applicazioni Lineari tra Spazi Vettoriali

Esercizi svolti. 1. Si consideri la funzione f(x) = 4 x 2. a) Verificare che la funzione F(x) = x 2 4 x2 + 2 arcsin x è una primitiva di

4. Operazioni elementari per righe e colonne

Capitolo 2. Operazione di limite

1. PRIME PROPRIETÀ 2

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)

Consideriamo due polinomi

Applicazioni lineari

1 Serie di Taylor di una funzione

15 febbraio Soluzione esame di geometria - 12 crediti Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Corrispondenze e funzioni

SERIE NUMERICHE. prof. Antonio Greco

9 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione P A = LU

Federico Lastaria. Analisi e Geometria 2. Matrici simmetriche. Il teorema spettrale. 1/24

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

Interpolazione ed approssimazione di funzioni

09 - Funzioni reali di due variabili reali

EQUAZIONI DIFFERENZIALI Esercizi svolti. y = xy. y(2) = 1.

10. Insiemi non misurabili secondo Lebesgue.

CRITERI DI CONVERGENZA PER LE SERIE. lim a n = 0. (1) s n+1 = s n + a n+1. (2) CRITERI PER LE SERIE A TERMINI NON NEGATIVI

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

Massimi e minimi vincolati di funzioni in due variabili

4 Quarta lezione: Spazi di Banach e funzionali lineari. Spazio duale

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

2. Leggi finanziarie di capitalizzazione

Esercizi su lineare indipendenza e generatori

LEZIONE 16. Proposizione Siano V e W spazi vettoriali su k = R, C. Se f: V W

Elementi Finiti: stime d errore e adattività della griglia

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

Una ricetta per il calcolo dell asintoto obliquo. Se f(x) è asintotica a mx+q allora abbiamo f(x) mx q = o(1), da cui (dividendo per x) + o(1), m =

Parte 6. Applicazioni lineari

Algoritmi e Strutture Dati

Spazi lineari - PARTE II - Felice Iavernaro. Dipartimento di Matematica Università di Bari. 9 e 16 Marzo 2007

19. Inclusioni tra spazi L p.

I appello - 24 Marzo 2006

Equazioni non lineari

UNIVERSITÀ DEGLI STUDI DI TERAMO

EQUAZIONI non LINEARI

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Basi di matematica per il corso di micro

Serie numeriche e serie di potenze

A i è un aperto in E. i=1

E naturale chiedersi alcune cose sulla media campionaria x n

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Ricerca Operativa A.A. 2007/ Dualità in Programmazione Lineare

La Programmazione Lineare

FASCI DI RETTE. scrivere la retta in forma esplicita: 2y = 3x + 4 y = 3 2 x 2. scrivere l equazione del fascio di rette:

Matematica 1 - Corso di Laurea in Ingegneria Meccanica

Docente: Anna Valeria Germinario. Università di Bari. A.V.Germinario (Università di Bari) Analisi Matematica ITPS 1 / 22

Intorni Fissato un punto sull' asse reale, si definisce intorno del punto, un intervallo aperto contenente e tutto contenuto in

2 Argomenti introduttivi e generali

DOMINIO E LIMITI. Esercizio 3 Studiare gli insiemi di livello della funzione f, nei seguenti casi: 1) f(x,y) = y2 x 2 + y 2.

CONI, CILINDRI, SUPERFICI DI ROTAZIONE

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6

Tutorato di GE110. Universitá degli Studi Roma Tre - Corso di Laurea in Matematica

Corso di Analisi Matematica Serie numeriche

APPLICAZIONI LINEARI

Fondamenti e didattica di Matematica Finanziaria

LEZIONE 31. B i : R n R. R m,n, x = (x 1,..., x n ). Allora sappiamo che è definita. j=1. a i,j x j.

GEOMETRIA DELLE MASSE

Matematica e Statistica

Esponenziali elogaritmi

SISTEMI LINEARI QUADRATI: METODI ITERATIVI

Транскрипт:

METODI ITERATIVI PER SISTEMI LINEARI LUCIA GASTALDI 1. Metodi iterativi classici Sia A R n n una matrice non singolare e sia b R n. Consideriamo il sistema (1) Ax = b. Un metodo iterativo per la soluzione del sistema lineare (1) consiste nella costruzione di una successione di vettori x (k) R n convergenti alla soluzione x del sistema lineare, cioè tali che lim k x(k) = x. Per realizzare questo processo si può seguire il seguente procedimento. decomposizione o splitting della matrice del tipo: (2) A = P N, Si considera una essendo P ed N due matrici in modo che P sia non singolare. Il sistema (1) si può scrivere nella forma P x = Nx + b ossia x = P 1 Nx + P 1 b. Dato un vettore iniziale x (0), si genera una successione di vettori ricorsivamente mediante (3) x (k+1) = Bx (k) + g dove B = P 1 N e g = P 1 b, e B prende il nome di matrice di iterazione. Per studiare la convergenza, calcoliamo l errore e (k) = x x (k). Passando alle norme si ottiene: x = Bx + g x (k+1) = Bx (k) + g e (k+1) = Be (k) e (k+1) = Be (k) B e (k) B k+1 e (0), quindi, se B < 1, allora il metodo iterativo è convergente per ogni scelta del dato iniziale x (0). Più precisamente si può dimostrare il seguente teorema: Teorema 1. Condizione necessaria e sufficiente affinché un metodo iterativo della forma (3) sia convergente, è che il raggio spettrale della matrice di iterazione sia strettamente minore di 1, ossia ρ(b) < 1. 1

2 LUCIA GASTALDI Vediamo ora due esempi classici di metodi iterativi, ottenuti dallo splitting della matrice (2). Scriviamo la matrice A come somma della sua diagonale, della sua parte triangolare inferiore stretta e della sua parte superiore stretta: essendo D = L = U = A = D L U a 11 0 0 0 a 22 0 0 0 a nn 0 0 0 a 21 0 0 a n1 a nn 1 0 0 a 12 a 1n 0 0 a n 1n 0 0 0 Il metodo di Jacobi si ottiene ponendo P = D in (2), di conseguenza le componenti x (k+1) i si ottengono mediante la seguente relazione: x (k+1) i = 1 a ii ( b i n j=1,j i a ij x (k) j ),,., i = 1,..., n. Si osserva che per calcolare una componente del vettore x (k+1) servono tutte le componenti del vettore x (k) all iterazione precedente. La matrice di iterazione in questo caso è data da B J = D 1 (L + U). Proposizione 2. Se A è una matrice a predominanza diagonale stretta per righe, cioè vale che n a ii > a ij i = 1,..., n, allora il metodo di Jacobi converge. j=1,j i Poniamo ora P = D L in (2). In questo caso si ottiene il metodo di Gauss Seidel la cui matrice di iterazione è B GS = (P L) 1 U e le componenti x (k+1) i si ottengono nel modo seguente: ( ) x (k+1) i = 1 i 1 n b i a ij x (k+1) j a ij x (k) j, i = 1,... n. a ii j=1 j=i+1 Si nota che in questo caso per calcolare la componente i-esima del vettore x (k+1) si usano le prime i 1 componenti del vettore x (k+1) già calcolate e le componenti di indice maggiore di i del vettore x (k). In questo modo ci si aspetta una convergenza più rapida.

3 Figure 1. Gli autovalori di B α in valore assoluto al variare di α. Raggio spettrale della matrice di iterazione di Richardson stazionario 2 1 x*lmax 1.8 1 x*li raggio spettrale 1.6 1.4 1.2 1 0.8 1 x*lmin 2 / lmax (lmax lmin) / (lmax+lmin) 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 alpha Anche nel caso del metodo di Gauss Seidel si possono enunciare dei risultati di convergenza per alcune classi di matrici. Proposizione 3. Se A è una matrice a predominanza diagonale stretta per righe oppure se A è una matrice simmetrica e definita positiva allora il metodo di Gauss-Seidel converge. 2. Il metodo di Richardson Consideriamo un metodo iterativo (3) ottenuto a partire da uno splitting della matrice in A = P N. Si ricava facilmente che N = P A e sostituendo questa relazione in (3) si ottiene x (k+1) = P 1 Nx (k) + P 1 b = P 1 (P A)x (k) + P 1 b = x (k) + P 1 (b Ax (k) ). Data l approssimazione x (k) della soluzione del sistema lineare (1), si dice residuo il vettore definito da: (4) r (k) = b Ax (k). Quindi i metodi iterativi che si ottengono da uno splitting della matrice possono essere considerati come metodi di correzione del residuo ponendo x (k+1) = x (k) + P 1 r (k). Sia α > 0 un numero reale e positivo, modifichiamo lo schema precedente come segue: (5) x (k+1) = x (k) + αp 1 r (k). Il metodo che abbiamo ottenuto prende il nome di metodo di Richardson stazionario e le sue proprietà di convergenza dipendono dalla scelta del parametro α. La matrice P viene anche detta matrice di precondizionamento. Il metodo (5) si riscrive facilmente nella forma (3) nel modo seguente: x (k+1) = x (k) + αp 1 r (k) = x (k) + αp 1 (b Ax (k) ) = (I αp 1 A)x (k) + αp 1 b e quindi la matrice di iterazione è data da B α = I αp 1 A. Calcoliamo il raggio spettrale della matrice B α al variare di α > 0. Supponiamo che P sia una matrice non singolare e che la matrice P 1 A sia simmetrica e definita positiva. Siano λ i

4 LUCIA GASTALDI e u i per i = 1,..., n gli autovalori e gli autovettori, rispettivamente, della matrice P 1 A e indichiamo con λ min e λ max rispettivamente il più piccolo e il più grande autovalore, quindi si ha P 1 Au i = λ i u i per i = 1,..., n, 0 < λ min λ i λ max per i = 1,..., n. Gli autovalori ed autovettori di B α si ottengono dalla seguente identità: Con un po di conti si ricava B α x = (I αp 1 A)x = µx. P 1 Ax = 1 µ α x quindi (µ, x) è una coppia autovalore/autovettore di B α se ((1 µ)/α, x) è una coppia autovalore/autovettore di P 1 A. Abbiamo quindi ricavato che gli autovettori di B α sono uguali agli autovettori di P 1 A, mentre per gli autovalori vale la seguente relazione: µ i = 1 αλ i. Il raggio spettrale della matrice B α è dato quindi da ρ(b α ) = max 1 i n 1 αλ i. In Figura 2 sono riportati i grafici delle funzioni 1 αλ max, 1 αλ min e 1 αλ i al variare di α (nella figura si è usata la notazione lmin al posto di λ min, li per λ i e lmax per λ max ). Quindi per 0 < α < 2/λ max il raggio spettrale ρ(b α ) resta strettamente minore di 1 ed in questo intervallo si ha la convergenza del metodo di Richardson (5). Il valore ottimale di α si ottiene per α ott = argminρ(b α ). Dal grafico si vede che α ott è il valore per cui vale cioè (6) α ott = 1 αλ min = 1 αλ max in corrispondenza ad esso il raggio spettrale vale: 2 λ max + λ min ; (7) ρ(b αott ) = λ max λ min λ max + λ min = K 2(P 1 A) 1 K 2 (P 1 A) + 1, essendo K 2 (P 1 A) il numero di condizionamento della matrice P 1 A nella norma di matrice associata alla norma euclidea di vettore. In Figura 2 sono riportati l intervallo di convergenza e i valori ottimali di α e ρ(b α ). Abbiamo quindi dimostrato la seguente proposizione: Proposizione 4. Sia P una matrice non singolare e P 1 A una matrice simmetrica e definita positiva. Allora il metodo di Richardson stazionario converge per 0 < α < 2/λ max, essendo λ max il massimo autovalore della matrice P 1 A. Inoltre ρ(b α ) è minimo per α = α ott essendo α ott dato da (6) e il valore corrispondente di ρ(b α ) definito in (7).

Dalla relazione (7) si ricava che la velocità di convergenza è legata al fatto che la matrice P 1 A sia ben condizionata. Quindi la scelta della matrice di precondizionamento P è di fondamentale importanza; la scelta deve essere fatta in modo tale che la risoluzione di un sistema lineare con matrice dei coefficienti data da P sia di basso costo. Una forma più generale di (5) è quella in cui si determina il parametro α ad ogni iterazione, dando luogo al seguente metodo di Richardson non stazionario (8) x (k+1) = x (k) + α k P 1 r (k). Il problema adesso è quello della determinazione del parametro α k. Supponiamo d ora in avanti che la matrice A sia simmetrica e definita positiva. Possiamo quindi introdurre una norma di vettore detta norma dell energia nella forma seguente (9) x A = x T Ax. Supponiamo di aver calcolato il valore di x (k) all iterata k-esima del metodo (8). Poniamo per semplicità z (k) = P 1 r (k) e al variare di α consideriamo il vettore x α = x (k) + αz (k). Si noti che al variare di α il punto x α si muove lungo la retta passante per x (k) e parallela alla direzione di z (k). Scegliamo quindi α k in modo da rendere minima la distanza di x α dalla soluzione x del sistema (1) misurata nella norma dell energia (9). Calcoliamo quindi x x α 2 A e otteniamo: x x α 2 A = (x x (k) αz (k) ) T A(x x (k) αz (k) ) = (x x (k) ) T A(x x (k) ) αz (k)t A(x x (k) ) (x x (k) ) T A(αz (k) ) + α 2 z (k)t Az (k) = α 2 z (k)t Az (k) 2αz (k)t A(x x (k) ) + (x x (k) ) T A(x x (k) ) = α 2 z (k)t Az (k) 2αz (k)t r (k) + (x x (k) ) T A(x x (k) ), dove si sono usati i seguenti fatti: la matrice A è simmetrica e quindi αz (k)t A(x x (k) ) = (x x (k) ) T A(αz (k) ); x è la soluzione del sistema lineare di partenza per cui Ax = b; quindi A(x x (k) ) = b Ax (k) = r (k). Poiché x x α 2 A è una parabola rispetto alla variabile α, il minimo si trova per α k = z(k)t r (k) z (k)t Az. (k) Con questa scelta del parametro il metodo (8) prende il nome di metodo del gradiente precondizionato. Descriviamo i passi principali dell algoritmo corrispondente. Algoritmo: metodo del gradiente precondizionato. 1. Scelgo x (0). 2. Calcolo r (0) = b Ax (0). 3. Calcolo la soluzione z (0) di P z (0) = r (0). 4. Per ogni iterata eseguo le seguenti operazioni: 4.1 Calcolo α k = z(k)t r (k) z (k)t Az. (k) 5

6 LUCIA GASTALDI Figure 2. Risoluzione mediante il metodo del gradiente 100 90 80 70 60 50 40 30 20 10 0 0 10 20 30 40 50 60 70 80 90 100 4.2 x (k+1) = x (k) + α k z (k). 4.3 r (k+1) = r (k) α k Az (k). 4.4 Calcolo la soluzione z (k+1) di P z (k+1) = r (k+1). 5. Verifico il test d arresto: se il test d arresto è verificato, mi fermo; se il test d arresto non è vericato torno al punto 4. Si può dimostrare che nel caso del metodo (8) ora descritto il raggio spettrale della matrice di iterazione B αk tende a ρ(b αott ) per k che tende all infinito. Quindi il metodo di Richardson non stazionario è da preferire a quello stazionario non richiedendo di conoscere gli autovalori massimo e minimo della matrice P 1 A. Osserviamo però che la convergenza può essere molto lenta come illustrato nel seguente esempio in cui si è scelta come matrice di precondizionamento P = I. Il metodo prende in questo caso il nome di metodo del gradiente o di massima discesa. Si considera il sistema lineare (1) con i seguenti dati: A = ( 50.5000 49.5000 49.5000 50.5000 ) ( 48.5000, b = 51.5000 ) ( 1, x = 2 ) ( 70.0036, x (0) = 71.4178 Nella Figura 2 sono riportati i primi 50 passi del metodo del gradiente applicato al sistema scritto sopra. Come si può notare la convergenza è molto lenta, in questo caso si ha K 2 (A) = 100. Si osserva anche che le direzioni che vengono scelte sono a due a due parallele tra di loro. Per capire meglio il comportamento della successione dell esempio introduciamo un interpretazione diversa del metodo del gradiente. ). 3. Metodo del gradiente e del gradiente coniugato Sia A R n n una matrice simmetrica e definita positiva (cioè A T = A e x T Ax > 0 per ogni x R n e x 0).

Sia x la soluzione del sistema (1) e y una sua approssimazione. La distanza di y da x nella norma (9), associata alla matrice A, si calcola come segue: 7 (10) x y 2 A = (x y) T A(x y) = x T Ax y T Ax x T Ay + y T Ay = y T Ay 2y T Ax + x T Ax = y T Ay 2y T b + x T Ax. Per ottenere (10) si è usato il fatto che la matrice è simmetrica e che x è la soluzione di (1). Si osserva inoltre che la distanza x y A come funzione di y è una funzione quadratica che ha un unico minimo assoluto per y = x. Infine notiamo che il punto di minimo non cambia se alla funzione precedente si somma una costante. Introduciamo la funzione quadratica ϕ : R n R data da (11) ϕ(y) = y T Ay 2y T b. Si calcolano allora facilmente il gradiente e la matrice hessiana di ϕ: (12) ϕ(y) = 2(Ay b), Hϕ(y) = 2A. Chiamato r(y) = b Ay il residuo, si ha che r(y) = ϕ(y)/2. Osserviamo che vale la seguente relazione: x y 2 A = ϕ(y) + x T Ax, quindi y è minimo per x y 2 A se e solo se è soluzione del seguente problema: PROBLEMA: cerchiamo x tale che ϕ(x) = min x R n ϕ(x). Condizione necessaria affinchè x sia soluzione di questo problema è che x sia un punto stazionario per ϕ cioè (13) ϕ(x) = 2(Ax b) = 0. Quindi se x è punto di minimo per ϕ allora è anche soluzione del sistema lineare Ax = b. Inoltre poiché la matrice A è definita positiva x è l unico punto di minimo per ϕ. Il problema di minimo e il sistema lineare Ax = b sono quindi equivalenti. Supponiamo di avere calcolato un approssimazione x (k) di x. Indichiamo con r (k) il residuo calcolato in x (k) : r (k) = r(x (k) ). Scegliamo come direzione di discesa r (k). Allora il punto di minimo di ϕ lungo tale direzione di discesa si trova come segue: i punti della retta che passa per x (k) ed è parallela ad r (k) sono individuati attraverso l espressione parametrica x (k) + αr (k), in particolare quelli nella direzione di discesa saranno individuati da α > 0. La restrizione di ϕ lungo questa semiretta è data da: (14) ϕ(x (k) + αr (k) ) = (x (k) + αr (k) ) T A(x (k) + αr (k) ) 2(x (k) + αr (k) ) T b = = x (k)t Ax (k) + αr (k)t Ax (k) + αx (k)t Ar (k) + +α 2 r (k)t Ar (k) 2b T x (k) 2αb T r (k) = = x (k)t Ax (k) 2b T x (k) + 2α(r (k)t Ax (k) r (k)t b) + α 2 r (k)t Ar (k) = = ϕ(x (k) ) 2αr (k)t r (k) + α 2 r (k)t Ar (k).

8 LUCIA GASTALDI La funzione ϕ(x (k) + αr (k) ) è una parabola rispetto alla variabile α, il suo punto di minimo si trova nel vertice per (15) α k = r(k)t r (k) r (k)t Ar (k). Metodo del gradiente o di steepest descent 1. Dato x 0 ; 2. calcola r 0 = b Ax 0 ; 3. per k = 0, 1,..., M (M numero massimo di iterazioni) 3.1 α k = r(k)t r (k) r (k)t Ar (k) ; 3.2 x (k+1) = x (k) + α k r (k) ; 3.3 r (k+1) = r (k) α k Ar (k) ; 3.4 test d arresto: se è verificato x (k+1) è la soluzione; altrimenti torno al punto 3. NOTA BENE: con la scelta di α k effettuata si ha che r (k+1)t r (k) = 0. La verifica è immediata, infatti (16) r (k+1)t r (k) = r (k)t r (k) α k r (k)t Ar (k) = 0 per definizione di α k. Valutiamo l errore usando la norma definita in (9), cercando di ottenere una relazione ricorsiva che leghi l errore all iterata k-esima con quello precedente, si ha: (17) x (k+1) x 2 A = (x(k+1) x ) T A(x (k+1) x ) = = (x (k) + α k r (k) x ) T A(x (k) + α k r (k) x ) = = (x (k) x ) T A(x (k) x ) + 2α k r (k)t A(x (k) x ) + α 2 r (k)t Ar (k) = = x (k) x 2 A + 2α kr (k)t ( r (k) ) + α 2 r (k)t Ar (k) = ( ) 2 = x (k) x 2 A 2 r(k)t r (k) r (k)t Ar (k) r(k)t r (k) r (k)t r (k) + r (k)t Ar (k) = r (k)t Ar (k) Osserviamo che (18) = x (k) x 2 A (r(k)t r (k) ) 2 r (k)t Ax (k). x (k) x 2 A = (x(k) x ) T AA 1 (Ax (k) Ax ) = = (Ax (k) Ax ) T A 1 (Ax (k) Ax ) = r (k)t A 1 r (k) e quindi ricaviamo da (17) ( ) (19) x (k+1) x 2 A = x (k) x 2 (r (k)t r (k) ) 2 A 1. r (k)t Ar (k) r (k)t A 1 r (k) La quantità (r (k)t r (k) ) 2 (20) ρ k = 1 r (k)t Ar (k) r (k)t A 1 r (k)

si chiama fattore di riduzione. Stimando la frazione mediante la disuguaglianza di Kantorovich: si ottiene (r (k)t r (k) ) 2 r (k)t Ar (k) r (k)t A 1 r (k) 4λ maxλ min (λ max + λ min ) 2 (21) x (k+1) x A K 2(A) 1 K 2 (A) + 1 x(k) x A, essendo K 2 (A) il numero di condizionamento della matrice A. Si ricorda che per matrici simmetriche e definite positive si ha K 2 (A) = λ max /λ min, dove λ max e λ min sono rispettivamente l autovalore massimo e minimo di A. Se K 2 (A) è molto grande, il fattore di riduzione si avvicina ad 1 ed il metodo può risultare molto lento come succede nell esempio riportato nella Figura 2. Nell esempio, il comportamento delle iterate illustra chiaramente che nel metodo del gradiente le direzioni lungo le quali si minimizza possono essere linearmente dipendenti. In particolare, nel caso bidimensionale considerato, si ha che i residui sono a passi alterni paralleli fra di loro. L idea è quindi quella di modificare l algoritmo del gradiente in modo da minimizzare lungo direzioni di discesa che risultino linearmente indipendenti. Il metodo di ricerca lineare dei minimi si può riscrivere quindi come segue: Metodo di ricerca lineare 1. Dato x 0 ; 2. calcolo r 0 = b Ax 0 ; 3. scelgo s 0 direzione di discesa 4. per k = 0, 1,..., M (M numero massimo di iterazioni) 3.1 α k = s(k)t r (k) s (k)t As (k) ; 3.2 x (k+1) = x (k) + α k s (k) ; 3.3 r (k+1) = r (k) α k As (k) ; 3.4 scelgo nuova direzione di discesa s (k+1) ; 3.5 test d arresto: se è verificato x (k+1) è la soluzione; altrimenti torno al punto 3. Si tratta quindi di trovare un modo per generare direzioni di discesa che siano linearmente indipendenti. Definizione 1. Un punto x (k) si dice ottimale rispetto ad una direzione p 0 se ϕ(x (k) ) ϕ(x (k) λp), λ R. Se x (k) è ottimale rispetto a tutte le direzioni di uno spazio vettoriale V, diremo che x (k) è ottimale rispetto a V. Dalla definizione 1 segue che se x (k) è ottimale rispetto a p allora vale r (k)t p = 0. Inoltre se x (k) è ottimale rispetto ad uno spazio vettoriale V si ha r (k)t v = 0 per ogni v V. Dato x (0), calcoliamo r (0) e minimizziamo la funzione quadratica lungo s (0) = r (0) ; otteniamo così (22) x (1) = x (0) + α 0 s (0) e r (1) = r (0) α 0 As (0) 9

10 LUCIA GASTALDI in modo tale che r (1)T s (0) = 0. Scegliamo ora s (1) e calcoliamo x (2) minimizzando ϕ lungo x ( 1) + αs (1), otteniamo: x (2) = x (1) + α 1 s (1), r (2) = r (1) α 1 As (1), con r (2)T s (1) = 0. Imponiamo che x (2) sia ottimale anche rispetto a s (0) cioè che r (2)T s (0) = 0; ricordando che r (1)T s (0) = 0, si ha: r (2)T s (0) = (r (1) α 1 As (1) ) T s (0) = r (1)T s (0) α 1 s (1)T As (0) = α 1 s (1)T As (0). Quindi per conservare la condizione di ottimalità tra un iterata e l altra deve essere s (1)T As (0) = 0. Diciamo che i vettori s (i) per i = 1,..., l (l < n) sono A-coniugati se vale che (23) s (i)t As (j) = 0 i, j = 1,..., l tali che i j. Quindi se le direzioni di discesa nel metodo della ricerca lineare sono tra loro A-coniugate, ad ogni iterazione si ottiene un approssimazione x (k) che è ottimale rispetto a tutte le direzioni di discesa usate. Supponiamo di aver calcolato la iterata x (k+1), dobbiamo ora costruire la direzione s (k+1) che serve per calcolare l iterata successiva. Siccome x (k+1) è ottimale rispetto a tutte le direzioni s (0),, s (k) finora usate, si ha che r (k+1)t s (i) = 0 per i = 0,, k. Quindi r (k+1) è linearmente indipendente a tutte le direzioni s (i). Poniamo s (k+1) = r (k+1) + β k s (k) e determiniamo β k in modo che sia A-coniugata con s (k) : s (k+1)t As (k) = r (k+1)t s (k) + β k s (k)t As (k) = 0 β k = r(k+1)t s (k) s (k)t As (k). Si dimostra che s (k+1) così definita è A-coniugata anche con s (i) per i = 0,, k 1. Il metodo che si ottiene scegliendo come s (0) = r (0) e direzioni di discesa A-coniugate prende il nome di metodo del gradiente coniugato. Osserviamo che la scelta delle direzioni di discesa A-coniugate ha un altra conseguenza importante, precisamente per ogni k vale r (k+1)t s (i) = 0 per i = 0, 1,..., k. Questo fatto implica che r (n)t s (i) = 0 per i = 0,..., n 1. Poichè le direzioni s (i) sono A-coniugate e quindi linearmente indipendenti, si ha che r (n) = 0. Ossia dopo n iterazioni del metodo del gradiente coniugato x (n) = x essendo x la soluzione del problema di minimo. Metodo del gradiente coniugato 1. Dato x 0 ; 2. calcola r 0 = b Ax 0 ; 3. poni s 0 = r 0 ; 4. per k = 0, 1,..., n

4.1 α k = r(k)t r (k) s (k)t As ; (k) 4.2 x (k+1) = x (k) + α k s (k) ; 4.3 r (k+1) = r (k) α k As (k) ; 4.4 β k = r(k+1)t r (k+1) ; r (k)t r (k) 4.5 s (k+1) = r (k+1) + β k s (k). Il costo dell algoritmo è 1 prodotto matrice per vettore, 2 prodotti scalari e 3 combinazioni lineari di due vettori. Ad ogni iterata l errore si riduce secondo la seguente legge: ( k (24) x (k) K2 (A) 1 x A 2 x 0 x A. K2 (A) + 1) Quindi il fattore di riduzione è più piccolo di quello del metodo di steepest descent, si confronti con (21). Il metodo risulta abbastanza efficiente se usato in maniera iterativa, specialmente nel caso in cui il problema è di grande dimensione (n 10000) e la matrice A è sparsa. Calcoliamo ad esempio quante iterazioni occorrono per ottenere una soluzione con un errore dell ordine di 10 m. Si deve quindi trovare k tale che x (k) x A x A 10 m. Poichè dalla relazione ricorsiva per l errore (24) si ha x (k) x A x A 2 ( ) k K2 (A) 1 x0 x A K2 (A) + 1 x A si ottiene ( ) x 0 x K2 A k m + log 10 (A). x A Il numero di iterazioni diventa quindi proporzionale alla radice quadrata del condizionamento di A. Per migliorare la velocità di convergenza e quindi ridurre il numero di iterazioni si può utilizzare anche in questo caso un precondizionamento della matrice A. 4. Precondizionamento Data una matrice non singolare A, dicesi matrice di precondizionamento una matrice P non singolare tale che la matrice P 1 A ha un numero di condizionamento più basso di quello di A ossia se vale K(P 1 A) << K(A). Se si conosce una matrice di prcondizionamento P allora si vuole deve risolvere il sistema equivalente P 1 Ax = P 1 b. Il problema è quello di costruire una matrice P che sia invertibile e tale che la risoluzione del sistema con matrice dei coefficienti P sia di basso e che non distrugga le proprietà di A. Ad esempio se A è un matrice simmetrica e definita positiva si vorrebbe usare ancora il metodo del gradiente coniugato per risolvere il sistema P 1 Ax = P 1 b. Purtroppo la matrice P 1 A non risulta simmetrica e definita positiva neanche se lo sono sia A che P, pertanto occorre affrontare il problema in modo un po diverso. Abbiamo visto che il metodo del gradiente coniugato 11

12 LUCIA GASTALDI si applica per la ricerca del minimo del funzionale quadratico ϕ definito in (11). Il metodo diventa molto lento quando K 2 (A) = λ max /λ min >> 1. In due dimensioni gli autovalori della matrice sono associati ai semiassi delle ellissi che rappresentano le curve di livello della funzione quadratica. Se λ max >> λ min vuol dire che le ellissi sono molto schiacciate lungo una direzione. L idea è quindi quella di cercare di operare un cambiamento di variabili in modo tale che rispetto al nuovo sistema di riferimento le curve di livello siano il più vicino possibile a dei cerchi. Introduciamo quindi una matrice non singolare E e poniamo ỹ = Ey. Sostituendo y = E 1 ỹ in (11), otteniamo il seguente funzionale quadratico rispetto alla nuova variabile ỹ (25) ϕ(ỹ) = (E 1 ỹ) T A(E 1 ỹ) 2(E 1 ỹ) T b = ỹe T AE 1 ỹ 2ỹ T E T b = ỹãỹ 2ỹT b, essendo à = E T AE 1, b = E T b. Il funzionale ϕ gode ancora delle stesse proprietà soddisfatte da ϕ essendo anche à una matrice simmetrica e definita positiva. Inoltre vale E 1 ÃE = E 1 E T AE 1 E = E 1 E T A = (E T E) 1 = P 1 A avendo posto P = E T E. Quindi à è simile ad una matrice P 1 A che rappresenta la matrice precondizionata. Calcoliamo ora la norma dell energia associata a à per ỹ = Ey: ỹ 2 à = ỹt Ãỹ = ỹ T E T AE 1 ỹ = y T Ay = y 2 A. Ne consegue che applicando il metodo del gradiente coniugato al funzionale quadratico (25) si ottiene il seguente comportamento dell errore: ( k x (k) x à K2 (P 2 1 A) 1 x x à K2 (P 1 A) + 1) (0) x à x à essendo x = Ex il minimo del funzionale ϕ. Ritornando al sistema di riferimento iniziale si ha quindi ( ) k x (k) x A K2 (P 2 1 A) 1 x (0) x A. x A K2 (P 1 A) + 1 x A L algoritmo del metodo del gradiente coniugato precondizionato si scrive nel modo seguente: Metodo del gradiente coniugato precondizionato 1. Dato x 0 ; 2. calcola r 0 = b Ax 0 ; 3. risolvi P z 0 = r 0 ; 4. poni s 0 = z 0 ; 5. per k = 0, 1,..., n 4.1 α k = z(k)t r (k) s (k)t As (k) ; 4.2 x (k+1) = x (k) + α k s (k) ; 4.3 r (k+1) = r (k) α k As (k) ;

4.4 risolvi P z (k+1) = r (k+1) ; 4.5 β k = r(k+1)t z (k+1) r (k)t z (k) ; 4.6 s (k+1) = z (k+1) + β k s (k). Il costo dell algoritmo è 2 prodotti matrice per vettore, 2 prodotti scalari e 3 combinazioni lineari di due vettori. Si noti che per motivi di efficienza la scelta di P è fatta in modo tale che il costo della risoluzione del sistema con matrice P è uguale al costo di una moltiplicazione matrice per vettore. Dipartimento di Matematica, Università di Brescia, Italy E-mail address: gastaldi@ing.unibs.it URL: http://dm.ing.unibs.it/gastaldi/ 13