Appunti dalle lezioni di Calcolo ... - "Esercizi e...

119
Appunti dalle lezioni di Calcolo Numerico A.A. 2012/2013

Transcript of Appunti dalle lezioni di Calcolo ... - "Esercizi e...

Appunti dalle lezioni di Calcolo Numerico

A.A. 2012/2013

ii

Indice

1 La soluzione di equazioni nonlineari 11.1 Prime prove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Lo schema delle iterazioni successive (o di Picard) . . . . . . . . . . . 51.3 Convergenza dei metodi iterativi . . . . . . . . . . . . . . . . . . . . . 8

1.3.1 Studio della convergenza dello schema di Picard . . . . . . . . 81.3.2 Lo schema di Newton-Raphson . . . . . . . . . . . . . . . . . 111.3.3 Altri schemi “Newton-like” . . . . . . . . . . . . . . . . . . . . 15

2 Riassunto di Algebra Lineare 192.0.4 Spazi vettoriali, vettori linearmente dipendenti, basi . . . . . . 232.0.5 Autovalori ed autovettori . . . . . . . . . . . . . . . . . . . . . 272.0.6 Norme di vettori e di matrici . . . . . . . . . . . . . . . . . . . 29

3 Metodi Iterativi per sistemi lineari 353.1 Metodi lineari e stazionari . . . . . . . . . . . . . . . . . . . . . . . . 35

3.1.1 Metodi lineari e stazionari classici . . . . . . . . . . . . . . . . 393.2 Metodi di rilassamento . . . . . . . . . . . . . . . . . . . . . . . . . . 403.3 Metodi del Gradiente per la soluzione di sistemi lineari . . . . . . . . 43

3.3.1 Forme quadratiche . . . . . . . . . . . . . . . . . . . . . . . . 433.3.2 Caso simmetrico A = AT . . . . . . . . . . . . . . . . . . . . . 47

4 Soluzione di ODE 894.1 Il problema di Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . 894.2 Metodi a un passo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

4.2.1 Deduzione degli schemi per mezzo di formule di quadratura . . 1004.3 Convergenza degli schemi . . . . . . . . . . . . . . . . . . . . . . . . . 100

4.3.1 Convergenza sperimentale . . . . . . . . . . . . . . . . . . . . 1014.3.2 Consistenza e errore di troncamento. . . . . . . . . . . . . . . 1024.3.3 Stabilita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.3.4 Assoluta stabilita . . . . . . . . . . . . . . . . . . . . . . . . . 1064.3.5 Implementazione metodi impliciti . . . . . . . . . . . . . . . . 109

iii

iv INDICE

- Bibliografia 111

Elenco delle figure

1.1 Grafico di un una funzione f(x) che ammette radice ξ (sinistra) e chenon ammette alcuna radice (destra). . . . . . . . . . . . . . . . . . . 2

1.2 Rappresentazione grafica del problema del punto fisso e dello schemadi Picard per la soluzione dell’equazione x2− 3x+ 2 = 0 con funzionedi punto fisso g1(x) =

√3x− 2. . . . . . . . . . . . . . . . . . . . . . 6

1.3 Rappresentazione grafica del funzionamento metodo di Newton Ra-phson per la soluzione dell’equazione f(x) = 0. . . . . . . . . . . . . . 12

2.1 A sinistra: vettori ortogonali: x e y sono ortogonali. Applicandoil Teorema di Pitagora alla coppia di vettori x e −y che formanoi cateti di un triangolo rettangolo e scrivendo l’uguaglianza (2.1) siricava immediatamente che deve essere valida la (2.2). A destra:proiezione ortogonale del sottospazio V (formato da un solo vettore)nel sottospazio W (formato dal piano). . . . . . . . . . . . . . . . . . 26

2.2 Interpretazione geometrica di un sistema lineare in R2. La soluzionedel sistema e il punto di intersezione delle due rette e cioe il vettorex∗ = [2,−2]T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.1 La curva ρ(Eα) in funzione di α . . . . . . . . . . . . . . . . . . . . . 41

3.2 Forma quadratica corrispondente al sistema lineare (2.5). A sini-stra in alto e rappersentato il grafico in R2; a destra in alto sonorappresentate le linee di livello; in basso il campo dei gradienti. . . . . 44

3.3 Grafico della funzione f(x, y) = −(cos2 x + cos2 y)2 e del campovettoriale ∇f(x, y) = (∂f/∂x, ∂f/∂y)T . . . . . . . . . . . . . . . . . 45

3.4 Grafico delle forme quadratiche (in R2) rappresentative di a) unamatrice definita positiva, b) una matrice definita negativa, c) unamatrice semidefinita positiva (in realta e singolare e si nota la linealungo la quale f(x) e minima e che corrisponde alle inifite soluzionedel sistema lineare corrispondente), d) una matrice indefinita (puntosella). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

v

vi ELENCO DELLE FIGURE

3.5 Interpretazione in R2 delle varie fasi dello schema dello steepest de-scent per la soluzione del sistema (2.5): a) la direzione di ricerca r0 el’errore iniziale e0; b) la forma quadratica e il piano ortogonale a x1e x2 passante per la direzione r0; c) la funzione f(α0) nella direzioner0; d) la nuova iterata x1 e la nuova direzione del gradiente. . . . . . . 50

3.6 Interpretazione in R2 delle varie fasi dello schema dello steepest de-scent per la soluzione del sistema (2.5). A sinistra sono disegnati ivettori ∇f(xk + αkrk) lungo la direzione rk; la f(xk+1) e minima nelpunto in cui rk ⊥ ∇f(xk + αkrk). A destra sono rappresentate alcu-ne iterazioni del metodo a partire dal punto iniziale (−2,−2)T . Loschema converge alla soluzione (2,−2)T . . . . . . . . . . . . . . . . . 51

3.7 Il metodo dello steepest descent converge in una sola iterazione se ladirezione del residuo iniziale coincide con quella di un autovettore. . . 53

3.8 Andamento del fattore di convergenza ω. . . . . . . . . . . . . . . . . 56

3.9 Esempi di convergenza del metodo di Steepes Descent in corrispon-denza a valori estremi di κ(A) e µ relativi alla figura 3.8. Le duefigure in alto si riferiscono al casso di κ(A) grande, mentre quelle inbasso sono caratterizzate da un valore di κ(A) vicino a 1. . . . . . . . 57

3.10 I punti iniziali peggiori per la convergenza di SD sono localizzati sullelinee continue nere. Le linee tratteggiate rappresentano il percorsodelle iterate e formano un angolo di 45◦ rispetto agli assi dell’iper-ellissoide visualizzati con le freccie grigie. Per questo caso κ(A) =3.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.11 Utilizzando due direzioni ortogonali si arriva a convergenza in dueiterazioni usando la direzione dell’errore ek . . . . . . . . . . . . . . . 59

3.12 Sinistra: coppie di vettori A-coniugati; destra: gli stessi vettori in unpiano deformato con la matrice A. . . . . . . . . . . . . . . . . . . . . 60

3.13 Interpretazione geometrica del metodo CG in R2: le due direzioni diricerca sono A-coniugate, per cui la seconda necessariamente passaper il centro dell’elissoide, e quindi per il punto soluzione x∗. . . . . . 62

3.14 Pattern spaziali degli elementi non nulli della matrice n = 28600. Adestra e disegnata l’intera matrice, a sinistra si riporta uno zoom delriquadro in alto a sinistra. . . . . . . . . . . . . . . . . . . . . . . . . 73

3.15 Pattern spaziali degli elementi non nulli della matrice n = 80711. Adestra e disegnata l’intera matrice, a sinistra si riporta uno zoom delriquadro in alto a sinistra. . . . . . . . . . . . . . . . . . . . . . . . . 74

3.16 Profili di convergenza del metodo PCG con precondizionatore di Cho-leky per la matrice n = 28600 (sinistra) e n = 80711 (destra). . . . . . 75

3.17 Schema della soluzione del sistema con sostituzioni in avanti. . . . . . 85

3.18 Schema della soluzione del sistema con sostituzioni all’indietro. . . . . 86

ELENCO DELLE FIGURE vii

4.1 Interpretazione geometrica della soluzione y := φ(t) del problema diCauchy (4.1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

4.2 Discretizzazione dell’intervallo I = [t0, T ] in N sottointervalli di passo h 924.3 Interpretazione geometrica dello schema di Eulero Implicito per l’e-

quazione differenziale y′ = −5y. Le rette rappresentate con punti epunti-linee sono i valori di f(t, y) calcolati sull’ascissa j + 1. . . . . . 97

4.4 Interpretazione geometrica dell’errore di troncamento locale (indicatocon τj+1(h)) per il metodo di Eulero Esplicito applicato all’esempio 4.2.2,102

4.5 Soluzioni numeriche dell’equazione test con λ = −10 ottenute con ilmetodo di Eulero esplicito per diversi valori di h a confronto con lasoluzione analitica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

viii ELENCO DELLE FIGURE

Capitolo 1

La soluzione di equazioninonlineari

Data una funzione algebrica o trascendente f che per semplicita consideriamo assu-ma valori in R, un’equazione nonlineare prende la forma di

f(x) = 0 (1.1)

Il numero ξ tale che f(ξ) = 0 si dice soluzione o radice di questa equazione. Cipossono essere piu radici di una equazione, cioe dati ξ1, ξ2, . . . , ξn, si avra f(ξ1) =−0; f(ξ2) = −0; . . . ; f(ξn) = −0. In generale, la radice di una equazione, anchenelle condizioni piu favorevoli di continuita della funzione f , non puo essere trovataanaliticamente se non in casi particolari (si pensi alle radici di polinomi di gradomaggiore di 3). E’ quindi necessario ricorrere a tecniche numeriche. In questo casopero non sara possibile trovare la radice esatta, ma a causa della limitatezza dellarappresentabilita dei numeri reali all’elaboratore, e a causa degli errori di arroton-damento si puo pensare di trovare solamente un‘approssimazione alla soluzione veraξ. Si dovra quindi cercare di trovare quel numero x che piu si avvicina a ξ. In altritermini, fissata l’accuratezza desiderata, e cioe fissata una tolleranza tol, vogliamotrovare quel numero x che approssimi la radice a meno di tol:

|ξ − x| < tol

La grandezza ε = |ξ − x| e chiamata l’errore. La conoscenza dell’errore richiedeconoscenza della radice ξ. L’errore non ha quindi valore pratico, ma e molto utilenello studio delle proripeta degli schemi che andremo a studiare. Al posto dellacondizione sull’errore potremmo richiedere che:

|f(x)| < tol

e cioe che il residuo nonlineare sia minore della tolleranza. Ovviamente quest’ultimacondizione non garantisce che la soluzione numerica x approssimi effettivamente la

1

2 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

x

y

f(x)

ξ x x

y

f(x)

Figura 1.1: Grafico di un una funzione f(x) che ammette radice ξ (sinistra) e chenon ammette alcuna radice (destra).

radice, ma rappresenta solamente una condizione necessaria. Si veda per esempio lafigura 1.1 in cui nel punto x la condizione precedente potrabbe essere verificata peropportuni valori di tol ma la f(x) non ammette alcuna radice in R. Specificheremomeglio nei paragrafi che seguono questi concetti. In questa trattazione assumiamoche f : R→ R sia una funzione continua e opportunamente derivabile.

1.1 Prime prove

PROBLEMA: trovare un’approssimazione numerica delle radici dell’equazione

x2 − 3x+ 2 = 0 (1.2)

Le radici vere di tale equazione sono facilmente calcolabili:

ξ1,2 =3±√

9− 8

2ξ1 = 1 ξ2 = 3

Per calcolare un’approssimazione della radice ξ2 con un metodo numerico procediamocome segue. Esplicitiamo la x dalla (1.2), per esempio:

x = g1(x) =√

3x− 2 (1.3)

equazione che ha evidentemente le stesse radici. Utilizzando una calcolatrice ta-scabile e facile quindi costruire una tabella in cui dato un valore di partenza x0 ilnuovo valore x1 e calcolato valutando la funzione g1 nel punto x0 (x1 = g1(x0)).Nella tabella seguente si riportano i risultati del procedimento partendo da x0 = 3e ripetendo il procedimento per 7 volte:

1.1. PRIME PROVE 3

x g1(x)

1 3√

7=2.64582 2.6458 2.43673 2.4367 2.30434 2.3043 2.21655 2.2165 2.15636 2.1563 2.11407 2.1140 2.0837

Si noti che nella prima colonna vi sono i valori della g1(x) calcolati nella riga prece-dente. I valori della seconda colonna approssimano via via sempre meglio il valoredella radice ξ2 = 2. Si dice che questo procedimento converge alla soluzione veraξ2, o in altri termini xk+1(= g(xk)) → ξ2, ove il pedice k indica le varie righe dellatabella, chiamate anche iterazioni.

Proviamo ora a cambiare la funzione g(x) esplicitando il termine lineare del-la (1.2) anziche il termine quadratico. Otteniamo:

x = g2(x) =x2 + 2

3(1.4)

e costruiamo la stessa tabella a partire ancora da x0 = 3 ma usando ora la funzioneg2(x):

x g2(x)1 3 3.66672 3.6667 5.14813 5.1481 9.5011

Come si verifica immediatamente il procedimento questa volta costruisce un’appros-simazione che si allontana sempre piu dalla soluzione ξ2. Si dice n questo caso cheil procedimento diverge.

Proviamo infine ad usare una terza funzione g3(x) data da:

x = g3(x) =x2 − 2

2x− 3(1.5)

Si noti che tale equazione ha come radici esattaente ξ1 e ξ2, come si puo facilmentevedere sostituendo ad ambo i membri una delle due radici arrivando cosı all’identita.Costruiamo la stessa tabella di prima:

x g3(x)1 3 2.3333332 2.333333 2.0666673 2.066667 2.0039224 2.003922 2.000015

e otteniamo una ottima approssimazione gia alla quarta iterazione. Ci si domandaquindi come si fa a costruire uno schema che converga alla soluzione esatta, e,

4 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

una volta costruito lo schema, come si fa a vedere quanto velocemente converge.Collegato a questo c’e da domandarsi come si fa a decidere quante iterazioni fare, oin altri termini, qual’e l’accuratezza dei conti alla quale ci fermiamo.

Per dare un senso pratico a queste domande, costruiamo quella che si chiamala tabella degli errori ε, ove l’errore e definito intuitivamente dalla differenza tra lasoluzione approssimata xk e la soluzione vera ξ2:

ε g1(ε)1 1 0.64582 0.6458 0.43673 0.4367 0.30434 0.3043 0.21655 0.2165 0.15636 0.1563 0.11407 0.1140 0.0837

ε g2(ε)1 1 1.66672 1.6667 3.14813 3.1481 7.5011

ε g3(ε)1 1 0.3333332 0.333333 0.0666673 0.066667 0.0039224 0.003922 0.000015

Dalle tabelle si nota che gli errori tendono a zero nello stesso modo con cui lasoluzione approssimata tende alla soluzione vera. Nel primo caso (g1) possiamofacilmente verificare che il rapporto di riduzione dell’errore ad ogni iterazione e paria circa 0.73, i.e. ε7/ε6 ≈ ε6/ε5 ≈ 0.73) e cioe:

ε6 ≈ 0.73ε5 e ε7 ≈ 0.73ε6

Nel caso di g3 invece tale rapporto tende a zero mentre e una costante il rapporto fral’errore corrente e il quadrato dell’errore precedente: ε4/ε

23 ≈ ε3/ε

22 ≈ 1, che significa:

e cioe:

ε3 ≈ ε22 e ε4 ≈ ε23

Per vedere meglio perche succede cosı calcoliamo la derivata prima della funzioneg e la valutiamo nella radice:

g′1(x) =3

2√

3x− 2|x=2 = 3/4 (< 1)

g′2(x) =2

3x|x=2 = 4/3 (> 1)

g′1(x) =2x2 − 6x+ 4

2x− 3|x=2 = 0 (< 1)

Empiricamente possiamo quindi affermare che ove la derivata prima di g e minoredi 1 lo schema converge. Inoltre, g′1(ξ2) e una buona approssimazione del fattore diriduzione dell’errore mentre cio non e vero nel caso di g3, ove si ha una riduzionedell’errore quadratica e una convergenza molto piu veloce.

Per quanto riguarda invece il numero di iterazioni dopo il quale fermarsi, bisognaanche qui ragionare sulle tabelle degli errori. In un problema pratico uno ha gia in

1.2. LO SCHEMA DELLE ITERAZIONI SUCCESSIVE (O DI PICARD) 5

mente qual’e l’errore che e disposto ad accettare. In questo caso basta fissare unlimite (tolleranza) per l’errore ed iterare fin a che l’errore (in valore assoluto) diventainferiore a questo limite. Per esempio se fissiamo una tolleranza TOLL = 0.001,pochi conti con la calcolatrice tascabile mostrano che con la g1 ci vogliono almeno23 iterazioni per soddisfare tale criterio di arresto (|ε23| < TOLL), mentre per g3 ilcriterio e soddisfatto gia alla 4 iterazione (|ε4| < TOLL).

Un altro modo di porsi il problema e quello di chiedersi qual’e il valore della diffe-renza tra due soluzioni successive al di sotto del quale le due approssimazioni possonoessere considerate equivalenti. In questo caso il controllo non e piu fatto utilizzan-do l’errore ma lo scarto (la differenza tra due approssimazioni successive). Questomodo di lavorare e in realta l’unico disponibile nella pratica, poiche la conoscenzadell’errore richiederebbe la conoscenza della soluzione vera.

1.2 Lo schema delle iterazioni successive (o di Pi-

card)

Lo schema visto in precedenza e un ben noto algoritmo che prende il nome di schemadelle iterazioni successive o di Picard. Si costruisce una successione di approssimantidella radice utilizzando la seguente formula ricorrente:

xk+1 = g(xk) (1.6)

dove l’indice k viene chiamato iterazione.

Lo schema precedente risolve il classico problema del “punto fisso”, e cioe trovareil valore della x ∈ R tale che

x = g(x) (1.7)

Graficamente questo problema consiste nel trovare il punto di intersezione ξ tra laretta y = x e la curva y = g(x), come evidenziato in Figura 1.2, ove si vede anchela convergenza dello schema di Picard.

Un algoritmo per lo schema di Picard implementabile all’elaboratore puo esseredescritto nel modo seguente. Si noti che nello scrivere un algoritmo utilizzeremo unlinguaggio simile ad un linguaggio di programmazione ma utile per una descrizione“matematica” dell’algoritmo. Alcune notazioni sono tipiche della scrittura degli al-goritmi. Per esempio il simbolo := denota il concetto di assegnazione, per cui primasi valuta il valore che l’espressione a destra del simbolo assume e solo successiva-mente tale valore viene assegnato alla variabile a sinistra del simbolo. La “keyword”Finche individua quello che in gergo informatico si chiama ciclo While, per cui siripete in successione il gruppo di righe comprese tra la “keyword” Finche e quella

6 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

ξ1

ξ2

g(x )0

y

x

y=g(x)

y=x

x 01x

g(x )1

2x

Figura 1.2: Rappresentazione grafica del problema del punto fisso e dello schema diPicard per la soluzione dell’equazione x2 − 3x + 2 = 0 con funzione di punto fissog1(x) =

√3x− 2.

1.2. LO SCHEMA DELLE ITERAZIONI SUCCESSIVE (O DI PICARD) 7

Fine Finche se la condizione scritta tra parentesi subito a destra del Finche e sod-disfatta. Non appena tale condizione non e verificata, si esce dal ciclo e si continuacon le istruzioni che seguono la “keyword” di chiusura ciclo (Fine Finche).

algoritmo di Picard I:

data una soluzione iniziale x0;

per k = 1, 2, . . . , s fino a convergenza:

1. xk+1 = g(xk)

Questo algoritmo non e pero completamente implementabile, nel senso che biso-gna specificare piu dettagliatamente cosa significa la frase “fino a convergenza”. Perfare cio, come abbiamo visto, abbiamo bisogno di introdurre il concetto di scartoe di tolleranza. L’algoritmo seguente implementa lo schema di Picard in modo deltuto simile a quanto si fa con un linguaggio di programmazione:

algoritmo di Picard II:

data una soluzione iniziale x0 ed una tolleranza TOLL;

XK := x0; SCARTO := 2 ∗ TOLL

Finche SCARTO > TOLL esegui:

1. XKP1 = g(XK)

2. SCARTO = |XKP1−XP |

3. XK = XKP1

Fine Finche.

Si noti che senza l’istruzione 3 l’algoritmo non uscirebbe mai dal ciclo finche.Infatti XKP1 sarebbe sempre uguale a g(XK) visto che XK = x0 non verrebbemai aggiornata. Un ulteriore controllo e pero necessario: nel caso in cui il metododiverge, l’algoritmo implementa un ciclo infinito visto che SCARTO aumenta adogni iterazione. In questo caso il computer eseguirebbe le iterazioni per un numeromolto grande di iterazioni fino a che probabilmente il valore di SCARTO o di XKP1non diventi talmente grande da superare la capacita di rappresentazione dei numerireali dell’elaboratore (in gergo informatico si avrebbe un “overflow”). Per guardarsida una tale evenienza, bisogna contare le iterazioni che vengono fatte e verificare che

8 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

esse non superino un numero massimo (ITMAX) prestabilito. Il seguente algoritmoimplementa cnahe questo controllo:

algoritmo di Picard III:

data una soluzione iniziale x0, una tolleranza TOLL e un numero massimo diiterazioni ITMAX;

XK := x0; SCARTO := 2 ∗ TOLL; ITER = 0;

Finche (SCARTO > TOLL e ITER < ITMAX) esegui:

1. ITER := ITER + 1;

2. XKP1 := g(XK);

3. SCARTO := |XKP1−XP |;

4. XK := XKP1;

Fine Finche.

1.3 Convergenza dei metodi iterativi

Lo studio della convergenza degli schemi iterativi e un capitolo molto importantedel Calcolo Numerico e serve per trovare le condizioni che garantiscono un funziona-mento corretto degli algoritmi in maniera tale da ottenere in un tempo ragionevoleuna buona approssimazione numerica della soluzione del problema considerato.

Nel caso di metodi iterativi, come quello di Picard precedentemente descritto, lostudio della convergenza riguarda essenzialmente lo studio della propagazione del-l’errore da un’iterazione all’altra. E’ utile cercare di rendere i concetti di convergenzain termini matematici, anche se non si pretende qui di riportare una trattazione for-male dell’argomento, ritenendo sufficiente dare alcune spiegazioni intuitive che perosono fondamentali per la comprensione dei metodi numerici.

1.3.1 Studio della convergenza dello schema di Picard

Uno schema iterativo puo essere sempre pensato come un insieme di regole percostruire una successione di numeri reali che tende alla soluzione vera del problema.In termini matematici, indichiamo la convergenza con:

{xk} → ξ

1.3. CONVERGENZA DEI METODI ITERATIVI 9

dove xk denota la successione e ξ la soluzione analitica del problema matema-tico. Definiamo l’errore come la differenza tra la soluzione vera e la soluzioneapprossimata:

εk = ξ − xk (1.8)

La successione {xk} converge alla radice ξ se {εk} tende a zero, e cioe:

limk→∞|ek| = 0 (1.9)

Capire quanto velocemente questa successione converge a zero, significa anche capirequanto velocemente la successione xk converge alla soluzione vera ξ. Idealmente sivorrebbe che ad ogni iterazione k l’errore diminuisse, ma questo non sempre e vero.Se l’errore diminuisce di un fattore costante ad ogni iterazione, si puo scrivere:

|ek+1| ≤M |ek| k = 1, 2, . . . M < 1

Condizioni per la convergenza

Per studiare le condizioni di convergenza, bisogna quindi studiare in quali condizionila condizione (1.9) e verificata. Dall’equazione (1.6) e dal fatto che la soluzione veraξ soddisfa la (1.7), si ottiene immediatamente:

ξ − x1 = g(ξ)− g(x0) = g′(ξ0)(ξ − x0)

ove l’ultima espressione deriva dall’applicazione del teorema del valor medio. Con-tinuando, possiamo evidentemente scrivere:

ξ − x1 = g(ξ)− g(x0) = g′(ξ0)(ξ − x0)ξ − x2 = g(ξ)− g(x1) = g′(ξ1)(ξ − x1) = g′(ξ1)g

′(ξ0)(ξ − x0)

e quindi si verifica facilmente che:

εk = g′(ξk−1)g′(ξk−2) · · · g′(ξ1)g′(ξ0)ε0 (1.10)

Ponendom = maxj|g′(ξj)|

otteniamo la seguente maggiorazione per l’errore alla k-esima iterazione:

|εk| ≤ mk|ε0|

da cui si ricava che se m < 1 la condizione (1.9) e verificata. Bisogna stare attentiperche questa dimostrazione mi dice che se tutte le derivate nei punti opportuni ξkinterni all’intervallo [x0, ξ] sono in valore assoluto minori di uno certamente lo schema

10 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

converge (condizione sufficiente). E’ peraltro vero che se una di queste derivaterisulta avere modulo maggiore di 1, nondimeno lo schema puo ancora convergere.Inoltre, il punto x0 non e stato specificato, per cui la condizione di convergenza perlo schema di Picard risulta essere:

|g′(x)| < 1 per x ∈ Iξ (1.11)

ove Iξ indica un intorno del punto xi. Se la g′ e una funzione continua, e

|g′(ξ)| < 1 (1.12)

esiste certamente un intorno di ξ per cui la (1.12) e verificata. Dalla Figura 1.2 sinota |g′(ξ2)| < 1 mentre |g′(ξ1)| > 1, come si puo facilmente vedere confrontando lependenze delle tangenti nei punti ξ1 e ξ2 con la pendenza della retta y = x.

Ordine di convergenza

E’ facile constatare, guardando la (1.10), che l’errore alla k iterazione tendera a zerotanto piu velocemente quanto piu il prodotto delle derivate sara vicino allo zero. Perquantificare in maniera piu precisa questo concetto, prendiamo l’errore cambiato disegno1 per cui

xk = ξ + εk (1.13)

che inserita nella (1.6) fornisce:

ξ + εk+1 = g(ξ + εk)

Se lo schema converge {εk} → 0 per cui possiamo espandere in serie di Taylor la gattorno a ξ, ottenendo:

ξ + εk+1 = g(ξ) + εkg′(ξ) +

ε2k2g′′(ξ) +

ε3k6g′′′(ξ) + · · ·

da cui, ricordandosi ancora una volta che ξ = g(ξ):

εk+1 = εkg′(ξ) +

ε2k2g′′(ξ) +

ε3k6g′′′(ξ) + · · · (1.14)

Si vede subito che, essendo ε2k e ε3k infinitesimi di ordine superiore, il termine domi-nante e proporzionale a |εk| con costante di proporzionalita pari proprio a g′(ξ). E’chiaro inoltre che perche |εk+1| < |εk| dovra essere |g′(ξ)| < 1. Se g′(ξ) 6= 0, si haimmediatamente:

limk→∞

|εk+1||εk|

= limk→∞

∣∣∣∣g′(ξ) +εk2g′′(ξ) +

ε2k6g′′′(ξ) + · · ·

∣∣∣∣ = |g′(ξ)|

1in questo caso ci interessano esclusivamente quantita prese in valore assoluto

1.3. CONVERGENZA DEI METODI ITERATIVI 11

mentre se g′(ξ) = 0 si potra scrivere:

limk→∞

|εk+1||ε2k|

= limk→∞

∣∣∣∣12g′′(ξ) +εk6g′′′(ξ) + · · ·

∣∣∣∣ =

∣∣∣∣12g′′(ξ)∣∣∣∣

e in questo caso sono i termini di secondo ordine a comandare la convergenza, cherisulta essere quindi piu veloce. E’ quindi naturale definire l’ordine p di convergenzae la costante M asintotica di convergenza (o dell’errore) con la relazione:

limk→∞

|εk+1||εk|p

= M (1.15)

Per p = 1 la convergenza e anche detta lineare e necessariamente M < 1; per p = 2la convergenza e detta quadratica, e cosı via. Si noti nel caso della g1(x) studiatain precedenza si ha p = 1 e M = |g′1(2)| = 0.75, mentre per la g3(x) si ha p = 2 eM = g′′3(ξ)/2 = 1.

1.3.2 Lo schema di Newton-Raphson

Abbiamo visto che se |g′(ξ)| = 0 lo schema di Picard ha ordine di convergenzap = 2. Cerchiamo quindi di trovare un modo per ricavare tale schema. Partiamodal problema (1.1) e cerchiamo di costruire una successione definita da:

xk+1 = xk + h (1.16)

Idealmente noi vorremmo che, partendo da una soluzione di tentativo xk, il valoredi h ci fornisca la soluzione esatta, o in formule:

f(xk+1) = f(xk + h) = 0

Espandendo in serie di Taylor la precedente equazione attorno a xk si ottiene:

0 = f(xk + h) = f(xk) + hf ′(xk) +h2

2f ′′(xk) +

h3

3!f ′′′(xk) + · · ·

Trascurando i termini di ordine superiore al primo, si ottiene un’equazione linearein h la cui soluzione, inserita nella (1.16) definisce lo schema iterativo di Newton-Raphson, che puo essere visto come uno schema di punto fisso in cui si utilizza unag(x) particolare:

xk+1 = gnr(xk) = xk −f(xk)

f ′(xk)(1.17)

Si vede facilmente che il valore approssimato xk+1 alla nuova terazione di Newton-Raphson e dato dall’intersezione della retta tangente alla f(x) nel punto (xk, f(xk)),che ha dunque pendenza pari a f ′(xk), con l’asse x, come evidenziato in Figura 1.3.

12 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

x 0

y

f(x)

x 1 x 3

x 2

Figura 1.3: Rappresentazione grafica del funzionamento metodo di Newton Raphsonper la soluzione dell’equazione f(x) = 0.

1.3. CONVERGENZA DEI METODI ITERATIVI 13

L’algoritmo per l’implementazione dello schema di Newton-Raphson e moltosimile a quello di Picard, con la sostituzione della generica g(x) con la gnr(x):

algoritmo di Newton-Raphson:

data una soluzione iniziale x0, una tolleranza TOLL e un numero massimo diiterazioni ITMAX;

XK := x0; SCARTO := 2 ∗ TOLL; ITER = 0;

Finche (SCARTO > TOLL e ITER < ITMAX) esegui:

1. ITER := ITER + 1;

2. XKP1 := gnr(XK);

3. SCARTO := |XKP1−XP |;

4. XK := XKP1;

Fine Finche.

. . .

Function gnr(X);

gnr(X) = X − f(X)

f ′(X)

Fine Function gnr

Condizioni di convergenza

Consideriamo la funzione di Newton-Raphson gnr e imponiamo le condizioni di con-vergenza dello schema di punto fisso, e, osservando che se ξ e lo zero della funzioneallora necessariamente f(ξ) = 0 si ottiene:

|g′nr(ξ)| =∣∣∣∣1− [f ′(ξ)]2 − f(ξ)f ′′(ξ)

[f ′(ξ)]2

∣∣∣∣ =

∣∣∣∣f(ξ)f ′′(ξ)

[f ′(ξ)]2

∣∣∣∣ = 0

da cui segue immediatamente che la (1.11) e sempre verificata se si assume la conti-nuita della f e delle sue prime due derivate. Si dice quindi che lo schema di Newton-Raphson e generalmente convergente. Si noti, tuttavia, che bisogna stare attenti aqueste affermazioni, perche il punto iniziale x0 non e stato specificato e la (1.11) vale

14 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

in condizioni asintotiche. Si puo affermare quindi che lo schema di Newton-Raphsone generalmente convergente per una soluzione iniziale x0 sufficientemente vicina.

Nel caso di radice doppia (f(ξ) = 0; f ′(ξ) = 0; f ′′(ξ) 6= 0) la condizione diconvergenza e ancora soddisfatta, anche se la g′nr non e piu nulla. Infatti si ha:

limx→ξ|g′nr(x)| = lim

x→ξ

∣∣∣∣f(x)f ′′(ξ)

[f ′(x)]2

∣∣∣∣ = (usando l’Hospital) =

= |f ′′(ξ)| limx→ξ

∣∣∣∣ f ′(x)

2f ′(x)f ′′(x)

∣∣∣∣ =1

2

E’ quindi chiaro dalla (1.14) che in questo caso l’ordine di convergenza si riduce alineare con costante asintotica dell’errore M = 1/2. Possiamo dunque concludere chelo schema di Newton-Raphson e generalmente convergente, sempre pero’ in relazionead una soluzione iniziale x0 sufficientemente vicina alla soluzione finale ξ.

Ordine di convergenza

Come abbiamo gia notato indirettamente, nel caso generale l’ordine di convergenzadello schema di Newton-Raphson e p = 2 con costante asintotica dell’errore M =12|g′′nr(ξ)|. E’ possibile pero ricavare l’ordine direttamente dall’espressione (1.17)

con la stessa procedura usata per lo schema di punto fisso. A tal fine, sostituiamola (1.13) nella (1.17):

ξ + εk+1 = ξ + εk −f(ξ + εk)

f ′(ξ + εk)

Espandendo sia la f(ξ+ εk)) del numeratore e la f ′(ξ+ εk) del denominatore in seriedi Taylor attorno ad xk, notando che f(ξ) = 0 e assumendo che la radice sia singola,si ottiene:

εk+1 = εk −f(ξ) + εkf

′(ξ) + ε2k/2f′′(ξ) + ε3k/3f

′′′(ξ) · · ·f ′(ξ) + εkf ′′(ξ) · · ·

=ε2k/2f

′′(ξ) + ε3k/3f′′′(ξ) · · ·

f ′(ξ) + εkf ′′(ξ) · · ·(1.18)

per cui la definizione (1.15) e soddisfatta con p = 2 e M = 1/2|f ′′(ξ)/f ′(ξ)|:

limk→∞

|εk+1||εk|2

=1

2

∣∣∣∣f ′′(ξ)f ′(ξ)

∣∣∣∣che conferma l’ordine “quadratico” di Newton-Raphson e dalla quale si puo ricavareindirettamente l’espressione della g′′nr.

Nel caso di radice doppia, e cioe f(ξ) = f ′(ξ) = 0, risulta immediatamente dalla

1.3. CONVERGENZA DEI METODI ITERATIVI 15

1.3.3 Altri schemi “Newton-like”

Possiamo riscrivere il metodo di Newton nel seguente modo:

xk+1 = xk −f(xk)

CkCk = f ′(xk)

E’ possibile utilizzare diverse espressioni per Ck, cercande sempre che tali espressionisi avvicinino il piu possibile a f ′(xk), che abbiamo visto garantisce convergenze “ot-timale” quadratica. In particolare si ha la seguente tabella che riassume i principalischemi:

Ck Nome schema Ordinef ′(x0) tangente fissa 1

f ′(xk) Newton Raphson 2(tangente variabile)

f(x1)−f(x0)x1−x0 secante fissa 1

f(xk)−f(xk−1)xk−xk−1

Regula Falsi

(secante variabile) 1.618

Verifichiamo per esercizio l’ordine e la costante asintotica dell’errore per il metododella tangente fissa. Tale schema approssima la derivata con la derivata primacalcolata nel punto iniziale e poi la mantiene costante. Si avra quindi:

ξ + εk+1 = ξ + εk −f(ξ + εk)

f(x0)

Espandendo f(ξ + εk) in serie di Taylor attorno alla radice ξ si ha:

εk+1 = εk −f(ξ) + εkf

′(ξ) + ε2k/2f′′(ξ) + ε3k/3f

′′′(ξ) · · ·f ′(x0)

=εk(f

′(x0)− f ′(ξ))− ε2k/2f ′′(ξ) · · ·f ′(x0)

da cui si vede che lo schema della tangente fissa converge con p = 1 e M = (f ′(x0)−f ′(ξ))/f ′(x0).

Veniamo ora allo schema della Regula-Falsi. Tale schema approssima la derivataprima con un rapporto incrementale ottenuto con le informazioni piu recentemente

16 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

calcolate (xk, xk−1, f(xk) e f(xk−1)). La formula iterativa del metodo della Regula-Falsi si puo scrivere nel modo seguente:

xk+1 = xk − f(xk)xk − xk−1

f(xk)− f(xk−1).

L’algoritmo e innescato da due soluzioni iniziali che devono essere fornite esterna-mente. La prima, x0, e come al solito arbitraria. La seconda viene generalmentecalcolata con una iterazione del metodo di Newton-Raphson. Una volta note x0 ex1, si possono calcolare le approssimazioni successive.

L’analisi di convergenza richiede qualche calcolo in piu rispetto al metodo diNewton-Raphson, ma la tecnica e la stessa. Si ha infatti, ricordando sempre chef(ξ) = 0:

εk+1 =εk−1f(ξ + εk)− εkf(ξ + εk−1)

f(ξ + εk)− f(ξ + εk−1)

=εk−1

[εkf′(ξ) + 1

2ε2kf′′(ξ) + · · ·

]− εk

[εk−1f

′(ξ) + 12ε2k−1f

′′(ξ) + · · ·]

εkf ′(ξ) + 12ε2kf′′(ξ) + · · · − εk−1f ′(ξ)− 1

2ε2k−1f

′′(ξ)− · · ·

=εk−1εkf

′(ξ) + εk−112ε2kf′′(ξ) + · · · − εkεk−1f ′(ξ)− εk 12ε

2k−1f

′′(ξ)− · · ·εkf ′(ξ) + 1

2ε2kf′′(ξ) + · · · − εk−1f ′(ξ)− 1

2ε2k−1f

′′(ξ)− · · ·

=12f ′′(ξ)εkεk−1(εk − εk−1) + · · ·

f ′(ξ)(εk − εk−1) + 12f ′′(ξ)(ε2k − ε2k−1) · · ·

=1

2

f ′′(ξ)

f ′(ξ)εkεk−1 + . . .

per cui risulta infine

εk+1 =1

2

f ′′(ξ)

f ′(ξ)εkεk−1 + . . . = Aεkεk−1 + . . . (1.19)

Prendendo i moduli e ricordando la definizione (1.15), in condizioni asintotiche si hain tuta generalita:

|εk+1||εk|p

= M (1.20)

da cui evidentemente si ricava:

|εk−1| =(|εk|)M

)1/p

che sostituita nella (1.19) fornisce:

|εk−1| = AM−1/pε(p+1)/pk (1.21)

1.3. CONVERGENZA DEI METODI ITERATIVI 17

dove la costante A = |f ′′(ξ)|/(2|f ′(ξ)|) coincide con la costante asintotica dell’erroredel metodo di Newton-Raphson. La coincidenza della (1.20) con la (1.21) si haquando:

AM−1/p = M ε(p+1)/pk = εpk

che fornise M = A(p+1)/p e p = (1 ±√

(5))/2. Escludendo la radice negativa, laRegula Falsi risulta avere quindi convergenza superlineare pari a p = 1.618 · · · ecostante asintotica pari a M = A0.618···.

18 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI

Capitolo 2

Riassunto di Algebra Lineare

Un numero (scalare) intero, reale o complesso sara in genere indicato da una letteraminuscola dell’alfabeto greco, per esempio:

α ∈ I β ∈ R α ∈ C.

Un vettore, definito come una n-upla ordinata di numeri (e.g. reali), sara indicatocon una lettera minuscola dell’alfabeto inglese, usando le seguenti notazioni del tuttoequivalenti:

x ∈ Rn x =

x1...xn

x = {xi}.

Il numero xi ∈ R e chiamato la componente i-esima del vettore x.Una matrice, definita da una tabella di numeri (e.g. reali) caratterizzata da

n righe e m colonne, sara indicata da una lettera maiuscola dell’alfabeto inglese,usando le seguenti notazioni del tutto equivalenti:

A[n×m] A =

a11 . . . a1m. . . .. . . .. . . .an1 . . . anm

A = {aij}.

Il numero aij ∈ R e chiamato l’elemento ij-esimo della matrice A. In realta noiutilizzeremo quasi esclusivamente matrici quadrate, per cui in genere si avra m = n.Si noti che un vettore puo essere considerato come una matrice avente una colonna ecioe m = 1. Per convenzione (nostra) un vettore e quindi sempre un vettore colonna.Tuttavia, quando si parlera di matrici o di vettori si fara sempre riferimento alle

19

20 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

notazioni precedentemente definite. Tutte le proprieta che seguono sono ovviamentevalide per vettori e matrici.

Somma di matrici. La matrice somma di due matrici della stessa dimensione edefinita coma la matrice che si ottiene sommando ordinatamente le componenti, oin formula, date A,B,C ∈ Rn×m:

C = A±B := {aij ± bij}.

Prodotto di una matrice per uno scalare. Il prodotto tra uno scalare e unamatrice o un vettore e definito per componenti:

αA = {αaij}.

Matrice trasposta. La matrice AT si chiama la matrice trasposta di A e si ottienescambiando le righe con le colonne:

A = {aij} AT = {aji}.

Matrice nulla. La matrice nulla e quella matrice che ha tutte le componentiuguali a zero, ed e l’elemento neutro della somma:

A = 0⇐⇒ aij = 0 i, j = 1, . . . , n.

Matrice identita. La mtrice identita I e quella matrice quadrata che ha le com-ponenti diagonali uguali a uno e tutte le altre nulle:

I[n×n] I :=

1 0 . . . 0 00 1 . . . 0 0. . . . . .0 0 . . . 1 00 0 . . . 0 1

.

Matrice positiva o non negativa. Una matrice e detta positiva (o non negativa)1 se tutti i suoi elementi sono positivi o nulli con almeno un elemento positivo:

A > 0⇒ aij ≥ 0.

1La proprieta di una matrice di essere positiva non va confusa con la proprieta di essere definitapositiva che verra definita piu avanti.

21

Prodotto scalare tra due vettori. Si definisce prodotto scalare tra due vettorila somma dei prodotti delle componenti omonime:

xTy = 〈x, y〉 = x · y :=n∑i=1

xiyi.

Altre notazioni che useremo per il prodotto scalare sono:

〈x, y〉 oppure x · y.

In modo piu formale, dato uno spazio vettoriale V ⊂ Cn ( o Rn), il prodottoscalare (o interno) tra due elementi x, y ∈ V , indicato con 〈x, y〉, e la mappa:

〈·, ·〉 : V × V → C ( o R)

che soddisfa alle seguenti proprieta definenti:

• (Simmetria Hermitiana) 〈x, y〉 = 〈y, x〉 dove (·) indica l’operazione di coniu-gazione complessa;

• (linearita) 〈αx+ βy, z〉 = α 〈x, z〉+ β 〈y, z〉;

• (positivita) 〈x, x〉 > 0 per ogni x ∈ Cn (o Rn) e 〈x, x〉 = 0 solo per x = 0.

Prodotto tra matrici. Il prodotto tra due matrici, detto anche prodotto righe-colonne, e dato da quella matrice che ha per componenti i prodotti scalari tra lerighe della prima matrice e le colonne della seconda matrice pensate come vettore:

A[n×p] = {aij} B[p×m] = {bij} C[n×m] = {cij}

C = AB cij :=∑k=1,p

aikbkj, i = 1, . . . , n j = 1, . . . ,m.

Il prodotto matrice vettore e un caso particolare del prodotto tra matrice, conside-rando il vettore come una matrice n × 1. E’ facile quindi verificare che il prodottoscalare gode della seguente proprieta2:

〈x,Ay〉 =⟨ATx, y

⟩〈Ax, y〉 =

⟨x,ATy

⟩.

2Ovviamente il prodotto scalare e commutativo e cioe: 〈x,Ay〉 = 〈Ay, x〉 ovvero xTAy = (Ay)Tx

22 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

Determinante di una matrice. Data una matrice quadrata A, il suo determi-nante determinante, det A, e definito come lo scalare dato dalla somma di tuttiprodotti ottenuti prendendo come fattore un elemento di ciascuna riga ed uno diciascuna colonna:

det A :=∑±a1,i1a2,i2 · · · an,in ,

dove i1, i2, . . . , in sono permutazioni distinte dei primi n numeri interi e il segno edato dall’ordine della permutazione.

Inversa di una matrice quadrata. Data una matrice quadrata A[n×n] se det A 6=0, si definisce matrice inversa A−1, se esiste, la matrice tale che:

A−1A = AA−1 = I.

Matrice singolare. Una matrice e singolare se la sua inversa non esiste. Unamatrice singolare ha determinante nullo e viceversa.

Matrice unitaria o ortogonale. Una matrice si dice unitaria o ortogonale se:

UT = U−1.

Proprieta delle operazioni tra matrici quadrate.

1. AB 6= BA (Le matrici per le quali la proprieta commutativa vale sono dettecommutative.)

2. A+B = B + A

3. (A+B) + C = A+ (B + C)

4. (AB)C = A(BC)

5. A(B + C) = AB +BC; (A+B)C = AC +BC

6. (AB)T = BTAT

7. (AB)−1 = B−1A−1

8. (AT )−1 = (A−1)T .

23

Matrice simmetrica. Una matrice si dice simmetrica se e uguale alla sua traspo-sta:

A = AT ;

si dice antisimmetrica se e opposta alla sua trasposta:

A = −AT .

Ogni matrice puo essere decomposta secondo la somma della sua parte simmetricae della sua parte antisimmetrica:

A =1

2(A+ AT ) +

1

2(A− AT ).

Matrice definita positiva. Una matrice A[n×n] si dice definita positiva (semidefinita positiva) se:

xTAx = 〈x,Ax〉 > 0 (〈x,Ax〉 ≥ 0).

Matrice di tipo M o M-matrice. Una matrice e detta di tipo M se gode delleseguenti proprieta:

1. e non singolare;

2. tutti gli elementi della diagonale sono positivi;

3. gli elementi extra diagonali sono negativi o nulli.

Una M-matrice ha la proprieta che la sua inversa e positiva.

2.0.4 Spazi vettoriali, vettori linearmente dipendenti, basi

Spazio vettoriale. Uno spazio vettoriale V (sul campo scalare R) e un insieme divettori dove sono definite l’operazione di addizione tra due vettori e di moltiplicazio-ne tra uno scalare (reale) e un vettore. Tali operazioni devono soddisfare le seguentiproprieta definenti3 per ogni x, y ∈ V e per ogni α, α1, α2 ∈ R:

1. x+ y = y + x;

2. x+ (y + z) = (x+ y) + z;

3Si noti che tali proprieta agiscono in modo tale che la maggior parte delle operazioni elementariche generalmente facciamo sul campo degli scalari possano essere fatte anche su tale spazio

24 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

3. esiste un unico elemento nullo dell’addizione (il vettore “zero”) tale che x+0 =0 + x = x;

4. per ogni x esiste un unico vettore −x tale che x+ (−x) = 0;

5. 1x = x;

6. (α1α2)x = α1(α2x);

7. α(x+ y) = αx+ αy;

8. (α1 + α2)x = α1x+ α2x.

Per esempio, sono spazi vettoriali:

• Rk, l’insieme di tutti i vettori a k componenti con le classiche operazioni disomma e prodotto per uno scalare;

• R∞ l’insieme dei vettori a infinite componenti (di nuovo con le stesse operazionidi prima);

• lo spazio delle matrici m×n; in questo caso i vettori sono matrici e le operazionisono quelle definite nei paragrafi precedenti4;

• lo spazio delle funzioni continute f(x) definite nell’intervallo 0 ≤ x ≤ 1 (adesempio appartengono a tale spazio f(x) = x2 e g(x) = sin(x) per le qualisi ha che (f + g)(x) = x2 + sin(x) e ogni multiplo tipo 3x2 oppure − sin(x)sono ancora nello spazio). I vettori in questo caso sono funzioni quindi con“dimensione” infinita.

Sottospazio vettoriale. Un sottospazio S ⊂ V dello spazio vettoriale V e unsottoinsieme di V che soddisfa alle relazioni:

1. per ogni x, y ∈ S la loro somma z = x+ y e ancora un elemento di S;

2. il prodotto di ogni x ∈ S per uno scalare α ∈ R e un elemento di S: z = αx,z ∈ S.

Si dice anche che il sottospazio S e un sottoinsieme di V “chiuso” rispetto alle ope-razioni di addizione e moltiplicazione per uno scalare. Un esempio di un sottospaziovettoriale e un piano, che e affine allo spazio vettoriale R2 se pensato isolato ma chee contenuto in R3.

4questo spazio e in qualche modo simile a Rmn

25

Indipendenza lineare. Si dice che k vettori vk sono linearmente indipendenti setutte le loro combinazioni lineari (eccetto quella triviale a coefficienti nulli) sononon-nulle:

α1v1 +α2v2 + · · ·+αkvk 6= 0 escludendo il caso α1 = α2 = · · · = αk = 0.

In caso contrario, i vettori si dicono linearmente dipendenti.

Si ha la seguente proprieta: un insieme di k vettori apartenenti a Rm devononecessariamente essere linearmente dipendenti se k > m.

Span. Se uno spazio vettoriale V e formato da tutte le combinazioni lineari deivettori v1, v2, . . . , vn, si dice che questi vettori “generano” lo spazio V e si scrive:

V = span{v1, v2, . . . , vn}.

In altre parole ogni altro vettore di V puo essere scritto come combinazione linearedei vettori generatori:

w ∈ V ⇒ w = α1v1 + . . . αnvn =n∑i=1

α1v1.

Base. Una base dello spazio vettoriale V e l’insieme (minimale) dei vettori che:

1. sono linearmente indipendenti;

2. generano lo spazio V .

Dimensione di uno spazio vettoriale. Le basi di uno spazio vettoriale sonoinfinite. Ciascuna base contiene lo stesso numero di vettori. Tale numero e chiamatodimensione dello spazio V .

Ad esempio, una base dello spazio tri-dimensionale R3 e costituita dall’insiemedei vettori coordinate e1, e2, e3, dove e1 = (1, 0, 0)T , e2 = (0, 1, 0)T , e3 = (0, 0, 1)T ,con ovvia estensione alla generica dimensione n e si scrive:

n = dim(V ).

Ogni insieme di vettori di V linearmente dipendenti puo essere esteso ad una base(se necessario aggiungendo opportuni vettori). Viceversa, ogni insieme di vettorigeneratori di V puo essere ridotto ad una base (se necessario eliminando dei vettori).

26 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

−y

x

y

x−y

Figura 2.1: A sinistra: vettori ortogonali: x e y sono ortogonali. Applicando ilTeorema di Pitagora alla coppia di vettori x e −y che formano i cateti di un triangolorettangolo e scrivendo l’uguaglianza (2.1) si ricava immediatamente che deve esserevalida la (2.2). A destra: proiezione ortogonale del sottospazio V (formato da unsolo vettore) nel sottospazio W (formato dal piano).

Ortogonalita tra vettori e sottospazi

Introduciamo il concetto di lunghezza di un vettore x che indichiamo con ‖x‖ (si vedapiu avanti il paragrafo sulle norme di vettori). Visivamente, in R2, scomponendo ilvettore nelle sue componenti lungo gli assi principali, x = (x1, x2), si puo definire lalunghezza usando il teorema di Pitagora, da cui si ha immediatamente:

‖x‖2 = x21 + x22,

e per estensione diretta a Rn:

‖x‖2 = x21 + x22 + . . .+ x2n.

Vettori ortogonali. Sempre in R2, e intuitivo dire che due vettori x e y sonoortogonali se formano un tra lor un angolo rettangolo, ovvero usando il teorema diPitagora, se (si veda Figura 2.1):

‖x‖2 + ‖y‖2 = ‖x− y‖2 . (2.1)

Dalla precedente, scritta per componenti, si verifica immediatamente che dovrannoessere nulli i prodotti incrociati (somma dei doppi prodotti), da cui si ottiene ladefinizione generale di ortogonalita tra vettori di Rn:

xTy = 〈x, y〉 = 0. (2.2)

Tale quantita, il prodotto scalare, e anche chiamato prodotto interno. Si dimo-stra immediatamente che se n vettori sono mutuamente ortogonali, allora essi sonolinearmente indipendenti.

27

Spazi ortogonali. due sottospazi V e W di Rn sono ortogonali se ogni vettorev ∈ V e ortogonale a ogni vettore w ∈ W .

Complemento ortogonale. Dato un sottospazio V ∈ Rn, lo spazio di tutti ivettori ortogonali a tutti i vettori di V si dice complemento ortogonale di V e sidenota con V ⊥.

Proiezione ortogonale. Se V e W sono sottospazi di Rn, una qualsiasi delleseguenti proprieta li caratterizza come ortogonali:

1. W = V ⊥ (W consiste di tutti i vettori ortogonali a V );

2. V = W⊥ (V consiste di tutti i vettori ortogonali a W );

3. V e W sono ortogonali e dim V + dim W = n.

La proiezione ortogonale di un vettore x ∈ V1 lungo la direzione del vettore y ∈ V2e data dal vettore:

y = 〈x, y〉 y = yyTv = Pv

La matrice P e detta matrice di proiezione.Ogni vettore x ∈ Rn puo essere scritto come la somma di due vettori v ∈ V

e w ∈ W . Queste componenti v e w sono ortogonali e si chiamano le proiezioniortogonali di x in V e W .

2.0.5 Autovalori ed autovettori

Uno scalare λ ed un vettore u 6= 0 si dicono rispettivamente autovalore ed autovettoredi una matrice quadrata A se soddisfano alla seguente relazione:

Au = λu.

Si ricava facilmente che

(A− λI)u = 0 ⇒ P (λ) = det (A− λI) = 0.

Dalla prima delle precedenti si vede immediatamente che gli autovettori sono definitia meno di una costante moltiplicativa. Dalla seconda invece si vede che gli autovalorisono le radici di un polinomio di grado n a coefficienti reali (se gli elementi di Asono reali). Da quest’ultima osservazione e usando le proprieta delle radici di unpolinomio si ricavano le seguenti proprieta degli autovalori:

λ ∈ Cn∑i=1

λi =n∑i=1

aii = Tr An∏i=1

λi = det A Amu = λmu.

28 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

Se esiste λ = 0, allora la matrice e singolare (det A = 0). Secondo una comunenotazione, tutti gli autovalori di una matrice A si indicano con λ(A). Si dice ancheche λ(A) e lo spettro di A. Molto spesso si ordinano gli autovalori in maniera taleche

| λ1 | ≥ | λ2 | ≥ . . . ≥ | λn |,

per cui in generale la notazione λ1(A) indica l’autovalore di A massimo in modulo,mentre λn(A) indica l’autovalore minimo (in modulo). Il modulo di λ1(A) e anchedetto raggio spettrale di A e si indica con ρ(A) = | λ1(A) |.

Trasformazioni di similitudine. Si dice che una matrice B e ottenuta da Atramite una trasformazione di similitudine se esiste una matrice non singolare S taleche:

B = S−1AS.

Si vede che B e A hanno gli stessi autovalori mentre gli autovettori sono scalati dallamatrice S. Infatti:

det (B − λI) = det (S−1AS − λS−1S) = det S−1det (A− λI)det S = det (A− λI),

e quindiBu = λuAv = λv

⇒ S−1ASu = λuASu = λSu

⇒ v = Su.

E’ facile verificare che

λ(A) = λ(AT ) λ(AB) = λ(A−1ABA) = λ(BA).

E’ facile anche verificare che se A e definita positiva, allora λi > 0 i = 1, . . . , n.Se si indica con D la matrice (diagonale) formata dagli elementi di A sulla

diagonale e con tutti gli elementi extradiagonali nulli:

D = {dij} dij =

{aii, se i = j,0, se i 6= j.

;

si ha allora:

λ(D−1A) = (ponendo S = D−12 ) = λ(D

12D−1AD−

12 ) = λ(D−

12AD−

12 ).

Inoltre, la matrice B = D−12AD−

12 e definita positiva se lo e A. Infatti:

〈x,Bx〉 =⟨x,D−

12AD−

12x⟩

=⟨D−

12x,AD−

12x⟩> 0.

29

Proprieta delle matrici simmetriche e diagonalizzazione.

• Gli autovalori ed autovettori di una matrice A simmetrica sono tutti reali.

• Gli autovalori ed autovettori di una matrice A antisimmetrica sono immaginari.

• Se A e definita positiva, λi > 0 per ogni i = 1, . . . , n.

• Una matrice A si dice diagonalizzabile se esiste una matrice U non singolaretale che

Λ = U−1AU

e una matrice diagonale. In questo caso e facile vedere che λii = λi sono gliautovalori di A e le colonne di U sono gli autovettori.

• Se A e simmetrica e definita positiva, e diagonalizzabile e la matrice U eunitaria (o ortogonale) (U−1 = UT ). Una matrice unitaria ha le colonneortogonali tra di loro, per cui

〈ui, uj〉 =

{6= 0, se i = j,= 0, se i 6= j.

;

e poiche in questo caso gli ui sono autovettori di A, e sono definiti a meno diuna costante moltiplicativa, si ha:

〈ui, uj〉{

= 1, se i = j,= 0, se i 6= j.

.

Si puo concludere gli autovettori di matrici diagonalizzabili formano una baseeventualmente ortonormale per lo spazio vettoriale Rn. Questo significa chetutti i vettori di Rn possono essere espressi come combinazione lineare degliautovettori di A.

2.0.6 Norme di vettori e di matrici

Norme di vettori. Si definisce norma di un vettore x uno scalare reale chesoddisfa alle seguenti relazioni:

1. ‖x‖ > 0, ‖x‖ = 0 se e solo se x = 0;

2. dato α ∈ R, ‖αx‖ = | α | ‖x‖;

3. ‖x+ y‖ ≤ ‖x‖+ ‖y‖;

30 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

Un esempio di norma di vettori generica e dato dalla norma-p:

‖x‖p =

(n∑i=1

| xi |p)1/p

;

per p = 2 si ha la classica norma euclidea ‖x‖2 =√〈x, x〉; per p =∞ si ha la norma

massima ‖x‖∞ = maxi | xi |, per p = 1 si ha la norma assoluta ‖x‖1 =∑n

i=1 | xi |.Per p = 2 vale la disuguaglianza di Schwarz:

〈x, y〉 ≤ ‖x‖2 ‖y‖2 .

Un’altra norma molto usata e la norma “energia”, definita come il prodotto scalaretra il vettore x e il vettore Ax, dove la matrice A e una matrice simmetrica e definitapositiva (se non lo fosse la proprieta 1 sopra non sarebbe soddisfatta):

‖x‖A =√〈x,Ax〉.

Norme di matrici. Si definisce norma di una matrice A uno scalare reale chesoddisfa alle seguenti relazioni:

1. ‖A‖ > 0, ‖A‖ = 0 se e solo se A = 0;

2. dato α ∈ R, ‖αA‖ = | α | ‖A‖;

3. ‖A+B‖ ≤ ‖A‖+ ‖B‖;

4. ‖AB‖ ≤ ‖A‖ ‖B‖;

Esempi di norme di matrici:

• norma di Frobenius: ‖A‖2 =√

Tr (ATA) =√∑

ij | aij |2;

• norma di Hilbert o norma spettrale: ‖A‖ =√ρATA =

√| λ1(ATA) |.

Norme compatibili o indotte. Si dice che la norma di matrice ‖A‖ e compatibile(o indotta da) con la norma di vettore ‖x‖ se:

‖A‖ = supx 6=0

‖Ax‖‖x‖

.

Dimostriamo che la norma spettrale di matrice e compatibile con (indotta da) lanorma euclidea di vettore. Infatti, data una matrice non singolare A ∈ Rn×n, si

31

costruisce la matrice simmetrica e definita positiva H = ATA. Essendo H diagona-lizzabile, un generico vettore x ∈ Rn puo essere pensato come combinazione linearedegli autovettori ui di H:

x = c1u1 + c2u2 + . . .+ cnun.

Poiche gli ui sono ortonormali, si ottiene facilmente:

〈x,Hx〉 = xTHx = (c1u1 + c2u2 + . . .+ cnun)TH(c1u1 + c2u2 + . . .+ cnun)

= λ1| c1 |2 + . . .+ λn| cn |2

≤ λ1(| c1 |2 + . . .+ | cn |2) = λ1 ‖x‖22 ,

e da questa:

λ1(ATA) ≥ 〈Ax,Ax〉

‖x‖22=‖Ax‖22‖x‖22

.

La dimostrazione si completa prendendo la radice quadrata della precedente espres-sione.

Sistemi Lineari. Data una matrice A, di dimensioni n× n e non singolare, e unvettore b ∈ Rn, si cerca il vettore x ∈ Rn che soddisfa:

Ax = b.

La soluzione formale di tale sistema e data da:

x∗ = A−1b.

Non e ragionevole trovare tale vettore, o un’approssimazione di esso, utilizzando laformula precedente, essendo il calcolo dell’inversa A−1 molto oneroso5

In queste note si fara riferimento esclusivamente a metodi iterativi per la solu-zione di sistemi lineari. In tali metodi si cerca di definire una successione di iterate(vettori) xk k > 0 in maniera tale che

limk→∞

xk = x∗. (2.3)

Uno schema iterativo verra terminato in pratica molto prima che la condizione pre-cedente sia verificata. In effetti, non conoscendo x∗, sara impossibile calcolare talelimite. Di solito si definisce il residuo come:

rk = b− Axk,

5Il modo piu semplice per calcolare l’inversa e quella di risolvere n sistemi lineari, con un costocomputazionale molto elevato. Ci sono altri metodi per calcolare l’inversa, ma sempre con costomolto alto rispetto alla soluzione di un sistema lineare.

32 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

per cui la condizione di convergenza (2.3) si traduce immediatamente dicendo cheil residuo deve tendere a zero. L’iterazione verra quindi terminata non appenala norma (qualsiasi) del residuo non diventi minore di una soglia predeterminata,chiamata tolleranza. In molti casi e meglio sostituire questa condizione con unarelativa; l’iterazione termina quando il residuo iniziale e diminuito di un fattore τ :

‖rk‖‖r0‖

< τ.

Definendo il vettore errore come la differenza tra la soluzione approssimata e lasoluzione vera ek = xk − x∗ si puo ricavare una relazione tra residuo ed errore:

‖ek‖‖e0‖

≤ κ(A)‖rk‖‖r0‖

.

dove il numero k(A) = ‖A‖ ‖A−1‖ e chiamato il numero di condizionamento dellamatrice A. Infatti:

rk = b− Axk = −Aek.da cui, utilizzando norme matriciali compatibili:

‖ek‖ =∥∥A−1Aek∥∥ ≤ ∥∥A−1∥∥ ‖Aek‖ =

∥∥A−1∥∥ ‖rk‖ ,e:

‖r0‖ = ‖Ae0‖ ≤ ‖A‖ ‖e0‖ ,quindi:

‖ek‖‖e0‖

≤∥∥A−1∥∥ ‖A‖ ‖rk‖

‖r0‖= κ(A)

‖rk‖‖r0‖

. (2.4)

La condizione di terminazione sul residuo relativo cosı definito e scomoda perche di-pende fortemente dalla soluzione iniziale x0. Si preferisce quindi rapportare la normadel residuo corrente alla norma del termine noto b, e cioe utilizzare la condizione:

‖rk‖‖b‖

< τ.

Le due condizioni sono equivalenti qualora si scelga come soluzione iniziale x0 = 0(e quindi r0 = b), una scelta molto diffusa.

Nel seguito faremo spesso riferimento al seguente esempio:

Ax = b ove A =

[3 22 6

]x =

[x1x2

]b =

[2−8

](2.5)

che ha soluzione

x∗ =

[2−2

].

In R2 l’interpretazione geometrica e facile: la soluzione del sistema e il punto diintersezione delle due rette le cui equazioni formano il sistema lineare, situazioneche e disegnata in Fig. 2.2.

33

-4 -2 2 4 6

-6

-4

-2

2

4

x1

x2

3x1 + 2x2 = 2

2x1 + 6x2 = �8

Figura 2.2: Interpretazione geometrica di un sistema lineare in R2. La soluzione delsistema e il punto di intersezione delle due rette e cioe il vettore x∗ = [2,−2]T .

34 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE

Capitolo 3

Metodi per la soluzione di sistemilineari

Sia dato un sistema lineare:Ax = b, (3.1)

dove A e una matrice quadrata non singolare di dimensini n×n e x e b sono vettoriin Rn. Il problema che si vuole affrontare e quello di trovare il vettore x noti A e b.

3.1 Metodi lineari e stazionari

Si considerano in questo capitolo metodi iterativi della forma:

xk+1 = Exk + q, (3.2)

dove xk+1, xk, q ∈ Rn e E e la matrice (n × n) di iterazione. In pratica, si vuolecostruire una successione di vettori approssimanti {xk} che converga per k → ∞alla soluzione del problema (3.1):

x∗ = A−1b. (3.3)

I metodi oggetto di studio in questo capitolo, rappresentati dalla (3.2), si diconolineari e stazionari in quanto la matrice di iterazione E e stazionaria (costante)durante il processo iterativo e l’approssimazione xk compare linearmente.

Per studiare la convergenza di questi schemi verifichiamo dapprima la loro con-sistenza. Sostituiamo quindi la (3.3) al posto di xk+1 e xk in (3.2), ottenendo:

x∗ = Ex∗ + q q = (I − E)x∗ = (I − E)A−1b, (3.4)

e osserviamo che tale espressione per q garantisce la consistenza forte dello sche-ma (3.2).

35

36 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Osservazione 3.1.1. Osserviamo che in un certo senso la matrice I − E deve es-sere una approssimazione dell’inversa di A. Infatti, una matrice B si dice inversaapprossimata di A se ‖I −BA‖ < 1.

Sotto la condizione ‖E‖ < 1, il lemma seguente ci garantisce che lo schemaconverge alla soluzione del sistema lineare.

Lemma 3.1.1 (Lemma di Banach). Sia E una matrice di dimensioni n × n con‖E‖ < 1; allora I − E e non singolare e∥∥(I − E)−1

∥∥ ≤ 1

1− ‖E‖.

Dimostrazione. Per prima cosa dimostriamo che la serie di Newton1 (I+E+E2+. . .)converge a (I − E)−1, cioe:

∞∑i=0

Ei = (1− E)−1.

Infatti, definiamo la somma parziale Sk come:

Sk =k∑i=0

Ei.

Poiche ‖Ei‖ ≤ ‖E‖i e ‖E‖ < 1 per ipotesi, risulta immediatamente che, per k < m:

‖Sk − Sm‖ ≤m∑

i=k+1

‖E‖i = (serie geometrica di numeri positivi)

‖E‖k+1 1− ‖E‖m−k

1− ‖E‖,

che evidentemente converge a zero per k,m → ∞. Quindi, per un noto teoremasulle successioni di Cauchy in spazi vettoriali, la successione Sk converge ad unamatrice n× n che chiameremo S. Ora, siccome Sk+1 = ESk + I, al limite si ottieneS = ES + I, da cui immediatamente si ha S = (I − E)−1.

La dimostrazione si completa osservando che

∥∥(I − E)−1∥∥ ≤ ∞∑

i=1

‖E‖i = (1− ‖E‖)−1.

1La serie di Newton e un’Estensione alle matrici della serie di Taylor 1+x+x2 + . . . = 1/(1−x)

3.1. METODI LINEARI E STAZIONARI 37

Conseguenza diretta del lemma precedente e il seguente:

Corollario 3.1.2. Se ‖E‖ < 1, lo schema (3.2) converge a x = (I − E)−1q.

Quindi, se ‖E‖ < 1, e poiche per la consistenza q = (I − E)A−1b, lo schema (3.2)converge a x∗ = A−1b, la soluzione vera del sistema lineare.

La condizione necessaria e sufficiente per la convergenza dello schema (3.2) especificata in tutta generalita nel seguente:

Teorema 3.1.3. Data una matrice reale E di dimensioni n× n. L’iterazione (3.2)converge per ogni q ∈ Rn se e solo se ρ(E) = |λ1(E)| < 1.

Matrici la cui potenza k-esima tende ad annullarsi all’infinito si dicono matriciconvergenti.

La condizione di convergenza specificata nel teorema precedente e indipendentedalle proprieta della matrice di iterazione, che non deve necessariamente essere ne’simmetrica ne’ diagonalizzabile. Per brevita, e per capire fino in fondo il ruoloche autovalori e autovettori della matrice di iterazione giocano nella convergenzadello schema, dimostriamo il teorema 3.1.3 facendo delle assunzioni sulla matrice diiterazione E.

Procediamo nel modo classico andando ad analizzare la “stabilita” dello sche-ma (3.2), essendo la consistenza garantita da (3.4). A tale scopo, definiamo il vettoreerrore ek = x∗ − xk. La stabilita dello schema implica che l’errore deve rimanerelimitato o meglio ancora tendere a zero all’aumentare di k, e cioe:

limk→∞

ek = 0.

Per verificare questa condizione, dobbiamo ricavare una relazione tra gli errori aiterazioni successive. Dalla consistenza e linearita dello schema si ricava immedia-tamente che:

ek+1 = Eek = Ek+1e0. (3.5)

Prendendo la norma (ad es. la norma euclidea) dell’espressione precedente e usandola disuguaglianza di Schwartz, si ottiene immediatamente:

‖ek‖ ≤ ‖E‖k ‖e0‖ ,

dove ‖E‖ e la norma indotta da ‖e0‖. La convergenza del metodo e assicurata se‖E‖ < 1, risultato uguale a quello ricavato con il lemma di Banach 3.1.1. Assumendosimmetrica la matrice di iterazione, e osservando che usando la norma euclidea deivettori e la norma spettrale per le matrici si ha che ‖E‖ =

√λ(ETE) = |λ(E)| =

ρ(E), la condizione necessaria e sufficiente per ls convergenza dello schema (3.2) e:

ρ(E) < 1. (3.6)

38 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Alternativamente, tala condizione si puo dimostrare assumendo che la matrice diiterazione E sia diagonalizzabile2, e cioe assumendo che gli autovettori di E possanoessere usati come base per Rn:

E = UΛU−1,

con U la matrice le cui colonne sono gli autovettori di E e Λ la matrice diagona-le contenente gli autovalori di E. In questo caso, il vettore errore iniziale si puoespandere come combinazione lineare degli autovettori di E:

e0 =n∑i=1

γiui = Ug U = [u1, . . . , un] g = {γi}.

Sostituendo in (3.5), si ottiene dunque:

ek = Eke0 =n∑i=1

γiλki ui = λk1

n∑i=1

γi

(λiλ1

)kui,

avendo assunto l’ordinamento classico di autovalori e corrispondenti autovettori inordine crescente in valore assoluto | λ1 | < | λ2 | ≤ | λ3 | ≤ . . . ≤ | λn | prendendo lanorma e notando che | λi/λ1 | < 1 per i > 1:

‖ek‖ ≤ | λ1 |kn∑i=1

∣∣∣∣λiλ1∣∣∣∣k ‖ui‖ ≤ | λ1 |k ‖u1‖ , (3.7)

da cui segue subito la (3.6).

Osservazione 3.1.2. Calcolando ‖ek+1‖ / ‖ek‖ tramite l’equazione (3.7), e ricordan-do la definizione di ordine e costante asintotica di convergenza, si ricava subito chelo schema (3.2) converge con ordine 1 (lineare) e costante asintotica di convergenzaM = ρ(E).

Osservazione 3.1.3. Il raggio spettrale di una matrice quadrata A e definito dalledue condizioni equivalenti:

ρ(A) = maxλ∈σA|λ(A)| = lim

n→∞‖An‖

1n

2Assunzione anche questa molto forte: in generale le matrici di iterazione non solo non sarannone’ diagonalizzabili ne’ simmetriche ma saranno addirittura singolari!

3.1. METODI LINEARI E STAZIONARI 39

3.1.1 Metodi lineari e stazionari classici

Ritorniamo ora a studiare i metodi di tipo (3.2) nella loro forma piu classica. Unmodo intuitivo per ricavare schemi lineari e stazionari e il seguente. Data una matricenon singolare P , chiamata “precondizionatore”, si sommi a primo e secondo membrodi (3.1) il vettore Px:

Px = Px− Ax+ b = (P − A)x+ b,

da cui si puo ricavare il seguente schema iterativo:

xk+1 = (I − P−1A)xk + P−1b. (3.8)

che ha matrice di iterazione E = I − P−1A e che verifica la (3.4). Lo schema si puoanche scrivere come:

xk+1 = xk + P−1rk rk = b− Axk.

Intuitivamente, guardando quest’ultima equazione, e immediato arguire che pren-dendo (idealmente) come precondizionatore P = A si otterrebbe la soluzione x∗

con una sola iterazione. Ovviamente questo non e concepibile in quanto il calcolodi A−1 corrisponde in termini di costo computazionale alla soluzione di n sistemilineari. Cercheremo quindi di trovare delle matrici P “vicine” alla matrice A, chesiano computazionalmente efficienti da calcolare e per le quali il prodotto P−1u (uvettore generico di Rn) sia computazionalmente efficiente.

Un esempio semplice ma istruttivo di metodo lineare e stazionario e il metodo diRichardson, ottenuto da (3.8) prendendo P = I:

xk+1 = (I − A)xk + b. (3.9)

Si osservi che applicando il metodo di Richardson (3.9) al sistema “precondizionato”:

P−1Ax = P−1b (3.10)

si ottiene proprio il metodo riportato in (3.8). Quindi il metodo di Richardson conE = I − P−1A converge se ρ(I − P−1A) < 1, o equivalentemente ρ(P−1A) < 1.

Riprenderemo con piu dettaglio lo schema di Richardson nel prosieguo. Vediamoora alcuni classici esempi di matrici P . Tutti gli schemi seguenti si ricavano dallo“splitting” additivo della matrice del sistema A = L+D + U con:

lij =

{aij, if i < j,0, if i ≥ j.

dij =

{aii, if i = j,0, if i 6= j.

uij =

{0, if i ≤ j,aij, if i > j.

Abbiamo i seguenti schemi:

40 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Metodo di Jacobi (P = D). Prendendo P = D, si ottiene il metodo di Jacobi:

xk+1 = (I −D−1A)xk +D−1b = xk +D−1rk,

o, indicando con xk+1,i l’i-esimo elemento del vettore xk+1, il metodo puo esserescritto per componenti::

xk+1,i = xk,i +1

aii

(bi −

n∑j=1

ai,jxk,j

)=

1

aii

bi − n∑j=1

j 6=i

ai,jxk,j

. (3.11)

Metodo di Gauss-Seidel (P = L+D). Prendendo P = L+D, si ottiene

xk+1 =[I − (L+D)−1A

]xk + (L+D)−1b = xk + (L+D)−1rk,

o, indicando con xk+1,i l’i-esimo elemento del vettore xk+1, il metodo scrittoper componenti diventa:

xk+1,i =1

aii

(bi −

i−1∑j=1

ai,jxk+1,j −n∑

j=i+1

ai,jxk,j

). (3.12)

3.2 Metodi di rilassamento

La convergenza dei metodi studiati fino a qui puo essere migliorata introducendoun parametro (detto di rilassamento) che dovra essere identificato in modo da mi-nimizzare il raggio spettrale della matrice di iterazione. A tal fine, riscriviamo ilmetodo (3.2) nel seguente modo:

xk+1 = (I − αkP−1A)xk + αkP−1b = xk + αkP

−1rk, (3.13)

con αk ∈ R parametro reale. Se αk = α e indipendente dall’iterazione k, lo schema eclassificabile nell’ambito dei metodi stazionari (la matrice di iterazione non dipendeda k). Altrimenti il metodo e “non stazionario”. In questo caso la matrice diiterazione e:

Ek = I − αkP−1A

L’algoritmo non stazionario puo essere scritto nel modo seguente:

3.2. METODI DI RILASSAMENTO 41

|1− |

1α|1− |

λn

/λ11

/λ1 nα opt

α

ρ

1

α

λ

Figura 3.1: La curva ρ(Eα) in funzione di α

Algorithm Richardson Non Sta-zionarioInput: x0, nimax, toll; k = 0;r0 = b− Ax0.for k = 0, 1, . . . fino a convergenza:

1. zk = P−1rk (3.14)

2. αk = . . . (3.15)

3. xk+1 = xk + αkzk (3.16)

4. rk+1 = rk − αkAzk (3.17)

end for

dove il passo in (3.14), chiamato “applicazione del precondizionatore”, si esegue inpratica risolvendo il sistema

Pzk+1 = rk,

e il passo in (3.15) dipende dal metodo.

Nel caso stazionario (αk = α), si puo studiare qual’e il valore ottimale del para-metro, cioe il valore di α che minimizza il raggio spettrale della matrice di iterazioneρ(E) = ρ(I −P−1A). Infatti, notando che λ(I −αP−1A) = 1−αλ(P−1A) la condi-zione necessaria per la convergenza si puo scrivere | 1− αλi | < 1 per i = 1, . . . , n,dove λi, l’i-esimo autovalore della matrice (nonsimmetrica) P−1A, e in generale unmumero complesso. Questa disuguaglianza equivale a

(1− αReλi)2 + α2(Imλi)

2 < 1,

42 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

da cui si ricavaα| λi |2

2 Reλi< 1 ∀i = 1, . . . , n.

Nel caso in cui λi(P−1A) ∈ R per ogni i, si ottiene che la condizione su α per la

convergenza dello schema e:

0 < α <2

λmax,

e si puo ricavare il valore di αopt, cioe il valore di α che minimizza il raggio spettraledella matrice di iterazione. Infatti si ha:

ρ(Eα) = max [| 1− αλmin |, | 1− αλmax |] ,

e il valore di α che minimizza la precedente e dato da:

αopt =2

λmin + λmax

Infatti, si puo vedere facilmente dalla Figura 3.1 che il valore ottimale di α si trovanel punto di incontro delle curve | 1− αλmin | e | 1− αλmax |, da cui il valore pre-cedente. Il valore ottimale del raggio spettrale della matrice di iterazione si ricavaimmediatamente per sostituzione, ottenendo:

ρopt =λmax − λminλmax + λmin

=κ(P−1A)− 1

κ(P−1A) + 1=κ(P−1A)− 1

κ(P−1A) + 1

Attualmente, tali schemi vengono raramente usati per la soluzione di sistemilineari, ma sono assai utili come precondizionatori, come vedremo nel prossimoparagrafo, per il metodo del gradiente coniugato.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI43

3.3 Metodi del Gradiente per la soluzione di si-

stemi lineari

Queste note sono un’elaborazione di un articolo di Jonathan Shewchuk, dal titoloesemplificativo An Introduction to the Conjugate Gradient Method Without the Ago-nizing Pain [5], mediate con l’illuminante interpretazione geometrica riportata nellibro del Prof. Gambolati [1]. Per approfondimenti si rimanda il lettore al libro diC.T. Kelley [2] o meglio ancora al libro di Y. Saad [4].

3.3.1 Forme quadratiche

Data una matrice A di dimensione n×n, un vettore b ∈ Rn e uno scalare c ∈ R, unaforma quadratica e una funzione quadratica di tutte le componenti x1, x2, . . . , xn:

f(x) : Rn → R

definita da

f(x) =1

2xTAx− bTx+ c =

1

2〈x,Ax〉 − 〈b, x〉+ c. (3.18)

Siamo interessati a trovare il minimo di f(x). Si dice che f(x) ha un minimo inx∗ se f(x∗) < f(x) per tutti gli x nel dominio di f . Se tutte le derivate parziali dif sono nulle in x∗, allora x∗ puo essere un punto di minimo, un punto di massimo,oppure nessuno dei due. Ad esempio in R2, la funzione z = f(x, y) = x2 + y2 ha unpunto di minimo assoluto in (0, 0). D’altro canto, le derivate parziali della funzionez = f(x, y) = xy si annullano entrambe nel punto (0, 0), ma tale punto non e diminimo, (si chiama punto di stazionarieta). Infatti, come si vede facilmente, in tuttii punti (x, y) del primo e terzo quadrante (dove x e y hanno lo stesso segno) si haf(x, y) > 0 = f(0, 0), mentre per tutti i punti del secondo e quarto quadrante (dovex e y sono di segno opposto) si ha f(x, y) < 0 = f(0, 0).

Prendiamo ora un vettore qualsiasi v ∈ Rn e uno scalare ε ∈ R e formiamo unnuovo vettore x∗ + εv ∈ Rn. Perche x∗ sia punto di minimo assoluto dovra essere:

f(x∗ + εv) > f(x∗) per ogni ε e ogni v.

In particolare dovra esserlo per ε piccolo e che tende a zero. Possiamo pensare orala f come variabile di ε soltanto, per cui la condizione di stazionarieta per la f(x)sara quindi data da:

d

dε[f(x+ εv)] |ε=0 = 0,

che deve essere valida per ogni v. Utilizzando la regola di derivazione della fun-zione composta si puo calcolare la precedente derivata ragionando componente per

44 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

-10-5

0

5

10-10

-5

0

5

10

0200400600

-10-5

0

5

-10 -5 0 5 10-10

-5

0

5

10

-10 -5 0 5 10

-10

-5

0

5

10

Figura 3.2: Forma quadratica corrispondente al sistema lineare (2.5). A sinistra inalto e rappersentato il grafico in R2; a destra in alto sono rappresentate le linee dilivello; in basso il campo dei gradienti.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI45

Figura 3.3: Grafico della funzione f(x, y) = −(cos2 x+cos2 y)2 e del campo vettoriale∇f(x, y) = (∂f/∂x, ∂f/∂y)T

46 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

(c)

x1

x2

f(x)x1

(d)

x1

x2

f(x)x1

(a)

x1

x2

f(x)x1

(b)

x1

x2

f(x)x1

Figura 3.4: Grafico delle forme quadratiche (in R2) rappresentative di a) una ma-trice definita positiva, b) una matrice definita negativa, c) una matrice semidefinitapositiva (in realta e singolare e si nota la linea lungo la quale f(x) e minima e checorrisponde alle inifite soluzione del sistema lineare corrispondente), d) una matriceindefinita (punto sella).

componente:

d

dεf(x1, x2, . . . , xn) =

∂f

∂x1

dx1dε

+∂f

∂x2

dx2dε

+· · ·+ ∂f

∂xn

dxndε

=∂f

∂x1v1+

∂f

∂x2v2+· · ·+

∂f

∂xnvn.

Definendo il gradiente della funzione f(x) come il vettore delle derivate parziali (sivedano le Figure 3.2 e 3.3):

∇f(x) =

∂f∂x1∂f∂x2

.

.

.∂f∂xn

,

si ottiene immediatamente la condizione di minimizzazione di f(x):

d

dε[f(x+ εv)] |ε=0 = ∇f(x) · v = 〈∇f(x), v〉 = ∇f(x)Tv = 0. (3.19)

Si noti che se ‖v‖ = 1 〈∇f(x), v〉 = Dvf(x) e la derivata direzionale di f in x lungola direzione v. D’altro canto, nel caso della nostra forma quadratica (3.18), possiamo

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI47

scrivere:

f(x+ εv) =1

2〈(x+ εv), A(x+ εv)〉 − 〈b, (x+ εv)〉+ c

=1

2

[〈x,Ax〉+ ε 〈v, Ax〉+ ε 〈x,Av〉+ ε2 〈v, Av〉

]− 〈b, x〉 − ε 〈b, v〉+ c,

da cui:

d

dε[f(x+ εv)] |ε=0 =

1

2[〈v,Ax〉+ 〈x,Av〉]− 〈b, v〉

=

⟨A+ AT

2x, v

⟩− 〈b, v〉 = 0.

Di conseguenza:

∇f(x) =A+ AT

2x− b (3.20)

(A+ AT

2x − b) ⊥ v,

e quest’ultima e valida per ogni v ∈ Rn, da cui immediatamente

A+ AT

2x = b,

e se A = AT si ottiene che la condizione di minimio (3.19) si puo scrivere come:

∇f(x) = Ax− b (3.21)

Ax = b.

Questo ci dice che la forma quadratica f(x) ha un minimo in corrispondenza dellasoluzione del sistema lineare Ax = b, se A e simmetrica, del sistema 1

2(A+AT )x = b

se A non e simmetrica.

3.3.2 Caso simmetrico A = AT

Si puo notare che il minimo della f(x) definito sopra e globale se e solo se A esimmetrica e definita positiva. Infatti, perche x∗ sia minimo globale e necessario chef(x∗ + e) > f(x∗) per ogni vettore e ∈ Rn. Quindi:

f(x∗ + e) =1

2〈A(x∗ + e), (x∗ + e)〉 − 〈b, (x∗ + e)〉+ c

=1

2[〈Ax∗, x∗〉+ 〈Ax∗, e〉+ 〈Ae, x∗〉+ 〈Ae, e〉]− 〈b, x∗〉 − 〈b, e〉+ c

=1

2〈Ax∗, x∗〉 − 〈b, x∗〉+ c+ 〈Ax∗, e〉+

1

2〈Ae, e〉 − 〈b, e〉

= f(x∗) +1

2〈Ae, e〉 ,

48 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

dove abbiamo usato il fatto che se A = AT si ha 〈Az,w〉 = 〈z, Aw〉. Se A e definitapositiva, 〈Ae, e〉 > 0 da cui si ricava che f(x∗) e minimo assoluto.

Nella Figura 3.2 viene rappresentato il grafico della f(x) e il campo dei gradienti∇f(x) nel caso particolare del sistema lineare dato dalla (2.5), con A matrice sim-metrica. Si noti che le linee di livello che rappresentano la f(x) (Figura 3.2 in altoa destra) sono delle ellissi i cui assi principali sono gli autovettori della matrice A.In Rn gli ellissi saranno degli iper-ellissoidi, e le linee di livello si trasformerannoin superfici di livello (o isosuperfici), l’interpretazione geometrica, seppur non rap-presentabile graficamente, rimane la stessa. In altre parole, l’equazione f(x) = Crappresenta un iper-ellissoide in Rn il cui centro coincide con il minimo di f(x) equindi con la soluzione del sistema lineare 3.

Per vedere questo si deve lavorare su un nuovo sistema di riferimento ottenutocome segue. Si noti che data una soluzione approssimata xk 6= x∗, l’errore associatoe rappresentato da:

ek = xk − x∗

Effettuiamo ora un cambio di variabili e poniamoci in un sistema di riferimento zdato da:

ek = Uz, (3.22)

dove z e la nuova variabile e U e la matrice le cui colonne sono gli autovettori uidi A ordinati secondo gli autovalori di A (sempre positivi) decrescenti. La matriceU e unitaria (o ortogonale)4 e cioe U−1 = UT . Il nuovo sistema di riferimento hal’origine coincidente con il centro dell’iper-ellissoide e gli assi coordinati coincidenticon gli autovettori di A, per cui si puo scrivere la forma quadratica seguente:

Φ(ek) = 〈ek, Aek〉 = 〈Uz,AUz〉 = zTΛz = 〈z,Λz〉 ,

le cui superfici di livello sono rappresentate dalla seguente equazione:

λ1z21 + λ2z

22 + . . .+ λnz

2n = cost,

ovvero:z21

costλ1

+z22

costλ2

+ · · · z2n

costλn

= 1, (3.23)

che e l’equazione in forma canonica dell’iper-ellissoide avente come lunghezza deisemi-assi:

a1 =

√cost

λ1, a2 =

√cost

λ2, . . . , an =

√cost

λn

3Si noti che il grafico z = f(x) e rappresentabile in Rn+1.

4Si ricordi che A e simmetrica e definita positiva, e quindi diagonalizzabile, da cui deriva che isuoi autovettori formano una base per lo spazio vettoriale Rn

.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI49

Notiamo che la forma quadratica Φ(·) ha come punto di minimo il vettore nullo, cioeek = xk − x∗ = 0, corrispondente proprio al minimo della f(·), ovvero la soluzionedel sistema lineare. Infatti:

f(xk) = f(x∗ + ek) = f(x∗) +1

2〈ek, Aek〉 =

1

2Φ(ek)

Inoltre, la Φ(·) coincide con la Φ3(x) = eTAe descritta sul libro di Gambolati [1] ameno di una costante moltiplicativa positiva.

Abbiamo quindi dimostrato che trovare la soluzione del sistema lineare Ax = b eequivalente a trovare il punto di minimo della forma quadratica f(x) ed e equivalentead imporre l’ortogonalita del residuo a tutti i vettori di Rn. In altre parole, permatrici simmetriche, i seguenti problemi sono equivalenti:

Problema 3.3.1 (sistema lineare).Trovare x ∈ Rn tale che:

Ax = b. (S)

Problema 3.3.2 (di minimizzazione).Trovare x ∈ Rn tale che:

F (x) ≤ F (v) ∀v ∈ Rn. (M)

Problema 3.3.3 (variazionale).Trovare x ∈ Rn tale che:

〈b− Ax, v〉 = 0 ∀v ∈ Rn. (V)

Metodo del gradiente (o della discesa piu ripida o dello steepest descent)

Poiche il gradiente di f e interpretabile come la direzione di massimo aumento dellafunzione f , dalla (3.20) si vede immediatamente che il residuo del sistema linearecoincide con la direzione di discesa piu ripida (Steepest Descent):

r = b− Ax = −∇f(x).

E’ quindi intuitivo costruire un algoritmo basato sul calcolo di tale gradiente. Questometodo, detto appunto metodo del gradiente o metodo della ricerca piu ripida odello Steepest Descent (SD), cerca di percorrere in ogni punto la direzione di discesapiu ripida per arrivare al minimo assoluto. E’ intuitivo pensare che tale algoritmofunzionera solo se non esistono minimi relativi: in un minimo relativo, non e piunecessariamente definita una direzione di discesa, e il metodo potrebbe trovarsi incondizioni di stallo.

50 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

0.2 0.4 0.6

20406080

100120140

-4 -2 2 4 6

-6

-4

-2

2

4

-4 -2 2 4 6

-6

-4

-2

2

4

-2.50

2.55

-5-2.50

2.5050100150

-2.50

2.55

(c)f(x(i) + �r(i))x1

(d)x2

x(1)

x1

(a)x2

x(0) e(0) x(b)

x1

x2

f(x)x1

Figura 3.5: Interpretazione in R2 delle varie fasi dello schema dello steepest descentper la soluzione del sistema (2.5): a) la direzione di ricerca r0 e l’errore iniziale e0;b) la forma quadratica e il piano ortogonale a x1 e x2 passante per la direzione r0;c) la funzione f(α0) nella direzione r0; d) la nuova iterata x1 e la nuova direzionedel gradiente.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI51

-2 -1 1 2 3

-3

-2

-1

1

2

x1

x2

-4 -2 2 4 6

-6

-4

-2

2

4

x1

x2

x(0) x

Figura 3.6: Interpretazione in R2 delle varie fasi dello schema dello steepest descentper la soluzione del sistema (2.5). A sinistra sono disegnati i vettori ∇f(xk + αkrk)lungo la direzione rk; la f(xk+1) e minima nel punto in cui rk ⊥ ∇f(xk + αkrk). Adestra sono rappresentate alcune iterazioni del metodo a partire dal punto iniziale(−2,−2)T . Lo schema converge alla soluzione (2,−2)T .

52 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Costruiamo allora un algoritmo iterative basato su:

xk+1 = xk + αkrk,

dove l’indice k indica l’iterazione. Il valore di αk viene determinato imponendo chelungo la direzione rk il funzionale sia minimo (procedimento di line search, si vedala sua interpretazione geometrica riportata in Fig. 3.6(a,b)). Il vettore rk individuala direzione di ricerca.

Per fare il conto dell’espressione di αk, annulliamo semplicemente la derivataprima della forma quadratica pensata come funzione di αk. Imponiamo cioe:

d

dαkf(xk + αkrk) = 〈∇f(xk + αkrk), rk〉 = 〈∇f(xk+1), rk〉 = 0,

ma visto che ∇f(xk+1) = −rk+1, si impone:

〈rk+1, rk〉 ⇒ 〈(b− Axk+1), rk〉 = 0,

e siccome A = AT :

〈b, rk〉 − 〈Axk, rk〉 − αk 〈Ark, rk〉 = 〈rk, rk〉 − αk 〈Ark, rk〉 = 0,

da cui si ricava immediatamente:

αk =〈rk, rk〉〈Ark, rk〉

. (3.24)

L’algoritmo puo quindi essere scritto nel modo seguente.

Algorithm SDInput: x0, nimax, toll; k = 0;r0 = b− Ax0.for k = 0, 1, . . . fino a convergenza:

1. αk =〈rk, rk〉〈Ark, rk〉

(3.25)

2. xk+1 = xk + αkrk (3.26)

3. rk+1 = rk − αkArk(3.27)

end for

In Fig. 3.6 a destra vengono rappresentate le prime 6 iterazioni del metodo perla soluzione del sistema (2.2).

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI53

-4 -2 2 4 6

-6

-4

-2

2

4

x1

x2

Figura 3.7: Il metodo dello steepest descent converge in una sola iterazione se ladirezione del residuo iniziale coincide con quella di un autovettore.

Osservazione 3.3.4. Come caso “molto” particolare, supponiamo che alla iterazio-ne k-esima l’errore ek coincida con un autovettore della matrice A e chiamiamo λkil corrispondente autovalore, per cui:

rk = −Aek = −λkek,

da cui si vede che il residuo e anch’esso un autovettore. Sostituendo nella (3.26)dell’Algoritm SD si ottiene immediatamente:

ek+1 = ek +〈rk, rk〉〈rk, Ark〉

rk = ek +λ2k 〈ek, ek〉λ3k 〈ek, ek〉

(−λkek) = 0.

In altre parole, come si puo vedere nell’interpretazione geometrica di Fig. 3.7, rk ela direzione dell’autovettore ek di A e coincide quindi con uno degli assi principalidell’iper-ellissoide e quindi passa per il centro (punto di minimo).

E’ chiaro che per vedere il comportamento dell’errore nello schema SD si puosfruttare la relazione precedente utilizzando una rappresentazione dell’errore tramitela base data dagli autovettori di A. Per fare questo scriviamo:

ek =n∑j=1

γjuj (3.28)

rk = −Aek = −n∑j=1

γjλjuj,

54 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

ma poiche:

‖ek‖2 = 〈ek, ek〉 =n∑j=1

γ2j e ‖ek‖2A = 〈ek, Aek〉 =n∑j=1

γ2jλj,

e analogamente:

‖rk‖2 = 〈rk, rk〉 =n∑j=1

γ2jλ2j e ‖rk‖2A = 〈rk, Ark〉 =

n∑j=1

γ2jλ3j ,

abbiamo immediatamente:

ek+1 = ek +〈rk, rk〉〈rk, Ark〉

rk

= ek +

∑nj=1 γ

2jλ

2j∑n

j=1 γ2jλ

3j

rk.

Come visto prima, se ek e tale che solo uno degli αj 6= 0 basta scegliere αj = 1/λje si ha convergenza immediata. Se d’altra parte tutti gli autovalori sono uguali, siricava ancora che ek+1 = 0. In questo caso, infatti, gli iper-ellissoidi sono in realtadelle iper-sfere, per cui le direzioni del residuo puntano direttamente verso il centro.Si noti da ultimo che il termine

〈rk, rk〉〈rk, Ark〉

=

∑nj=1 γ

2jλ

2j∑n

j=1 γ2jλ

3j

puo essere intuitivamente visto come una media pesata degli inversi degli autovalorie i pesi γ2j fanno sı che le componenti (intese come i vettori uj di (3.28)) piu “lunghe”di ek vengano “accorciate” prima delle altre. Come risultato si ha che alcune dellecomponenti piu “corte” potrebbero anche aumentare, da cui segue che la convergenzadello schema non e monotona, ma in genere non per molto.

Convergenza di SD

Per studiare formalmente la convergenza di SD abbiamo bisogno di utilizzare quellache viene chiamata la norma energia del vettore x, definita come:

‖x‖A =√〈Ax, x〉 =

√〈x,Ax〉 =

√xTAx.

Per prima cosa vediamo che il minimo della forma quadratica f(xk) implicaminimizzare la norma energia dell’errore ‖ek‖A. Infatti, dalla definizione di erroreek e usando il fatto che AT = A, si ha immediatamente:

f(xk) = f(x+ ek) = f(x) +1

2〈Aek, ek〉 ,

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI55

da cui, siccome 12〈Aek, ek〉 ≥ 0 e f(x) e il minimo assoluto della forma quadratica,

segue l’affermazione. Quindi:

‖ek+1‖2A = 〈Aek+1, ek+1〉 = 〈A(ek + αkrk), (ek + αkrk)〉= 〈Aek, ek〉+ 2αk 〈Aek, rk〉+ α2

k 〈Ark, rk〉(ricordando che Aek = −rk)

= ‖ek‖2A −(〈rk, rk〉)2

〈Ark, rk〉

= ‖ek‖2A(

1− (〈rk, rk〉)2

〈Ark, rk〉 〈Aek, ek〉

)= ‖ek‖2A

(1−

(∑

j γ2jλ

2j)

2

(∑

j γ2jλ

3j)(∑

j γ2jλj)

)= ω2‖ek‖2A,

con evidentemente ω2 che deve essere minore di 1 per avere convergenza. In R2 eragionevolmente facile trovare un significato per il numero ω2. Infatti, se λ1 ≥ λ2,definiamo il numero di condizionamento spettrale della matrice A come κ(A) =λ1/λ2 (in generale per una matrice A di dimensioni n × n sara κ(A) = λ1/λn), edefiniamo µ = γ2/γ1. Si noti che κ(A) e chiamato il numero di condizionamento dellamatrice. Valori di κ(A) relativamente grandi corrispondono a matrici relativamentemalcondizionate. Allora:

ω2 = 1− (κ(A)2 + µ2)2

(κ(A) + µ2)(κ(A)3 + µ2).

Analizzando questa relazione, si vede che il caso peggiore si ha quando κ(A)2 = µ2,e cioe:

ω2 ≤ 1− 4κ(A)4

(κ(A)3 + κ(A)2)(κ(A)2 + κ(A))=

(κ(A)− 1

κ(A) + 1

)2

.

In questo caso ω puo essere visto come un’approssimazione della costante asintoticadell’errore:

‖ek+1‖A ≤κ(A)− 1

κ(A) + 1‖ek‖A ,

e cioe:

‖ek‖A ≤(κ(A)− 1

κ(A) + 1

)k‖e0‖A ,

e l’errore relativo sulla forma quadratica diventa:

f(xk)− f(x)

f(xo)− f(x)=

12〈ek, Aek〉

12〈e0, Ae0〉

≤(κ(A)− 1

κ(A) + 1

)2k

. (3.29)

56 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

0

5

10

15

20

1

20

40

60

80

100

0

0.2

0.4

0.6

0.8

0

5

10

15

20

Figura 3.8: Andamento del fattore di convergenza ω.

Si puo dimostrare che l’epressione precedentemente scritta per l’errore e valida anchein Rn.

Osservazione 3.3.5. Il gradiente della forma quadratica e pari a ∇f(z) = Λz. Larelazione di aggiornamento della soluzione approssimata xk+1 nel nuovo riferimentodiventa quindi:

zk+1 = zk − αkUTUΛzk,

per cui se la soluzione iniziale z0 (che coincide con l’errore iniziale) ha la compo-nente i-esima nulla, anche z1 avra la componente i-esima nulla, e quindi x1,i saraesatta. Se le componenti esatte sono molte, si avra una notevole accelerazione dellaconvergenza.

L’andamento di ω in funzione di κ(A) e µ e graficato in Fig. 3.8. Si vede chese l’errore iniziale coincide con un autovettore, e quindi µ = 0 (o ∞), ω = 0 e laconvergenza e istantanea. Lo stesso avviene per κ(A) = 1 e cioe se gli autovalorisono tutti uguali.

In Fig. 3.9 e invece illustrato il “cammino” di SD per vari valori di κ(A) e µ nelsistema di riferimento definito dagli autovettori di A. Come si verifica da (3.29),la convergenza peggiora per valori di κ(A) grandi, in corrispondenza al fatto che lamatrice risulta malcondizionata. I primi due grafici in alto di Fig. 3.9 rappresentanodegli esempi caratterizzati da κ(A) grande; SD puo convergere velocemente se ilpunto iniziale e fortunato (Fig. 3.9 alto a sinistra) ma in generale la convergenza emolto lenta (Fig. 3.9 alto a destra). Nei due grafici in basso, invece, l’iper-ellissoide e

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI57

-4 -2 2 4

-4

-2

2

4

6

-4 -2 2 4

-4

-2

2

4

6

-4 -2 2 4

-4

-2

2

4

6

-4 -2 2 4

-4

-2

2

4

6

Figura 3.9: Esempi di convergenza del metodo di Steepes Descent in corrispondenzaa valori estremi di κ(A) e µ relativi alla figura 3.8. Le due figure in alto si riferisconoal casso di κ(A) grande, mentre quelle in basso sono caratterizzate da un valore diκ(A) vicino a 1.

58 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

-4 -2 2 4 6

-6

-4

-2

2

4

Figura 3.10: I punti iniziali peggiori per la convergenza di SD sono localizzati sullelinee continue nere. Le linee tratteggiate rappresentano il percorso delle iteratee formano un angolo di 45◦ rispetto agli assi dell’iper-ellissoide visualizzati con lefreccie grigie. Per questo caso κ(A) = 3.5.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI59

-4 -2 2 4 6

-6

-4

-2

2

4

x1

x2

x(0)xx(1)e(1)d(0)

Figura 3.11: Utilizzando due direzioni ortogonali si arriva a convergenza in dueiterazioni usando la direzione dell’errore ek

quasi “sferico” (infatti κ(A) ≈ 1) e la convergenza e veloce indipendentemente dallasoluzione iniziale.

Nella Fig. 3.10, corrispondente al solito sistema (2.5) per il quale κ(A) = 3.5,sono riportate le linee dei punti iniziali “peggiori”. Le equationi delle linee sono dateda γ2/γ1 = ±κ(A).

Il metodo del gradiente coniugato

Si e visto in precedenza che il metodo SD puo convergere lentamente. In particolare,si e visto che due direzioni di ricerca (gradienti) successive sono ortogonali tra diloro (cfr. Fig. 3.10). Di conseguenza, solo due direzioni di discesa vengono utilizzatenell’intero processo, essendo rk ortogonale a rk−1 e parallelo a rk−2. Ovviamente,se le due direzioni di ricerca non passano per il punto di minimo del funzionale, ilnumero di iterazioni di SD per arrivare alla soluzione esatta e infinito. Per migliorarela convergenza e quindi necessario utilizzare direzioni di ricerca che non si ripetano.

Cerchiamo quindi di costruire uno schema che ad ogni iterazione generi una nuovadirezione di ricerca diversa (ortogonale) da tutte le precedenti (e di conseguenzalinearmente indipendente da tutte le altre). Lungo ogni direzione eseguiamo un passodi lunghezza tale da “allinearsi” al punto di minimo (il centro dell’iperelissoide) inquella direzione. Come conseguenza, nel caso peggiore la n-esima direzione di ricercapassa per il punto di minimo di f(x) e lo schema in teoria converge con al massimo

60 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

-4 -2 2 4X1

-4

-2

2

4

X2

-4 -2 2 4X1

-4

-2

2

4

X2

Figura 3.12: Sinistra: coppie di vettori A-coniugati; destra: gli stessi vettori in unpiano deformato con la matrice A.

n iterazioni. Si dice allora che lo schema iterativo ha terminazione finita, intendendocioe che lo schema ha un impianto simile ad uno schema iterativo (formule ricorsiveper l’aggiornamento delle variabili) ma raggiunge la soluzione esatta in un numeropredefinito di iterazioni. Per esempio, in R2, data una prima direzione (chiamiamolap0) ad esempio parallela all’asse x, si esegue lungo essa un passo di lunghezza tale dafermarsi sul punto di intersezione tra la direzione p0 e la normale ad essa passante peril centro. La direzione successiva (p1) e parallela all’asse y e ci porta direttamentealla soluzione (si veda la Fig. 3.11). Notiamo anche che questa direzione e coincidentecon la direzione dell’errore ek+1 = x− xk+1. Possiamo scrivere questo come:

xk+1 = xk + αkpk, (3.30)

e calcoliamo αk in modo che ek+1 sia ortogonale a pk:

〈pk, ek+1〉 = 0

〈pk, ek + αkpk〉 = 0 dal’eq. (3.30)

αk = −〈pk, ek〉〈pk, pk〉

.

Prima di procedere alla costruzione dello schema, vediamo alcune definizioni utili.Diciamo che due vettori x e y sono A-coniugati o A-ortogonali se:

〈x,Ay〉 = 0.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI61

Si noti che se A e simmetrica e definita positiva, la formula precedente puo essereusata come definizione di un nuovo prodotto scalare:

〈x, y〉A = 〈x,Ay〉 = 〈Ax, y〉 ,

che genera la norma (chiamata norma energia):

‖x‖A =√〈x, x〉A.

Siano pi, i = 1, . . . , n, n vettori (direzioni) A-ortogonali, e cioe tali che

〈pi, Apj〉 =

{6= 0, if i = j,0, if i 6= j.

. (3.31)

Tali vettori sono linearmente indipendenti e quindi formano una base per Rn. Infatti,se supponiamo che esistano delle costanti αi tali per cui:

0 = α1p1 + . . .+ αnpn;

moltiplicando per la matrice A (simmetrica e definita positiva) e poi scalarmenteper pi, i = 1, . . . , n, si ottiene:

0 = α1 〈pi, Ap1〉+ . . .+ αn 〈pi, Apn〉 , i = 1, . . . , n.

Dalla (3.31) si ottiene subito αi = 0.Da quello che abbiamo visto in precedenza e facile arguire che se le isosuperfici

(linee di livello del paraboloide identificato dalla forma quadratica) fossero sfericheil metodo SD convergerebbe in 1 iterazione. In questo caso, infatti, le direzionidel gradiente sono tutte ortogonali alle isosuperfici, per cui le direzioni calcolate daSD devono necessariamente passare per il centro. Guardando all’equazione (3.23),si nota che le isosuperfici sono sferiche se tutti gli autovalori λi sono uguali. E’possibile usare un cambiamento di variabili (cambiamento del sistema di riferimento)per trasformare gli iperellissoidi in ipersuperfici sferiche. Per fare cio usiamo il fattoche A e simmetrica e definita positiva per cui A = UΛUT . Quindi:

1

2〈x,Ax〉 =

1

2〈y, y〉 ,

dovey = Λ

12UTx.

Nelle nuove coordinate y le isosuperfici diventano quindi sferiche (basta sostituireopportunamente in (3.23)). L’idea e quindi di trovare delle direzioni qi mutuamente

62 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

-4 -2 2 4 6

-6

-4

-2

2

4

x1

x2

x(0) x

Figura 3.13: Interpretazione geometrica del metodo CG in R2: le due direzioni diricerca sono A-coniugate, per cui la seconda necessariamente passa per il centrodell’elissoide, e quindi per il punto soluzione x∗.

ortogonali nel caso sferico e che quindi garantiscono la convergenza in al massimo niterazioni. Tali direzioni dovranno quindi soddisfare:

〈qi, qj〉 = 0

per ogni indice i e j (diversi) compresi tra 1 e n. Possiamo ora tornare al caso“ellittico” notando che le direzioni qi nel sistema “sferico” sono legate alle direzionipi nel sistema “ellittico” dalla relazione:

qi = Λ12UTpi;

la relazione di ortogonalita tra qi e qj in termini di pi e pj diventa:⟨Λ

12UTpi,Λ

12UTpj

⟩= pTi UΛ

12 Λ

12UTpj = pTi Apj = 〈pi, pj〉A = 0,

ovvero, pi e pj devono essere A-coniugati. Fig. 3.12 mostra la relazione che esistetra due vettori A-coniugati rappresentati nel piano R2 oppure nel piano deformatoutilizzando la matrice A = UΛUT . Si noti che la relazione di A-ortogonalita nellospazio vettoriale avente prodotto scalare standard (〈·, ·〉) si trasforma in una relazionedi ortogonalita in uno spazio indotto dal prodotto scalare 〈·, ·〉A.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI63

In sintesi, vogliamo calcolare n direzioni po, . . . , pn che siano mutuamente A-coniugate, sulle quali andremo a cercare ogni volta il minimo della f(x) utilizzandoancora la formula (3.24). Per fare questo, ovviamente, non possiamo servirci degliautovalori di A perche sarebbe troppo costoso. L’interpretazione geometrica delmetodo CG in R2 e mostrata in Fig. 3.13.

Andiamo a costruire quindi il seguente algoritmo del gradiente coniugato (CG):

Algorithm CGInput: x0, nimax, toll; k = 0;r0 = b− Ax0 = p0for k = 0, 1, . . . fino a convergenza:

1. αk =〈pk, rk〉〈pk, Apk〉

(3.32)

2. xk+1 = xk + αkpk (3.33)

3. rk+1 = rk − αkApk (3.34)

4. βk = −〈rk+1, Apk〉〈pk, Apk〉

(3.35)

5. pk+1 = rk+1 + βkpk (3.36)

end for

Il coefficiente βk e calcolato in modo da imporre la relazione di A-ortogonalita trala direzione pk e la nuova direzione pk+1, cioe:

〈pk+1, Apk〉 = 〈rk+1 + βkpk, Apk〉 = 0,

da cui si ricava immediatamente la (3.35). Si puo dimostrare per induzione che pk+1

e A-ortogonale anche alle precedenti direzioni e che i residui sono tra loro ortogonali:

〈pk+1, Api〉 = 0 i = 0, 1, . . . , k (3.37)

〈rk+1, ri〉 = 0 i = 0, 1, . . . , k (3.38)

Infatti, poniamo p0 = r0 x0 = p0. Quindi:

k = 0

x1 = x0 + α0p0

r1 = r0 − α0Ap0

imponiamo 〈p0, r1〉 = 0 ottenendo:

〈p0, r0 − α0Ap0〉 = 0 ⇒ α0 =〈p0, r0〉〈p0, Ap0〉

64 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

scriviamo:p1 = r1 + β0p0

imponiamo 〈p0, Ap1〉 = 0 ottenendo:

〈p0, A(r1 + β0p0)〉 = 0 ⇒ β0 = −〈p0, Ar0〉〈p0, Ap0〉

Si noti che 〈r0, r1〉 = 0.

k = 1

x2 = x1 + α1p1

r2 = r1 − α1Ap1

imponiamo 〈p1, r2〉 = 0 ottenendo:

〈p1, r1 − α1Ap1〉 = 0 ⇒ α1 =〈p1, r1〉〈p1, Ap1〉

scriviamo:p2 = r2 + β1p1

imponiamo 〈p1, Ap2〉 = 0 ottenendo:

〈p1, A(r2 + β1p1)〉 = 0 ⇒ β1 = −〈p1, Ar1〉〈p1, Ap1〉

Quindi si hanno i seguenti risultati:

〈r0, r2〉 = 〈p0, r2〉 = 〈p0, r1 − α1Ap1〉 = 0

〈r1, r2〉 = 〈r2, p1 − β0p0〉 = 0

〈r2, Ap0〉 =〈r2, r0 − r1〉

α0

= 0

〈p0, Ap2〉 = 〈p0, A(r2 + β1p1)〉 = 〈r2, Ap0〉+ β1 〈p0, Ap1〉 = 0

k = . . .

Alla fine del processo di induzione si vede chiaramente che:

〈pj, ri〉 = 0 i > j

〈ri, rj〉 = 0 i 6= j

〈pi, Apj〉 = 0 i 6= j.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI65

Si osservi che

x2 = x0 + α0r0 + α1p1

= x0 + (α0 + α1β0)r0 + α1r1

= x0 + γ′1r0 + γ′2Ar0

. . .

xk = x0 +k−1∑i=0

γiAir0

da cui si vede che la soluzione e data da una combinazione lineare dei vettori Airi. Sidimostra che tali vettori sono linearmente indipendenti e generano uno spazio affinea Rk Kk ≈ Rk, chiamato spazio di Krylov, per cui si puo scrivere:

xk ∈ xo +Kk,

doveKk = span

{r0, Ar0, A

2r0, . . . , Ak−1r0

}Per questo il metodo del gradiente coniugato e i metodi derivati da esso si chiamonometodi di Krylov.

Si noti che, essendo i residui tra loro ortogonali (si veda la (3.38)), si verificaimmediatamente che rn = 0 e quindi xn = x∗, e cioe il metodo CG in teoria ritornala soluzione vera dopo n iterazioni. Si dice anche che CG e un metodo iterativoche ha terminazione finita, e per questo e “paragonabile” ad uno schema diretto,in quanto teoricamente la soluzione vera e raggiunta dopo un numero di operazionifinito e determinabile a priori. Questo fatto pero e vero solo in teoria, perche nellapratica le relazioni di ortogonalita precedentemente viste sono verificate solamentein maniera approssimata per la presenza degli errori di rappresentazione dei numeriall’elaboratore. Quindi lo schema va considerato alla stregua degli schemi iterativi.Inoltre, per questioni di costi computazionali, noi preferiremmo riuscire a raggiun-gere la tolleranza richiesta nell’errore con un numero di iterazioni molto inferiore an. Per questo si ricorre alla tecnica del precondizionamento, che vedremo piu avanti.

Convergenza di CG

Da quanto discusso prima, si deduce che la k-esima iterazione del metodo CG e ilpunto di minimo della forma quadratica f(x) sul sottospazio S = x0 + Kk. Poichela matrice A e simmetrica, minimizzare la f(x) su S e equivalente a minimizzare‖x− x∗‖A sullo stesso sottospazio. Infatti, con pochi passaggi, si ricava (assumendoche la costante della forma quadratica sia c = ‖x∗‖A):

‖x− x∗‖2A = ‖b− Ax‖2A−1 = 2f(x).

66 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Da questo, segue immediatamente che

‖xk − x∗‖A ≤ ‖w − x∗‖A

per ogni w ∈ x0 + Kk. Quindi, xk e il vettore piu vicino (se misurato in normaenergia) alla soluzione x∗ rispetto a tutti gli altri vettori appartenenti allo spaziox0 +Kk. D’altro canto, il vettore w puo essere scritto in generale come:

w = x0 +k−1∑j=0

γjAjr0

per opportuni coefficienti γj ∈ R. Quindi

w − x∗ = x0 +k−1∑j=0

γjAjr0 − x∗ = x0 − x∗ −

k−1∑j=0

γjAj+1(x0 − x∗) = p(A)(x0 − x∗)

e il polinomio p(z) ∈ Pk,p(0)=1, appartiene cioe all’insieme dei polinomi di grado k eomogenei (pk(0) = 1), ed e definito da:

p(z) = 1 +k−1∑j=0

γjzj+1.

Si vede immediatamente che:

‖xk − x∗‖A = minp∈Pk,p(0)=1

‖p(A)(x0 − x∗)‖A . (3.39)

Usando la decomposizione spettrale della matrice A, scritta come:

Aj = UΛjUT ,

si ottiene:

p(A) = Up(λ)UT .

Poiche:

‖p(A)x‖A =∥∥A1/2p(A)x

∥∥2≤ ‖p(A)‖2

∥∥A1/2x∥∥2

= ‖p(A)‖2 ‖x‖A ,

si ottiene dalla (3.39):

‖xk − x∗‖A ≤ ‖x0 − x∗‖A min

p∈Pk,p(0)=1

maxz∈λ(A)

| p(z) |,

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI67

dove λ(A), chiamato lo spettro di A, e l’insieme di tutti gli autovalori di A. Da quil’importante risultato che fornisce una maggiorazione dell’errore relativo alla k-esimaiterazione di CG:

‖xk − x∗‖A‖x0 − x∗‖A

≤ maxz∈λ(A)

| pk(z) |,

dove pk(z) e un qualsiasi polinomio di grado k con pk(0) = 1.Utilizzando polinomi scelti opportunamente, si possono ricavare alcune propreta

importanti di CG. Per esempio, e possibile far vedere la proprieta di terminazionefinita. Per fare cio si prenda il polinomio cosı definito:

p∗(z) =N∏i=1

λi − zλi

,

e osservando che tale polinomio ha radici in corrispondenza agli autovalori di A, siottiene immediatamente:

‖xN − x∗‖A ≤ maxz∈λ(A)

| p∗k(z) | = 0.

Con ragionamento simile, si vede che se A ha m < N autovalori distinti, CG convergein al massimo m iterazioni. Lo stesso accade nel caso in cui il termine noto sia unacombinazione lineare di m autovettori della matrice A, e si parta da x0 = 0. Dallasimmetria della matrice e dalla compatibilita della norma matriciale di Hilbert conla norma euclidea dei vettori, ricordando la (2.4), si ottiene immediatamente:

‖rk‖2‖r0‖2

=‖b− Axk‖2‖b− Ax0‖2

=‖A(xk − x∗)‖2‖A(x0 − x∗)‖2

≤√λ1λN

‖xk − x∗‖A‖x0 − x∗‖A

,

dove λ1 e λN sono rispettivamente l’autovalore massimo e quello minimo dellamatrice A.

Usando i polinomi di Chebyshev, e possibile dimostrare il seguente risultato diconvergenza dello schema CG:

‖xk − x∗‖A‖x0 − x∗‖A

≤ 2

(√κ(A)− 1√κ(A) + 1

)k

,

dove κ(A) = λ1/λN e l’indice di condizionamento della matrice A. Il risultato mostrache il numero di iterazioni che CG impiega per arrivare a convergenza e proporzionalealla radice del numero di condizionamento di A. Possiamo quindi calcolare il numerom di iterazioni necessario per ridurre l’errore iniziale di un fattore ε. Infatti bastaimporre che:

2

(√κ(A)− 1√κ(A) + 1

)m

< ε,

68 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

da cui, prendendo i logaritmi e notando che

log

(√κ(A)− 1√κ(A) + 1

)∼ 1√

κ(A)

per valori grandi di κ(A), si ottiene immediatamente:

m ≥ 1

2

√κ(A) log

2

ε.

Si noti che la convergenza di CG risulta piu veloce di quella di SD per la presenzadella radice del numero di condizionamento di A (si veda l’eq. (3.29)). Inoltre,la convergenza e accelerata se κ(A) si avvicina a 1, ovvero se λ1 ≈ λN . Questaosservazione ci permette di cercare di migliorare la convergenza del metodo tramitela tecnica di “precondizionamento”, secondo la quale si cerca di trasformare il sistemaoriginale in uno equivalente che ha indice di condizionamento il piu possibile vicinoa 1.

Precondizionamento di CG: Metodo PCG

Il precondizionamento del metodo CG serve a ridurre il numero di condizionamentodella matriceA, in modo da accelerare la convergenza dello schema. Lo scopo e quellodi arrivare ad una soluzione accettabile (i.e., con un residuo sufficientemente piccolo)in un numero di iterazioni che generalmente e molto minore della dimensione dellamatrice. Per fare questo riscriviamo il problema iniziale premoltiplicandolo per unamatrice P simmetrica e definita positiva, che approssimi A ma sia facile da invertire,come discusso nel paragrafo 3.1.1. Riportiamo qui l’eq. (3.10):

P−1Ax = P−1b.

In realta, per migliorare la convergenza di CG applicato a questo sistema bisognarichiedere:

1 ≤ κ(P−1A)� κ(A) (3.40)

(idealmente κ(P−1A) ≈ 1). Il problema fondamentale con quanto scritto e che lanuova matrice B = P−1A non e piu simmetrica ne positiva definita, per cui non sipuo applicare il metodo CG.

Si puo pero procedere ricordandoci dell’esistenza delle trasformazioni di simili-tudine, discusse nel paragrafo 2.0.5. E’ possibile infatti scrivere la matrice di pre-condizionamento P come prodotto di due matrici che risultino facili da invertire. Intal caso otteniamo:

P = ETE P−1 = E−TE−1

B = E−1AE−T λ(B) = λ(P−1A)

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI69

e il nuovo sistema da risolvere si puo scrivere quindi:

By = c con B = E−1AE−T y = ETx c = E−1b.(3.41)

Tale sistema ha le stesse soluzioni di quello originale e B e simmetrica e definitapositiva con un indice di condizionamento minore di quello di A (vedi la (3.40)). Dalpunto di vista geometrico, possiamo dire che gli iperelissoidi che rappresentano lecurve di livello della forma quadratica che andiamo a minimizzare saranno molto piuvicine a delle ipersfere nel caso del sistema precondizionato, con evidenti vantaggiin termini di allineamento precoce della direzione di ricerca con il centro di taliiperelissoidi (e quindi il minimo della forma quadratica).

Applicando il metodo di CG al nuovo sistema (3.41), con qualche passaggiosi arriva alle seguenti equazioni del “Preconditioned Conjugate Gradient” (PCG)algotihm:

Algorithm PCGInput: x0, nimax, toll; k = 0;r0 = b− Ax0 p0 = P−1r0for k = 0, 1, . . . fino a convergenza:

1. αk =〈pk, rk〉〈pk, Apk〉

(3.42)

2. xk+1 = xk + αkpk (3.43)

3. rk+1 = rk − αkApk (3.44)

4. βk = −〈P−1rk+1, Apk〉〈pk, Apk〉

(3.45)

5. pk+1 = P−1rk+1 + βkpk (3.46)

end for

Si noti che e sufficiente applicare il precondizionatore solamente una volta al vettorerk+1, salvando il risultato per utilizzarlo poi sia in (3.45) che in (3.46).

La definizione del precondizionatore piu efficiente per un dato problema e gene-ralmente difficile e non esistono metodi generali. Per i sistemi che scaturiscono dalladiscretizzazione (agli elementi finiti o alle differenze finite) di equazioni differenziali,si usano spesso due tipi di precondizionatori: il semplice precondizionatore diagonaledi Jacobi e la decomposta Incompleta di Cholesky (IC(0)).

Il precondizionatore diagonale di Jacobi (Jacobi diagonal scaling) corrispondealla scelta:

P = D pij =

{aij, se i = j,0, se i 6= j.

,

70 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

ed e di facilissima applicazione, anche se la sua efficienza non e elevatissima. Questoprecondizionatore corrisponde ad una iterazione del metodo di Jacobi studiato nelparagrafo 3.1.1.

Il precondizionatore piu frequentemente usato, perche spesso piu efficiente, edato dalla decomposta Incompleta di Cholesky senza fill-in. Tale precondizionatoree facilmente definito a partire dalla fattorizzazione di Cholesky della matrice A =LLT imponendo a priori lo stesso pattern di sparsita della matrice A. In altreparole, detti lij gli elementi della matrice (triangolare) fattorizzata di Cholesky, ilprecondizionatore IC(0) e dato da:

P = EET eij =

{lij, se aij 6= 0,0, se aij = 0.

.

Implementazione all’elaboratore del PCG

In realta l’implementazione del metodo PCG si deve fare prendendo in considera-zione il fatto che le operazioni piu costose sono il prodotto matrice vettore e l’appli-cazione del precondizionatore ad un vettore, per cui tali operazioni vanno effettuatesolo se necessarie. Per questo, si preferisce salvare i vettori risultanti e riutilizzarliopportunamente. L’algoritmo completo puo quindi essere scritto cosi’:

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI71

Algorithm PCGInput: A,P, b, x0, nimax, toll; k = 1;x = x0, r = r0 = b− Ax0, ρ0 = ‖r‖22do while

√ρk−1 > toll ‖b‖2 and k < nimax:

1. z = P−1r

2. τk−1 = zT r

3. if k = 1 then

β = 0

p = z

else

β = τk−1/τk−2

p = z + βp

end if

4. w = Ap

5. α = τk−1/pTw

6. x = x+ αp

7. r = r − αw8. ρk = rT r

9. k = k + 1

end for

Questo algoritmo prevede di memorizzare la matrice A, il precondizionatore P e 6vettori: b, x, r, z, p e w.

Usando il precondizionatore IC(0), il punto 1. dell’algoritmo precedente vienesvolto risolvendo il sistema lineare Pz = (EET )z = r tramite una sostituzione inavanti ed una indietro:

Ey = r

ET z = y.

Metodo delle correzioni residue

Il metodo delle correzioni residue (CR) si utilizza spesso per calcolare una soluzioneiniziale per il PCG. In pratica tale metodo e una modifica del metodo iterativo diRichardson (si veda il paragrafo 3.1.1) che utilizza come matrice di iterazione lamatrice

E = (I − P−1A),

72 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

per cui, partendo dalla soluzione iniziale x0 = 0 si hanno le seguenti iterate:

x0 = P−1b

x1 = x0 + P−1r0

x2 = x1 + P−1r1

. . .

xk+1 = xk + P−1rk.

Di solito una iterazione e sufficiente per eliminare tutte le componenti dell’errore cor-rispondenti ad autovettori unitari della matrice P−1A. Infatti, l’errore dello schemaprecedente puo essere scritto come:

ek+1 = (I − P−1A)ke0.

Notando che la matrice P−1A e diagonalizzabile, si vede immediatamente che l’errorealla k-esima iterazione e dato da

ek =n∑j=1

(1− λj)kcjvj,

essendo λ1 ≤ λ2 ≤ . . . ≤ λN gli autovalori di P−1A ordinati in senso decrescente ei vettori vj, j = 1, . . . , N i corrispondenti autovettori. Si vede subito che una itera-zione del metodo CR azzera tutte le componenti dell’errore relative agli autovettoriassociati agli autovalori di P−1A unitari.

Esempi di applicazione

Si riportano qui di seguito due esempi di applicazione del metodo PCG precondizio-nato con IC(0) (la decomposta incompleta di Cholesky).

Il primo esempio riguarda una matrice di dimensioni n = 28600, derivante dalladiscretizzazione spaziale tramite il metodo agli elementi finiti misti (ibridizzati) diun’equazione ellittica a coefficienti variabili nello spazio. La matrice e simmetricae definita positiva ed e caratterizzata da un numero di elementi non nulli pari a201200, circa lo 0.02% degli elementi totali (n2). La soluzione e stata ottenuta conun processore Pentium 4 a 2 GHz in circa 10 secondi. Il pattern degli elementi nonnulli e mostrato in Figura 3.14.

Il secondo esempio e relativo ad una matrice di dimensioni n = 80711, aventeun numero di elementi non nulli pari a 432000, circa lo 0.07% degli elementi totali(n2) (Figura 3.15 . La matrice e relativa ad una discretizzazione di un sistema diequazioni di diffusione tramite un metodo misto di elementi finiti alla Galerkin conelementi triangolari e un metodo alle differenze finite. La soluzione ha impiegatocirca 5 secondi.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI73

Figura 3.14: Pattern spaziali degli elementi non nulli della matrice n = 28600. Adestra e disegnata l’intera matrice, a sinistra si riporta uno zoom del riquadro inalto a sinistra.

74 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Figura 3.15: Pattern spaziali degli elementi non nulli della matrice n = 80711. Adestra e disegnata l’intera matrice, a sinistra si riporta uno zoom del riquadro inalto a sinistra.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI75

0 100 200 300 400 500k

10-21

10-19

10-17

10-15

10-13

10-11

10-9

10-7

10-5

10-3

10-1

||rk||

PCG residualreal residual (b-Ax)

n=28600

0 50 100 150 200 250 300

k10

-21

10-19

10-17

10-15

10-13

10-11

10-9

10-7

10-5

10-3

10-1

||rk||

PCG residualeal residual (b-Ax)

n=80711

Figura 3.16: Profili di convergenza del metodo PCG con precondizionatore diCholeky per la matrice n = 28600 (sinistra) e n = 80711 (destra).

76 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

I profili di convergenza del metodo PCG per le due matrici sono riportati inFigura 3.16, a destra quello relativo alla prima matrice, e a sinistra quello relativoalla seconda. Si noti il comportamento del residuo calcolato tramite la formularicorrente del PCG, che continua a decrescere, mentre il residuo vero si stabilizzaalla precisione di macchina (circa 10−16).

Implementazione pratica del metodo PCG

Per l’applicazione ottimale del PCG e necessario minimizzare i costi del prodot-to matrice-vettore e dell’applicazione del precondizionatore. Cio viene effettuatoin general sfruttando la caratteristica di sparsita tipica delle matrici che derivanoda discretizzazioni di equazioni differenziali e quindi memorizzando solamente glielementi non nulli della matrice e effettuando le operazioni solo su di esssi.

Il modo in cui viene memorizzata la matrice A del sistema e detto CompressedRow Storage (CRS).

Caso non simmetrico. Data una generica matrice A quadrata di ordine n, latecnica di memorizzazione CRS prevede la generazione di 3 vettori:

1. SYSMAT: vettore di numeri reali contenente gli nt coefficienti non nulli dellamatrice A memorizzati in successione per righe;

2. JA: vettore di numeri interi contenente gli nt indici di colonna dei corrispon-denti elementi memorizzati in SYSMAT;

3. IA: vettore di numeri interi con n + 1 componenti, contenente le posizioni incui si trova in SYSMAT il primo elemento di ciascuna riga di A.

Il vettore IA e chiamato “vettore topologico” e talvolta indicato anche come TOPOL.L’uso congiunto di IA e JA consente di individuare qualsiasi elemento non nulloaij memorizzato in SYSMAT. Infatti, l’elemento aij si trovera in una posizione k delvettore SYSMAT compresa nell’intervallo IA(i) ≤ k ≤ IA(i + 1) − 1 e tale per cuiJA(k) = j. Queste due condizioni permettono di individuare univocamente k percui SYSMAT(k) = aij. Si noti che l’occupazione di memoria si riduce da n2 numerireali (generalmente in doppia precisione) a nt numeri reali (tipicamente nt < 0.05n2)e nt+ n+ 1 numeri interi.

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI77

Facciamo un esempio numerico per rendere pichiaro il concetto. Si consideri laseguente matrice A di dimensione 6×6, sparsa e non simmetrica:

A =

4 0 7 0 0 03 4 0 2 0 00 2 4 0 4 00 0 7 4 0 11 0 0 3 4 01 1 0 0 3 4

.

Gli elementi non nulli sono nt = 18, mentre n2 = 36, pertanto il grado di sparsitadi A e il 50%. Trascurando i coefficienti nulli, la matrice A diventa:

A′ =

4 73 4 2

2 4 47 4 1

1 3 41 1 3 4

.

Il vettore SYSMAT ha dimensione 18 e risulta:

nt︷ ︸︸ ︷4 7 3 4 2 2 4 4 7 4 1 1 3 4 1 1 3 4 .

Il vettore JA ha la stessa dimensione di SYSMAT e per ogni coefficiente di quest’ultimoindividua l’indice di colonna:

nt︷ ︸︸ ︷1 3 1 2 4 2 3 5 3 4 6 1 4 5 1 2 5 6 .

Il vettore IA, infine, individua la posizione in SYSMAT del primo coefficiente diciascuna riga:

n+1︷ ︸︸ ︷1 3 6 9 12 15 19 .

Si noti che che le componenti di IA sono necessariamente ordinate in senso stretta-mente crescente e che IA(n + 1) = nt + 1. Cio si deduce immediatamente dal fattoche per individuare un elemento aij dell’ultima riga di A si deve cercare l’indice kdella componente in SYSMAT nell’intervallo IA(n) ≤ k ≤ IA(n+ 1)− 1.

Caso simmetrico Nel caso in cui la matrice A sia simmetrica, come accade adesempio nella soluzione agli elementi finiti dell’equazione differenziale ellittica di

78 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Laplace, il risparmio computazionale derivato dal sistema CRS viene incrementatomemorizzando la sola parte triangolare alta, inclusa la diagonale principale, di A.In altri termini, vengono memorizzati solo i coefficienti aij 6= 0 con j ≥ i e si sfruttala proprieti. A secondo cui aij = aji.

La memorizzazione di A viene effettuata sempre mediante i tre vettori SYSMAT,JA e IA definiti nel paragrafo precedente, in cui tuttavia nt rappresenta il numero dicoefficienti non nulli della triangolare alta e IA contiene le posizioni in cui si trovain SYSMAT l’elemento diagonale di ciascuna riga di A.

Anche in questo caso facciamo un esempio numerico per rendere pichiaro ilconcetto. Si consideri la seguente matrice A di dimensione 7×7, sparsa e simmetrica:

A =

10 0 0 0 1 0 20 1 0 3 0 −1 00 0 4 0 0 0 10 3 0 2 1 0 01 0 0 1 5 0 00 −1 0 0 0 1 02 0 1 0 0 0 20

.

Gli elementi non nulli sono 19, mentre se fosse piena ne avremmo 49. Tuttavia icoefficienti da memorizzare sono solamente quelli relativi alla parte superiore di A,di seguito evidenziati:

A′ =

10 1 2

1 3 −1

4 1

3 2 1

1 1 5

−1 1

2 1 20

.

Il vettore SYSMAT avra percio dimensione nt = 13 (7 elementi diagonali piu 6 extra-diagonali) anziche 19, con un risparmio di memoria superiore al 30%, e sara datoda:

nt︷ ︸︸ ︷10 1 2 1 3 −1 4 1 2 1 5 1 20 .

Il vettore JA con gli indici di colonna corrispondenti ha la stessa dimensione diSYSMAT e risulta:

nt︷ ︸︸ ︷1 5 7 2 4 6 3 7 4 5 5 6 7 .

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI79

Infine, il vettore IA possiede sempre dimensione n + 1 ed individua la posizione inSYSMAT degli elementi diagonali:

n+1︷ ︸︸ ︷1 4 7 9 11 12 13 14 .

Ad esempio, IA(3)=7 significa che a33 e memorizzato in SYSMAT(7), come confermatoanche dal fatto che JA(7)=3.

Come nel caso di matrici non simmetriche, si pone IA(n + 1) = nt + 1. Si notianche che dovra sempre essere IA(1)=1 e IA(n) = nt, nonche JA(1)=1 e JA(nt) = n.

Implementazione del prodotto matrice-vettore Lo schema del GCM neces-sita dell’operazione del prodotto matrice-vettore. L’implementazione di tale ope-razione al calcolatore risulta del tutto banale nel caso di memorizzazione tabellaredella matrice, mentre e necessaria qualche attenzione qualora si utilizzi il sistema dirappresentazione CRS. Nel seguito distingueremo fra l’implementazione del prodottomatrice-vettore per matrici non simmetriche, piu intuitivo, e per matrici simmetrichein cui si memorizza la sola triangolare alta.

Caso non simmetrico Si vuole calcolare il prodotto matrice-vettore:

Av = w (3.47)

con A matrice quadrata non simmetrica di ordine n, v e w vettori in Rn. Si ricordache la componente i-esima di w e pari alla somma dei prodotti degli elementi dellariga i di A per i corrispodenti elementi di v:

wi =n∑j=1

aijvj (3.48)

Se la matrice e memorizzata in modo compatto, gli elementi aij vanno opportu-namente ricercati in SYSMAT mediante l’uso di IA, mentre gli indici j relativi allecolonne si trovano nel vettore intero JA. In particolare, gli elementi di A apparte-nenti alla riga i sono memorizzati in corrispondenza agli indici k del vettore SYSMAT

compresi, per definizione di IA, nell’intervallo IA(i) ≤ k ≤IA(i + 1) − 1. Gli indicidi colonna j, di conseguenza, sono memorizzati in JA(k).

Il prodotto matrice-vettore con A non simmetrica e memorizzata in forma com-patta puo quindi essere calcolato implementando il seguente algoritmo:

001 Per i = 1, n002 azzero wi

80 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

003 Per k = IA(i), IA(i+ 1)− 1004 j :=JA(k)005 wi := wi + SYSMAT(k) · vj006 Fine Per007 Fine Per

Si noti che e sempre utile azzerare il vettore soluzione prima di procedere all’im-plementazione del ciclo di sommatoria (riga 2), al fine di evitare l’uso improprio divalori precedentemente contenuti in w.

Caso simmetrico Si vuole ora calcolare il prodotto (3.47) in cui la matrice simme-trica A e memorizzata in formato CRS come descritto prima (e quindi memorizzandosolo la parte triangolare. Poiche gli elementi aij con j < i non sono ora immedia-tamente disponibili nella sequenza di coefficienti della riga i, conviene scrivere ladefinizione (3.48) come:

wi =i−1∑j=1

ajivj +n∑j=i

aijvj (3.49)

avendo sfruttato la condizione per cui aij = aji. Dalla (3.49) si deduce che il contri-buto a wi relativo agli elementi con j ≥ i puo essere implementato in maniera deltutto analoga a quanto fatto nel paragrafo precedente, mentre il contributo relativoagli elementi con j < i puo essere determinato selezionando in SYSMAT le componentik per cui JA(k) = i, cioe appartenenti alla colonna i-esima. E’ del tutto evidente,tuttavia, che questo modo di procedere, seppure intuitivo, risulta inapplicabile daun punto di vista pratico. Sarebbe, infatti, necessario procedere ad una ricerca sunt componenti per n volte, con un dispendio che renderebbe inutile il vantaggio for-nito dalla memorizzazione compatta della matrice e, in certi casi, dalla convergenzaaccelerata del GCM.

Conviene osservare che gli elementi della triangolare alta della riga i, oltre acontribuire al calcolo di wi, entrano in gioco, in virtdella simmetria di A, anche nelcalcolo di wj, con j pari all’indice di colonna dell’elemento considerato. All’internodel medesimo ciclo sulle righe i si aggiornera pertanto non solo wi ma anche tuttii wj corrispondenti. L’algoritmo descritto nel precedente paragrafo viene quindimodificato nel modo seguente:

001 Per i = 1, n002 azzero wi003 Fine Per

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI81

004 Per i = 1, n005 k := IA(i)006 wi := wi + SYSMAT(k) · vi007 Per k = IA(i) + 1, IA(i+ 1)− 1008 j := JA(k)009 wi := wi + SYSMAT(k) · vj010 wj := wj + SYSMAT(k) · vi011 Fine Per012 Fine Per

Si noti che, a differenza dell’algoritmo utilizzato per matrici non simmetriche, inquesto caso l’azzeramento del vettore prodotto w va fatto con un ulteriore ciclo (righe1-3) esterno a quello di calcolo di w. Inoltre, il contributo a wi dato dall’elementodiagonale aii viene conteggiato a parte (riga 6) per evitare di considerarlo due voltenel ciclo successivo (corrisponde infatti al caso in cui i = j).

Calcolo del precondizionatore

Una delle chiavi del successo del GCM nella soluzione efficiente di sistemi lineari spar-si, simmetrici e definiti positivi sta nella possibilita di ottenere formidabili accelera-zioni della convergenza mediante l’uso di opportune matrici di precondizionamento.La scelta di K−1 deve soddisfare alle seguenti caratteristiche:

• deve essere tale che il prodotto P−1A abbia lo spettro, cioe l’insieme degliautovalori, raggruppato attorno all’unita e comunque un numero di condizio-namento spettrale inferiore a quello di A;

• il calcolo deve essere semplice e poco costoso per non appesantire lo schema;

• l’occupazione di memoria deve essere inferiore o al piu paragonabile a quelladella matrice del sistema allo scopo di non vanificare lo sforzo computazionaleeffettuato per la memorizzazione compatta.

Spesso le suddette caratteristiche confliggono fra loro e necessariamente la sceltadi P−1 diventa il risultato di un compromesso. Per paradosso, la matrice che soddisfacompletamente la prima richiesta e ovviamente A−1, il cui costo ed occupazione dimemoria (si ricordi che l’inversa di una matrice sparsa e generalmente una matricepiena) tuttavia rendono del tutto incalcolabile.

Una discreta accelerazione del metodo del GC e ottenuta scegliendo:

P−1 = D−1 (3.50)

82 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

dove D e la matrice diagonale contenente gli elementi diagonali di A. In questo ca-so, il calcolo della matrice di precondizionamento e la sua applicazione nello schemadel GCM risultano banali e vengono lasciati per esercizio al lettore. Il raggrup-pamento degli autovalori attorno all’unita di D−1A, tuttavia, puo essere limitato,specialmente se A presenta coefficienti extra-diagonali grandi rispetto agli elementidiagonali.

Risultati assai piu significativi sono invece ottenuti assumendo:

P−1 =(LLT

)−1(3.51)

dove L, matrice triangolare bassa, e calcolata mediante la fattorizzazione incompletadi A, cioe la decomposta di Cholesky a cui viene assegnato il medesimo schema disparsita di A. L’uso di questa matrice di precondizionamento, proposto negli anni’70 da Kershaw, si rivela generalmente un ottimo compromesso fra le contrapposteesigenze precedentemente discusse. Il calcolo di P−1 secondo la (3.51) e la suaapplicazione nell’algoritmo del GCM verranno esaminati nei due paragrafi seguenti.

Fattore incompleto di Cholesky secondo Kershaw Il calcolo del fattore in-completo di Cholesky si basa sulla fattorizzazione triangolare di matrici simmetricheche viene di seguito brevemente richiamata. Poiche con la memorizzazione compattadi A vengono conservati i soli elementi appartenenti alla triangolare alta, convieneriscrivere la (3.51) come:

P−1 =(UT U

)−1(3.52)

dove U = LT . Supponiamo che A sia una matrice 3×3 piena di cui svolgiamo peresteso la fattorizzazione: u11 0 0

u12 u22 0u13 u23 u33

u11 u12 u130 u22 u230 0 u33

=

a11 a12 a13a12 a22 a23a13 a23 a33

(3.53)

Si noti che nella (3.53) si e sfruttata la simmetria di A ed il fatto che i soli elementiaij memorizzati sono quelli per cui j ≥ i.

Sviluppiamo il prodotto (3.53) procedendo secondo la successione delle righe diA. Per la prima riga vale:

a11 = u211 ⇒ u11 =√a11

a12 = u11u12 ⇒ u12 =a12u11

(3.54)

a13 = u11u13 ⇒ u13 =a13u11

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI83

Si puo osservare che i coefficienti sottodiagonali di A vengono di volta in volta giautilizzati nel calcolo delle righe superiori a quella corrente. Si procede, pertanto, conle righe 2 e 3 considerando i soli termini relativi alla triangolare alta di A:

a22 = u212 + u222 ⇒ u22 =√a22 − u212

a23 = u12u13 + u22u23 ⇒ u23 =1

u22(a23 − u12u13) (3.55)

a33 = u213 + u223 + u233 ⇒ u33 =√a33 − u213 − u223

Dalle (3.54) e (3.55) si puo facilmente generalizzare l’algoritmo di calcolo del fattorecompleto di Cholesky per una matrice di ordine n:

001 u11 :=√a11

002 Per j = 2, n003 u1j := a1j/u11004 Fine Per005 Per i = 2, n

006 uii :=√aii −

∑i−1l=1 u

2li

007 Per j = i+ 1, n

008 uij :=(aij −

∑i−1l=1 uli ulj

)/uii

009 Fine Per010 Fine Per

Il passaggio concettuale dal fattore completo di Cholesky a quello incompleto se-condo Kershaw risulta a questo punto banale, in quanto all’algoritmo precedente esufficiente aggiungere l’assegnazione:

aij = 0⇒ uij := 0 (3.56)

Poiche A e memorizzata in modo compatto, e cosı anche U , si deduce immediata-mente che, in virtu dell’assegnazione (3.56), i vettori IA e JA descrivono anche latopologia di U per la quale sara sufficiente adottare un vettore PREC contenente icoefficienti non nulli memorizzati sequenzialmente per righe.

Il nuovo algoritmo di calcolo del fattore incompleto di Cholesky secondo Kershawcon la memorizzazione in formato CRS risulta pertanto:

001 PREC(1) :=√SYSMAT(1)

002 Per k = IA(1)+1, IA(2)-1

84 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

003 PREC(k) := SYSMAT(k)/PREC(1)004 Fine Per005 Per i = 2, n006 k := IA(i)007 l := ogni k < IA(i) per cui JA(k) = i008 PREC(k) :=

√SYSMAT(k)−

∑l PREC(l)2

009 Per k1 = IA(i) + 1, IA(i+ 1)− 1010 j := JA(k1)011 l1 := ogni k < IA(i) per cui JA(k) = i012 l2 := ogni k < IA(i) per cui JA(k) = j

013 PREC(k1) :=(SYSMAT(k1)−

∑l1,l2 PREC(l1) · PREC(l2)

)/PREC(k)

014 Fine Per015 Fine Per

Va osservato, tuttavia, che l’implementazione efficiente delle sommatorie in riga8 e 13 sugli indici l, l1 ed l2 e in realta non banale e va preferibilmente effettuatacalcolando separatamente il contributo del coefficiente relativo al k corrente in mododa evitare le dispendiose ricerche previste in riga 7, 11 e 12. Tale implementazionee effettuata nella subroutine KERSH a disposizione dello studente.

Si deve infine ricordare che l’uso generalizzato delle (3.54) e (3.55) comportal’estrazione di radici quadrate il cui argomento, nel caso di una fattorizzazione in-completa, non e piu garantito essere positivo. In questo caso l’elemento diagonalein questione verra posto pari ad un numero positivo arbitrario (ad esempio, l’ultimocoefficiente diagonale di U non nullo). Si dimostra comunque teoricamente che sela matrice A e di tipo M, come ad esempio si verifica nella discretizzazione agli ele-menti finiti dell’equazione ellittica di Laplace se si utilizzano funzioni di base linearidefinite su una triangolazione di Delaunay, tutte le radici da calcolare nel fattoreincompleto esistono nel campo reale.

Applicazione della decomposta incompleta Mediante l’algoritmo sviluppatonel precedente paragrafo non si calcola esplicitamente la matrice di precondiziona-mento P−1 ma solamente il fattore incompleto U . E’ quindi necessario sviluppare unalgoritmo ad hoc che permetta di calcolare il generico prodotto P−1v senza generareesplicitamente P−1. Sia quindi w il vettore in Rn risultato del prodotto P−1v. Perdefinizione di P−1 si ha:

w =(UT U

)−1v (3.57)

cioe, premoltiplicando per P ambo i membri:(UT U

)w = v (3.58)

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI85

@@@@@@

UT

z = v

Figura 3.17: Schema della soluzione del sistema con sostituzioni in avanti.

Il calcolo di w viene quindi ricondotto alla soluzione di un sistema lineare la cuimatrice e P . Poiche P e fattorizzabile nel prodotto di due matrici triangolari, ilsistema (3.58) e risolvibile tramite sostituzioni in avanti e all’indietro. Posto:

Uw = z (3.59)

la (3.58) diventa:UT z = v (3.60)

che si puo facilmente risolvere con sostituzioni in avanti (Figura 3.17). Iniziandodalla prima componente, ricavata in modo immediato come:

z1 =v1u11

(3.61)

si ottiene con semplici calcoli la formula ricorrente:

zi =1

uii

(vi −

i−1∑j=1

ujizj

)i = 2, . . . , n (3.62)

Come osservato per il prodotto matrice-vettore e per la determinazione del fat-tore incompleto di Cholesky, la sommatoria contenuta in (3.62) non e banale daimplementare in modo efficiente memorizzando le matrici secondo il sistema CRS.A tal proposito, risulta conveniente definire un vettore di accumulazione s nelle cuicomponenti viene aggiornato il prodotto contenuto nella sommatoria dell’equazio-ne (3.62) procedendo per righe di U . L’algoritmo per il calcolo del vettore z puopertanto essere scritto come:

001 Per j = 1, n002 azzero sj003 Fine Per004 z1 := v1/PREC(1)

86 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

@@@@@@

Uw = z

Figura 3.18: Schema della soluzione del sistema con sostituzioni all’indietro.

005 Per i = 2, n006 k := IA(i)006 Per k1 = IA(i− 1) + 1, IA(i)− 1007 j := JA(k1)008 sj := sj + PREC(k1) · zi−1009 Fine Per010 zi := (vi − si) /PREC(k)011 Fine Per

Ottenuto il vettore z si puo infine calcolare w risolvendo il sistema (3.59) tramitesostituzioni all’indietro (Figura 3.18). La formula ricorrente si ricava in modo deltutto analogo a quanto fatto nelle equazioni (3.61) e (3.62) partendo in questo casodalla componente n-esima:

wn =znunn

(3.63)

wi =1

uii

(zi −

n∑j=i+1

uijwj

)i = n− 1, . . . , 1 (3.64)

L’implementazione della (3.18) risulta stavolta molto semplice anche memoriz-zando la matrice U in forma compatta. Sempre utilizzando il vettore di accumulos, l’algoritmo corrispondente puo essere scritto nel modo seguente:

001 wn := zn/PREC(nt)002 Per i = n− 1, 1 con passo -1003 azzero si004 k := IA(i)005 Per k1 = IA(i) + 1, IA(i+ 1)− 1006 j := JA(k1)007 si := si + PREC(k1) · wj

3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI87

008 Fine Per009 wi := (zi − si) /PREC(k)010 Fine Per

Per un confronto, viene messa a disposizione dello studente la subroutine LSOLVE

che implementa gli algoritmi soprariportati.

88 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI

Capitolo 4

Soluzione numerica di equazionidifferenziali

4.1 Il problema di Cauchy

In questo capitolo ci occupiamo della soluzione numerica di equazioni differenzialialle derivate ordinarie (ODE, Ordinary Differential Equations). Il materiale quipresentato e una personale ri-elaborazione e sintesi del materiale presentato nellibro [3].

Il problema di Cauchy cerca di trovare una funzione y(t) la cui derivata e ugualepunto per punto ad un’altra funzione f(t, y(t)), funzione della variabile indipenden-te t e della funzione y(t) stessa. La funzione trovata deve anche soddisfare certecondizioni iniziali.

Consideriamo il seguente:

Problema 4.1.1 (Problema di Cauchy). Trovare la funzione y(t) ∈ C1(I), I =[t0, T ] (0 < T <∞), tale che

y′(t) = f(t, y(t)) t ∈ I,(4.1)

y(t0) = y0,

dove f(t, y) : S → R, S = I × (−∞,+∞).La soluzione di (4.1) e una funzione y(t) : I → R che si puo scrivere in forma

integrale nel seguente modo:

y(t) = y0 +

∫ t

t0

f (τ, y(τ)) dτ. (4.2)

Possiamo dare la seguente interpretazione “locale” del problema di Cauchy. Sianoδ e η due numeri reali positivi, e siano t0 ∈ I e y0 ∈ R. Formiamo gli intervalli

89

90 CAPITOLO 4. SOLUZIONE DI ODE

Σ

0

t0 t

0 δ t+t0 δ t−

y0

δ y−

y0 δ y+

φ(t)

φ’(t)

t

y

y

Figura 4.1: Interpretazione geometrica della soluzione y := φ(t) del problema diCauchy (4.1).

K = [t0 − δ, t0 + δ] e J = [y0 − η, y0 + η], e sia I × J ⊆ Σ ⊂ R. Una funzionef : Σ→ R si dice lipschitziana in Σ se esiste L > 0 tale che:

| f(t, y1)− f(t, y2) | ≤ L| y1 − y2 |

per ogni t ∈ I e per ogni y1 e y2 ∈ J . Si noti che una funzione f lipschitziana econtinua in J , mentre non tutte le funzioni continue sono lipschitziane. Ad esempiog(y) = y1/3 e continua ma non lipschitziana in [−1, 1]. In particolare, una funzioneg di classe C1(J) e tale per cui esiste una costante K > 0 tale che | g′(y) | ≤ K perogni y ∈ J e lipschitziana in J . Infatti:

| g(y1)− g(y2) | = | g′(ξ)(y1 − y2) | ≤ K| y1 − y2 |.

La funzione g(y) = | y | /∈ C1(I) ma e evidentemente lipschitziana in I.

Sia M = maxt∈I,y∈J | f(t, y) | e sia Mδ < η. Allora esiste una ed una solafunzione φ : K → R tale che:

1. φ(t) e φ′(t) sono continue per ogni t in I;

2. φ(t0) = y0;

3. φ(t) appartiene a J per ogni t ∈ I;

4. φ′(t) = f(t, φ(t)) per ogni t appartenente a I.

4.1. IL PROBLEMA DI CAUCHY 91

La funzione φ(t) si chiama soluzione o integrale del problema di Cauchy (4.1), percui y(t) := φ(t). L’interpretazione geometrica e mostrata in Figura 4.1. Per ognipunto t ∈ I, la derivata della funzione φ(t) e uguale al valore che la f assume inquel punto.

Definizione 4.1.2 (Buona posizione). Il problema di Cauchy (4.1) si dice ben postose esiste una soluzione unica, la quale dipende in maniera condinua dai dati inizialie dal secondo membro dell’equazione differenziale.

Possiamo rendere piu precisa la definizione di dipendenza continua dai datidefinendo la stabilita del problema di Cauchy:

Definizione 4.1.3 (Problema stabile (alla Liapunov)). il problema di Cauchy (4.1)e stabile se per ogni perturbazione (δ0, δ(t)), tali che δ(t) funzione continua in I, e| δ0 | < ε e | δ(t) | < ε per ogni t ∈ I, la soluzione z(t) del problema perturbato:

z′(t) = f(t, z(t)) + δ(t) t ∈ I,

z(t0) = y0 + δ0,

e tale che:

| y(t)− z(t) | < Kε ∀t ∈ I,

con la costante K indipendente da ε e funzione dei dati del problema, e cioe t0, y0,f .

Dato il problema di Cauchy (4.1), se la f(t, y) e continua e uniformemente lip-schitziana in y per t ∈ I e y ∈ R, allora il problema e ben posto. Infatti, siaw(t) = y(t)− z(t) da cui w′(t) = f(t, y(t))− f(t, z(t)) + δ(t). Applicando la (4.2) eil lemma di Gronwall1,

1Il lemma di Gronwall risulta molto importante, e vale la pena ricordarlo.

Lemma 4.1.1 (di Gronwall). Sia g(t) una funzione integrabile non negativa nell’intervallo I, esiano ϕ(t) e ψ(t) due funzioni continue in I, con ψ funzione non decrescente. Se ϕ(t) soddisfa ladisuguaglianza:

ϕ(t) ≤ ψ(t) +

∫ t

t0

g(τ)ϕ(τ) dτ, ∀t ∈ I,

allora

ϕ(t) ≤ ψ(t)exp

(∫ t

t0

g(τ) dτ

)∀t ∈ I.

92 CAPITOLO 4. SOLUZIONE DI ODE

0

t1

tj−1

tj

tj+1

tN−1

t =TNt

Figura 4.2: Discretizzazione dell’intervallo I = [t0, T ] in N sottointervalli di passo h

otteniamo:

w(t) = δ0 +

∫ t

t0

[f(τ, y(τ))− f(τ, z(τ))] dτ +

∫ t

t0

δ(τ) dτ

| w(t) | ≤ (1 + | t− t0 |) ε+ L

∫ t

t0

| w(τ) | dτ

≤ ε (1 + | t− t0 |) eL| t− t0 |, ∀t ∈ I≤ Cε, C = (1 +Mt)e

MtL, Mt = maxt| t− t0 |.

Esempio 4.1.4.

y′(t) = −y(t) + t t ∈ I = [0, 1],

y(t0) = 1,

la cui soluzione e: y(t) = 2e−t + t− 1.

z′(t) = −z(t) + t+ δ t ∈ I = [0, 1],

z(t0) = 1 + δ0,

la cui soluzione e: z(t) = (2 + δ0 − δ)e−t + t+ δ − 1. Allora:

| y(t)− z(t) | = | (δ − δ0)e−t − δ | ≤ | δ |(1− e−t) + | δ0 |e−t ≤ 2ε,

per ogni t ∈ I.

4.2 Metodi a un passo

La soluzione del problema di Cauchy (4.1) in forma chiusa e possibile solo per parti-colari f(t, y). In generale, si dovra ricorrere alla risoluzione numerica; si vuole quindiricavare un algoritmo che permetta di approssimare la y(t) per t ∈ I. A tal fine, si

4.2. METODI A UN PASSO 93

discretizza l’intervallo I, e cioe si suddivide l’intervallo in sotto-intervalli di passo h,e si indica con tj il generico punto individuato da tj = t0 + jh, j = 0, 1, . . . , N , conh = (T − t0)/N (cf. Figura 4.2). Si indichi con yj la soluzione numerica al passo tj:yj ≈ y(tj). Intuitivamente, andremo a ricavare metodi numerici per il calcolo di yj,j = 1, . . . , N ; tali metodi approssimeranno per punti la nostra soluzione.

Metodo di Eulero in avanti o esplicito. Si pensi quindi l’equazione differenzialescritta nel punto tj:

y′(tj) = f(tj, y(tj)). (4.3)

Dobbiamo trovare una approssimazione di y′(tj). A tal fine, scriviamo l’espansionein serie di Taylor della y(tj+1) = y(tj + h):

y(tj+1) = y(tj + h) = y(tj) + hy′(tj) +h2

2y′′(tj) +O(h3), (4.4)

dove O(h3) ∝ Ch3 (“O” grande). Trascurando i termini O(h2) otteniamo l’appros-simazione:

y′(tj) ≈ y′j =yj+1 − yj

h.

Sostituendo in (4.3), si arriva al cosiddetto metodo di Eulero in avanti (o esplicito):

yj+1 = yj + hf(tj, yj) j = 0, 1, . . . , N − 1. (4.5)

E’ quindi possibile scrivere il seguente algoritmo:

Algorithm Eulero EsplicitoInput: t0, y0, N , h;for j = 0, 1, . . . , N − 1

1. tj = t0 + jh

2. fj = f(tj, yj)

3. yj+1 = yj + hfj

end for

Esempio 4.2.1. Proviamo ad applicare il metodo nel caso semplice di f(t, y) =−y(t), con t0 = 0, T = 1 e y0 = 1, che ammette soluzione y(t) = e−t. Sostituendof = −y in (4.5), otteniamo:

yj+1 = (1− h)yj

Utilizzando un passo di integrazione h = 0.1, da cui N = 10, otteniamo la seguentetabella:

94 CAPITOLO 4. SOLUZIONE DI ODE

j yj y(tj)0 1 10.1 0.9 0.9048374180.2 0.81 0.8187307530.3 0.729 0.7408182210.4 0.6561 0.6703200460.5 0.59049 0.606530660.6 0.531441 0.5488116360.7 0.4782969 0.4965853040.8 0.43046721 0.4493289640.9 0.387420489 0.406569661.0 0.34867844 0.367879441

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1t

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

y

Eulero EsplicitoSoluzione Analitica

Come si vede il metodo fornisce buone approssimazioni della soluzione analitica agliestremi dei sottointervalli.

Esempio 4.2.2. Proviamo ora ad applicare il metodo nel caso di f(t, y) = −5y(t),con t0 = 0, T = 3 e y0 = 1, che ammette soluzione y(t) = e−5t. Sostituendo f = −5yin (4.5), otteniamo:

yj+1 = (1− 5h)yj

Utilizzando h = 0.3, da cui N = 10, otteniamo la seguente tabella:

j yj y(tj)0 1 10.3 -0.2 0.3011942120.6 0.04 0.0907179530.9 -0.008 0.0273237221.2 0.0016 0.0082297471.5 -0.00032 0.0024787521.8 6.4E-05 0.0007465862.1 -0.0000128 0.0002248672.4 0.00000256 6.77287E-052.7 -5.12E-07 2.03995E-053 1.024E-07 6.14421E-06

0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3t

-0.2

0

0.2

0.4

0.6

0.8

1

y

Eulero EsplicitoSoluzione Analitica

In questo caso il metodo produce delle stime molto meno accurate e si notano delleoscillazioni importanti nella soluzione numerica. Infatti, come vedremo piu avanti,lo schema e stabile solo sotto certe condizioni su h, ancorche il problema di Cauchy sistabile secondo Liapunov. E’ dunque necessario andare a studiare il comportamentodell’errore e stabilire la convergenza dello schema, e cioe la sua consistenza e stabilita.

4.2. METODI A UN PASSO 95

Metodo di Eulero all’indietro o implicito. Si pensi ora l’equazione differen-ziale scritta nel punto tj+1:

y′(tj+1) = f(tj+1, y(tj+1)). (4.6)

Dobbiamo trovare una approssimazione di y′(tj+1). A tal fine, scriviamo l’espansionein serie di Taylor della y(tj) = y(tj+1 − h):

y(tj) = y(tj+1 − h) = y(tj+1)− hy′(tj+1) +h2

2y′′(tj+1) +O(h3).

Di nuovo trascurando i termini O(h2) possiamo ricavare:

y′(tj+1) ≈ y′j+1 =yj+1 − yj

h.

Sostituendo in (4.6), otteniamo il cosiddetto metodo di Eulero all’indietro (o impli-cito):

yj+1 = yj + hf(tj+1, yj+1) j = 0, 1, . . . , N − 1. (4.7)

Si noti che la nostra incognita, yj+1, appare in maniera implicita sia a sinistra che adestra del simbolo di uguale, in maniera implicita come argomento della f(t, y), chein generale non potra piu essere calcolata esplicitamente. Infatti, nel caso in cui yj+1

non sia esplicitabile, dovremmo ricorrere ad un metodo di tipo Newton-Raphson peril calcolo di yj+1 in ogni passo temporale (punto 2. dell’algoritmo seguente). Questofatto da ragione dei nomi esplicito e implicito. Possiamo quindi scrivere il seguentealgoritmo:

Algorithm Eulero ImplicitoInput: t0, y0, N , h;for j = 0, 1, . . . , N − 1

1. tj+1 = tj + h

2. Risolvere yj+1 − yj − hf(tj+1, yj+1) = 0

end for

Riproduciamo gli stessi esempi riportati sopra, ma con il metodo di Eulero all’in-dietro. Si noti che in questo caso, essendo la f(t, y) lineare in y, anche tale schemadiventa esplicito.

Esempio 4.2.3. Caso di f(t, y) = −y(t), con t0 = 0, T = 1 e y0 = 1. Sostituendof = −y in (4.7), otteniamo:

yj+1 =1

1 + hyj.

Utilizzando h = 0.1, da cui N = 10, otteniamo la seguente tabella:

96 CAPITOLO 4. SOLUZIONE DI ODE

j yj y(tj)0 1 10.1 0.909090909 0.9048374180.2 0.826446281 0.8187307530.3 0.751314801 0.7408182210.4 0.683013455 0.6703200460.5 0.620921323 0.606530660.6 0.56447393 0.5488116360.7 0.513158118 0.4965853040.8 0.46650738 0.4493289640.9 0.424097618 0.406569661 0.385543289 0.367879441

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1t

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

y

Eulero ImplicitoSoluzione Analitica

Come si vede il metodo fornisce approssimazioni simili a quelle del caso esplicito,ma con sovrastima dei valori invece di sottostima.

Esempio 4.2.4. Proviamo ora ad applicare il metodo nel caso di f(t, y) = −5y(t),con t0 = 0, T = 3 e y0 = 1. Sostituendo f = −5y in (4.5), otteniamo:

yj+1 =1

1 + 5hyj.

Utilizzando h = 0.3, da cui N = 10, otteniamo la seguente tabella:

j yj y(tj)0 1 10.3 0.4 0.223130160.6 0.16 0.0497870680.9 0.064 0.0111089971.2 0.0256 0.0024787521.5 0.01024 0.0005530841.8 0.004096 0.000123412.1 0.0016384 2.75364E-052.4 0.00065536 6.14421E-062.7 0.000262144 1.37096E-063 0.000104858 3.05902E-07

0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3t

-0.2

0

0.2

0.4

0.6

0.8

1

y

Eulero ImplicitoSoluzione Analitica

In questo caso, il metodo produce delle stime sempre meno accurate rispetto al casoprecedente, ma non si notano le oscillazioni che si sono verificate nel corrispondentecaso del metodo di Eulero esplicito. Lo schema di Eulero implicito, infatti, ha lastessa accuratezza dello schema esplicito ma risulta sempre stabile.

Vediamo per quest’ultima equazione differenziale un’interpretazione geometricadegli schemi di Eulero rispettivamente implicito ed esplicito. Per lo schema im-plicito, dall’eq. (4.7) si ricava immediatamente che il punto (tj+1, yj+1) e ottenuto

4.2. METODI A UN PASSO 97

0 0.3 0.6 0.9t

0

0.2

0.4

y

Eulero ImplicitoSoluzione Analitica

y' 0.6=(y0.6-y0.3)/h

=f(t0.6,y0.6)

y' 0.9=(y0.9-y0.6)/h

=f(t0.9,y0.9)

Figura 4.3: Interpretazione geometrica dello schema di Eulero Implicito per l’equa-zione differenziale y′ = −5y. Le rette rappresentate con punti e punti-linee sono ivalori di f(t, y) calcolati sull’ascissa j + 1.

proseguendo a partire dal punto (tj, yj) lungo la direzione che ha pendenza pari ay′j+1 = (yj+1 − yj)/h = f(tj+1, yj+1), mentre per lo schema esplicito tale direzionee pari a y′j = (yj+1 − yj)/h = f(tj, yj). Quindi, nello schema implicito il nuovopunto e ottenuto utilizzando come pendenza la funzione calcolate in tj+1, ed essendof(t, y) = −5y decrescente (y(t) = exp(−5t)), la pendenza sara, in valore assoluto,decrescente e sara inferiore (sempre in valore assoluto) a quella vera, da cui si vedeche lo schema implicito sovrastima la soluzione analitica (Figura 4.3). Nel caso diEulero Esplicito, la situazione e analoga, con la differenza che la direzione di ricercain ogni punto ha una pendenza che in questo caso e sempre sovrastimata (in valoreassoluto), da cui la soluzione esatta e sempre sottostimata.

Metodo di Crank-Nicolson. Abbiamo visto che gli schemi di Eulero sono rica-vati a partire dalla serie di Taylor trascurando per entrambi i termini proporzionalia h2. Il metodo di Crank-Nicolson cerca di migliorare l’accuratezza trascurandoi termini O(h3). Per fare cio senza complicare l’implementazione dello schema siparte dal fatto che sottraendo tra di loro le due serie di Taylor scritte prima, si ha

98 CAPITOLO 4. SOLUZIONE DI ODE

cancellazione dei termini proporzionali a h2:

y(tj+1) = y(tj) + hy′(tj) +h2

2y′′(tj) +

h3

6y′′′(tj) +O(h4)

y(tj) = y(tj+1)− hy′(tj+1) +h2

2y′′(tj+1)−

h3

6y′′′(tj+1) +O(h4),

da cui si ricava immediatamente che:

y′(tj+1) + y′(tj) ≈ y′j+1 + y′j =yj+1 − yj

h.

Scrivendo la (4.1) come media tra il passo tj+1 e il passo tj, otteniamo immediata-mente il metodo di Crank-Nicolson:

yj+1 = yj +h

2[f(tj+1, yj+1) + f(tj, yj)] . (4.8)

Lo schema e di tipo implicito, perche a secondo membro l’incognita yj+1 e contenutaall’interno della f(t, y). L’algoritmo sara dunque simile a quello di Eulero Implicito.

Algorithm Crank-NicolsonInput: t0, y0, N , h;for j = 0, 1, . . . , N − 1

1. tj+1 = tj + h

2. fj = f(tj, yj) = 0

3. Risolvere yj+1 − yj − 0.5h [f(tj+1, yj+1) + fj] = 0

end for

Riproduciamo gli stessi esempi riportati sopra, ma con il metodo di Eulero all’in-dietro. Si noti che in questo caso, essendo la f(t, y) lineare in y, anche tale schemadiventa esplicito.

Esempio 4.2.5. Caso di f(t, y) = −y(t), con t0 = 0, T = 1 e y0 = 1. Sostituendof = −y in (4.8), otteniamo:

yj+1 =2− h2 + h

yj.

Utilizzando h = 0.1, da cui N = 10, otteniamo la seguente tabella:

4.2. METODI A UN PASSO 99

j yj y(tj)0 1 10.1 0.904761905 0.9048374180.2 0.818594104 0.8187307530.3 0.740632761 0.7408182210.4 0.670096308 0.6703200460.5 0.606277612 0.606530660.6 0.548536887 0.5488116360.7 0.496295278 0.4965853040.8 0.449029061 0.4493289640.9 0.406264389 0.406569661 0.367572542 0.367879441

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1t

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

y

Crank-NicolsonSoluzione Analitica

Come si vede il metodo fornisce approssimazioni molto migliori rispetto ai metodi diEulero. Il motivo e proprio nell’aver trascurato termini di ordine superiore rispettoa quelli trascurati nel ricavare i metodi di Eulero.

Esempio 4.2.6. Proviamo ora ad applicare il metodo nel caso di f(t, y) = −5y(t),con t0 = 0, T = 3 e y0 = 1. Sostituendo f = −5y in (4.5), otteniamo:

yj+1 =2− 5h

2 + 5hyj.

Utilizzando h = 0.3, da cui N = 10, otteniamo la seguente tabella:

j yj y(tj)0 1 10.3 0.217391304 0.223130160.6 0.047258979 0.0497870680.9 0.010273691 0.0111089971.2 0.002233411 0.0024787521.5 0.000485524 0.0005530841.8 0.000105549 0.000123412.1 2.29454E-05 2.75364E-052.4 4.98813E-06 6.14421E-062.7 1.08438E-06 1.37096E-063 2.35734E-07 3.05902E-07

0 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3t

0

0.2

0.4

0.6

0.8

1

y

Crank-NicolsonSoluzione Analitica

Anche in questo caso il metodo di Crank-Nicolson produce soluzioni piu accuratedei metodi di Eulero, pur essendo stabile (perche implicito).

100 CAPITOLO 4. SOLUZIONE DI ODE

4.2.1 Deduzione degli schemi per mezzo di formule di qua-dratura

In maniera equivalente, si posssono ricavare le formule dei tre schem studiati inprecedenza nel seguente modo. Integriamo l’equazione differenziale tra i due puntitj e tj+1, ottenendo:

y(tj+1) = y(tj) +

∫ tj+1

tj

f(τ, y(τ)) dτ

Approssimando l’integrale a secondo membro con una formula di quadratura otte-niamo i diversi schemi. I metodi di Eulero esplicito e implicito si ottengono ap-prossimando il valore dell’integrale con l’area dei rettangoli che hanno per baseh = tj+1 − tj e altezza y(tj) e y(tj+1), rispettivamente; il metodo di Crank-Nicolsonsi ottiene utilizzando la formula dei trapezi:

y(tj+1) ≈ y(tj) + hf(tj, y(tj)),

y(tj+1) ≈ y(tj) + hf(tj+1, y(tj+1)),

y(tj+1) ≈ y(tj) +h

2[f(tj+1, y(tj+1)) + f(tj, y(tj))] ,

e sostituendo yj al posto di y(tj).

4.3 Convergenza degli schemi

Si vuole analizzare la convergenza della successione yj verso la soluzione analiticay(tj). Quindi, definito l’errore e(tj) = yj−y(tj), in maniera molto naturale chiediamoche l’errore tenda a zero al tendere a zero dei termini che abbiamo trascurati, quindiper h→ 0. Anche alla luce degli esperimenti precedenti, ci domandiamo allora:

1. la soluzione numerica tende alla soluzione vera (cioe l’errore tende a zero) perh→ 0?

2. e quanto velocemente?

3. qual’e il valore massimo di h che mi ritorna una soluzione numerica qualitati-vamente vicina a quella vera?

Siccome l’errore e definito per tutti i punti tj, si puo richiedere che il massimo modulodell’errore calcolato tra tutti i punti tj tenda a zero. Abbiamo quindi la seguente:

Definizione 4.3.1 (Convergenza). Uno schema per la soluzione del problema diCauchy (4.1) e convergente se:

limh→0

max0≤j≤N

| yj − y(tj) | = 0

4.3. CONVERGENZA DEGLI SCHEMI 101

h eh,EE eh,EI eh,CNeh,EE

eh−1,EE

eh,EI

eh−1,EI

eh,CN

eh−1,CN

0.2 5.75E-02 7.42E-02 2.62E-03 – – –0.1 2.49E-02 3.62E-02 6.21E-04 2.31 2.05 4.230.05 1.16E-02 1.78E-02 1.51E-04 2.15 2.03 4.110.025 5.60E-03 8.28E-03 3.48E-05 2.07 2.15 4.33

Tabella 4.1: Norma dell’errore per i metodi di EE, EI, e CN, e rapporto tra due valoriconsegcutivi consecutivi. Si nota che i metodi di Eulero hanno un rapporto di circa2 mentre tale rapporto per Crank-Nicolson e circa 4, indicando quindi convergenzalineare (O(h)) e quadratica (O(h2)), rispettivamente.

Accorgendoci che l’argomento del limite e una norma “funzionale”, possiamosostituire la precedente con una norma qualsiasi, e cioe:

limh→0‖yh − y(t)‖ = 0

dove yh = {y0, y1, . . . , yN}. Per esempio, si puo utilizzare la norma L2 definita da:

‖g(t)‖ =

[∫I

| g(t) |2 dt] 1

2

4.3.1 Convergenza sperimentale

Analizziamo ora sperimentalmente la convergenza cosı definita per gli schemi ricavatipiu sopra. Per fare questo calcoliamo l’errore per ogni j e andiamo a valutare lanorma sfruttando il fatto che tj+1 − tj = h e costante:

eh,xx = ‖yh − y(t)‖ ≈

[h∑N=1

j=0 | yj − y(tj) |2] 1

2

[h∑N=1

j=0 | y(tj) |2] 1

2

,

dove xx = EE, EI, CN per Eulero esplicito, Eulero implicito e Crank-Nicolson.Calcoliamo dunque la norma precedente per valori decrescenti del passo di inte-grazione h, ad esempio in sequenza geometrica di passo 0.5, a partire da h =0.2.

La tabella 4.1 riporta i risultati ottenuti, assieme al rapporto tra due errorisuccessivi. Si nota che gli schemi di Eulero si comportano in maniera molto simile,mostrando una convergenza del primo ordine (O(h)), mentre Crank-Nicolson mostrauna convergenza di ordine 2 (O(h2)). Bisogna quindi formalizzare queste osservazioni

102 CAPITOLO 4. SOLUZIONE DI ODE

0.3 0.6 0.9t

0

0.2

0.4

y

Eulero ImplicitoSoluzione Analitica

τj+1(h)

Figura 4.4: Interpretazione geometrica dell’errore di troncamento locale (indicatocon τj+1(h)) per il metodo di Eulero Esplicito applicato all’esempio 4.2.2,

e studiare quindi il comportamento degli schemi in generale. Come per tutti glischemi, il modo piu diretto per studiare la convergenza e quello di verificare laconsistenza dello schema e la sua stabilita.

4.3.2 Consistenza e errore di troncamento.

La prima osservazione da fare riguarda l’ordine di convergenza. Non sorprendente-mente gli schemi convergono alla soluzione con lo stesso ordine in h dei termini chesono stati trascurati negli sviluppi di Taylor. Quindi la velocita di convergenza efunzione del cosiddetto errore di troncamento. Bisogna pero distinguere tra erroredi troncamento locale e errore di propagazione. Il primo e l’errore che si commetteavanzando di un passo (da tj a tj+1), assumendo di partire dal valore esatto dellasoluzione (y(tj)). Il secondo e l’errore di propagazione derivante dall’accumulo deglierrori di troncamento locali. Quindi possiamo scrivere:

ej+1 = y(tj+1)− yj+1 = y(tj+1)− y∗j+1 + y∗j+1 − yj+1

dove y∗j+1 e la soluzione ottenuta dallo schema a partire dalla soluzione vera y(tj).

In generale, scriviamo tutti gli schemi precedenti (e tutti gli schemi ad un passo)come:

yj+1 = yj + hΦ(tj, yj, fj;h), 0 ≤ j ≤ N − 1, (4.9)

4.3. CONVERGENZA DEGLI SCHEMI 103

dove la funzione Φ(·, ·, ·;h) individua il particolare schema2 Sostituendo la soluzionevera y(t) nella precedente otteniamo:

y(tj+1) = y(tj) + hΦ(tj, y(tj), f(tj, y(tj));h) + εj+1,

dove il termine εj+1 e il residuo al passo j + 1. Scriviamo tale residuo nella forma:

εj+1 = hτj+1(h)

dove τj+1(h) e l’errore di troncamento locale. L’errore di troncamento non globalema locale massimo (verificare) e quindi dato da:

τ(h) = max0≤j≤N−1

τj+1(h). (4.10)

La funzione Φ e tale che:

limh→0

Φ(tj, y(tj), f(tj, y(tj));h) = f(tj, y(tj)) j = 1, 2, . . . , N.

Ricordando la (4.4), per cui si ha y(tj+1) − y(tj) = hy′(tj) + O(h2), si vede subitoche la precedente implica che tj+1(h)→ 0 al tendere di h a zero, da cui risulta:

limh→0

τ(h) = 0,

che implica che lo schema (4.9) e consistente, cioe l’errore locale di troncamentotende a zero con h. Inoltre si dice che lo schema ha ordine di convergenza o diaccuratezza pari a p se

τ(h) = O(hp).

Esempio 4.3.2 (Errore di troncamento per Eulero Esplicito). Per il metodo diEulero esplicito il residuo vale:

εj+1(h) = | y(tj+1)− y∗j+1 | = | yj+1 − y(tj)− hf(tj, y(tj)) | =h2

2| y′′(ξ) |,

con ξ ∈ I punto opportuno (derivante dall’applicazione del teorema del valor medio).L’errore di troncamento locale e dunque:

τj+1(h) =h

2| y′′(ξ) |,

mostrando che lo schema e del primo ordine di accuratezza, come verificato speri-mentalmente in precedenza. In Figura 4.4 si riporta un’interpretazione geometricadell’errore di troncamento locale e dell’errore di propagazione.

Si vede facilmente dalla loro derivazione con la formula di Taylor che i metodiprecedentement studiati sono tutti consistenti; gli schemi di Eulero hanno accura-tezza p = 1, mentre Crank-Nicolson ha accuratezza p = 2, come evidenziato anchedagli esperimenti numerici.

2Ad esempio, per EE: Φ(tj , yj , fj , h) = f(tj , yj).

104 CAPITOLO 4. SOLUZIONE DI ODE

4.3.3 Stabilita

La stabilita di uno schema viene definita in maniera analoga alla stabilita definita peril problema di Cauchy (cf. 4.1.3) il caso in cui h→ 0. Ovviamente, siccome gli errorilocali (commessi ad ogni passo) si accumulano all’aumentare del numero di passidi integrazione, la stabilita implichera che tali errori non vengano amplificati dalloschema. In questo caso bisogna considerare un punto fissato tj ∈ I = [t0, T ], con Tlimitato, e vedere cosa succede a piccole perturbazioni della soluzione al tendere dih a zero; siccome tj = t0 + jh, bisogna far tendere contemporanemante j all’infinitoin modo che:

limh→0j→∞

tj = t

Abbiamo dunque la seguente:

Definizione 4.3.3 (Zero-stabilita). 3 Uno schema ad un passo (eq. (4.9)) si dicezero-stabile se perturbazioni alla soluzione rimangono limitate al tendere di h a zero.

Lo schema esplicito (4.9) caratterizzato da una Φ(t, y, f(t, y(t);h) lipschitziana,e zero stabile. Infatti, una Φ(t, y, f(t, y(t);h) lipschitziana e caratterizzata da:

| Φ(tk, yk, f(tk, yk);h)− Φ(tk, zk, f(tk, zk);h) | ≤ Λ| yk − zk |.

Indicando con wk = yk − zk, si ha facilmente:

wk+1 = wk + h [Φ(tk, yj, f(tk, yk);h)− Φ(tk, zj, f(tk, zk);h)] + hδk+1.

La somma per k = 0, 1, . . . , j risulta:

wj+1 = w0 + h

j∑k=0

δk+1h

j∑k=0

[Φ(tk, yj, f(tk, yk);h)− Φ(tk, zj, f(tk, zk);h)] .

Per la lischitzianita di Φ si ha:

| wj+1 | ≤ | w0 |+ h

j∑k=0

δk+1 + hΛ

j∑k=0

| wk |

3 In maniera equivalente si puo dare la seguente definizione di zero-stabilita:

Definizione 4.3.4 (Zero-stabilita). Lo schema ad un passo (4.9) per la soluzione di (4.1) si dicezero-stabile se esiste h0 > 0 e una costante C > 0 tali che per ogni h ∈ (0, h0] e ε > 0 piccolo apiacere, per | δj | ≤ ε:

| yj − zj | ≤ ε ∀0 ≤ j ≤ N,dove yj e la soluzione numerica del problema (4.1), e zj e la soluzione numerica del problema (4.3).

4.3. CONVERGENZA DEGLI SCHEMI 105

Usando la versione discreta del lemma di Gronwall 4 si ottiene subito:

| wj | ≤ ε (1 + hj) exp (Λhj) .

La dimostrazione si conclude notando hj ≤ T .Una dimostrazione simile porta al seguente:

Teorema 4.3.2 (Teorema di Lax-Richtmeyer). Uno schema zero-stabile e consi-stente e convergente.

Si noti che i metodi di Eulero sono zero-stabili perche la (4.1) e ben posta.Siccome sono consistenti, sono anche convergenti.

Analisi di convergenza per il metodo di Eulero esplicito

Definiamo come prima l’errore al passo tj+1 come ej+1 = y(tj+1)−yj+1 e indichiamocon y∗j+1 la soluzione ottenuta dopo un passo del metodo di Eulero partendo perodalla soluzione esatta:

y∗j+1 = y(tj) + hf(tj, y(tj)).

Possiamo scrivere:

ej+1 =(y(tj+1)− y∗j+1

)+(y∗j+1 − yj+1

).

Il primo termine e il residuo (h volte l’errore di troncamento locale), mentre ilsecondo considera l’accumulo di tale errore nel tempo. Quindi possiamo scrivere:

| ej+1 | ≤ h| τj+1 |+ (1 + hL)| ej |.

4

Lemma 4.3.1 (Lemma di Gronwall discreto). Si indichi con Kn una successione non negativa econ ϕn una successione tale che, dato ϕ0 ≤ g0:

ϕj ≤ g0 +

j−1∑k=0

pk +

j−1∑k=0

Kkϕk.

Se g0 ≥ 0 e pj ≥ 0 per ogni j ≥ 0, allora:

ϕj ≤

(g0 +

j−1∑k=0

pk

)exp

(j−1∑k=0

Kkϕk

).

106 CAPITOLO 4. SOLUZIONE DI ODE

Maggiorando l’errore di troncamento locale con quello globale si ottiene per ricor-renza e notando che e0 ≤ τ(h):

| ej+1 | ≤[1 + (1 + hL) + . . .+ (1 + hL)j

]h| τ(h) | ≤ exp(L(tj+1 − t0))− 1

Lτ(h),

avendo notato che (1 + hL) ≤ ehL e tj+1 = t0 + (j + 1)h. Dalla consistenza delloschema di Eulero, si ricava immediatamente che:

τj+1(h) =h

2y′′(ξ), ξ ∈ [tj, tj+1],

e indicando con M = maxξ∈I | y′′(ξ) |, si ha subito la convergenza (al primo ordinedi accuratezza p = 1) dello schema di Eulero esplicito:

| ej | ≤exp(L(tj+1 − t0))− 1

L

M

2h.

Abbiamo fatto i conti fin qui senza tenere in considerazione gli errori di arrotonda-mento. Se lo facessimo, non potremmo piu concludere che l’errore tende a zero conh, ma ci sara un termine aggiuntivo nella maggiorazione dell’errore proporzionale a1/h (con costante piccola, peraltro). Esistera quindi un valore h∗ che minimizzeral’errore, e al di sotto del quale l’errore comincera a crescere, essendo l’accumlazionedell’errore di arrotondamento preponderante rispetto all’errore di troncamento. Ingenere, pero, h∗ e praticamente molto piccolo, per cui questo effetto non si vede pervalori ragionevolmente piccoli di h.

4.3.4 Assoluta stabilita

La zero stabilita non spiega il comportamento visto nell’esempio 4.2.2, dove si notaval’instabilita del metodo di Eulero in avanti. Infatti in questo caso il metodo esplicitoe stabile solo per h < 0.2.

Bisogna quindi ricorrere alla nozione di assoluta stabilita, che intende verificarela stabilita dello schema a h fissato e per valori di T che aumentano. Tale concetto distabilita pero dipende dalla particolare forma di f(t, y(t)), per cui si deve far ricorsoa quella che si chiama l’equazione test, ovvero:

y′ = λy(4.11)

y(0) = 1 (4.12)

la cui soluzione e y(t) = eλt. Anche se in realta λ ∈ C, noi assumeremo per semplicitaλ ∈ R. E’ evidente che la soluzione tendera a zero per t che tende all’infinito seλ < 0, altrimenti tendera all’infinito. Quindi per λ < 0, la stabilita dovra richiedere

4.3. CONVERGENZA DEGLI SCHEMI 107

che le perturbazioni alla soluzione numerica tendano a zero all’aumentare del tempo.Nel caso di λ > 0 la definizione di stabilita dovra tenere conto invece della possibilecrescita nel tempo delle perturbazioni ma non tanto da distruggere l’accuratezzadello schema. Di nuovo per semplicita assumeremo λ < 0, rimandando al testo [3]per approfondimenti.

Sotto queste ipotesi, possiamo dare la seguente definizione di stabilita assoluta:

Definizione 4.3.5 (Assoluta stabilita). Lo schema ad un passo (4.9) si dice as-solutamente stabile se, applicato all’equazione test (4.11) con λ < 0, la soluzionenumerica yj soddisfa:

limtj→∞

| yj | → 0

Si noti che l’equazione test in realta puo essere pensata come la linearizzazione delgenerico problema di Cauchy (4.1). Infatti, linearizzando (4.1) si ottiene il seguenteproblema di Cauchy:

y′(t) =∂f

∂y(t, y(t))y(t)

y(0) = 1

da cui l’equazione test con λ = ∂f∂y

(y, y(t)).

Stabilita degli schemi di Eulero e Crank-Nicolson

Studiamo ora la stabilita assoluta per gli schemi di Eulero esplicito ed implicito, e loschema di Crank-Nicolson, per dare un senso compiuto ai risultati degli esperimentiriportati piu sopra.

Metodo di Eulero in avanti. Applicando il metodo di Eulero in avanti all’equa-zione test (4.11) si ottiene:

yj+1 = yj + λhyj = (1 + hλ)yj.

Per induzione, partendo da j = 0, si ottiene immediatamente:

yj = (1 + hλ)j

che tende a zero se e solo se:| 1 + hλ | < 1

da cui la condizione di assoluta stabilita per il metodo di Eulero esplicito:

0 < h <2

−λ

108 CAPITOLO 4. SOLUZIONE DI ODE

0 0.5 1t

-2

-1

0

1

2

y j

e-10t

h=0.01h=0.05h=0.15h=0.2h=0.3

Eulero Esplicito

Figura 4.5: Soluzioni numeriche dell’equazione test con λ = −10 ottenute conil metodo di Eulero esplicito per diversi valori di h a confronto con la soluzioneanalitica.

Nel caso λ = −1 (esempio (4.2.1)) si ottiene che lo schema di Eulero esplicito estabile se h < 2. Nel caso λ = −5 (esempio (4.2.2)) lo schema risulta stabile seh < 0.4. Si noti che il risultato precedente ci dice che la soluzione tende a zeroper h < 0.4. Un’analisi piu approfondita rivela pero che la soluzione numerica saraoscillante ((1 +hλ) < 0) per 0.2 < h < 0.4, mentre tendera a zero monotonicamente(con valori sempre positivi, e quindi qualitativamente in accordo con la soluzioneanalitica) per h < 0.2. Nel caso λ = −10 invece lo schema e stabile solo se h < 0.2,mentre la soluzione non oscilla se h < 0.1, come si vede dalla figura 4.5, dove siriportano i risultati ottentuti con Eulero in avanti per diversi valori di h.

Metodo di Eulero all’indietro. Applichiamo ora il metodo di Eulero all’indietro(o implicito)all’equazione test (4.11)::

yj+1 = yj + λhyj+1 =1

1− hλyj.

Per induzione, partendo da j = 0, si ottiene immediatamente la condizione distabilita:

| 11−hλ | < 1,

4.3. CONVERGENZA DEGLI SCHEMI 109

sempre verificata per qualsiasi h (a patto che sia λ < 0, ovviamente). Lo schemarisulta quindi incondizionatamente stabile, cioe stabile per qualsiasi valore di h, comemenzionato precedentemente negli esempi 4.2.3 e 4.2.4. Anche la monotonia dellasoluzione e assicurata per qualsiasi valore di h, per λ < 0.

Metodo di Crank-Nicolson. E’ facile intuire che proprieta di stabilita incon-dizionata e comune agli schemi impliciti, per cui anche Crank-Nicolson dovrebbeesserlo. Infatti:

yj+1 = yj +λh

2(yj+1 + yj) =

2 + hλ

2− hλyj,

da cui, sempre per induzione, la condizione di stabilita diventa:∣∣∣∣2 + hλ

2− hλ

∣∣∣∣ < 1

da cui segue immediatamente la stabilita incondizionata dello schema di Crank-Nicolson, mentre chiaramente la monotonia della soluzione nomerica non e assicuratase non per h < 2/| λ |.

4.3.5 Implementazione metodi impliciti

Riprendiamo di nuovo l’algoritmo di Eulero implicito:

Algorithm Eulero ImplicitoInput: t0, y0, N , h;for j = 0, 1, . . . , N − 1

1. tj+1 = tj + h

2. Risolvere yj+1 − yj − hf(tj+1, yj+1) = 0

end for

Il passo al punto 2. richiede di risolvere un problema non lineare per yj+1. Talepasso viene implementato utilizzando un metodo iterativo alla Newton. Chiamiamox la nostra incognita: yj+1 = x, cosı che il problema diventa:

Trovare lo zero della funzione g(x), trovare cioe la soluzione della equazioneg(x) = 0, dove:

g(x) = x− yj − hf(tj+1, x) = 0.

Possiamo usare un’iterazione di Newton-Raphson oppure di Picard. Andiamo aformalizzare nel dettaglio il caso di Picard, e andiamo a verificare le condizioni diconvergenza di tale schema. Indicando con r l’indice di iterazione nonlineare, loschema di Picard si pu scrivere come:

x(r+1) = g(x(r)) = x(r) − yj − hf(tj+1, x(r)).

110 CAPITOLO 4. SOLUZIONE DI ODE

Lo schema sopra converge se | g′(x) | < 1 per x ∈ Iξ, dove Iξ e un intorno del puntofisso. La derivata di g e:

g′(x) = 1− h∂f∂x

(tj+1, x),

da cui si ricava una condizione sufficiente per la convergenza dello schema di Picardsimile alla condizione di assoluta stabilita per lo schema di Eulero esplicito:∣∣∣∣1− h∂f∂x (tj+1, x)

∣∣∣∣ < 1

che implica una restrizione al passo di integrazione che limita l’utilizzo di questoschema:

h

∣∣∣∣∂f∂x (tj+1, x)

∣∣∣∣ < 2.

Se invece del metodo di Picard, usiamo lo schema di Newton-Raphson non siha piu alcuna restrizione sul passo di integrazione richiesta dalla convergenza delloschema di risoluzione nonlineare. Tutto questo puo essere ripetuto anche per loschema di Crank-Nicolson. In conclusione, dal punto di vista computazionale, equasi sempre preferibile usare uno schema implicito al posto di uno esplicito assiemeallo schema di Newton-Raphson, anche se la cosa deve essere verificata sul particolareproblema (e quindi la particolare f(t, (y(t))) che si vuole risolvere.

Bibliografia

[1] G. Gambolati. Lezioni di metodi numerici per ingegneria e scienze applicate.Cortina, Padova, Italy, 2 edition, 2002. 619 pp.

[2] C. T. Kelley. Iterative Methods for Linear and Nonlinear Equations. SIAM,Philadelphia, 1995.

[3] A. Quarteroni, R. Sacco, and F. Saleri. Numerical Mathematics. Springer, Berlin,Heidelberg, second edition, 2007.

[4] Y. Saad. Iterative Methods for Sparse Linear Systems. Second edition. SIAM,Philadelphia, PA, 2003.

[5] J. R. Shewchuk. An introduction to the conjugate gradient method without theagonizing pain. Technical report, Pittsburgh, PA, USA, 1994.

111