13.07.2015 Views

Appunti dalle lezioni di Calcolo Numerico - Esercizi e Dispense

Appunti dalle lezioni di Calcolo Numerico - Esercizi e Dispense

Appunti dalle lezioni di Calcolo Numerico - Esercizi e Dispense

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ivINDICE- Bibliografia 111


Elenco delle figure1.1 Grafico <strong>di</strong> un una funzione f(x) che ammette ra<strong>di</strong>ce ξ (sinistra) e chenon ammette alcuna ra<strong>di</strong>ce (destra). . . . . . . . . . . . . . . . . . . 21.2 Rappresentazione grafica del problema del punto fisso e dello schema<strong>di</strong> Picard per la soluzione dell’equazione x 2 − 3x + 2 = 0 con funzione<strong>di</strong> punto fisso g 1 (x) = √ 3x − 2. . . . . . . . . . . . . . . . . . . . . . 61.3 Rappresentazione grafica del funzionamento metodo <strong>di</strong> Newton Raphsonper la soluzione dell’equazione f(x) = 0. . . . . . . . . . . . . . 122.1 A sinistra: vettori ortogonali: x e y sono ortogonali. Applicandoil Teorema <strong>di</strong> Pitagora alla coppia <strong>di</strong> vettori x e −y che formanoi cateti <strong>di</strong> un triangolo rettangolo e scrivendo l’uguaglianza (2.1) siricava imme<strong>di</strong>atamente 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). . . . . . . . . . . . . . . . . . 262.2 Interpretazione geometrica <strong>di</strong> un sistema lineare in R 2 . La soluzionedel sistema è il punto <strong>di</strong> intersezione delle due rette e cioè il vettorex ∗ = [2, −2] T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1 La curva ρ(E α ) in funzione <strong>di</strong> α . . . . . . . . . . . . . . . . . . . . . 413.2 Forma quadratica corrispondente al sistema lineare (2.5). A sinistrain alto è rappersentato il grafico in R 2 ; a destra in alto sonorappresentate le linee <strong>di</strong> livello; in basso il campo dei gra<strong>di</strong>enti. . . . . 443.3 Grafico della funzione f(x, y) = −(cos 2 x + cos 2 y) 2 e del campovettoriale ∇f(x, y) = (∂f/∂x, ∂f/∂y) T . . . . . . . . . . . . . . . . . 453.4 Grafico delle forme quadratiche (in R 2 ) rappresentative <strong>di</strong> a) unamatrice definita positiva, b) una matrice definita negativa, c) unamatrice semidefinita positiva (in realtà è singolare e si nota la linealungo la quale f(x) è minima e che corrisponde alle inifite soluzionedel sistema lineare corrispondente), d) una matrice indefinita (puntosella). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46v


ELENCO DELLE FIGUREvii4.1 Interpretazione geometrica della soluzione y := φ(t) del problema <strong>di</strong>Cauchy (4.1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.2 Discretizzazione dell’intervallo I = [t 0 , T ] in N sottointervalli <strong>di</strong> passo h 924.3 Interpretazione geometrica dello schema <strong>di</strong> Eulero Implicito per l’equazione<strong>di</strong>fferenziale y ′ = −5y. Le rette rappresentate con punti epunti-linee sono i valori <strong>di</strong> f(t, y) calcolati sull’ascissa j + 1. . . . . . 974.4 Interpretazione geometrica dell’errore <strong>di</strong> troncamento locale (in<strong>di</strong>catocon τ j+1 (h)) per il metodo <strong>di</strong> Eulero Esplicito applicato all’esempio 4.2.2,1024.5 Soluzioni numeriche dell’equazione test con λ = −10 ottenute con ilmetodo <strong>di</strong> Eulero esplicito per <strong>di</strong>versi valori <strong>di</strong> h a confronto con lasoluzione analitica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108


viiiELENCO DELLE FIGURE


Capitolo 1La soluzione <strong>di</strong> equazioninonlineariData una funzione algebrica o trascendente f che per semplicità consideriamo assumavalori in R, un’equazione nonlineare prende la forma <strong>di</strong>f(x) = 0 (1.1)Il numero ξ tale che f(ξ) = 0 si <strong>di</strong>ce soluzione o ra<strong>di</strong>ce <strong>di</strong> questa equazione. Cipossono essere più ra<strong>di</strong>ci <strong>di</strong> una equazione, cioè dati ξ 1 , ξ 2 , . . . , ξ n , si avrà f(ξ 1 ) =−0; f(ξ 2 ) = −0; . . . ; f(ξ n ) = −0. In generale, la ra<strong>di</strong>ce <strong>di</strong> una equazione, anchenelle con<strong>di</strong>zioni più favorevoli <strong>di</strong> continuità della funzione f, non può essere trovataanaliticamente se non in casi particolari (si pensi alle ra<strong>di</strong>ci <strong>di</strong> polinomi <strong>di</strong> gradomaggiore <strong>di</strong> 3). E’ quin<strong>di</strong> necessario ricorrere a tecniche numeriche. In questo casoperò non sarà possibile trovare la ra<strong>di</strong>ce esatta, ma a causa della limitatezza dellarappresentabilità dei numeri reali all’elaboratore, e a causa degli errori <strong>di</strong> arrotondamentosi può pensare <strong>di</strong> trovare solamente un‘approssimazione alla soluzione veraξ. Si dovrà quin<strong>di</strong> cercare <strong>di</strong> trovare quel numero ˆx che più si avvicina a ξ. In altritermini, fissata l’accuratezza desiderata, e cioè fissata una tolleranza tol, vogliamotrovare quel numero ˆx che approssimi la ra<strong>di</strong>ce a meno <strong>di</strong> tol:|ξ − ˆx| < tolLa grandezza ɛ = |ξ − ˆx| é chiamata l’errore. La conoscenza dell’errore richiedeconoscenza della ra<strong>di</strong>ce ξ. L’errore non ha quin<strong>di</strong> valore pratico, ma è molto utilenello stu<strong>di</strong>o delle proripetà degli schemi che andremo a stu<strong>di</strong>are. Al posto dellacon<strong>di</strong>zione sull’errore potremmo richiedere che:|f(ˆx)| < tole cioè che il residuo nonlineare sia minore della tolleranza. Ovviamente quest’ultimacon<strong>di</strong>zione non garantisce che la soluzione numerica ˆx approssimi effettivamente la1


2 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARIyyf(x)f(x)xξ x xFigura 1.1: Grafico <strong>di</strong> un una funzione f(x) che ammette ra<strong>di</strong>ce ξ (sinistra) e chenon ammette alcuna ra<strong>di</strong>ce (destra).ra<strong>di</strong>ce, ma rappresenta solamente una con<strong>di</strong>zione necessaria. Si veda per esempio lafigura 1.1 in cui nel punto ˆx la con<strong>di</strong>zione precedente potrabbe essere verificata peropportuni valori <strong>di</strong> tol ma la f(x) non ammette alcuna ra<strong>di</strong>ce 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 provePROBLEMA:trovare un’approssimazione numerica delle ra<strong>di</strong>ci dell’equazionex 2 − 3x + 2 = 0 (1.2)Le ra<strong>di</strong>ci vere <strong>di</strong> tale equazione sono facilmente calcolabili:ξ 1,2 = 3 ± √ 9 − 82ξ 1 = 1 ξ 2 = 3Per calcolare un’approssimazione della ra<strong>di</strong>ce ξ 2 con un metodo numerico proce<strong>di</strong>amocome segue. Esplicitiamo la x dalla (1.2), per esempio:x = g 1 (x) = √ 3x − 2 (1.3)equazione che ha evidentemente le stesse ra<strong>di</strong>ci. Utilizzando una calcolatrice tascabileè facile quin<strong>di</strong> costruire una tabella in cui dato un valore <strong>di</strong> partenza x 0 ilnuovo valore x 1 è calcolato valutando la funzione g 1 nel punto x 0 (x 1 = g 1 (x 0 )).Nella tabella seguente si riportano i risultati del proce<strong>di</strong>mento partendo da x 0 = 3e ripetendo il proce<strong>di</strong>mento per 7 volte:


1.1. PRIME PROVE 3x√g 1 (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.0837Si noti che nella prima colonna vi sono i valori della g 1 (x) calcolati nella riga precedente.I valori della seconda colonna approssimano via via sempre meglio il valoredella ra<strong>di</strong>ce ξ 2 = 2. Si <strong>di</strong>ce che questo proce<strong>di</strong>mento converge alla soluzione veraξ 2 , o in altri termini x k+1 (= g(x k )) → ξ 2 , ove il pe<strong>di</strong>ce k in<strong>di</strong>ca le varie righe dellatabella, chiamate anche iterazioni.Proviamo ora a cambiare la funzione g(x) esplicitando il termine lineare della(1.2) anzichè il termine quadratico. Otteniamo:x = g 2 (x) = x2 + 23(1.4)e costruiamo la stessa tabella a partire ancora da x 0 = 3 ma usando ora la funzioneg 2 (x):x g 2 (x)1 3 3.66672 3.6667 5.14813 5.1481 9.5011Come si verifica imme<strong>di</strong>atamente il proce<strong>di</strong>mento questa volta costruisce un’approssimazioneche si allontana sempre più dalla soluzione ξ 2 . Si <strong>di</strong>ce n questo caso cheil proce<strong>di</strong>mento <strong>di</strong>verge.Proviamo infine ad usare una terza funzione g 3 (x) data da:x = g 3 (x) = x2 − 22x − 3(1.5)Si noti che tale equazione ha come ra<strong>di</strong>ci esattaente ξ 1 e ξ 2 , come si può facilmentevedere sostituendo ad ambo i membri una delle due ra<strong>di</strong>ci arrivando così all’identità.Costruiamo la stessa tabella <strong>di</strong> prima:x g 3 (x)1 3 2.3333332 2.333333 2.0666673 2.066667 2.0039224 2.003922 2.000015e otteniamo una ottima approssimazione già alla quarta iterazione. Ci si domandaquin<strong>di</strong> come si fa a costruire uno schema che converga alla soluzione esatta, e,


4 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARIuna volta costruito lo schema, come si fa a vedere quanto velocemente converge.Collegato a questo c’è da domandarsi come si fa a decidere quante iterazioni fare, oin altri termini, qual’è 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 è definito intuitivamente dalla <strong>di</strong>fferenza tra lasoluzione approssimata x k e la soluzione vera ξ 2 :ɛ g 1 (ɛ)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ɛ g 2 (ɛ)1 1 1.66672 1.6667 3.14813 3.1481 7.5011ɛ g 3 (ɛ)1 1 0.3333332 0.333333 0.0666673 0.066667 0.0039224 0.003922 0.000015Dalle tabelle si nota che gli errori tendono a zero nello stesso modo con cui lasoluzione approssimata tende alla soluzione vera. Nel primo caso (g 1 ) possiamofacilmente verificare che il rapporto <strong>di</strong> riduzione dell’errore ad ogni iterazione è paria circa 0.73, i.e. ɛ 7 /ɛ 6 ≈ ɛ 6 /ɛ 5 ≈ 0.73) e cioè:ɛ 6 ≈ 0.73ɛ 5 e ɛ 7 ≈ 0.73ɛ 6Nel caso <strong>di</strong> g 3 invece tale rapporto tende a zero mentre è una costante il rapporto fral’errore corrente e il quadrato dell’errore precedente: ɛ 4 /ɛ 2 3 ≈ ɛ 3 /ɛ 2 2 ≈ 1, che significa:e cioè:ɛ 3 ≈ ɛ 2 2 e ɛ 4 ≈ ɛ 2 3Per vedere meglio perchè succede così calcoliamo la derivata prima della funzioneg e la valutiamo nella ra<strong>di</strong>ce:g ′ 1(x) =32 √ 3x − 2 | x=2 = 3/4 (< 1)g ′ 2(x) = 2 3 x| x=2 = 4/3 (> 1)g 1(x) ′ = 2x2 − 6x + 4| x=2 = 0 (< 1)2x − 3Empiricamente possiamo quin<strong>di</strong> affermare che ove la derivata prima <strong>di</strong> g è minore<strong>di</strong> 1 lo schema converge. Inoltre, g ′ 1(ξ 2 ) è una buona approssimazione del fattore <strong>di</strong>riduzione dell’errore mentre ciò non è vero nel caso <strong>di</strong> g 3 , ove si ha una riduzionedell’errore quadratica e una convergenza molto più veloce.Per quanto riguarda invece il numero <strong>di</strong> iterazioni dopo il quale fermarsi, bisognaanche qui ragionare sulle tabelle degli errori. In un problema pratico uno ha già in


1.2. LO SCHEMA DELLE ITERAZIONI SUCCESSIVE (O DI PICARD) 5mente qual’è l’errore che è <strong>di</strong>sposto ad accettare. In questo caso basta fissare unlimite (tolleranza) per l’errore ed iterare fin a che l’errore (in valore assoluto) <strong>di</strong>ventainferiore a questo limite. Per esempio se fissiamo una tolleranza T OLL = 0.001,pochi conti con la calcolatrice tascabile mostrano che con la g 1 ci vogliono almeno23 iterazioni per sod<strong>di</strong>sfare tale criterio <strong>di</strong> arresto (|ɛ 23 | < T OLL), mentre per g 3 ilcriterio è sod<strong>di</strong>sfatto già alla 4 iterazione (|ɛ 4 | < T OLL).Un altro modo <strong>di</strong> porsi il problema è quello <strong>di</strong> chiedersi qual’è il valore della <strong>di</strong>fferenzatra due soluzioni successive al <strong>di</strong> sotto del quale le due approssimazioni possonoessere considerate equivalenti. In questo caso il controllo non è più fatto utilizzandol’errore ma lo scarto (la <strong>di</strong>fferenza tra due approssimazioni successive). Questomodo <strong>di</strong> lavorare è in realtà l’unico <strong>di</strong>sponibile nella pratica, poichè la conoscenzadell’errore richiederebbe la conoscenza della soluzione vera.1.2 Lo schema delle iterazioni successive (o <strong>di</strong> Picard)Lo schema visto in precedenza è un ben noto algoritmo che prende il nome <strong>di</strong> schemadelle iterazioni successive o <strong>di</strong> Picard. Si costruisce una successione <strong>di</strong> approssimantidella ra<strong>di</strong>ce utilizzando la seguente formula ricorrente:x k+1 = g(x k ) (1.6)dove l’in<strong>di</strong>ce k viene chiamato iterazione.Lo schema precedente risolve il classico problema del “punto fisso”, e cioè trovareil valore della x ∈ R tale chex = g(x) (1.7)Graficamente questo problema consiste nel trovare il punto <strong>di</strong> intersezione ξ tra laretta y = x e la curva y = g(x), come evidenziato in Figura 1.2, ove si vede anchela convergenza dello schema <strong>di</strong> Picard.Un algoritmo per lo schema <strong>di</strong> Picard implementabile all’elaboratore può esseredescritto nel modo seguente. Si noti che nello scrivere un algoritmo utilizzeremo unlinguaggio simile ad un linguaggio <strong>di</strong> programmazione ma utile per una descrizione“matematica” dell’algoritmo. Alcune notazioni sono tipiche della scrittura degli algoritmi.Per esempio il simbolo := denota il concetto <strong>di</strong> assegnazione, per cui primasi valuta il valore che l’espressione a destra del simbolo assume e solo successivamentetale valore viene assegnato alla variabile a sinistra del simbolo. La “keyword”Finchè in<strong>di</strong>vidua quello che in gergo informatico si chiama ciclo While, per cui siripete in successione il gruppo <strong>di</strong> righe comprese tra la “keyword” Finchè e quella


6 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARIyy=xg(x )0g(x )1y=g(x)ξ1ξ2x 2x 1x 0xFigura 1.2: Rappresentazione grafica del problema del punto fisso e dello schema <strong>di</strong>Picard per la soluzione dell’equazione x 2 − 3x + 2 = 0 con funzione <strong>di</strong> punto fissog 1 (x) = √ 3x − 2.


1.2. LO SCHEMA DELLE ITERAZIONI SUCCESSIVE (O DI PICARD) 7Fine Finchè se la con<strong>di</strong>zione scritta tra parentesi subito a destra del Finchè è sod<strong>di</strong>sfatta.Non appena tale con<strong>di</strong>zione non è verificata, si esce dal ciclo e si continuacon le istruzioni che seguono la “keyword” <strong>di</strong> chiusura ciclo (Fine Finchè).algoritmo <strong>di</strong> Picard I:data una soluzione iniziale x 0 ;per k = 1, 2, . . . , s fino a convergenza:1. x k+1 = g(x k )Questo algoritmo non è però completamente implementabile, nel senso che bisognaspecificare più dettagliatamente cosa significa la frase “fino a convergenza”. Perfare ciò, come abbiamo visto, abbiamo bisogno <strong>di</strong> introdurre il concetto <strong>di</strong> scartoe <strong>di</strong> tolleranza. L’algoritmo seguente implementa lo schema <strong>di</strong> Picard in modo deltuto simile a quanto si fa con un linguaggio <strong>di</strong> programmazione:algoritmo <strong>di</strong> Picard II:data una soluzione iniziale x 0 ed una tolleranza T OLL;XK := x 0 ; SCART O := 2 ∗ T OLLFinchè SCART O > T OLL esegui:1. XKP 1 = g(XK)2. SCART O = |XKP 1 − XP |3. XK = XKP 1Fine Finchè.Si noti che senza l’istruzione 3 l’algoritmo non uscirebbe mai dal ciclo finchè.Infatti XKP 1 sarebbe sempre uguale a g(XK) visto che XK = x 0 non verrebbemai aggiornata. Un ulteriore controllo è però necessario: nel caso in cui il metodo<strong>di</strong>verge, l’algoritmo implementa un ciclo infinito visto che SCART O aumenta adogni iterazione. In questo caso il computer eseguirebbe le iterazioni per un numeromolto grande <strong>di</strong> iterazioni fino a che probabilmente il valore <strong>di</strong> SCART O o <strong>di</strong> XKP 1non <strong>di</strong>venti talmente grande da superare la capacità <strong>di</strong> 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 NONLINEARIesse non superino un numero massimo (IT MAX) prestabilito. Il seguente algoritmoimplementa cnahe questo controllo:algoritmo <strong>di</strong> Picard III:data una soluzione iniziale x 0 , una tolleranza T OLL e un numero massimo <strong>di</strong>iterazioni IT MAX;XK := x 0 ; SCART O := 2 ∗ T OLL; IT ER = 0;Finchè (SCART O > T OLL e IT ER < IT MAX) esegui:1. IT ER := IT ER + 1;2. XKP 1 := g(XK);3. SCART O := |XKP 1 − XP |;4. XK := XKP 1;Fine Finchè.1.3 Convergenza dei meto<strong>di</strong> iterativiLo stu<strong>di</strong>o della convergenza degli schemi iterativi è un capitolo molto importantedel <strong>Calcolo</strong> <strong>Numerico</strong> e serve per trovare le con<strong>di</strong>zioni che garantiscono un funzionamentocorretto degli algoritmi in maniera tale da ottenere in un tempo ragionevoleuna buona approssimazione numerica della soluzione del problema considerato.Nel caso <strong>di</strong> meto<strong>di</strong> iterativi, come quello <strong>di</strong> Picard precedentemente descritto, lostu<strong>di</strong>o della convergenza riguarda essenzialmente lo stu<strong>di</strong>o della propagazione dell’erroreda un’iterazione all’altra. E’ utile cercare <strong>di</strong> rendere i concetti <strong>di</strong> convergenzain termini matematici, anche se non si pretende qui <strong>di</strong> riportare una trattazione formaledell’argomento, ritenendo sufficiente dare alcune spiegazioni intuitive che peròsono fondamentali per la comprensione dei meto<strong>di</strong> numerici.1.3.1 Stu<strong>di</strong>o della convergenza dello schema <strong>di</strong> PicardUno schema iterativo può essere sempre pensato come un insieme <strong>di</strong> regole percostruire una successione <strong>di</strong> numeri reali che tende alla soluzione vera del problema.In termini matematici, in<strong>di</strong>chiamo la convergenza con:{x k } → ξ


1.3. CONVERGENZA DEI METODI ITERATIVI 9dove x k denota la successione e ξ la soluzione analitica del problema matematico.Definiamo l’errore come la <strong>di</strong>fferenza tra la soluzione vera e la soluzioneapprossimata:ɛ k = ξ − x k (1.8)La successione {x k } converge alla ra<strong>di</strong>ce ξ se {ɛ k } tende a zero, e cioè:lim |e k| = 0 (1.9)k→∞Capire quanto velocemente questa successione converge a zero, significa anche capirequanto velocemente la successione x k converge alla soluzione vera ξ. Idealmente sivorrebbe che ad ogni iterazione k l’errore <strong>di</strong>minuisse, ma questo non sempre è vero.Se l’errore <strong>di</strong>minuisce <strong>di</strong> un fattore costante ad ogni iterazione, si può scrivere:Con<strong>di</strong>zioni per la convergenza|e k+1 | ≤ M|e k | k = 1, 2, . . . M < 1Per stu<strong>di</strong>are le con<strong>di</strong>zioni <strong>di</strong> convergenza, bisogna quin<strong>di</strong> stu<strong>di</strong>are in quali con<strong>di</strong>zionila con<strong>di</strong>zione (1.9) è verificata. Dall’equazione (1.6) e dal fatto che la soluzione veraξ sod<strong>di</strong>sfa la (1.7), si ottiene imme<strong>di</strong>atamente:ξ − x 1 = g(ξ) − g(x 0 ) = g ′ (ξ 0 )(ξ − x 0 )ove l’ultima espressione deriva dall’applicazione del teorema del valor me<strong>di</strong>o. Continuando,possiamo evidentemente scrivere:ξ − x 1 = g(ξ) − g(x 0 ) = g ′ (ξ 0 )(ξ − x 0 )ξ − x 2 = g(ξ) − g(x 1 ) = g ′ (ξ 1 )(ξ − x 1 ) = g ′ (ξ 1 )g ′ (ξ 0 )(ξ − x 0 )e quin<strong>di</strong> si verifica facilmente che:Ponendoɛ k = g ′ (ξ k−1 )g ′ (ξ k−2 ) · · · g ′ (ξ 1 )g ′ (ξ 0 )ɛ 0 (1.10)m = max j |g ′ (ξ j )|otteniamo la seguente maggiorazione per l’errore alla k-esima iterazione:|ɛ k | ≤ m k |ɛ 0 |da cui si ricava che se m < 1 la con<strong>di</strong>zione (1.9) è verificata. Bisogna stare attentiperchè questa <strong>di</strong>mostrazione mi <strong>di</strong>ce che se tutte le derivate nei punti opportuni ξ kinterni all’intervallo [x 0 , ξ] sono in valore assoluto minori <strong>di</strong> uno certamente lo schema


10 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARIconverge (con<strong>di</strong>zione sufficiente). E’ peraltro vero che se una <strong>di</strong> queste derivaterisulta avere modulo maggiore <strong>di</strong> 1, non<strong>di</strong>meno lo schema può ancora convergere.Inoltre, il punto x 0 non è stato specificato, per cui la con<strong>di</strong>zione <strong>di</strong> convergenza perlo schema <strong>di</strong> Picard risulta essere:|g ′ (x)| < 1 per x ∈ I ξ (1.11)ove I ξ in<strong>di</strong>ca un intorno del punto xi. Se la g ′ è una funzione continua, e|g ′ (ξ)| < 1 (1.12)esiste certamente un intorno <strong>di</strong> ξ per cui la (1.12) è verificata. Dalla Figura 1.2 sinota |g ′ (ξ 2 )| < 1 mentre |g ′ (ξ 1 )| > 1, come si può facilmente vedere confrontando lependenze delle tangenti nei punti ξ 1 e ξ 2 con la pendenza della retta y = x.Or<strong>di</strong>ne <strong>di</strong> convergenzaE’ facile constatare, guardando la (1.10), che l’errore alla k iterazione tenderà a zerotanto più velocemente quanto più il prodotto delle derivate sarà vicino allo zero. Perquantificare in maniera più precisa questo concetto, pren<strong>di</strong>amo l’errore cambiato <strong>di</strong>segno 1 per cuix k = ξ + ɛ 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 <strong>di</strong> Taylor la gattorno a ξ, ottenendo:ξ + ɛ k+1 = g(ξ) + ɛ k g ′ (ξ) + ɛ2 k2 g′′ (ξ) + ɛ3 k6 g′′′ (ξ) + · · ·da cui, ricordandosi ancora una volta che ξ = g(ξ):ɛ k+1 = ɛ k g ′ (ξ) + ɛ2 k2 g′′ (ξ) + ɛ3 k6 g′′′ (ξ) + · · · (1.14)Si vede subito che, essendo ɛ 2 k e ɛ3 k infinitesimi <strong>di</strong> or<strong>di</strong>ne superiore, il termine dominanteè proporzionale a |ɛ k | con costante <strong>di</strong> proporzionalità pari proprio a g ′ (ξ). E’chiaro inoltre che perchè |ɛ k+1 | < |ɛ k | dovrà essere |g ′ (ξ)| < 1. Se g ′ (ξ) ≠ 0, si haimme<strong>di</strong>atamente:∣|ɛ k+1 | ∣∣∣lim = lim g ′ (ξ) + ɛ kk→∞ |ɛ k | k→∞ 2 g′′ (ξ) + ɛ2 k6 g′′′ (ξ) + · · ·∣ = |g′ (ξ)|1 in questo caso ci interessano esclusivamente quantità prese in valore assoluto


1.3. CONVERGENZA DEI METODI ITERATIVI 11mentre se g ′ (ξ) = 0 si potrà scrivere:∣|ɛ k+1 | ∣∣∣ 1limk→∞ |ɛ 2 k | = limk→∞ 2 g′′ (ξ) + ɛ ∣ k∣∣∣6 g′′′ (ξ) + · · ·∣ = 12 g′′ (ξ)∣e in questo caso sono i termini <strong>di</strong> secondo or<strong>di</strong>ne a comandare la convergenza, cherisulta essere quin<strong>di</strong> più veloce. E’ quin<strong>di</strong> naturale definire l’or<strong>di</strong>ne p <strong>di</strong> convergenzae la costante M asintotica <strong>di</strong> convergenza (o dell’errore) con la relazione:|ɛ k+1 |limk→∞ |ɛ k | = M (1.15)pPer p = 1 la convergenza è anche detta lineare e necessariamente M < 1; per p = 2la convergenza è detta quadratica, e così via. Si noti nel caso della g 1 (x) stu<strong>di</strong>atain precedenza si ha p = 1 e M = |g ′ 1(2)| = 0.75, mentre per la g 3 (x) si ha p = 2 eM = g ′′3(ξ)/2 = 1.1.3.2 Lo schema <strong>di</strong> Newton-RaphsonAbbiamo visto che se |g ′ (ξ)| = 0 lo schema <strong>di</strong> Picard ha or<strong>di</strong>ne <strong>di</strong> convergenzap = 2. Cerchiamo quin<strong>di</strong> <strong>di</strong> trovare un modo per ricavare tale schema. Partiamodal problema (1.1) e cerchiamo <strong>di</strong> costruire una successione definita da:x k+1 = x k + h (1.16)Idealmente noi vorremmo che, partendo da una soluzione <strong>di</strong> tentativo x k , il valore<strong>di</strong> h ci fornisca la soluzione esatta, o in formule:f(x k+1 ) = f(x k + h) = 0Espandendo in serie <strong>di</strong> Taylor la precedente equazione attorno a x k si ottiene:0 = f(x k + h) = f(x k ) + hf ′ (x k ) + h22 f ′′ (x k ) + h33! f ′′′ (x k ) + · · ·Trascurando i termini <strong>di</strong> or<strong>di</strong>ne superiore al primo, si ottiene un’equazione linearein h la cui soluzione, inserita nella (1.16) definisce lo schema iterativo <strong>di</strong> Newton-Raphson, che può essere visto come uno schema <strong>di</strong> punto fisso in cui si utilizza unag(x) particolare:x k+1 = g nr (x k ) = x k − f(x k)(1.17)f ′ (x k )Si vede facilmente che il valore approssimato x k+1 alla nuova terazione <strong>di</strong> Newton-Raphson è dato dall’intersezione della retta tangente alla f(x) nel punto (x k , f(x k )),che ha dunque pendenza pari a f ′ (x k ), con l’asse x, come evidenziato in Figura 1.3.


12 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARIyf(x)x 1 x 3x 2ξx 0xFigura 1.3: Rappresentazione grafica del funzionamento metodo <strong>di</strong> Newton Raphsonper la soluzione dell’equazione f(x) = 0.


1.3. CONVERGENZA DEI METODI ITERATIVI 13L’algoritmo per l’implementazione dello schema <strong>di</strong> Newton-Raphson è moltosimile a quello <strong>di</strong> Picard, con la sostituzione della generica g(x) con la g nr (x):algoritmo <strong>di</strong> Newton-Raphson:data una soluzione iniziale x 0 , una tolleranza T OLL e un numero massimo <strong>di</strong>iterazioni IT MAX;XK := x 0 ; SCART O := 2 ∗ T OLL; IT ER = 0;Finchè (SCART O > T OLL e IT ER < IT MAX) esegui:1. IT ER := IT ER + 1;2. XKP 1 := g nr (XK);3. SCART O := |XKP 1 − XP |;4. XK := XKP 1;Fine Finchè.. . .Function g nr (X);Fine Function g nrCon<strong>di</strong>zioni <strong>di</strong> convergenzag nr (X) = X − f(X)f ′ (X)Consideriamo la funzione <strong>di</strong> Newton-Raphson g nr e imponiamo le con<strong>di</strong>zioni <strong>di</strong> convergenzadello schema <strong>di</strong> punto fisso, e, osservando che se ξ è lo zero della funzioneallora necessariamente f(ξ) = 0 si ottiene:|g nr(ξ)| ′ =∣ 1 − [f ∣ ∣ ′ (ξ)] 2 − f(ξ)f ′′ (ξ) ∣∣∣ =f(ξ)f ′′ (ξ) ∣∣∣[f ′ (ξ)] 2 ∣ = 0[f ′ (ξ)] 2da cui segue imme<strong>di</strong>atamente che la (1.11) è sempre verificata se si assume la continuitàdella f e delle sue prime due derivate. Si <strong>di</strong>ce quin<strong>di</strong> che lo schema <strong>di</strong> Newton-Raphson è generalmente convergente. Si noti, tuttavia, che bisogna stare attenti aqueste affermazioni, perchè il punto iniziale x 0 non è stato specificato e la (1.11) vale


14 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARIin con<strong>di</strong>zioni asintotiche. Si può affermare quin<strong>di</strong> che lo schema <strong>di</strong> Newton-Raphsonè generalmente convergente per una soluzione iniziale x 0 sufficientemente vicina.Nel caso <strong>di</strong> ra<strong>di</strong>ce doppia (f(ξ) = 0; f ′ (ξ) = 0; f ′′ (ξ) ≠ 0) la con<strong>di</strong>zione <strong>di</strong>convergenza è ancora sod<strong>di</strong>sfatta, anche se la g ′ nr non è piú nulla. Infatti si ha:∣ ∣ ∣∣∣ f(x)f ′′ (ξ) ∣∣∣limx→ξ |g′ nr(x)| = lim= (usando l’Hospital) =x→ξ [f ′ (x)]∣ 2 ∣∣∣= |f ′′ f ′ (x)(ξ)| limx→ξ 2f ′ (x)f ′′ (x) ∣ = 1 2E’ quin<strong>di</strong> chiaro dalla (1.14) che in questo caso l’or<strong>di</strong>ne <strong>di</strong> convergenza si riduce alineare con costante asintotica dell’errore M = 1/2. Possiamo dunque concludere chelo schema <strong>di</strong> Newton-Raphson è generalmente convergente, sempre pero’ in relazionead una soluzione iniziale x 0 sufficientemente vicina alla soluzione finale ξ.Or<strong>di</strong>ne <strong>di</strong> convergenzaCome abbiamo già notato in<strong>di</strong>rettamente, nel caso generale l’or<strong>di</strong>ne <strong>di</strong> convergenzadello schema <strong>di</strong> Newton-Raphson è p = 2 con costante asintotica dell’errore M =12 |g′′ nr(ξ)|. E’ possibile però ricavare l’or<strong>di</strong>ne <strong>di</strong>rettamente dall’espressione (1.17)con la stessa procedura usata per lo schema <strong>di</strong> 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 serie<strong>di</strong> Taylor attorno ad x k , notando che f(ξ) = 0 e assumendo che la ra<strong>di</strong>ce sia singola,si ottiene:ɛ k+1 = ɛ k − f(ξ) + ɛ kf ′ (ξ) + ɛ 2 k /2f ′′ (ξ) + ɛ 3 k /3f ′′′ (ξ) · · ·f ′ (ξ) + ɛ k f ′′ (ξ) · · ·= ɛ2 k /2f ′′ (ξ) + ɛ 3 k /3f ′′′ (ξ) · · ·f ′ (ξ) + ɛ k f ′′ (ξ) · · ·(1.18)per cui la definizione (1.15) è sod<strong>di</strong>sfatta con p = 2 e M = 1/2|f ′′ (ξ)/f ′ (ξ)|:|ɛ k+1 |limk→∞ |ɛ k | = 1 f ′′ (ξ)2 2 ∣ f ′ (ξ) ∣che conferma l’or<strong>di</strong>ne “quadratico” <strong>di</strong> Newton-Raphson e dalla quale si può ricavarein<strong>di</strong>rettamente l’espressione della g nr.′′Nel caso <strong>di</strong> ra<strong>di</strong>ce doppia, e cioè f(ξ) = f ′ (ξ) = 0, risulta imme<strong>di</strong>atamente dalla


1.3. CONVERGENZA DEI METODI ITERATIVI 151.3.3 Altri schemi “Newton-like”Possiamo riscrivere il metodo <strong>di</strong> Newton nel seguente modo:x k+1 = x k − f(x k)C kC k = f ′ (x k )E’ possibile utilizzare <strong>di</strong>verse espressioni per C k , cercande sempre che tali espressionisi avvicinino il più possibile a f ′ (x k ), che abbiamo visto garantisce convergenze “ottimale”quadratica. In particolare si ha la seguente tabella che riassume i principalischemi:C k Nome schema Or<strong>di</strong>nef ′ (x 0 ) tangente fissa 1f ′ (x k ) Newton Raphson 2(tangente variabile)f(x 1 )−f(x0)x 1 −x 0secante fissa 1f(x k )−f(xk−1)x k −x k−1Regula Falsi(secante variabile) 1.618Verifichiamo per esercizio l’or<strong>di</strong>ne 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 avrà quin<strong>di</strong>:ξ + ɛ k+1 = ξ + ɛ k − f(ξ + ɛ k)f(x 0 )Espandendo f(ξ + ɛ k ) in serie <strong>di</strong> Taylor attorno alla ra<strong>di</strong>ce ξ si ha:ɛ k+1 = ɛ k − f(ξ) + ɛ kf ′ (ξ) + ɛ 2 k /2f ′′ (ξ) + ɛ 3 k /3f ′′′ (ξ) · · ·f ′ (x 0 )= ɛ k(f ′ (x 0 ) − f ′ (ξ)) − ɛ 2 k /2f ′′ (ξ) · · ·f ′ (x 0 )da cui si vede che lo schema della tangente fissa converge con p = 1 e M = (f ′ (x 0 ) −f ′ (ξ))/f ′ (x 0 ).Veniamo ora allo schema della Regula-Falsi. Tale schema approssima la derivataprima con un rapporto incrementale ottenuto con le informazioni più recentemente


16 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARIcalcolate (x k , x k−1 , f(x k ) e f(x k−1 )). La formula iterativa del metodo della Regula-Falsi si può scrivere nel modo seguente:x k − x k−1x k+1 = x k − f(x k )f(x k ) − f(x k−1 ) .L’algoritmo è innescato da due soluzioni iniziali che devono essere fornite esternamente.La prima, x 0 , è come al solito arbitraria. La seconda viene generalmentecalcolata con una iterazione del metodo <strong>di</strong> Newton-Raphson. Una volta note x 0 ex 1 , si possono calcolare le approssimazioni successive.L’analisi <strong>di</strong> convergenza richiede qualche calcolo in più rispetto al metodo <strong>di</strong>Newton-Raphson, ma la tecnica è la stessa. Si ha infatti, ricordando sempre chef(ξ) = 0:ɛ k+1 = ɛ k−1f(ξ + ɛ k ) − ɛ k f(ξ + ɛ k−1 )f(ξ + ɛ k ) − f(ξ + ɛ k−1 )= ɛ [k−1 ɛk f ′ (ξ) + 1 2 ɛ2 k f ′′ (ξ) + · · · ] [− ɛ k ɛk−1 f ′ (ξ) + 1 2 ɛ2 k−1 f ′′ (ξ) + · · · ]ɛ k f ′ (ξ) + 1 2 ɛ2 k f ′′ (ξ) + · · · − ɛ k−1 f ′ (ξ) − 1 2 ɛ2 k−1 f ′′ (ξ) − · · ·= ɛ k−1ɛ k f ′ (ξ) + ɛ k−112 ɛ2 k f ′′ (ξ) + · · · − ɛ k ɛ k−1 f ′ (ξ) − ɛ k12 ɛ2 k−1 f ′′ (ξ) − · · ·ɛ k f ′ (ξ) + 1 2 ɛ2 k f ′′ (ξ) + · · · − ɛ k−1 f ′ (ξ) − 1 2 ɛ2 k−1 f ′′ (ξ) − · · ·12=f ′′ (ξ)ɛ k ɛ k−1 (ɛ k − ɛ k−1 ) + · · ·f ′ (ξ)(ɛ k − ɛ k−1 ) + 1f 2 ′′ (ξ)(ɛ 2 k − ɛ2 k−1 ) · · ·= 1 f ′′ (ξ)2 f ′ (ξ) ɛ kɛ k−1 + . . .per cui risulta infineɛ k+1 = 1 f ′′ (ξ)2 f ′ (ξ) ɛ kɛ k−1 + . . . = Aɛ k ɛ k−1 + . . . (1.19)Prendendo i moduli e ricordando la definizione (1.15), in con<strong>di</strong>zioni asintotiche si hain tuta generalità:|ɛ k+1 ||ɛ k | p = M (1.20)da cui evidentemente si ricava:che sostituita nella (1.19) fornisce:( |ɛk |)|ɛ k−1 | =M) 1/p|ɛ k−1 | = AM −1/p ɛ (p+1)/pk(1.21)


1.3. CONVERGENZA DEI METODI ITERATIVI 17dove la costante A = |f ′′ (ξ)|/(2|f ′ (ξ)|) coincide con la costante asintotica dell’erroredel metodo <strong>di</strong> Newton-Raphson. La coincidenza della (1.20) con la (1.21) si haquando:AM −1/p = M ɛ (p+1)/pk= ɛ p kche fornise M = A (p+1)/p e p = (1 ± √ (5))/2. Escludendo la ra<strong>di</strong>ce negativa, laRegula Falsi risulta avere quin<strong>di</strong> convergenza superlineare pari a p = 1.618 · · · ecostante asintotica pari a M = A 0.618···.


18 CAPITOLO 1. LA SOLUZIONE DI EQUAZIONI NONLINEARI


Capitolo 2Riassunto <strong>di</strong> Algebra LineareUn numero (scalare) intero, reale o complesso sarà in genere in<strong>di</strong>cato da una letteraminuscola dell’alfabeto greco, per esempio:α ∈ I β ∈ R α ∈ C.Un vettore, definito come una n-upla or<strong>di</strong>nata <strong>di</strong> numeri (e.g. reali), sarà in<strong>di</strong>catocon una lettera minuscola dell’alfabeto inglese, usando le seguenti notazioni del tuttoequivalenti:⎡x ∈ R n x =⎢⎣⎤x 1..⎥. ⎦x nx = {x i }.Il numero x i ∈ R è chiamato la componente i-esima del vettore x.Una matrice, definita da una tabella <strong>di</strong> numeri (e.g. reali) caratterizzata dan righe e m colonne, sarà in<strong>di</strong>cata da una lettera maiuscola dell’alfabeto inglese,usando le seguenti notazioni del tutto equivalenti:⎡⎤a 11 . . . a 1m. . . .A [n×m] A =⎢ . . . .⎥ A = {a ij }.⎣ . . . . ⎦a n1 . . . a nmIl numero a ij ∈ R è chiamato l’elemento ij-esimo della matrice A. In realtà noiutilizzeremo quasi esclusivamente matrici quadrate, per cui in genere si avrà m = n.Si noti che un vettore può essere considerato come una matrice avente una colonna ecioè m = 1. Per convenzione (nostra) un vettore è quin<strong>di</strong> sempre un vettore colonna.Tuttavia, quando si parlerà <strong>di</strong> matrici o <strong>di</strong> vettori si farà sempre riferimento alle19


20 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEAREnotazioni precedentemente definite. Tutte le proprietà che seguono sono ovviamentevalide per vettori e matrici.Somma <strong>di</strong> matrici. La matrice somma <strong>di</strong> due matrici della stessa <strong>di</strong>mensione èdefinita coma la matrice che si ottiene sommando or<strong>di</strong>natamente le componenti, oin formula, date A, B, C ∈ R n×m :C = A ± B := {a ij ± b ij }.Prodotto <strong>di</strong> una matrice per uno scalare.matrice o un vettore è definito per componenti:Il prodotto tra uno scalare e unaαA = {αa ij }.Matrice trasposta. La matrice A T si chiama la matrice trasposta <strong>di</strong> A e si ottienescambiando le righe con le colonne:A = {a ij } A T = {a ji }.Matrice nulla. La matrice nulla è quella matrice che ha tutte le componentiuguali a zero, ed è l’elemento neutro della somma:A = 0 ⇐⇒ a ij = 0 i, j = 1, . . . , n.Matrice identità. La mtrice identità I e quella matrice quadrata che ha le componenti<strong>di</strong>agonali uguali a uno e tutte le altre nulle:⎡⎤1 0 . . . 0 00 1 . . . 0 0I [n×n] I :=⎢ . . . . . .⎥⎣ 0 0 . . . 1 0 ⎦ .0 0 . . . 0 1Matrice positiva o non negativa. Una matrice è detta positiva (o non negativa)1 se tutti i suoi elementi sono positivi o nulli con almeno un elemento positivo:A > 0 ⇒ a ij ≥ 0.1 La proprietà <strong>di</strong> una matrice <strong>di</strong> essere positiva non va confusa con la proprietà <strong>di</strong> essere definitapositiva che verrà definita più avanti.


21Prodotto scalare tra due vettori. Si definisce prodotto scalare tra due vettorila somma dei prodotti delle componenti omonime:x T y = 〈x, y〉 = x · y :=n∑x i y i .i=1Altre notazioni che useremo per il prodotto scalare sono:〈x, y〉 oppure x · y.In modo più formale, dato uno spazio vettoriale V ⊂ C n ( o R n ), il prodottoscalare (o interno) tra due elementi x, y ∈ V , in<strong>di</strong>cato con 〈x, y〉, è la mappa:〈·, ·〉 : V × V → C ( o R)che sod<strong>di</strong>sfa alle seguenti proprietà definenti:• (Simmetria Hermitiana) 〈x, y〉 = 〈y, x〉 dove (·) in<strong>di</strong>ca l’operazione <strong>di</strong> coniugazionecomplessa;• (linearità) 〈αx + βy, z〉 = α 〈x, z〉 + β 〈y, z〉;• (positività) 〈x, x〉 > 0 per ogni x ∈ C n (o R n ) e 〈x, x〉 = 0 solo per x = 0.Prodotto tra matrici. Il prodotto tra due matrici, detto anche prodotto righecolonne,è 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] = {a ij } B [p×m] = {b ij } C [n×m] = {c ij }C = ABc ij := ∑a ik b kj , i = 1, . . . , n j = 1, . . . , m.k=1,pIl prodotto matrice vettore è un caso particolare del prodotto tra matrice, considerandoil vettore come una matrice n × 1. E’ facile quin<strong>di</strong> verificare che il prodottoscalare gode della seguente proprietà 2 :〈x, Ay〉 = 〈 A T x, y 〉 〈Ax, y〉 = 〈 x, A T y 〉 .2 Ovviamente il prodotto scalare è commutativo e cioè: 〈x, Ay〉 = 〈Ay, x〉 ovvero x T Ay = (Ay) T x


22 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEAREDeterminante <strong>di</strong> una matrice. Data una matrice quadrata A, il suo determinantedeterminante, det A, è definito come lo scalare dato dalla somma <strong>di</strong> tuttiprodotti ottenuti prendendo come fattore un elemento <strong>di</strong> ciascuna riga ed uno <strong>di</strong>ciascuna colonna:det A := ∑ ±a 1,i1 a 2,i2 · · · a n,in ,dove i 1 , i 2 , . . . , i n sono permutazioni <strong>di</strong>stinte dei primi n numeri interi e il segno èdato dall’or<strong>di</strong>ne della permutazione.Inversa <strong>di</strong> una matrice quadrata. Data una matrice quadrata A [n×n] se det A ≠0, si definisce matrice inversa A −1 , se esiste, la matrice tale che:A −1 A = AA −1 = I.Matrice singolare. Una matrice è singolare se la sua inversa non esiste. Unamatrice singolare ha determinante nullo e viceversa.Matrice unitaria o ortogonale.Una matrice si <strong>di</strong>ce unitaria o ortogonale se:U T = U −1 .Proprietà delle operazioni tra matrici quadrate.1. AB ≠ BA (Le matrici per le quali la proprietà commutativa vale sono dettecommutative.)2. A + B = B + A3. (A + B) + C = A + (B + C)4. (AB)C = A(BC)5. A(B + C) = AB + BC; (A + B)C = AC + BC6. (AB) T = B T A T7. (AB) −1 = B −1 A −18. (A T ) −1 = (A −1 ) T .


Una matrice si <strong>di</strong>ce simmetrica se è uguale alla sua traspo-Matrice simmetrica.sta:A = A T ;si <strong>di</strong>ce antisimmetrica se è opposta alla sua trasposta:A = −A T .Ogni matrice può essere decomposta secondo la somma della sua parte simmetricae della sua parte antisimmetrica:A = 1 2 (A + AT ) + 1 2 (A − AT ).23Matrice definita positiva. Una matrice A [n×n] si <strong>di</strong>ce definita positiva (semidefinita positiva) se:x T Ax = 〈x, Ax〉 > 0 (〈x, Ax〉 ≥ 0).Matrice <strong>di</strong> tipo M o M-matrice.seguenti proprietà:Una matrice è detta <strong>di</strong> tipo M se gode delle1. è non singolare;2. tutti gli elementi della <strong>di</strong>agonale sono positivi;3. gli elementi extra <strong>di</strong>agonali sono negativi o nulli.Una M-matrice ha la proprietà che la sua inversa è positiva.2.0.4 Spazi vettoriali, vettori linearmente <strong>di</strong>pendenti, basiSpazio vettoriale. Uno spazio vettoriale V (sul campo scalare R) è un insieme <strong>di</strong>vettori dove sono definite l’operazione <strong>di</strong> ad<strong>di</strong>zione tra due vettori e <strong>di</strong> moltiplicazionetra uno scalare (reale) e un vettore. Tali operazioni devono sod<strong>di</strong>sfare le seguentiproprietà definenti 3 per ogni x, y ∈ V e per ogni α, α 1 , α 2 ∈ R:1. x + y = y + x;2. x + (y + z) = (x + y) + z;3 Si noti che tali proprietà 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 LINEARE3. esiste un unico elemento nullo dell’ad<strong>di</strong>zione (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 (α 2 x);7. α(x + y) = αx + αy;8. (α 1 + α 2 )x = α 1 x + α 2 x.Per esempio, sono spazi vettoriali:• R k , l’insieme <strong>di</strong> tutti i vettori a k componenti con le classiche operazioni <strong>di</strong>somma e prodotto per uno scalare;• R ∞ l’insieme dei vettori a infinite componenti (<strong>di</strong> nuovo con le stesse operazioni<strong>di</strong> prima);• lo spazio delle matrici m×n; in questo caso i vettori sono matrici e le operazionisono quelle definite nei paragrafi precedenti 4 ;• lo spazio delle funzioni continute f(x) definite nell’intervallo 0 ≤ x ≤ 1 (adesempio appartengono a tale spazio f(x) = x 2 e g(x) = sin(x) per le qualisi ha che (f + g)(x) = x 2 + sin(x) e ogni multiplo tipo 3x 2 oppure − sin(x)sono ancora nello spazio). I vettori in questo caso sono funzioni quin<strong>di</strong> con“<strong>di</strong>mensione” infinita.Sottospazio vettoriale. Un sottospazio S ⊂ V dello spazio vettoriale V è unsottoinsieme <strong>di</strong> V che sod<strong>di</strong>sfa alle relazioni:1. per ogni x, y ∈ S la loro somma z = x + y è ancora un elemento <strong>di</strong> S;2. il prodotto <strong>di</strong> ogni x ∈ S per uno scalare α ∈ R è un elemento <strong>di</strong> S: z = αx,z ∈ S.Si <strong>di</strong>ce anche che il sottospazio S è un sottoinsieme <strong>di</strong> V “chiuso” rispetto alle operazioni<strong>di</strong> ad<strong>di</strong>zione e moltiplicazione per uno scalare. Un esempio <strong>di</strong> un sottospaziovettoriale è un piano, che è affine allo spazio vettoriale R 2 se pensato isolato ma cheè contenuto in R 3 .4 questo spazio è in qualche modo simile a R mn


In<strong>di</strong>pendenza lineare. Si <strong>di</strong>ce che k vettori v k sono linearmente in<strong>di</strong>pendenti setutte le loro combinazioni lineari (eccetto quella triviale a coefficienti nulli) sononon-nulle:α 1 v 1 + α 2 v 2 + · · · + α k v k ≠ 0 escludendo il caso α 1 = α 2 = · · · = α k = 0.In caso contrario, i vettori si <strong>di</strong>cono linearmente <strong>di</strong>pendenti.Si ha la seguente proprietà: un insieme <strong>di</strong> k vettori apartenenti a R m devononecessariamente essere linearmente <strong>di</strong>pendenti se k > m.25Span. Se uno spazio vettoriale V è formato da tutte le combinazioni lineari deivettori v 1 , v 2 , . . . , v n , si <strong>di</strong>ce che questi vettori “generano” lo spazio V e si scrive:V = span{v 1 , v 2 , . . . , v n }.In altre parole ogni altro vettore <strong>di</strong> V può essere scritto come combinazione linearedei vettori generatori:w ∈ V ⇒ w = α 1 v 1 + . . . α n v n =n∑α 1 v 1 .i=1Base.Una base dello spazio vettoriale V è l’insieme (minimale) dei vettori che:1. sono linearmente in<strong>di</strong>pendenti;2. generano lo spazio V .Dimensione <strong>di</strong> uno spazio vettoriale. Le basi <strong>di</strong> uno spazio vettoriale sonoinfinite. Ciascuna base contiene lo stesso numero <strong>di</strong> vettori. Tale numero è chiamato<strong>di</strong>mensione dello spazio V .Ad esempio, una base dello spazio tri-<strong>di</strong>mensionale R 3 è costituita dall’insiemedei vettori coor<strong>di</strong>nate e 1 , e 2 , e 3 , dove e 1 = (1, 0, 0) T , e 2 = (0, 1, 0) T , e 3 = (0, 0, 1) T ,con ovvia estensione alla generica <strong>di</strong>mensione n e si scrive:n = <strong>di</strong>m(V ).Ogni insieme <strong>di</strong> vettori <strong>di</strong> V linearmente <strong>di</strong>pendenti può essere esteso ad una base(se necessario aggiungendo opportuni vettori). Viceversa, ogni insieme <strong>di</strong> vettorigeneratori <strong>di</strong> V può essere ridotto ad una base (se necessario eliminando dei vettori).


26 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEAREyxx−y−yFigura 2.1: A sinistra: vettori ortogonali: x e y sono ortogonali. Applicando ilTeorema <strong>di</strong> Pitagora alla coppia <strong>di</strong> vettori x e −y che formano i cateti <strong>di</strong> un triangolorettangolo e scrivendo l’uguaglianza (2.1) si ricava imme<strong>di</strong>atamente che deve esserevalida la (2.2). A destra: proiezione ortogonale del sottospazio V (formato da unsolo vettore) nel sottospazio W (formato dal piano).Ortogonalità tra vettori e sottospaziIntroduciamo il concetto <strong>di</strong> lunghezza <strong>di</strong> un vettore x che in<strong>di</strong>chiamo con ‖x‖ (si vedapiù avanti il paragrafo sulle norme <strong>di</strong> vettori). Visivamente, in R 2 , scomponendo ilvettore nelle sue componenti lungo gli assi principali, x = (x 1 , x 2 ), si può definire lalunghezza usando il teorema <strong>di</strong> Pitagora, da cui si ha imme<strong>di</strong>atamente:e per estensione <strong>di</strong>retta a R n :‖x‖ 2 = x 2 1 + x 2 2,‖x‖ 2 = x 2 1 + x 2 2 + . . . + x 2 n.Vettori ortogonali. Sempre in R 2 , è intuitivo <strong>di</strong>re che due vettori x e y sonoortogonali se formano un tra lor un angolo rettangolo, ovvero usando il teorema <strong>di</strong>Pitagora, se (si veda Figura 2.1):‖x‖ 2 + ‖y‖ 2 = ‖x − y‖ 2 . (2.1)Dalla precedente, scritta per componenti, si verifica imme<strong>di</strong>atamente che dovrannoessere nulli i prodotti incrociati (somma dei doppi prodotti), da cui si ottiene ladefinizione generale <strong>di</strong> ortogonalità tra vettori <strong>di</strong> R n :x T y = 〈x, y〉 = 0. (2.2)Tale quantità, il prodotto scalare, è anche chiamato prodotto interno. Si <strong>di</strong>mostraimme<strong>di</strong>atamente che se n vettori sono mutuamente ortogonali, allora essi sonolinearmente in<strong>di</strong>pendenti.


Spazi ortogonali. due sottospazi V e W <strong>di</strong> R n sono ortogonali se ogni vettorev ∈ V è ortogonale a ogni vettore w ∈ W .Complemento ortogonale. Dato un sottospazio V ∈ R n , lo spazio <strong>di</strong> tutti ivettori ortogonali a tutti i vettori <strong>di</strong> V si <strong>di</strong>ce complemento ortogonale <strong>di</strong> V e sidenota con V ⊥ .Proiezione ortogonale. Se V e W sono sottospazi <strong>di</strong> R n , una qualsiasi delleseguenti proprietà li caratterizza come ortogonali:1. W = V ⊥ (W consiste <strong>di</strong> tutti i vettori ortogonali a V );2. V = W ⊥ (V consiste <strong>di</strong> tutti i vettori ortogonali a W );3. V e W sono ortogonali e <strong>di</strong>m V + <strong>di</strong>m W = n.La proiezione ortogonale <strong>di</strong> un vettore x ∈ V 1 lungo la <strong>di</strong>rezione del vettore y ∈ V 2è data dal vettore:y = 〈x, y〉 y = yy T v = P vLa matrice P è detta matrice <strong>di</strong> proiezione.Ogni vettore x ∈ R n può essere scritto come la somma <strong>di</strong> due vettori v ∈ Ve w ∈ W . Queste componenti v e w sono ortogonali e si chiamano le proiezioniortogonali <strong>di</strong> x in V e W .2.0.5 Autovalori ed autovettoriUno scalare λ ed un vettore u ≠ 0 si <strong>di</strong>cono rispettivamente autovalore ed autovettore<strong>di</strong> una matrice quadrata A se sod<strong>di</strong>sfano alla seguente relazione:Si ricava facilmente cheAu = λu.(A − λI)u = 0 ⇒ P (λ) = det (A − λI) = 0.Dalla prima delle precedenti si vede imme<strong>di</strong>atamente che gli autovettori sono definitia meno <strong>di</strong> una costante moltiplicativa. Dalla seconda invece si vede che gli autovalorisono le ra<strong>di</strong>ci <strong>di</strong> un polinomio <strong>di</strong> grado n a coefficienti reali (se gli elementi <strong>di</strong> Asono reali). Da quest’ultima osservazione e usando le proprietà delle ra<strong>di</strong>ci <strong>di</strong> unpolinomio si ricavano le seguenti proprietà degli autovalori:27λ ∈ Cn∑λ i =i=1n∑a ii = Tr Ai=1n∏λ i = det A A m u = λ m u.i=1


28 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARESe esiste λ = 0, allora la matrice è singolare (det A = 0). Secondo una comunenotazione, tutti gli autovalori <strong>di</strong> una matrice A si in<strong>di</strong>cano con λ(A). Si <strong>di</strong>ce ancheche λ(A) è lo spettro <strong>di</strong> A. Molto spesso si or<strong>di</strong>nano gli autovalori in maniera taleche| λ 1 | ≥ | λ 2 | ≥ . . . ≥ | λ n |,per cui in generale la notazione λ 1 (A) in<strong>di</strong>ca l’autovalore <strong>di</strong> A massimo in modulo,mentre λ n (A) in<strong>di</strong>ca l’autovalore minimo (in modulo). Il modulo <strong>di</strong> λ 1 (A) è anchedetto raggio spettrale <strong>di</strong> A e si in<strong>di</strong>ca con ρ(A) = | λ 1 (A) |.Trasformazioni <strong>di</strong> similitu<strong>di</strong>ne. Si <strong>di</strong>ce che una matrice B è ottenuta da Atramite una trasformazione <strong>di</strong> similitu<strong>di</strong>ne se esiste una matrice non singolare S taleche:B = S −1 AS.Si vede che B e A hanno gli stessi autovalori mentre gli autovettori sono scalati dallamatrice S. Infatti:det (B − λI) = det (S −1 AS − λS −1 S) = det S −1 det (A − λI)det S = det (A − λI),e quin<strong>di</strong>E’ facile verificare cheBu = λuAv = λv ⇒ S−1 ASu = λuASu = λSu ⇒ v = Su.λ(A) = λ(A T )λ(AB) = λ(A −1 ABA) = λ(BA).E’ facile anche verificare che se A è definita positiva, allora λ i > 0 i = 1, . . . , n.Se si in<strong>di</strong>ca con D la matrice (<strong>di</strong>agonale) formata dagli elementi <strong>di</strong> A sulla<strong>di</strong>agonale e con tutti gli elementi extra<strong>di</strong>agonali nulli:D = {d ij } d ij ={aii , se i = j,0, se i ≠ j.;si ha allora:λ(D −1 A) = (ponendo S = D − 1 2 ) = λ(D12 D −1 AD − 1 2 ) = λ(D− 1 2 AD− 1 2 ).Inoltre, la matrice B = D − 1 2 AD − 1 2 è definita positiva se lo è A. Infatti:〉〉〈x, Bx〉 =〈x, D − 1 2 AD− 1 2 x =〈D − 1 2 x, AD− 1 2 x > 0.


29Proprietà delle matrici simmetriche e <strong>di</strong>agonalizzazione.• Gli autovalori ed autovettori <strong>di</strong> una matrice A simmetrica sono tutti reali.• Gli autovalori ed autovettori <strong>di</strong> una matrice A antisimmetrica sono immaginari.• Se A è definita positiva, λ i > 0 per ogni i = 1, . . . , n.• Una matrice A si <strong>di</strong>ce <strong>di</strong>agonalizzabile se esiste una matrice U non singolaretale cheΛ = U −1 AUè una matrice <strong>di</strong>agonale. In questo caso è facile vedere che λ ii = λ i sono gliautovalori <strong>di</strong> A e le colonne <strong>di</strong> U sono gli autovettori.• Se A è simmetrica e definita positiva, è <strong>di</strong>agonalizzabile e la matrice U èunitaria (o ortogonale) (U −1 = U T ). Una matrice unitaria ha le colonneortogonali tra <strong>di</strong> loro, per cui〈u i , u j 〉 ={ ≠ 0, se i = j,= 0, se i ≠ j.;e poichè in questo caso gli u i sono autovettori <strong>di</strong> A, e sono definiti a meno <strong>di</strong>una costante moltiplicativa, si ha:{ = 1, se i = j,〈u i , u j 〉= 0, se i ≠ j..Si può concludere gli autovettori <strong>di</strong> matrici <strong>di</strong>agonalizzabili formano una baseeventualmente ortonormale per lo spazio vettoriale R n . Questo significa chetutti i vettori <strong>di</strong> R n possono essere espressi come combinazione lineare degliautovettori <strong>di</strong> A.2.0.6 Norme <strong>di</strong> vettori e <strong>di</strong> matriciNorme <strong>di</strong> vettori. Si definisce norma <strong>di</strong> un vettore x uno scalare reale chesod<strong>di</strong>sfa 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 LINEAREUn esempio <strong>di</strong> norma <strong>di</strong> vettori generica è dato dalla norma-p:‖x‖ p=( n∑i=1| x i | p ) 1/p;per p = 2 si ha la classica norma euclidea ‖x‖ 2= √ 〈x, x〉; per p = ∞ si ha la normamassima ‖x‖ ∞= max i | x i |, per p = 1 si ha la norma assoluta ‖x‖ 1= ∑ ni=1 | x i |.Per p = 2 vale la <strong>di</strong>suguaglianza <strong>di</strong> Schwarz:〈x, y〉 ≤ ‖x‖ 2‖y‖ 2.Un’altra norma molto usata è la norma “energia”, definita come il prodotto scalaretra il vettore x e il vettore Ax, dove la matrice A è una matrice simmetrica e definitapositiva (se non lo fosse la proprietà 1 sopra non sarebbe sod<strong>di</strong>sfatta):‖x‖ A= √ 〈x, Ax〉.Norme <strong>di</strong> matrici. Si definisce norma <strong>di</strong> una matrice A uno scalare reale chesod<strong>di</strong>sfa 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 <strong>di</strong> norme <strong>di</strong> matrici:• norma <strong>di</strong> Frobenius: ‖A‖ 2= √ Tr (A T A) =√ ∑ij | a ij | 2 ;• norma <strong>di</strong> Hilbert o norma spettrale: ‖A‖ = √ ρA T A = √ | λ 1 (A T A) |.Norme compatibili o indotte. Si <strong>di</strong>ce che la norma <strong>di</strong> matrice ‖A‖ è compatibile(o indotta da) con la norma <strong>di</strong> vettore ‖x‖ se:‖Ax‖‖A‖ = supx≠0 ‖x‖ .Dimostriamo che la norma spettrale <strong>di</strong> matrice è compatibile con (indotta da) lanorma euclidea <strong>di</strong> vettore. Infatti, data una matrice non singolare A ∈ R n×n , si


costruisce la matrice simmetrica e definita positiva H = A T A. Essendo H <strong>di</strong>agonalizzabile,un generico vettore x ∈ R n può essere pensato come combinazione linearedegli autovettori u i <strong>di</strong> H:x = c 1 u 1 + c 2 u 2 + . . . + c n u n .Poichè gli u i sono ortonormali, si ottiene facilmente:〈x, Hx〉 = x T Hx = (c 1 u 1 + c 2 u 2 + . . . + c n u n ) T H(c 1 u 1 + c 2 u 2 + . . . + c n u n )= λ 1 | c 1 | 2 + . . . + λ n | c n | 2≤ λ 1 (| c 1 | 2 + . . . + | c n | 2 ) = λ 1 ‖x‖ 2 2 ,e da questa:λ 1 (A T 〈Ax, Ax〉A) ≥‖x‖ 2 = ‖Ax‖2 22‖x‖ 2 .2La <strong>di</strong>mostrazione si completa prendendo la ra<strong>di</strong>ce quadrata della precedente espressione.Sistemi Lineari. Data una matrice A, <strong>di</strong> <strong>di</strong>mensioni n × n e non singolare, e unvettore b ∈ R n , si cerca il vettore x ∈ R n che sod<strong>di</strong>sfa:Ax = b.La soluzione formale <strong>di</strong> tale sistema è data da:x ∗ = A −1 b.Non è ragionevole trovare tale vettore, o un’approssimazione <strong>di</strong> esso, utilizzando laformula precedente, essendo il calcolo dell’inversa A −1 molto oneroso 5In queste note si farà riferimento esclusivamente a meto<strong>di</strong> iterativi per la soluzione<strong>di</strong> sistemi lineari. In tali meto<strong>di</strong> si cerca <strong>di</strong> definire una successione <strong>di</strong> iterate(vettori) x k k > 0 in maniera tale che31lim x k = x ∗ . (2.3)k→∞Uno schema iterativo verrà terminato in pratica molto prima che la con<strong>di</strong>zione precedentesia verificata. In effetti, non conoscendo x ∗ , sarà impossibile calcolare talelimite. Di solito si definisce il residuo come:r k = b − Ax k ,5 Il modo più semplice per calcolare l’inversa è quella <strong>di</strong> risolvere n sistemi lineari, con un costocomputazionale molto elevato. Ci sono altri meto<strong>di</strong> per calcolare l’inversa, ma sempre con costomolto alto rispetto alla soluzione <strong>di</strong> un sistema lineare.


32 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEAREper cui la con<strong>di</strong>zione <strong>di</strong> convergenza (2.3) si traduce imme<strong>di</strong>atamente <strong>di</strong>cendo cheil residuo deve tendere a zero. L’iterazione verrà quin<strong>di</strong> terminata non appenala norma (qualsiasi) del residuo non <strong>di</strong>venti minore <strong>di</strong> una soglia predeterminata,chiamata tolleranza. In molti casi è meglio sostituire questa con<strong>di</strong>zione con unarelativa; l’iterazione termina quando il residuo iniziale è <strong>di</strong>minuito <strong>di</strong> un fattore τ:‖r k ‖‖r 0 ‖ < τ.Definendo il vettore errore come la <strong>di</strong>fferenza tra la soluzione approssimata e lasoluzione vera e k = x k − x ∗ si può ricavare una relazione tra residuo ed errore:‖e k ‖‖e 0 ‖ ≤ κ(A)‖r k‖‖r 0 ‖ .dove il numero k(A) = ‖A‖ ‖A −1 ‖ è chiamato il numero <strong>di</strong> con<strong>di</strong>zionamento dellamatrice A. Infatti:r k = b − Ax k = −Ae k .da cui, utilizzando norme matriciali compatibili:e:‖e k ‖ = ∥ ∥ A −1 Ae k∥ ∥ ≤∥ ∥A −1 ∥ ∥ ‖Aek ‖ = ∥ ∥ A−1 ∥ ∥ ‖rk ‖ ,‖r 0 ‖ = ‖Ae 0 ‖ ≤ ‖A‖ ‖e 0 ‖ ,quin<strong>di</strong>:‖e k ‖‖e 0 ‖ ≤ ∥ ∥ A−1 ‖r k ‖ ‖A‖‖r 0 ‖ = κ(A)‖r k‖‖r 0 ‖ . (2.4)La con<strong>di</strong>zione <strong>di</strong> terminazione sul residuo relativo così definito è scomoda perchè <strong>di</strong>pendefortemente dalla soluzione iniziale x 0 . Si preferisce quin<strong>di</strong> rapportare la normadel residuo corrente alla norma del termine noto b, e cioè utilizzare la con<strong>di</strong>zione:‖r k ‖‖b‖ < τ.Le due con<strong>di</strong>zioni sono equivalenti qualora si scelga come soluzione iniziale x 0 = 0(e quin<strong>di</strong> r 0 = b), una scelta molto <strong>di</strong>ffusa.Nel seguito faremo spesso riferimento al seguente esempio:Ax = b ove A =che ha soluzione[ 3 22 6][x ∗ =2−2x =].[x1x 2][b =2−8](2.5)In R 2 l’interpretazione geometrica è facile: la soluzione del sistema è il punto <strong>di</strong>intersezione delle due rette le cui equazioni formano il sistema lineare, situazioneche è <strong>di</strong>segnata in Fig. 2.2.


33x2423x1+2x2=2-4 -2 2 4 6x1-22x1+6x2=8-4-6Figura 2.2: Interpretazione geometrica <strong>di</strong> un sistema lineare in R 2 . La soluzione delsistema è il punto <strong>di</strong> intersezione delle due rette e cioè il vettore x ∗ = [2, −2] T .


34 CAPITOLO 2. RIASSUNTO DI ALGEBRA LINEARE


Capitolo 3Meto<strong>di</strong> per la soluzione <strong>di</strong> sistemilineariSia dato un sistema lineare:Ax = b, (3.1)dove A è una matrice quadrata non singolare <strong>di</strong> <strong>di</strong>mensini n × n e x e b sono vettoriin R n . Il problema che si vuole affrontare è quello <strong>di</strong> trovare il vettore x noti A e b.3.1 Meto<strong>di</strong> lineari e stazionariSi considerano in questo capitolo meto<strong>di</strong> iterativi della forma:x k+1 = Ex k + q, (3.2)dove x k+1 , x k , q ∈ R n e E è la matrice (n × n) <strong>di</strong> iterazione. In pratica, si vuolecostruire una successione <strong>di</strong> vettori approssimanti {x k } che converga per k → ∞alla soluzione del problema (3.1):x ∗ = A −1 b. (3.3)I meto<strong>di</strong> oggetto <strong>di</strong> stu<strong>di</strong>o in questo capitolo, rappresentati dalla (3.2), si <strong>di</strong>conolineari e stazionari in quanto la matrice <strong>di</strong> iterazione E è stazionaria (costante)durante il processo iterativo e l’approssimazione x k compare linearmente.Per stu<strong>di</strong>are la convergenza <strong>di</strong> questi schemi verifichiamo dapprima la loro consistenza.Sostituiamo quin<strong>di</strong> la (3.3) al posto <strong>di</strong> x k+1 e x k in (3.2), ottenendo:x ∗ = Ex ∗ + q q = (I − E)x ∗ = (I − E)A −1 b, (3.4)e osserviamo che tale espressione per q garantisce la consistenza forte dello schema(3.2).35


36 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIOsservazione 3.1.1. Osserviamo che in un certo senso la matrice I − E deve essereuna approssimazione dell’inversa <strong>di</strong> A. Infatti, una matrice B si <strong>di</strong>ce inversaapprossimata <strong>di</strong> A se ‖I − BA‖ < 1.Sotto la con<strong>di</strong>zione ‖E‖ < 1, il lemma seguente ci garantisce che lo schemaconverge alla soluzione del sistema lineare.Lemma 3.1.1 (Lemma <strong>di</strong> Banach). Sia E una matrice <strong>di</strong> <strong>di</strong>mensioni n × n con‖E‖ < 1; allora I − E è non singolare e∥ (I − E)−1 ∥ ∥ ≤11 − ‖E‖ .Dimostrazione. Per prima cosa <strong>di</strong>mostriamo che la serie <strong>di</strong> Newton 1 (I+E+E 2 +. . .)converge a (I − E) −1 , cioè:∞∑E i = (1 − E) −1 .i=0Infatti, definiamo la somma parziale S k come:S k =k∑E i .i=0Poichè ‖E i ‖ ≤ ‖E‖ i e ‖E‖ < 1 per ipotesi, risulta imme<strong>di</strong>atamente che, per k < m:‖S k − S m ‖ ≤m∑i=k+1‖E‖ i = (serie geometrica <strong>di</strong> numeri positivi)‖E‖ k+1 1 − ‖E‖ m−k1 − ‖E‖ ,che evidentemente converge a zero per k, m → ∞. Quin<strong>di</strong>, per un noto teoremasulle successioni <strong>di</strong> Cauchy in spazi vettoriali, la successione S k converge ad unamatrice n × n che chiameremo S. Ora, siccome S k+1 = ES k + I, al limite si ottieneS = ES + I, da cui imme<strong>di</strong>atamente si ha S = (I − E) −1 .La <strong>di</strong>mostrazione si completa osservando che∥ ∥ ∑ ∞(I − E)−1 ≤ ‖E‖ i = (1 − ‖E‖) −1 .i=11 La serie <strong>di</strong> Newton è un’Estensione alle matrici della serie <strong>di</strong> Taylor 1+x+x 2 +. . . = 1/(1−x)


3.1. METODI LINEARI E STAZIONARI 37Conseguenza <strong>di</strong>retta del lemma precedente è il seguente:Corollario 3.1.2. Se ‖E‖ < 1, lo schema (3.2) converge a x = (I − E) −1 q.Quin<strong>di</strong>, se ‖E‖ < 1, e poiché per la consistenza q = (I − E)A −1 b, lo schema (3.2)converge a x ∗ = A −1 b, la soluzione vera del sistema lineare.La con<strong>di</strong>zione necessaria e sufficiente per la convergenza dello schema (3.2) èspecificata in tutta generalità nel seguente:Teorema 3.1.3. Data una matrice reale E <strong>di</strong> <strong>di</strong>mensioni n × n. L’iterazione (3.2)converge per ogni q ∈ R n se e solo se ρ(E) = |λ 1 (E)| < 1.Matrici la cui potenza k-esima tende ad annullarsi all’infinito si <strong>di</strong>cono matriciconvergenti.La con<strong>di</strong>zione <strong>di</strong> convergenza specificata nel teorema precedente è in<strong>di</strong>pendente<strong>dalle</strong> proprietà della matrice <strong>di</strong> iterazione, che non deve necessariamente essere ne’simmetrica ne’ <strong>di</strong>agonalizzabile. Per brevità, e per capire fino in fondo il ruoloche autovalori e autovettori della matrice <strong>di</strong> iterazione giocano nella convergenzadello schema, <strong>di</strong>mostriamo il teorema 3.1.3 facendo delle assunzioni sulla matrice <strong>di</strong>iterazione E.Proce<strong>di</strong>amo nel modo classico andando ad analizzare la “stabilità” dello schema(3.2), essendo la consistenza garantita da (3.4). A tale scopo, definiamo il vettoreerrore e k = x ∗ − x k . La stabilità dello schema implica che l’errore deve rimanerelimitato o meglio ancora tendere a zero all’aumentare <strong>di</strong> k, e cioè:lim e k = 0.k→∞Per verificare questa con<strong>di</strong>zione, dobbiamo ricavare una relazione tra gli errori aiterazioni successive. Dalla consistenza e linearità dello schema si ricava imme<strong>di</strong>atamenteche:e k+1 = Ee k = E k+1 e 0 . (3.5)Prendendo la norma (ad es. la norma euclidea) dell’espressione precedente e usandola <strong>di</strong>suguaglianza <strong>di</strong> Schwartz, si ottiene imme<strong>di</strong>atamente:‖e k ‖ ≤ ‖E‖ k ‖e 0 ‖ ,dove ‖E‖ è la norma indotta da ‖e 0 ‖. La convergenza del metodo è assicurata se‖E‖ < 1, risultato uguale a quello ricavato con il lemma <strong>di</strong> Banach 3.1.1. Assumendosimmetrica la matrice <strong>di</strong> iterazione, e osservando che usando la norma euclidea deivettori e la norma spettrale per le matrici si ha che ‖E‖ = √ λ(E T E) = |λ(E)| =ρ(E), la con<strong>di</strong>zione necessaria e sufficiente per ls convergenza dello schema (3.2) è:ρ(E) < 1. (3.6)


38 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIAlternativamente, tala con<strong>di</strong>zione si può <strong>di</strong>mostrare assumendo che la matrice <strong>di</strong>iterazione E sia <strong>di</strong>agonalizzabile 2 , e cioè assumendo che gli autovettori <strong>di</strong> E possanoessere usati come base per R n :E = UΛU −1 ,con U la matrice le cui colonne sono gli autovettori <strong>di</strong> E e Λ la matrice <strong>di</strong>agonalecontenente gli autovalori <strong>di</strong> E. In questo caso, il vettore errore iniziale si puòespandere come combinazione lineare degli autovettori <strong>di</strong> E:e 0 =n∑γ i u i = Ug U = [u 1 , . . . , u n ] g = {γ i }.i=1Sostituendo in (3.5), si ottiene dunque:e k = E k e 0 =n∑γ i λ k i u i = λ k 1i=1n∑i=1γ i(λiλ 1) ku i ,avendo assunto l’or<strong>di</strong>namento classico <strong>di</strong> autovalori e corrispondenti autovettori inor<strong>di</strong>ne crescente in valore assoluto | λ 1 | < | λ 2 | ≤ | λ 3 | ≤ . . . ≤ | λ n | prendendo lanorma e notando che | λ i /λ 1 | < 1 per i > 1:‖e k ‖ ≤ | λ 1 | k∣ n∑λ i ∣∣∣k∣ ‖u i ‖ ≤ | λ 1 | k ‖u 1 ‖ , (3.7)λ 1i=1da cui segue subito la (3.6).Osservazione 3.1.2. Calcolando ‖e k+1 ‖ / ‖e k ‖ tramite l’equazione (3.7), e ricordandola definizione <strong>di</strong> or<strong>di</strong>ne e costante asintotica <strong>di</strong> convergenza, si ricava subito chelo schema (3.2) converge con or<strong>di</strong>ne 1 (lineare) e costante asintotica <strong>di</strong> convergenzaM = ρ(E).Osservazione 3.1.3. Il raggio spettrale <strong>di</strong> una matrice quadrata A è definito <strong>dalle</strong>due con<strong>di</strong>zioni equivalenti:ρ(A) = maxλ∈σ A|λ(A)| = limn→∞‖A n ‖ 1 n2 Assunzione anche questa molto forte: in generale le matrici <strong>di</strong> iterazione non solo non sarannone’ <strong>di</strong>agonalizzabili ne’ simmetriche ma saranno ad<strong>di</strong>rittura singolari!


3.1. METODI LINEARI E STAZIONARI 393.1.1 Meto<strong>di</strong> lineari e stazionari classiciRitorniamo ora a stu<strong>di</strong>are i meto<strong>di</strong> <strong>di</strong> tipo (3.2) nella loro forma più classica. Unmodo intuitivo per ricavare schemi lineari e stazionari è il seguente. Data una matricenon singolare P , chiamata “precon<strong>di</strong>zionatore”, si sommi a primo e secondo membro<strong>di</strong> (3.1) il vettore P x:P x = P x − Ax + b = (P − A)x + b,da cui si può ricavare il seguente schema iterativo:x k+1 = (I − P −1 A)x k + P −1 b. (3.8)che ha matrice <strong>di</strong> iterazione E = I − P −1 A e che verifica la (3.4). Lo schema si puòanche scrivere come:x k+1 = x k + P −1 r k r k = b − Ax k .Intuitivamente, guardando quest’ultima equazione, è imme<strong>di</strong>ato arguire che prendendo(idealmente) come precon<strong>di</strong>zionatore P = A si otterrebbe la soluzione x ∗con una sola iterazione. Ovviamente questo non è concepibile in quanto il calcolo<strong>di</strong> A −1 corrisponde in termini <strong>di</strong> costo computazionale alla soluzione <strong>di</strong> n sistemilineari. Cercheremo quin<strong>di</strong> <strong>di</strong> trovare delle matrici P “vicine” alla matrice A, chesiano computazionalmente efficienti da calcolare e per le quali il prodotto P −1 u (uvettore generico <strong>di</strong> R n ) sia computazionalmente efficiente.Un esempio semplice ma istruttivo <strong>di</strong> metodo lineare e stazionario è il metodo <strong>di</strong>Richardson, ottenuto da (3.8) prendendo P = I:x k+1 = (I − A)x k + b. (3.9)Si osservi che applicando il metodo <strong>di</strong> Richardson (3.9) al sistema “precon<strong>di</strong>zionato”:P −1 Ax = P −1 b (3.10)si ottiene proprio il metodo riportato in (3.8). Quin<strong>di</strong> il metodo <strong>di</strong> Richardson conE = I − P −1 A converge se ρ(I − P −1 A) < 1, o equivalentemente ρ(P −1 A) < 1.Riprenderemo con più dettaglio lo schema <strong>di</strong> Richardson nel prosieguo. Ve<strong>di</strong>amoora alcuni classici esempi <strong>di</strong> matrici P . Tutti gli schemi seguenti si ricavano dallo“splitting” ad<strong>di</strong>tivo della matrice del sistema A = L + D + U con:l ij ={aij , if i < j,0, if i ≥ j.Abbiamo i seguenti schemi:d ij ={aii , if i = j,0, if i ≠ j.u ij ={ 0, if i ≤ j,a ij , if i > j.


40 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIMetodo <strong>di</strong> Jacobi (P = D). Prendendo P = D, si ottiene il metodo <strong>di</strong> Jacobi:x k+1 = (I − D −1 A)x k + D −1 b = x k + D −1 r k ,o, in<strong>di</strong>cando con x k+1,i l’i-esimo elemento del vettore x k+1 , il metodo può esserescritto per componenti::x k+1,i = x k,i + 1a ii(b i −⎛)n∑a i,j x k,j = 1 ⎜⎝b i −a iij=1n∑j=1j≠ia i,j x k,j⎞⎟⎠ . (3.11)Metodo <strong>di</strong> Gauss-Seidel (P = L + D). Prendendo P = L + D, si ottienex k+1 = [ I − (L + D) −1 A ] x k + (L + D) −1 b = x k + (L + D) −1 r k ,o, in<strong>di</strong>cando con x k+1,i l’i-esimo elemento del vettore x k+1 , il metodo scrittoper componenti <strong>di</strong>venta:(x k+1,i = 1 ∑i−1b i − a i,j x k+1,j −a iij=1n∑j=i+1a i,j x k,j). (3.12)3.2 Meto<strong>di</strong> <strong>di</strong> rilassamentoLa convergenza dei meto<strong>di</strong> stu<strong>di</strong>ati fino a qui può essere migliorata introducendoun parametro (detto <strong>di</strong> rilassamento) che dovrà essere identificato in modo da minimizzareil raggio spettrale della matrice <strong>di</strong> iterazione. A tal fine, riscriviamo ilmetodo (3.2) nel seguente modo:x k+1 = (I − α k P −1 A)x k + α k P −1 b = x k + α k P −1 r k , (3.13)con α k ∈ R parametro reale. Se α k = α è in<strong>di</strong>pendente dall’iterazione k, lo schema èclassificabile nell’ambito dei meto<strong>di</strong> stazionari (la matrice <strong>di</strong> iterazione non <strong>di</strong>pendeda k). Altrimenti il metodo è “non stazionario”. In questo caso la matrice <strong>di</strong>iterazione è:E k = I − α k P −1 AL’algoritmo non stazionario può essere scritto nel modo seguente:


3.2. METODI DI RILASSAMENTO 41ρ|1− αλ|11|1− α |λ nα opt1n1/λ1/λαFigura 3.1: La curva ρ(E α ) in funzione <strong>di</strong> αAlgorithm Richardson Non StazionarioInput: x 0 , nimax, toll; k = 0;r 0 = b − Ax 0 .for k = 0, 1, . . . fino a convergenza:end for1. z k = P −1 r k (3.14)2. α k = . . . (3.15)3. x k+1 = x k + α k z k (3.16)4. r k+1 = r k − α k Az k (3.17)dove il passo in (3.14), chiamato “applicazione del precon<strong>di</strong>zionatore”, si esegue inpratica risolvendo il sistemaP z k+1 = r k ,e il passo in (3.15) <strong>di</strong>pende dal metodo.Nel caso stazionario (α k = α), si può stu<strong>di</strong>are qual’è il valore ottimale del parametro,cioè il valore <strong>di</strong> α che minimizza il raggio spettrale della matrice <strong>di</strong> iterazioneρ(E) = ρ(I − P −1 A). Infatti, notando che λ(I − αP −1 A) = 1 − αλ(P −1 A) la con<strong>di</strong>zionenecessaria per la convergenza si può scrivere | 1 − αλ i | < 1 per i = 1, . . . , n,dove λ i , l’i-esimo autovalore della matrice (nonsimmetrica) P −1 A, è in generale unmumero complesso. Questa <strong>di</strong>suguaglianza equivale a(1 − α Re λ i ) 2 + α 2 (Im λ i ) 2 < 1,


42 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIda cui si ricavaα| λ i | 22 Re λ i< 1 ∀i = 1, . . . , n.Nel caso in cui λ i (P −1 A) ∈ R per ogni i, si ottiene che la con<strong>di</strong>zione su α per laconvergenza dello schema è:0 < α < 2λ max,e si può ricavare il valore <strong>di</strong> α opt , cioè il valore <strong>di</strong> α che minimizza il raggio spettraledella matrice <strong>di</strong> iterazione. Infatti si ha:ρ(E α ) = max [| 1 − αλ min |, | 1 − αλ max |] ,e il valore <strong>di</strong> α che minimizza la precedente è dato da:α opt =2λ min + λ maxInfatti, si può vedere facilmente dalla Figura 3.1 che il valore ottimale <strong>di</strong> α si trovanel punto <strong>di</strong> incontro delle curve | 1 − αλ min | e | 1 − αλ max |, da cui il valore precedente.Il valore ottimale del raggio spettrale della matrice <strong>di</strong> iterazione si ricavaimme<strong>di</strong>atamente per sostituzione, ottenendo:ρ opt = λ max − λ min= κ(P −1 A) − 1λ max + λ min κ(P −1 A) + 1 = κ(P −1 A) − 1κ(P −1 A) + 1Attualmente, tali schemi vengono raramente usati per la soluzione <strong>di</strong> sistemilineari, ma sono assai utili come precon<strong>di</strong>zionatori, come vedremo nel prossimoparagrafo, per il metodo del gra<strong>di</strong>ente coniugato.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI433.3 Meto<strong>di</strong> del Gra<strong>di</strong>ente per la soluzione <strong>di</strong> sistemilineariQueste note sono un’elaborazione <strong>di</strong> un articolo <strong>di</strong> Jonathan Shewchuk, dal titoloesemplificativo An Introduction to the Conjugate Gra<strong>di</strong>ent Method Without the AgonizingPain [5], me<strong>di</strong>ate con l’illuminante interpretazione geometrica riportata nellibro del Prof. Gambolati [1]. Per approfon<strong>di</strong>menti si rimanda il lettore al libro <strong>di</strong>C.T. Kelley [2] o meglio ancora al libro <strong>di</strong> Y. Saad [4].3.3.1 Forme quadraticheData una matrice A <strong>di</strong> <strong>di</strong>mensione n × n, un vettore b ∈ R n e uno scalare c ∈ R, unaforma quadratica è una funzione quadratica <strong>di</strong> tutte le componenti x 1 , x 2 , . . . , x n :f(x) : R n → Rdefinita daf(x) = 1 2 xT Ax − b T x + c = 1 〈x, Ax〉 − 〈b, x〉 + c. (3.18)2Siamo interessati a trovare il minimo <strong>di</strong> f(x). Si <strong>di</strong>ce che f(x) ha un minimo inx ∗ se f(x ∗ ) < f(x) per tutti gli x nel dominio <strong>di</strong> f. Se tutte le derivate parziali <strong>di</strong>f sono nulle in x ∗ , allora x ∗ può essere un punto <strong>di</strong> minimo, un punto <strong>di</strong> massimo,oppure nessuno dei due. Ad esempio in R 2 , la funzione z = f(x, y) = x 2 + y 2 ha unpunto <strong>di</strong> 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 è <strong>di</strong>minimo, (si chiama punto <strong>di</strong> stazionarietà). 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 <strong>di</strong> segno opposto) si ha f(x, y) < 0 = f(0, 0).Pren<strong>di</strong>amo ora un vettore qualsiasi v ∈ R n e uno scalare ɛ ∈ R e formiamo unnuovo vettore x ∗ + ɛv ∈ R n . Perchè x ∗ sia punto <strong>di</strong> minimo assoluto dovrà essere:f(x ∗ + ɛv) > f(x ∗ ) per ogni ɛ e ogni v.In particolare dovrà esserlo per ɛ piccolo e che tende a zero. Possiamo pensare orala f come variabile <strong>di</strong> ɛ soltanto, per cui la con<strong>di</strong>zione <strong>di</strong> stazionarietà per la f(x)sarà quin<strong>di</strong> data da:ddɛ [f(x + ɛv)] | ɛ=0 = 0,che deve essere valida per ogni v. Utilizzando la regola <strong>di</strong> derivazione della funzionecomposta si può calcolare la precedente derivata ragionando componente per


44 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI1056004002000-10-50510 -10 -505100-5-10-10 -5 0 5 101050-5-10-10 -5 0 5 10Figura 3.2: Forma quadratica corrispondente al sistema lineare (2.5). A sinistra inalto è rappersentato il grafico in R 2 ; a destra in alto sono rappresentate le linee <strong>di</strong>livello; in basso il campo dei gra<strong>di</strong>enti.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI45Figura 3.3: Grafico della funzione f(x, y) = −(cos 2 x+cos 2 y) 2 e del campo vettoriale∇f(x, y) = (∂f/∂x, ∂f/∂y) T


46 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI(a)f(x)(b)f(x)x2x2x1x1(c)f(x)(d)f(x)x2x2x1x1Figura 3.4: Grafico delle forme quadratiche (in R 2 ) rappresentative <strong>di</strong> a) una matricedefinita positiva, b) una matrice definita negativa, c) una matrice semidefinitapositiva (in realtà è singolare e si nota la linea lungo la quale f(x) è minima e checorrisponde alle inifite soluzione del sistema lineare corrispondente), d) una matriceindefinita (punto sella).componente:ddɛ f(x 1, x 2 , . . . , x n ) = ∂f dx 1∂x 1 dɛ + ∂fdx 2∂x 2 dɛ+· · ·+∂f∂x ndx ndɛ = ∂f∂x 1v 1 + ∂f∂x 2v 2 +· · ·+ ∂f∂x nv n .Definendo il gra<strong>di</strong>ente della funzione f(x) come il vettore delle derivate parziali (sivedano le Figure 3.2 e 3.3):⎡ ⎤∂f∂x 1∂f∂x 2. ∇f(x) =,.⎢ ⎥⎣ . ⎦∂f∂x nsi ottiene imme<strong>di</strong>atamente la con<strong>di</strong>zione <strong>di</strong> minimizzazione <strong>di</strong> f(x):ddɛ [f(x + ɛv)] | ɛ=0 = ∇f(x) · v = 〈∇f(x), v〉 = ∇f(x)T v = 0. (3.19)Si noti che se ‖v‖ = 1 〈∇f(x), v〉 = D v f(x) è la derivata <strong>di</strong>rezionale <strong>di</strong> f in x lungola <strong>di</strong>rezione v. D’altro canto, nel caso della nostra forma quadratica (3.18), possiamo


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI47scrivere:f(x + ɛv) = 1 〈(x + ɛv), A(x + ɛv)〉 − 〈b, (x + ɛv)〉 + c2= 1 [〈x, Ax〉 + ɛ 〈v, Ax〉 + ɛ 〈x, Av〉 + ɛ 2 〈v, Av〉 ] − 〈b, x〉 − ɛ 〈b, v〉 + c,2da cui:Di conseguenza:ddɛ [f(x + ɛv)] | ɛ=0 = 1 [〈v, Ax〉 + 〈x, Av〉] − 〈b, v〉〈2〉A + AT= x, v − 〈b, v〉 = 0.2∇f(x) = A + AT2( A + ATx − b) ⊥ v,2e quest’ultima è valida per ogni v ∈ R n , da cui imme<strong>di</strong>atamentex − b (3.20)A + A Tx = b,2e se A = A T si ottiene che la con<strong>di</strong>zione <strong>di</strong> minimio (3.19) si può scrivere come:∇f(x) = Ax − b (3.21)Ax = b.Questo ci <strong>di</strong>ce che la forma quadratica f(x) ha un minimo in corrispondenza dellasoluzione del sistema lineare Ax = b, se A è simmetrica, del sistema 1 2 (A + AT )x = bse A non è simmetrica.3.3.2 Caso simmetrico A = A TSi può notare che il minimo della f(x) definito sopra è globale se e solo se A èsimmetrica e definita positiva. Infatti, perchè x ∗ sia minimo globale è necessario chef(x ∗ + e) > f(x ∗ ) per ogni vettore e ∈ R n . Quin<strong>di</strong>: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 〈Ae, e〉 − 〈b, e〉2= f(x ∗ ) + 1 〈Ae, e〉 ,2


48 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIdove abbiamo usato il fatto che se A = A T si ha 〈Az, w〉 = 〈z, Aw〉. Se A è definitapositiva, 〈Ae, e〉 > 0 da cui si ricava che f(x ∗ ) è minimo assoluto.Nella Figura 3.2 viene rappresentato il grafico della f(x) e il campo dei gra<strong>di</strong>enti∇f(x) nel caso particolare del sistema lineare dato dalla (2.5), con A matrice simmetrica.Si noti che le linee <strong>di</strong> 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 R n gli ellissi saranno degli iper-ellissoi<strong>di</strong>, e le linee <strong>di</strong> livello si trasformerannoin superfici <strong>di</strong> livello (o isosuperfici), l’interpretazione geometrica, seppur non rappresentabilegraficamente, rimane la stessa. In altre parole, l’equazione f(x) = Crappresenta un iper-ellissoide in R n il cui centro coincide con il minimo <strong>di</strong> f(x) equin<strong>di</strong> con la soluzione del sistema lineare 3 .Per vedere questo si deve lavorare su un nuovo sistema <strong>di</strong> riferimento ottenutocome segue. Si noti che data una soluzione approssimata x k ≠ x ∗ , l’errore associatoè rappresentato da:e k = x k − x ∗Effettuiamo ora un cambio <strong>di</strong> variabili e poniamoci in un sistema <strong>di</strong> riferimento zdato da:e k = Uz, (3.22)dove z è la nuova variabile e U è la matrice le cui colonne sono gli autovettori u i<strong>di</strong> A or<strong>di</strong>nati secondo gli autovalori <strong>di</strong> A (sempre positivi) decrescenti. La matriceU è unitaria (o ortogonale) 4 e cioè U −1 = U T . Il nuovo sistema <strong>di</strong> riferimento hal’origine coincidente con il centro dell’iper-ellissoide e gli assi coor<strong>di</strong>nati coincidenticon gli autovettori <strong>di</strong> A, per cui si può scrivere la forma quadratica seguente:Φ(e k ) = 〈e k , Ae k 〉 = 〈Uz, AUz〉 = z T Λz = 〈z, Λz〉 ,le cui superfici <strong>di</strong> livello sono rappresentate dalla seguente equazione:λ 1 z 2 1 + λ 2 z 2 2 + . . . + λ n z 2 n = cost,ovvero:z12 + z2 2 zn2 + · · · = 1, (3.23)cost cost costλ 1 λ 2 λ nche è l’equazione in forma canonica dell’iper-ellissoide avente come lunghezza deisemi-assi:√ √ √costcostcosta 1 = , a 2 = , . . . , a n =λ 1 λ 2λ n3 Si noti che il grafico z = f(x) è rappresentabile in R n+1 .4 Si ricor<strong>di</strong> che A è simmetrica e definita positiva, e quin<strong>di</strong> <strong>di</strong>agonalizzabile, da cui deriva che isuoi autovettori formano una base per lo spazio vettoriale R n .


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI49Notiamo che la forma quadratica Φ(·) ha come punto <strong>di</strong> minimo il vettore nullo, cioèe k = x k − x ∗ = 0, corrispondente proprio al minimo della f(·), ovvero la soluzionedel sistema lineare. Infatti:f(x k ) = f(x ∗ + e k ) = f(x ∗ ) + 1 2 〈e k, Ae k 〉 = 1 2 Φ(e k)Inoltre, la Φ(·) coincide con la Φ 3 (x) = e T Ae descritta sul libro <strong>di</strong> Gambolati [1] ameno <strong>di</strong> una costante moltiplicativa positiva.Abbiamo quin<strong>di</strong> <strong>di</strong>mostrato che trovare la soluzione del sistema lineare Ax = b èequivalente a trovare il punto <strong>di</strong> minimo della forma quadratica f(x) ed è equivalentead imporre l’ortogonalità del residuo a tutti i vettori <strong>di</strong> R n . In altre parole, permatrici simmetriche, i seguenti problemi sono equivalenti:Problema 3.3.1 (sistema lineare).Trovare x ∈ R n tale che:Ax = b.(S)Problema 3.3.2 (<strong>di</strong> minimizzazione).Trovare x ∈ R n tale che:Problema 3.3.3 (variazionale).Trovare x ∈ R n tale che:F (x) ≤ F (v) ∀v ∈ R n . (M)〈b − Ax, v〉 = 0 ∀v ∈ R n . (V)Metodo del gra<strong>di</strong>ente (o della <strong>di</strong>scesa più ripida o dello steepest descent)Poichè il gra<strong>di</strong>ente <strong>di</strong> f è interpretabile come la <strong>di</strong>rezione <strong>di</strong> massimo aumento dellafunzione f, dalla (3.20) si vede imme<strong>di</strong>atamente che il residuo del sistema linearecoincide con la <strong>di</strong>rezione <strong>di</strong> <strong>di</strong>scesa più ripida (Steepest Descent):r = b − Ax = −∇f(x).E’ quin<strong>di</strong> intuitivo costruire un algoritmo basato sul calcolo <strong>di</strong> tale gra<strong>di</strong>ente. Questometodo, detto appunto metodo del gra<strong>di</strong>ente o metodo della ricerca più ripida odello Steepest Descent (SD), cerca <strong>di</strong> percorrere in ogni punto la <strong>di</strong>rezione <strong>di</strong> <strong>di</strong>scesapiù ripida per arrivare al minimo assoluto. E’ intuitivo pensare che tale algoritmofunzionerà solo se non esistono minimi relativi: in un minimo relativo, non è piùnecessariamente definita una <strong>di</strong>rezione <strong>di</strong> <strong>di</strong>scesa, e il metodo potrebbe trovarsi incon<strong>di</strong>zioni <strong>di</strong> stallo.


50 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIx2(a)4x(0)2e(0)x-4 -2 2 4 6-2f(x(i)+r(i))-4-6(c)140120100806040200.2 0.4 0.6x12.50x2-2.5-5x24x(1)2-4 -2 2 4x16-2-4-6(b)-2.5 0 2.5 5x1(d)1500 50100f(x)Figura 3.5: Interpretazione in R 2 delle varie fasi dello schema dello steepest descentper la soluzione del sistema (2.5): a) la <strong>di</strong>rezione <strong>di</strong> ricerca r 0 e l’errore iniziale e 0 ;b) la forma quadratica e il piano ortogonale a x 1 e x 2 passante per la <strong>di</strong>rezione r 0 ;c) la funzione f(α 0 ) nella <strong>di</strong>rezione r 0 ; d) la nuova iterata x 1 e la nuova <strong>di</strong>rezionedel gra<strong>di</strong>ente.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI51x2x22412-2 -1 1 2 3-1x1-4x(0)-2 2x4 6-2x1-2-4-3-6Figura 3.6: Interpretazione in R 2 delle varie fasi dello schema dello steepest descentper la soluzione del sistema (2.5). A sinistra sono <strong>di</strong>segnati i vettori ∇f(x k + α k r k )lungo la <strong>di</strong>rezione r k ; la f(x k+1 ) è minima nel punto in cui r k ⊥ ∇f(x k + α k r k ). 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 LINEARICostruiamo allora un algoritmo iterative basato su:x k+1 = x k + α k r k ,dove l’in<strong>di</strong>ce k in<strong>di</strong>ca l’iterazione. Il valore <strong>di</strong> α k viene determinato imponendo chelungo la <strong>di</strong>rezione r k il funzionale sia minimo (proce<strong>di</strong>mento <strong>di</strong> line search, si vedala sua interpretazione geometrica riportata in Fig. 3.6(a,b)). Il vettore r k in<strong>di</strong>viduala <strong>di</strong>rezione <strong>di</strong> ricerca.Per fare il conto dell’espressione <strong>di</strong> α k , annulliamo semplicemente la derivataprima della forma quadratica pensata come funzione <strong>di</strong> α k . Imponiamo cioè:ddα kf(x k + α k r k ) = 〈∇f(x k + α k r k ), r k 〉 = 〈∇f(x k+1 ), r k 〉 = 0,ma visto che ∇f(x k+1 ) = −r k+1 , si impone:e siccome A = A T :〈r k+1 , r k 〉 ⇒ 〈(b − Ax k+1 ), r k 〉 = 0,〈b, r k 〉 − 〈Ax k , r k 〉 − α k 〈Ar k , r k 〉 = 〈r k , r k 〉 − α k 〈Ar k , r k 〉 = 0,da cui si ricava imme<strong>di</strong>atamente:L’algoritmo può quin<strong>di</strong> essere scritto nel modo seguente.α k = 〈r k, r k 〉〈Ar k , r k 〉 . (3.24)Algorithm SDInput: x 0 , nimax, toll; k = 0;r 0 = b − Ax 0 .for k = 0, 1, . . . fino a convergenza:end for1. α k = 〈r k, r k 〉〈Ar k , r k 〉 (3.25)2. x k+1 = x k + α k r k (3.26)3. r k+1 = r k − α k Ar k (3.27)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 LINEARI534x22-4 -2 2 4 6x1-2-4-6Figura 3.7: Il metodo dello steepest descent converge in una sola iterazione se la<strong>di</strong>rezione del residuo iniziale coincide con quella <strong>di</strong> un autovettore.Osservazione 3.3.4. Come caso “molto” particolare, supponiamo che alla iterazionek-esima l’errore e k coincida con un autovettore della matrice A e chiamiamo λ kil corrispondente autovalore, per cui:r k = −Ae k = −λ k e k ,da cui si vede che il residuo è anch’esso un autovettore. Sostituendo nella (3.26)dell’Algoritm SD si ottiene imme<strong>di</strong>atamente:e k+1 = e k + 〈r k, r k 〉〈r k , Ar k 〉 r k = e k + λ2 k 〈e k, e k 〉λ 3 k 〈e k, e k 〉 (−λ ke k ) = 0.In altre parole, come si può vedere nell’interpretazione geometrica <strong>di</strong> Fig. 3.7, r k èla <strong>di</strong>rezione dell’autovettore e k <strong>di</strong> A e coincide quin<strong>di</strong> con uno degli assi principalidell’iper-ellissoide e quin<strong>di</strong> passa per il centro (punto <strong>di</strong> minimo).E’ chiaro che per vedere il comportamento dell’errore nello schema SD si puòsfruttare la relazione precedente utilizzando una rappresentazione dell’errore tramitela base data dagli autovettori <strong>di</strong> A. Per fare questo scriviamo:n∑e k = γ j u j (3.28)j=1r k = −Ae k = −n∑γ j λ j u j ,j=1


54 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIma poichè:e analogamente:‖e k ‖ 2 = 〈e k , e k 〉 =‖r k ‖ 2 = 〈r k , r k 〉 =abbiamo imme<strong>di</strong>atamente:n∑γj 2 e ‖e k ‖ 2 A = 〈e k , Ae k 〉 =j=1n∑γj 2 λ 2 j e ‖r k ‖ 2 A = 〈r k , Ar k 〉 =j=1e k+1 = e k + 〈r k, r k 〉〈r k , Ar k 〉 r k∑ nj=1= e k +γ2 j λ 2 j∑ n r k .j=1 γ2 j λ3 jn∑γj 2 λ j ,j=1n∑γj 2 λ 3 j,j=1Come visto prima, se e k è tale che solo uno degli α j ≠ 0 basta scegliere α j = 1/λ je si ha convergenza imme<strong>di</strong>ata. Se d’altra parte tutti gli autovalori sono uguali, siricava ancora che e k+1 = 0. In questo caso, infatti, gli iper-ellissoi<strong>di</strong> sono in realtàdelle iper-sfere, per cui le <strong>di</strong>rezioni del residuo puntano <strong>di</strong>rettamente verso il centro.Si noti da ultimo che il termine〈r k , r k 〉〈r k , Ar k 〉 = ∑ nj=1 γ2 j λ 2 j∑ nj=1 γ2 j λ3 jpuò essere intuitivamente visto come una me<strong>di</strong>a pesata degli inversi degli autovalorie i pesi γ 2 j fanno sì che le componenti (intese come i vettori u j <strong>di</strong> (3.28)) più “lunghe”<strong>di</strong> e k vengano “accorciate” prima delle altre. Come risultato si ha che alcune dellecomponenti più “corte” potrebbero anche aumentare, da cui segue che la convergenzadello schema non è monotona, ma in genere non per molto.Convergenza <strong>di</strong> SDPer stu<strong>di</strong>are formalmente la convergenza <strong>di</strong> SD abbiamo bisogno <strong>di</strong> utilizzare quellache viene chiamata la norma energia del vettore x, definita come:‖x‖ A = √ 〈Ax, x〉 = √ 〈x, Ax〉 = √ x T Ax.Per prima cosa ve<strong>di</strong>amo che il minimo della forma quadratica f(x k ) implicaminimizzare la norma energia dell’errore ‖e k ‖ A . Infatti, dalla definizione <strong>di</strong> erroree k e usando il fatto che A T = A, si ha imme<strong>di</strong>atamente:f(x k ) = f(x + e k ) = f(x) + 1 2 〈Ae k, e k 〉 ,


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI55da cui, siccome 1 2 〈Ae k, e k 〉 ≥ 0 e f(x) è il minimo assoluto della forma quadratica,segue l’affermazione. Quin<strong>di</strong>:‖e k+1 ‖ 2 A = 〈Ae k+1 , e k+1 〉 = 〈A(e k + α k r k ), (e k + α k r k )〉= 〈Ae k , e k 〉 + 2α k 〈Ae k , r k 〉 + α 2 k 〈Ar k , r k 〉(ricordando che Ae k = −r k )= ‖e k ‖ 2 A − (〈r k, r k 〉) 2〈Ar k , r k 〉()= ‖e k ‖ 2 (〈r k , r k 〉) 2A 1 −〈Ar k , r k 〉 〈Ae k , e k 〉(( ∑ )= ‖e k ‖ 2 jA 1 −γ2 j λ 2 j) 2( ∑ j γ2 j λ3 j )(∑ j γ2 j λ j)= ω 2 ‖e k ‖ 2 A,con evidentemente ω 2 che deve essere minore <strong>di</strong> 1 per avere convergenza. In R 2 èragionevolmente facile trovare un significato per il numero ω 2 . Infatti, se λ 1 ≥ λ 2 ,definiamo il numero <strong>di</strong> con<strong>di</strong>zionamento spettrale della matrice A come κ(A) =λ 1 /λ 2 (in generale per una matrice A <strong>di</strong> <strong>di</strong>mensioni n × n sarà κ(A) = λ 1 /λ n ), edefiniamo µ = γ 2 /γ 1 . Si noti che κ(A) è chiamato il numero <strong>di</strong> con<strong>di</strong>zionamento dellamatrice. Valori <strong>di</strong> κ(A) relativamente gran<strong>di</strong> corrispondono a matrici relativamentemalcon<strong>di</strong>zionate. 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 cioè:( )ω 2 4κ(A) 42 κ(A) − 1≤ 1 −(κ(A) 3 + κ(A) 2 )(κ(A) 2 + κ(A)) = .κ(A) + 1In questo caso ω può essere visto come un’approssimazione della costante asintoticadell’errore:‖e k+1 ‖ A≤ κ(A) − 1κ(A) + 1 ‖e k‖ A,e cioè:‖e k ‖ A≤( ) k κ(A) − 1‖e 0 ‖κ(A) + 1 A,e l’errore relativo sulla forma quadratica <strong>di</strong>venta:1f(x k ) − f(x)f(x o ) − f(x) = 〈e ( )2 k, Ae k 〉2k κ(A) − 11〈e 2 0, Ae 0 〉 ≤ . (3.29)κ(A) + 1


56 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI0.80.61000.4800.26040201051015020Figura 3.8: Andamento del fattore <strong>di</strong> convergenza ω.Si può <strong>di</strong>mostrare che l’epressione precedentemente scritta per l’errore è valida anchein R n .Osservazione 3.3.5. Il gra<strong>di</strong>ente della forma quadratica è pari a ∇f(z) = Λz. Larelazione <strong>di</strong> aggiornamento della soluzione approssimata x k+1 nel nuovo riferimento<strong>di</strong>venta quin<strong>di</strong>:z k+1 = z k − α k U T UΛz k ,per cui se la soluzione iniziale z 0 (che coincide con l’errore iniziale) ha la componentei-esima nulla, anche z 1 avrà la componente i-esima nulla, e quin<strong>di</strong> x 1,i saràesatta. Se le componenti esatte sono molte, si avrà una notevole accelerazione dellaconvergenza.L’andamento <strong>di</strong> ω in funzione <strong>di</strong> κ(A) e µ è graficato in Fig. 3.8. Si vede chese l’errore iniziale coincide con un autovettore, e quin<strong>di</strong> µ = 0 (o ∞), ω = 0 e laconvergenza è istantanea. Lo stesso avviene per κ(A) = 1 e cioè se gli autovalorisono tutti uguali.In Fig. 3.9 è invece illustrato il “cammino” <strong>di</strong> SD per vari valori <strong>di</strong> κ(A) e µ nelsistema <strong>di</strong> riferimento definito dagli autovettori <strong>di</strong> A. Come si verifica da (3.29),la convergenza peggiora per valori <strong>di</strong> κ(A) gran<strong>di</strong>, in corrispondenza al fatto che lamatrice risulta malcon<strong>di</strong>zionata. I primi due grafici in alto <strong>di</strong> Fig. 3.9 rappresentanodegli esempi caratterizzati da κ(A) grande; SD può convergere velocemente se ilpunto iniziale è fortunato (Fig. 3.9 alto a sinistra) ma in generale la convergenza èmolto lenta (Fig. 3.9 alto a destra). Nei due grafici in basso, invece, l’iper-ellissoide è


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI57642-4 -2 2 4-2-4642-4 -2 2 4-2-4642-4 -2 2 4-2-4642-4 -2 2 4-2-4Figura 3.9: Esempi <strong>di</strong> convergenza del metodo <strong>di</strong> Steepes Descent in corrispondenzaa valori estremi <strong>di</strong> κ(A) e µ relativi alla figura 3.8. Le due figure in alto si riferisconoal casso <strong>di</strong> κ(A) grande, mentre quelle in basso sono caratterizzate da un valore <strong>di</strong>κ(A) vicino a 1.


58 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI42-4 -2 2 4 6-2-4-6Figura 3.10: I punti iniziali peggiori per la convergenza <strong>di</strong> SD sono localizzati sullelinee continue nere. Le linee tratteggiate rappresentano il percorso delle iteratee formano un angolo <strong>di</strong> 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 LINEARI594x22xx(1)-4 -2 2 4 6x(0) d(0)e(1)-2-4x1-6Figura 3.11: Utilizzando due <strong>di</strong>rezioni ortogonali si arriva a convergenza in dueiterazioni usando la <strong>di</strong>rezione dell’errore e kquasi “sferico” (infatti κ(A) ≈ 1) e la convergenza è veloce in<strong>di</strong>pendentemente 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 gra<strong>di</strong>ente coniugatoSi è visto in precedenza che il metodo SD può convergere lentamente. In particolare,si é visto che due <strong>di</strong>rezioni <strong>di</strong> ricerca (gra<strong>di</strong>enti) successive sono ortogonali tra <strong>di</strong>loro (cfr. Fig. 3.10). Di conseguenza, solo due <strong>di</strong>rezioni <strong>di</strong> <strong>di</strong>scesa vengono utilizzatenell’intero processo, essendo r k ortogonale a r k−1 e parallelo a r k−2 . Ovviamente,se le due <strong>di</strong>rezioni <strong>di</strong> ricerca non passano per il punto <strong>di</strong> minimo del funzionale, ilnumero <strong>di</strong> iterazioni <strong>di</strong> SD per arrivare alla soluzione esatta è infinito. Per migliorarela convergenza è quin<strong>di</strong> necessario utilizzare <strong>di</strong>rezioni <strong>di</strong> ricerca che non si ripetano.Cerchiamo quin<strong>di</strong> <strong>di</strong> costruire uno schema che ad ogni iterazione generi una nuova<strong>di</strong>rezione <strong>di</strong> ricerca <strong>di</strong>versa (ortogonale) da tutte le precedenti (e <strong>di</strong> conseguenzalinearmente in<strong>di</strong>pendente da tutte le altre). Lungo ogni <strong>di</strong>rezione eseguiamo un passo<strong>di</strong> lunghezza tale da “allinearsi” al punto <strong>di</strong> minimo (il centro dell’iperelissoide) inquella <strong>di</strong>rezione. Come conseguenza, nel caso peggiore la n-esima <strong>di</strong>rezione <strong>di</strong> ricercapassa per il punto <strong>di</strong> minimo <strong>di</strong> f(x) e lo schema in teoria converge con al massimo


60 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIX2X24422-4 -2 2 4X1-4 -2 2 4X1-2-2-4-4Figura 3.12: Sinistra: coppie <strong>di</strong> vettori A-coniugati; destra: gli stessi vettori in unpiano deformato con la matrice A.n iterazioni. Si <strong>di</strong>ce allora che lo schema iterativo ha terminazione finita, intendendocioè 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 <strong>di</strong> iterazioni. Per esempio, in R 2 , data una prima <strong>di</strong>rezione (chiamiamolap 0 ) ad esempio parallela all’asse x, si esegue lungo essa un passo <strong>di</strong> lunghezza tale dafermarsi sul punto <strong>di</strong> intersezione tra la <strong>di</strong>rezione p 0 e la normale ad essa passante peril centro. La <strong>di</strong>rezione successiva (p 1 ) è parallela all’asse y e ci porta <strong>di</strong>rettamentealla soluzione (si veda la Fig. 3.11). Notiamo anche che questa <strong>di</strong>rezione è coincidentecon la <strong>di</strong>rezione dell’errore e k+1 = x − x k+1 . Possiamo scrivere questo come:e calcoliamo α k in modo che e k+1 sia ortogonale a p k :x k+1 = x k + α k p k , (3.30)〈p k , e k+1 〉 = 0〈p k , e k + α k p k 〉 = 0 dal’eq. (3.30)α k = − 〈p k, e k 〉〈p k , p k 〉 .Prima <strong>di</strong> procedere alla costruzione dello schema, ve<strong>di</strong>amo 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 LINEARI61Si noti che se A è simmetrica e definita positiva, la formula precedente può essereusata come definizione <strong>di</strong> un nuovo prodotto scalare:〈x, y〉 A= 〈x, Ay〉 = 〈Ax, y〉 ,che genera la norma (chiamata norma energia):‖x‖ A=√〈x, x〉 A.Siano p i , i = 1, . . . , n, n vettori (<strong>di</strong>rezioni) A-ortogonali, e cioè tali che〈p i , Ap j 〉 ={ ≠ 0, if i = j,0, if i ≠ j.. (3.31)Tali vettori sono linearmente in<strong>di</strong>pendenti e quin<strong>di</strong> formano una base per R n . Infatti,se supponiamo che esistano delle costanti α i tali per cui:0 = α 1 p 1 + . . . + α n p n ;moltiplicando per la matrice A (simmetrica e definita positiva) e poi scalarmenteper p i , i = 1, . . . , n, si ottiene:0 = α 1 〈p i , Ap 1 〉 + . . . + α n 〈p i , Ap n 〉 , i = 1, . . . , n.Dalla (3.31) si ottiene subito α i = 0.Da quello che abbiamo visto in precedenza è facile arguire che se le isosuperfici(linee <strong>di</strong> livello del paraboloide identificato dalla forma quadratica) fossero sfericheil metodo SD convergerebbe in 1 iterazione. In questo caso, infatti, le <strong>di</strong>rezionidel gra<strong>di</strong>ente sono tutte ortogonali alle isosuperfici, per cui le <strong>di</strong>rezioni 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 <strong>di</strong> variabili (cambiamento del sistema <strong>di</strong> riferimento)per trasformare gli iperellissoi<strong>di</strong> in ipersuperfici sferiche. Per fare ciò usiamo il fattoche A è simmetrica e definita positiva per cui A = UΛU T . Quin<strong>di</strong>:dove12 〈x, Ax〉 = 1 〈y, y〉 ,2y = Λ 1 2 U T x.Nelle nuove coor<strong>di</strong>nate y le isosuperfici <strong>di</strong>ventano quin<strong>di</strong> sferiche (basta sostituireopportunamente in (3.23)). L’idea è quin<strong>di</strong> <strong>di</strong> trovare delle <strong>di</strong>rezioni q i mutuamente


62 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI4x22-4x(0)-2 2x4 6-2x1-4-6Figura 3.13: Interpretazione geometrica del metodo CG in R 2 : le due <strong>di</strong>rezioni <strong>di</strong>ricerca sono A-coniugate, per cui la seconda necessariamente passa per il centrodell’elissoide, e quin<strong>di</strong> per il punto soluzione x ∗ .ortogonali nel caso sferico e che quin<strong>di</strong> garantiscono la convergenza in al massimo niterazioni. Tali <strong>di</strong>rezioni dovranno quin<strong>di</strong> sod<strong>di</strong>sfare:〈q i , q j 〉 = 0per ogni in<strong>di</strong>ce i e j (<strong>di</strong>versi) compresi tra 1 e n. Possiamo ora tornare al caso“ellittico” notando che le <strong>di</strong>rezioni q i nel sistema “sferico” sono legate alle <strong>di</strong>rezionip i nel sistema “ellittico” dalla relazione:q i = Λ 1 2 U T p i ;la relazione <strong>di</strong> ortogonalità tra q i e q j in termini <strong>di</strong> p i e p j <strong>di</strong>venta:〈Λ 1 2 U T p i , Λ 1 2 U T p j〉= p T i UΛ 1 2 Λ12 U T p j = p T i Ap j = 〈p i , p j 〉 A= 0,ovvero, p i e p j devono essere A-coniugati. Fig. 3.12 mostra la relazione che esistetra due vettori A-coniugati rappresentati nel piano R 2 oppure nel piano deformatoutilizzando la matrice A = UΛU T . Si noti che la relazione <strong>di</strong> A-ortogonalità nellospazio vettoriale avente prodotto scalare standard (〈·, ·〉) si trasforma in una relazione<strong>di</strong> ortogonalità in uno spazio indotto dal prodotto scalare 〈·, ·〉 A.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI63In sintesi, vogliamo calcolare n <strong>di</strong>rezioni p o , . . . , p n 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 <strong>di</strong> A perchè sarebbe troppo costoso. L’interpretazione geometrica delmetodo CG in R 2 è mostrata in Fig. 3.13.An<strong>di</strong>amo a costruire quin<strong>di</strong> il seguente algoritmo del gra<strong>di</strong>ente coniugato (CG):Algorithm CGInput: x 0 , nimax, toll; k = 0;r 0 = b − Ax 0 = p 0for k = 0, 1, . . . fino a convergenza:end for1. α k = 〈p k, r k 〉(3.32)〈p k , Ap k 〉2. x k+1 = x k + α k p k (3.33)3. r k+1 = r k − α k Ap k (3.34)4. β k = − 〈r k+1, Ap k 〉(3.35)〈p k , Ap k 〉5. p k+1 = r k+1 + β k p k (3.36)Il coefficiente β k è calcolato in modo da imporre la relazione <strong>di</strong> A-ortogonalità trala <strong>di</strong>rezione p k e la nuova <strong>di</strong>rezione p k+1 , cioè:〈p k+1 , Ap k 〉 = 〈r k+1 + β k p k , Ap k 〉 = 0,da cui si ricava imme<strong>di</strong>atamente la (3.35). Si può <strong>di</strong>mostrare per induzione che p k+1è A-ortogonale anche alle precedenti <strong>di</strong>rezioni e che i residui sono tra loro ortogonali:Infatti, poniamo p 0 = r 0 x 0 = p 0 . Quin<strong>di</strong>:k = 0imponiamo 〈p 0 , r 1 〉 = 0 ottenendo:〈p k+1 , Ap i 〉 = 0 i = 0, 1, . . . , k (3.37)〈r k+1 , r i 〉 = 0 i = 0, 1, . . . , k (3.38)x 1 = x 0 + α 0 p 0r 1 = r 0 − α 0 Ap 0〈p 0 , r 0 − α 0 Ap 0 〉 = 0 ⇒ α 0 = 〈p 0, r 0 〉〈p 0 , Ap 0 〉


64 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIk = 1scriviamo:imponiamo 〈p 0 , Ap 1 〉 = 0 ottenendo:Si noti che 〈r 0 , r 1 〉 = 0.p 1 = r 1 + β 0 p 0〈p 0 , A(r 1 + β 0 p 0 )〉 = 0 ⇒ β 0 = − 〈p 0, Ar 0 〉〈p 0 , Ap 0 〉k = . . .imponiamo 〈p 1 , r 2 〉 = 0 ottenendo:scriviamo:x 2 = x 1 + α 1 p 1r 2 = r 1 − α 1 Ap 1〈p 1 , r 1 − α 1 Ap 1 〉 = 0 ⇒ α 1 = 〈p 1, r 1 〉〈p 1 , Ap 1 〉imponiamo 〈p 1 , Ap 2 〉 = 0 ottenendo:p 2 = r 2 + β 1 p 1〈p 1 , A(r 2 + β 1 p 1 )〉 = 0 ⇒ β 1 = − 〈p 1, Ar 1 〉〈p 1 , Ap 1 〉Quin<strong>di</strong> si hanno i seguenti risultati:〈r 0 , r 2 〉 = 〈p 0 , r 2 〉 = 〈p 0 , r 1 − α 1 Ap 1 〉 = 0〈r 1 , r 2 〉 = 〈r 2 , p 1 − β 0 p 0 〉 = 0〈r 2 , Ap 0 〉 = 〈r 2, r 0 − r 1 〉α 0= 0〈p 0 , Ap 2 〉 = 〈p 0 , A(r 2 + β 1 p 1 )〉 = 〈r 2 , Ap 0 〉 + β 1 〈p 0 , Ap 1 〉 = 0Alla fine del processo <strong>di</strong> induzione si vede chiaramente che:〈p j , r i 〉 = 0 i > j〈r i , r j 〉 = 0 i ≠ j〈p i , Ap j 〉 = 0 i ≠ j.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI65Si osservi chex 2 = x 0 + α 0 r 0 + α 1 p 1= x 0 + (α 0 + α 1 β 0 )r 0 + α 1 r 1= x 0 + γ 1r ′ 0 + γ 2Ar ′ 0. . .∑k−1x k = x 0 + γ i A i r 0i=0da cui si vede che la soluzione è data da una combinazione lineare dei vettori A i r i . Si<strong>di</strong>mostra che tali vettori sono linearmente in<strong>di</strong>pendenti e generano uno spazio affinea R k K k ≈ R k , chiamato spazio <strong>di</strong> Krylov, per cui si può scrivere:dovex k ∈ x o + K k ,K k = span { r 0 , Ar 0 , A 2 r 0 , . . . , A k−1 r 0}Per questo il metodo del gra<strong>di</strong>ente coniugato e i meto<strong>di</strong> derivati da esso si chiamonometo<strong>di</strong> <strong>di</strong> Krylov.Si noti che, essendo i residui tra loro ortogonali (si veda la (3.38)), si verificaimme<strong>di</strong>atamente che r n = 0 e quin<strong>di</strong> x n = x ∗ , e cioè il metodo CG in teoria ritornala soluzione vera dopo n iterazioni. Si <strong>di</strong>ce anche che CG è un metodo iterativoche ha terminazione finita, e per questo è “paragonabile” ad uno schema <strong>di</strong>retto,in quanto teoricamente la soluzione vera è raggiunta dopo un numero <strong>di</strong> operazionifinito e determinabile a priori. Questo fatto però è vero solo in teoria, perchè nellapratica le relazioni <strong>di</strong> ortogonalità precedentemente viste sono verificate solamentein maniera approssimata per la presenza degli errori <strong>di</strong> rappresentazione dei numeriall’elaboratore. Quin<strong>di</strong> lo schema va considerato alla stregua degli schemi iterativi.Inoltre, per questioni <strong>di</strong> costi computazionali, noi preferiremmo riuscire a raggiungerela tolleranza richiesta nell’errore con un numero <strong>di</strong> iterazioni molto inferiore an. Per questo si ricorre alla tecnica del precon<strong>di</strong>zionamento, che vedremo più avanti.Convergenza <strong>di</strong> CGDa quanto <strong>di</strong>scusso prima, si deduce che la k-esima iterazione del metodo CG è ilpunto <strong>di</strong> minimo della forma quadratica f(x) sul sottospazio S = x 0 + K k . Poichèla matrice A è simmetrica, minimizzare la f(x) su S è equivalente a minimizzare‖x − x ∗ ‖ Asullo stesso sottospazio. Infatti, con pochi passaggi, si ricava (assumendoche la costante della forma quadratica sia c = ‖x ∗ ‖ A):‖x − x ∗ ‖ 2 A = ‖b − Ax‖2 A −1 = 2f(x).


66 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIDa questo, segue imme<strong>di</strong>atamente che‖x k − x ∗ ‖ A≤ ‖w − x ∗ ‖ Aper ogni w ∈ x 0 + K k . Quin<strong>di</strong>, x k è il vettore più vicino (se misurato in normaenergia) alla soluzione x ∗ rispetto a tutti gli altri vettori appartenenti allo spaziox 0 + K k . D’altro canto, il vettore w può essere scritto in generale come:per opportuni coefficienti γ j ∈ R. Quin<strong>di</strong>∑k−1w = x 0 + γ j A j r 0j=0∑k−1∑k−1w − x ∗ = x 0 + γ j A j r 0 − x ∗ = x 0 − x ∗ − γ j A j+1 (x 0 − x ∗ ) = p(A)(x 0 − x ∗ )j=0e il polinomio p(z) ∈ P k,p(0)=1 , appartiene cioè all’insieme dei polinomi <strong>di</strong> grado k eomogenei (p k (0) = 1), ed è definito da:Si vede imme<strong>di</strong>atamente che:‖x k − x ∗ ‖ A=j=0∑k−1p(z) = 1 + γ j z j+1 .j=0min ‖p(A)(x 0 − x ∗ )‖ A. (3.39)p∈P k,p(0)=1Usando la decomposizione spettrale della matrice A, scritta come:A j = UΛ j U T ,si ottiene:Poichè:p(A) = Up(λ)U T .‖p(A)x‖ A= ∥ ∥A 1/2 p(A)x ∥ ∥ 2≤ ‖p(A)‖ 2A 1/2 x ∥ 2= ‖p(A)‖ 2‖x‖ A,si ottiene dalla (3.39):‖x k − x ∗ ‖ A≤ ‖x 0 − x ∗ ‖ Aminp∈P k,p(0)=1z∈λ(A)max | p(z) |,


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI67dove λ(A), chiamato lo spettro <strong>di</strong> A, è l’insieme <strong>di</strong> tutti gli autovalori <strong>di</strong> A. Da quil’importante risultato che fornisce una maggiorazione dell’errore relativo alla k-esimaiterazione <strong>di</strong> CG:‖x k − x ∗ ‖ A≤ max‖x 0 − x ∗ ‖ | p k(z) |,Az∈λ(A)dove p k (z) è un qualsiasi polinomio <strong>di</strong> grado k con p k (0) = 1.Utilizzando polinomi scelti opportunamente, si possono ricavare alcune propretàimportanti <strong>di</strong> CG. Per esempio, è possibile far vedere la proprietà <strong>di</strong> terminazionefinita. Per fare ciò si prenda il polinomio così definito:p ∗ (z) =N∏i=1λ i − zλ i,e osservando che tale polinomio ha ra<strong>di</strong>ci in corrispondenza agli autovalori <strong>di</strong> A, siottiene imme<strong>di</strong>atamente:‖x N − x ∗ ‖ A≤ max |z∈λ(A) p∗ k (z) | = 0.Con ragionamento simile, si vede che se A ha m < N autovalori <strong>di</strong>stinti, CG convergein al massimo m iterazioni. Lo stesso accade nel caso in cui il termine noto sia unacombinazione lineare <strong>di</strong> m autovettori della matrice A, e si parta da x 0 = 0. Dallasimmetria della matrice e dalla compatibilità della norma matriciale <strong>di</strong> Hilbert conla norma euclidea dei vettori, ricordando la (2.4), si ottiene imme<strong>di</strong>atamente:‖r k ‖ 2‖r 0 ‖ 2= ‖b − Ax k‖ 2‖b − Ax 0 ‖ 2= ‖A(x k − x ∗ )‖ 2‖A(x 0 − x ∗ )‖ 2≤√λ1λ N‖x k − x ∗ ‖ A‖x 0 − x ∗ ‖ A,dove λ 1 e λ N sono rispettivamente l’autovalore massimo e quello minimo dellamatrice A.Usando i polinomi <strong>di</strong> Chebyshev, è possibile <strong>di</strong>mostrare il seguente risultato <strong>di</strong>convergenza dello schema CG:‖x k − x ∗ ‖ A‖x 0 − x ∗ ‖ A≤ 2(√κ(A) − 1√κ(A) + 1) k,dove κ(A) = λ 1 /λ N è l’in<strong>di</strong>ce <strong>di</strong> con<strong>di</strong>zionamento della matrice A. Il risultato mostrache il numero <strong>di</strong> iterazioni che CG impiega per arrivare a convergenza è proporzionalealla ra<strong>di</strong>ce del numero <strong>di</strong> con<strong>di</strong>zionamento <strong>di</strong> A. Possiamo quin<strong>di</strong> calcolare il numerom <strong>di</strong> iterazioni necessario per ridurre l’errore iniziale <strong>di</strong> un fattore ɛ. Infatti bastaimporre che:(√ ) mκ(A) − 12 √ < ɛ,κ(A) + 1


68 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIda cui, prendendo i logaritmi e notando chelog(√κ(A) − 1√κ(A) + 1)∼1√κ(A)per valori gran<strong>di</strong> <strong>di</strong> κ(A), si ottiene imme<strong>di</strong>atamente:m ≥ 1 2√κ(A) log2ɛ .Si noti che la convergenza <strong>di</strong> CG risulta più veloce <strong>di</strong> quella <strong>di</strong> SD per la presenzadella ra<strong>di</strong>ce del numero <strong>di</strong> con<strong>di</strong>zionamento <strong>di</strong> A (si veda l’eq. (3.29)). Inoltre,la convergenza è accelerata se κ(A) si avvicina a 1, ovvero se λ 1 ≈ λ N . Questaosservazione ci permette <strong>di</strong> cercare <strong>di</strong> migliorare la convergenza del metodo tramitela tecnica <strong>di</strong> “precon<strong>di</strong>zionamento”, secondo la quale si cerca <strong>di</strong> trasformare il sistemaoriginale in uno equivalente che ha in<strong>di</strong>ce <strong>di</strong> con<strong>di</strong>zionamento il più possibile vicinoa 1.Precon<strong>di</strong>zionamento <strong>di</strong> CG: Metodo PCGIl precon<strong>di</strong>zionamento del metodo CG serve a ridurre il numero <strong>di</strong> con<strong>di</strong>zionamentodella matrice A, in modo da accelerare la convergenza dello schema. Lo scopo è quello<strong>di</strong> arrivare ad una soluzione accettabile (i.e., con un residuo sufficientemente piccolo)in un numero <strong>di</strong> iterazioni che generalmente è molto minore della <strong>di</strong>mensione 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 <strong>di</strong>scusso nel paragrafo 3.1.1. Riportiamo qui l’eq. (3.10):P −1 Ax = P −1 b.In realtà, per migliorare la convergenza <strong>di</strong> CG applicato a questo sistema bisognarichiedere:1 ≤ κ(P −1 A) ≪ κ(A) (3.40)(idealmente κ(P −1 A) ≈ 1). Il problema fondamentale con quanto scritto è che lanuova matrice B = P −1 A non è più simmetrica nè positiva definita, per cui non sipuò applicare il metodo CG.Si può però procedere ricordandoci dell’esistenza delle trasformazioni <strong>di</strong> similitu<strong>di</strong>ne,<strong>di</strong>scusse nel paragrafo 2.0.5. E’ possibile infatti scrivere la matrice <strong>di</strong> precon<strong>di</strong>zionamentoP come prodotto <strong>di</strong> due matrici che risultino facili da invertire. Intal caso otteniamo:P = E T E P −1 = E −T E −1B = E −1 AE −T λ(B) = λ(P −1 A)


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI69e il nuovo sistema da risolvere si può scrivere quin<strong>di</strong>:By = c con B = E −1 AE −T y = E T x c = E −1 b.(3.41)Tale sistema ha le stesse soluzioni <strong>di</strong> quello originale e B è simmetrica e definitapositiva con un in<strong>di</strong>ce <strong>di</strong> con<strong>di</strong>zionamento minore <strong>di</strong> quello <strong>di</strong> A (ve<strong>di</strong> la (3.40)). Dalpunto <strong>di</strong> vista geometrico, possiamo <strong>di</strong>re che gli iperelissoi<strong>di</strong> che rappresentano lecurve <strong>di</strong> livello della forma quadratica che an<strong>di</strong>amo a minimizzare saranno molto piùvicine a delle ipersfere nel caso del sistema precon<strong>di</strong>zionato, con evidenti vantaggiin termini <strong>di</strong> allineamento precoce della <strong>di</strong>rezione <strong>di</strong> ricerca con il centro <strong>di</strong> taliiperelissoi<strong>di</strong> (e quin<strong>di</strong> il minimo della forma quadratica).Applicando il metodo <strong>di</strong> CG al nuovo sistema (3.41), con qualche passaggiosi arriva alle seguenti equazioni del “Precon<strong>di</strong>tioned Conjugate Gra<strong>di</strong>ent” (PCG)algotihm:Algorithm PCGInput: x 0 , nimax, toll; k = 0;r 0 = b − Ax 0 p 0 = P −1 r 0for k = 0, 1, . . . fino a convergenza:end for1. α k = 〈p k, r k 〉(3.42)〈p k , Ap k 〉2. x k+1 = x k + α k p k (3.43)3. r k+1 = r k − α k Ap k (3.44)4. β k = − 〈P −1 r k+1 , Ap k 〉(3.45)〈p k , Ap k 〉5. p k+1 = P −1 r k+1 + β k p k (3.46)Si noti che è sufficiente applicare il precon<strong>di</strong>zionatore solamente una volta al vettorer k+1 , salvando il risultato per utilizzarlo poi sia in (3.45) che in (3.46).La definizione del precon<strong>di</strong>zionatore più efficiente per un dato problema è generalmente<strong>di</strong>fficile e non esistono meto<strong>di</strong> generali. Per i sistemi che scaturiscono dalla<strong>di</strong>scretizzazione (agli elementi finiti o alle <strong>di</strong>fferenze finite) <strong>di</strong> equazioni <strong>di</strong>fferenziali,si usano spesso due tipi <strong>di</strong> precon<strong>di</strong>zionatori: il semplice precon<strong>di</strong>zionatore <strong>di</strong>agonale<strong>di</strong> Jacobi e la decomposta Incompleta <strong>di</strong> Cholesky (IC(0)).Il precon<strong>di</strong>zionatore <strong>di</strong>agonale <strong>di</strong> Jacobi (Jacobi <strong>di</strong>agonal scaling) corrispondealla scelta:{aij , se i = j,P = D p ij =,0, se i ≠ j.


70 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIed è <strong>di</strong> facilissima applicazione, anche se la sua efficienza non è elevatissima. Questoprecon<strong>di</strong>zionatore corrisponde ad una iterazione del metodo <strong>di</strong> Jacobi stu<strong>di</strong>ato nelparagrafo 3.1.1.Il precon<strong>di</strong>zionatore più frequentemente usato, perchè spesso più efficiente, èdato dalla decomposta Incompleta <strong>di</strong> Cholesky senza fill-in. Tale precon<strong>di</strong>zionatoreè facilmente definito a partire dalla fattorizzazione <strong>di</strong> Cholesky della matrice A =LL T imponendo a priori lo stesso pattern <strong>di</strong> sparsità della matrice A. In altreparole, detti l ij gli elementi della matrice (triangolare) fattorizzata <strong>di</strong> Cholesky, ilprecon<strong>di</strong>zionatore IC(0) è dato da:P = EE T e ij ={lij , se a ij ≠ 0,0, se a ij = 0..Implementazione all’elaboratore del PCGIn realtà l’implementazione del metodo PCG si deve fare prendendo in considerazioneil fatto che le operazioni più costose sono il prodotto matrice vettore e l’applicazionedel precon<strong>di</strong>zionatore ad un vettore, per cui tali operazioni vanno effettuatesolo se necessarie. Per questo, si preferisce salvare i vettori risultanti e riutilizzarliopportunamente. L’algoritmo completo può quin<strong>di</strong> essere scritto cosi’:


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI71Algorithm PCGInput: A, P, b, x 0 , nimax, toll; k = 1;x = x 0 , r = r 0 = b − Ax 0 , ρ 0 = ‖r‖ 2 2do while √ ρ k−1 > toll ‖b‖ 2and k < nimax:end for1. z = P −1 r2. τ k−1 = z T r3. if k = 1 thenelseend ifβ = 0p = z4. w = Apβ = τ k−1 /τ k−2p = z + βp5. α = τ k−1 /p T w6. x = x + αp7. r = r − αw8. ρ k = r T r9. k = k + 1Questo algoritmo prevede <strong>di</strong> memorizzare la matrice A, il precon<strong>di</strong>zionatore P e 6vettori: b, x, r, z, p e w.Usando il precon<strong>di</strong>zionatore IC(0), il punto 1. dell’algoritmo precedente vienesvolto risolvendo il sistema lineare P z = (EE T )z = r tramite una sostituzione inavanti ed una in<strong>di</strong>etro:Metodo delle correzioni residueE T z = y.Ey = rIl metodo delle correzioni residue (CR) si utilizza spesso per calcolare una soluzioneiniziale per il PCG. In pratica tale metodo è una mo<strong>di</strong>fica del metodo iterativo <strong>di</strong>Richardson (si veda il paragrafo 3.1.1) che utilizza come matrice <strong>di</strong> iterazione lamatriceE = (I − P −1 A),


72 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIper cui, partendo dalla soluzione iniziale x 0 = 0 si hanno le seguenti iterate:x 0 = P −1 bx 1 = x 0 + P −1 r 0x 2 = x 1 + P −1 r 1. . .x k+1 = x k + P −1 r k .Di solito una iterazione è sufficiente per eliminare tutte le componenti dell’errore corrispondentiad autovettori unitari della matrice P −1 A. Infatti, l’errore dello schemaprecedente può essere scritto come:e k+1 = (I − P −1 A) k e 0 .Notando che la matrice P −1 A è <strong>di</strong>agonalizzabile, si vede imme<strong>di</strong>atamente che l’errorealla k-esima iterazione è dato dan∑e k = (1 − λ j ) k cjv j ,j=1essendo λ 1 ≤ λ 2 ≤ . . . ≤ λ N gli autovalori <strong>di</strong> P −1 A or<strong>di</strong>nati in senso decrescente ei vettori v j , j = 1, . . . , N i corrispondenti autovettori. Si vede subito che una iterazionedel metodo CR azzera tutte le componenti dell’errore relative agli autovettoriassociati agli autovalori <strong>di</strong> P −1 A unitari.Esempi <strong>di</strong> applicazioneSi riportano qui <strong>di</strong> seguito due esempi <strong>di</strong> applicazione del metodo PCG precon<strong>di</strong>zionatocon IC(0) (la decomposta incompleta <strong>di</strong> Cholesky).Il primo esempio riguarda una matrice <strong>di</strong> <strong>di</strong>mensioni n = 28600, derivante dalla<strong>di</strong>scretizzazione spaziale tramite il metodo agli elementi finiti misti (ibri<strong>di</strong>zzati) <strong>di</strong>un’equazione ellittica a coefficienti variabili nello spazio. La matrice è simmetricae definita positiva ed è caratterizzata da un numero <strong>di</strong> elementi non nulli pari a201200, circa lo 0.02% degli elementi totali (n 2 ). La soluzione è stata ottenuta conun processore Pentium 4 a 2 GHz in circa 10 secon<strong>di</strong>. Il pattern degli elementi nonnulli è mostrato in Figura 3.14.Il secondo esempio è relativo ad una matrice <strong>di</strong> <strong>di</strong>mensioni n = 80711, aventeun numero <strong>di</strong> elementi non nulli pari a 432000, circa lo 0.07% degli elementi totali(n 2 ) (Figura 3.15 . La matrice è relativa ad una <strong>di</strong>scretizzazione <strong>di</strong> un sistema <strong>di</strong>equazioni <strong>di</strong> <strong>di</strong>ffusione tramite un metodo misto <strong>di</strong> elementi finiti alla Galerkin conelementi triangolari e un metodo alle <strong>di</strong>fferenze finite. La soluzione ha impiegatocirca 5 secon<strong>di</strong>.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI73Figura 3.14: Pattern spaziali degli elementi non nulli della matrice n = 28600. Adestra è <strong>di</strong>segnata l’intera matrice, a sinistra si riporta uno zoom del riquadro inalto a sinistra.


74 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIFigura 3.15: Pattern spaziali degli elementi non nulli della matrice n = 80711. Adestra è <strong>di</strong>segnata l’intera matrice, a sinistra si riporta uno zoom del riquadro inalto a sinistra.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI75n=2860010 -110 -3PCG residualreal residual (b-Ax)||r k||10 -510 -710 -910 -1110 -1310 -1510 -1710 -1910 -210 100 200 300 400 500kn=8071110 -110 -3PCG residualeal residual (b-Ax)||r k||10 -510 -710 -910 -1110 -1310 -1510 -1710 -1910 -210 50 100 150 200 250 300kFigura 3.16: Profili <strong>di</strong> convergenza del metodo PCG con precon<strong>di</strong>zionatore <strong>di</strong>Choleky per la matrice n = 28600 (sinistra) e n = 80711 (destra).


76 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARII profili <strong>di</strong> 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 <strong>di</strong> macchina (circa 10 −16 ).Implementazione pratica del metodo PCGPer l’applicazione ottimale del PCG è necessario minimizzare i costi del prodottomatrice-vettore e dell’applicazione del precon<strong>di</strong>zionatore. Ciò viene effettuatoin general sfruttando la caratteristica <strong>di</strong> sparsità tipica delle matrici che derivanoda <strong>di</strong>scretizzazioni <strong>di</strong> equazioni <strong>di</strong>fferenziali e quin<strong>di</strong> memorizzando solamente glielementi non nulli della matrice e effettuando le operazioni solo su <strong>di</strong> esssi.Il modo in cui viene memorizzata la matrice A del sistema è detto CompressedRow Storage (CRS).Caso non simmetrico. Data una generica matrice A quadrata <strong>di</strong> or<strong>di</strong>ne n, latecnica <strong>di</strong> memorizzazione CRS prevede la generazione <strong>di</strong> 3 vettori:1. SYSMAT: vettore <strong>di</strong> numeri reali contenente gli nt coefficienti non nulli dellamatrice A memorizzati in successione per righe;2. JA: vettore <strong>di</strong> numeri interi contenente gli nt in<strong>di</strong>ci <strong>di</strong> colonna dei corrispondentielementi memorizzati in SYSMAT;3. IA: vettore <strong>di</strong> numeri interi con n + 1 componenti, contenente le posizioni incui si trova in SYSMAT il primo elemento <strong>di</strong> ciascuna riga <strong>di</strong> A.Il vettore IA è chiamato “vettore topologico” e talvolta in<strong>di</strong>cato anche come TOPOL.L’uso congiunto <strong>di</strong> IA e JA consente <strong>di</strong> in<strong>di</strong>viduare qualsiasi elemento non nulloa ij memorizzato in SYSMAT. Infatti, l’elemento a ij si troverà in una posizione k delvettore SYSMAT compresa nell’intervallo IA(i) ≤ k ≤ IA(i + 1) − 1 e tale per cuiJA(k) = j. Queste due con<strong>di</strong>zioni permettono <strong>di</strong> in<strong>di</strong>viduare univocamente k percui SYSMAT(k) = a ij . Si noti che l’occupazione <strong>di</strong> memoria si riduce da n 2 numerireali (generalmente in doppia precisione) a nt numeri reali (tipicamente nt < 0.05n 2 )e nt + n + 1 numeri interi.


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI77Facciamo un esempio numerico per rendere pi˘chiaro il concetto. Si consideri laseguente matrice A <strong>di</strong> <strong>di</strong>mensione 6×6, sparsa e non simmetrica:⎡⎤4 0 7 0 0 03 4 0 2 0 0A =0 2 4 0 4 0⎢ 0 0 7 4 0 1.⎥⎣ 1 0 0 3 4 0 ⎦1 1 0 0 3 4Gli elementi non nulli sono nt = 18, mentre n 2 = 36, pertanto il grado <strong>di</strong> sparsità<strong>di</strong> A è il 50%. Trascurando i coefficienti nulli, la matrice A <strong>di</strong>venta:⎡⎤4 73 4 2A ′ =2 4 4⎢ 7 4 1.⎥⎣ 1 3 4 ⎦1 1 3 4Il vettore SYSMAT ha <strong>di</strong>mensione 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 <strong>di</strong>mensione <strong>di</strong> SYSMAT e per ogni coefficiente <strong>di</strong> quest’ultimoin<strong>di</strong>vidua l’in<strong>di</strong>ce <strong>di</strong> colonna:nt{ }} {1 3 1 2 4 2 3 5 3 4 6 1 4 5 1 2 5 6 .Il vettore IA, infine, in<strong>di</strong>vidua la posizione in SYSMAT del primo coefficiente <strong>di</strong>ciascuna riga:n+1{ }} {1 3 6 9 12 15 19 .Si noti che che le componenti <strong>di</strong> IA sono necessariamente or<strong>di</strong>nate in senso strettamentecrescente e che IA(n + 1) = nt + 1. Ciò si deduce imme<strong>di</strong>atamente dal fattoche per in<strong>di</strong>viduare un elemento a ij dell’ultima riga <strong>di</strong> A si deve cercare l’in<strong>di</strong>ce 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 <strong>di</strong>fferenziale ellittica <strong>di</strong>


78 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARILaplace, il risparmio computazionale derivato dal sistema CRS viene incrementatomemorizzando la sola parte triangolare alta, inclusa la <strong>di</strong>agonale principale, <strong>di</strong> A.In altri termini, vengono memorizzati solo i coefficienti a ij ≠ 0 con j ≥ i e si sfruttala proprietị A secondo cui a ij = a ji .La memorizzazione <strong>di</strong> A viene effettuata sempre me<strong>di</strong>ante i tre vettori SYSMAT,JA e IA definiti nel paragrafo precedente, in cui tuttavia nt rappresenta il numero <strong>di</strong>coefficienti non nulli della triangolare alta e IA contiene le posizioni in cui si trovain SYSMAT l’elemento <strong>di</strong>agonale <strong>di</strong> ciascuna riga <strong>di</strong> A.Anche in questo caso facciamo un esempio numerico per rendere pi˘chiaro ilconcetto. Si consideri la seguente matrice A <strong>di</strong> <strong>di</strong>mensione 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 20Gli elementi non nulli sono 19, mentre se fosse piena ne avremmo 49. Tuttavia icoefficienti da memorizzare sono solamente quelli relativi alla parte superiore <strong>di</strong> A,<strong>di</strong> seguito evidenziati:⎡A ′ =⎢⎣⎤.⎥⎦10 1 21 3 −14 13 2 11 1 5−1 12 1 20Il vettore SYSMAT avrà perciò <strong>di</strong>mensione nt = 13 (7 elementi <strong>di</strong>agonali più 6 extra<strong>di</strong>agonali)anziché 19, con un risparmio <strong>di</strong> memoria superiore al 30%, e sarà datoda:{nt}} {10 1 2 1 3 −1 4 1 2 1 5 1 20 .Il vettore JA con gli in<strong>di</strong>ci <strong>di</strong> colonna corrispondenti ha la stessa <strong>di</strong>mensione <strong>di</strong>SYSMAT 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 LINEARI79Infine, il vettore IA possiede sempre <strong>di</strong>mensione n + 1 ed in<strong>di</strong>vidua la posizione inSYSMAT degli elementi <strong>di</strong>agonali:{n+1}} {1 4 7 9 11 12 13 14 .Ad esempio, IA(3)=7 significa che a 33 è memorizzato in SYSMAT(7), come confermatoanche dal fatto che JA(7)=3.Come nel caso <strong>di</strong> matrici non simmetriche, si pone IA(n + 1) = nt + 1. Si notianche che dovrà sempre essere IA(1)=1 e IA(n) = nt, nonché JA(1)=1 e JA(nt) = n.Implementazione del prodotto matrice-vettore Lo schema del GCM necessitadell’operazione del prodotto matrice-vettore. L’implementazione <strong>di</strong> tale operazioneal calcolatore risulta del tutto banale nel caso <strong>di</strong> memorizzazione tabellaredella matrice, mentre è necessaria qualche attenzione qualora si utilizzi il sistema <strong>di</strong>rappresentazione CRS. Nel seguito <strong>di</strong>stingueremo fra l’implementazione del prodottomatrice-vettore per matrici non simmetriche, più intuitivo, e per matrici simmetrichein cui si memorizza la sola triangolare alta.Caso non simmetricoSi vuole calcolare il prodotto matrice-vettore:Av = w (3.47)con A matrice quadrata non simmetrica <strong>di</strong> or<strong>di</strong>ne n, v e w vettori in R n . Si ricordache la componente i-esima <strong>di</strong> w è pari alla somma dei prodotti degli elementi dellariga i <strong>di</strong> A per i corrispodenti elementi <strong>di</strong> v:w i =n∑a ij v j (3.48)j=1Se la matrice è memorizzata in modo compatto, gli elementi a ij vanno opportunamentericercati in SYSMAT me<strong>di</strong>ante l’uso <strong>di</strong> IA, mentre gli in<strong>di</strong>ci j relativi allecolonne si trovano nel vettore intero JA. In particolare, gli elementi <strong>di</strong> A appartenentialla riga i sono memorizzati in corrispondenza agli in<strong>di</strong>ci k del vettore SYSMATcompresi, per definizione <strong>di</strong> IA, nell’intervallo IA(i) ≤ k ≤IA(i + 1) − 1. Gli in<strong>di</strong>ci<strong>di</strong> colonna j, <strong>di</strong> conseguenza, sono memorizzati in JA(k).Il prodotto matrice-vettore con A non simmetrica e memorizzata in forma compattapuò quin<strong>di</strong> essere calcolato implementando il seguente algoritmo:001 Per i = 1, n002 azzero w i


80 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI003 Per k = IA(i), IA(i + 1) − 1004 j :=JA(k)005 w i := w i + SYSMAT(k) · v j006 Fine Per007 Fine PerSi noti che è sempre utile azzerare il vettore soluzione prima <strong>di</strong> procedere all’implementazionedel ciclo <strong>di</strong> sommatoria (riga 2), al fine <strong>di</strong> evitare l’uso improprio <strong>di</strong>valori precedentemente contenuti in w.Caso simmetrico Si vuole ora calcolare il prodotto (3.47) in cui la matrice simmetricaA è memorizzata in formato CRS come descritto prima (e quin<strong>di</strong> memorizzandosolo la parte triangolare. Poiché gli elementi a ij con j < i non sono ora imme<strong>di</strong>atamente<strong>di</strong>sponibili nella sequenza <strong>di</strong> coefficienti della riga i, conviene scrivere ladefinizione (3.48) come:∑i−1n∑w i = a ji v j + a ij v j (3.49)j=1avendo sfruttato la con<strong>di</strong>zione per cui a ij = a ji . Dalla (3.49) si deduce che il contributoa w i relativo agli elementi con j ≥ i può essere implementato in maniera deltutto analoga a quanto fatto nel paragrafo precedente, mentre il contributo relativoagli elementi con j < i può essere determinato selezionando in SYSMAT le componentik per cui JA(k) = i, cioè appartenenti alla colonna i-esima. E’ del tutto evidente,tuttavia, che questo modo <strong>di</strong> procedere, seppure intuitivo, risulta inapplicabile daun punto <strong>di</strong> vista pratico. Sarebbe, infatti, necessario procedere ad una ricerca sunt componenti per n volte, con un <strong>di</strong>spen<strong>di</strong>o che renderebbe inutile il vantaggio fornitodalla 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 <strong>di</strong> w i , entrano in gioco, in virt˘della simmetria <strong>di</strong> A, anche nelcalcolo <strong>di</strong> w j , con j pari all’in<strong>di</strong>ce <strong>di</strong> colonna dell’elemento considerato. All’internodel medesimo ciclo sulle righe i si aggiornerà pertanto non solo w i ma anche tuttii w j corrispondenti. L’algoritmo descritto nel precedente paragrafo viene quin<strong>di</strong>mo<strong>di</strong>ficato nel modo seguente:j=i001 Per i = 1, n002 azzero w i003 Fine Per


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI81004 Per i = 1, n005 k := IA(i)006 w i := w i + SYSMAT(k) · v i007 Per k = IA(i) + 1, IA(i + 1) − 1008 j := JA(k)009 w i := w i + SYSMAT(k) · v j010 w j := w j + SYSMAT(k) · v i011 Fine Per012 Fine PerSi noti che, a <strong>di</strong>fferenza 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 <strong>di</strong> calcolo <strong>di</strong> w. Inoltre, il contributo a w i dato dall’elemento<strong>di</strong>agonale a ii viene conteggiato a parte (riga 6) per evitare <strong>di</strong> considerarlo due voltenel ciclo successivo (corrisponde infatti al caso in cui i = j).<strong>Calcolo</strong> del precon<strong>di</strong>zionatoreUna delle chiavi del successo del GCM nella soluzione efficiente <strong>di</strong> sistemi lineari sparsi,simmetrici e definiti positivi sta nella possibilità <strong>di</strong> ottenere formidabili accelerazionidella convergenza me<strong>di</strong>ante l’uso <strong>di</strong> opportune matrici <strong>di</strong> precon<strong>di</strong>zionamento.La scelta <strong>di</strong> K −1 deve sod<strong>di</strong>sfare alle seguenti caratteristiche:• deve essere tale che il prodotto P −1 A abbia lo spettro, cioè l’insieme degliautovalori, raggruppato attorno all’unità e comunque un numero <strong>di</strong> con<strong>di</strong>zionamentospettrale inferiore a quello <strong>di</strong> A;• il calcolo deve essere semplice e poco costoso per non appesantire lo schema;• l’occupazione <strong>di</strong> memoria deve essere inferiore o al più paragonabile a quelladella matrice del sistema allo scopo <strong>di</strong> non vanificare lo sforzo computazionaleeffettuato per la memorizzazione compatta.Spesso le suddette caratteristiche confliggono fra loro e necessariamente la scelta<strong>di</strong> P −1 <strong>di</strong>venta il risultato <strong>di</strong> un compromesso. Per paradosso, la matrice che sod<strong>di</strong>sfacompletamente la prima richiesta è ovviamente A −1 , il cui costo ed occupazione <strong>di</strong>memoria (si ricor<strong>di</strong> che l’inversa <strong>di</strong> una matrice sparsa è generalmente una matricepiena) tuttavia rendono del tutto incalcolabile.Una <strong>di</strong>screta accelerazione del metodo del GC è ottenuta scegliendo:P −1 = D −1 (3.50)


82 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARIdove D è la matrice <strong>di</strong>agonale contenente gli elementi <strong>di</strong>agonali <strong>di</strong> A. In questo caso,il calcolo della matrice <strong>di</strong> precon<strong>di</strong>zionamento e la sua applicazione nello schemadel GCM risultano banali e vengono lasciati per esercizio al lettore. Il raggruppamentodegli autovalori attorno all’unità <strong>di</strong> D −1 A, tuttavia, può essere limitato,specialmente se A presenta coefficienti extra-<strong>di</strong>agonali gran<strong>di</strong> rispetto agli elementi<strong>di</strong>agonali.Risultati assai più significativi sono invece ottenuti assumendo:P −1 =) −1 (˜L˜LT(3.51)dove ˜L, matrice triangolare bassa, è calcolata me<strong>di</strong>ante la fattorizzazione incompleta<strong>di</strong> A, cioé la decomposta <strong>di</strong> Cholesky a cui viene assegnato il medesimo schema <strong>di</strong>sparsità <strong>di</strong> A. L’uso <strong>di</strong> questa matrice <strong>di</strong> precon<strong>di</strong>zionamento, proposto negli anni’70 da Kershaw, si rivela generalmente un ottimo compromesso fra le contrapposteesigenze precedentemente <strong>di</strong>scusse. Il calcolo <strong>di</strong> P −1 secondo la (3.51) e la suaapplicazione nell’algoritmo del GCM verranno esaminati nei due paragrafi seguenti.Fattore incompleto <strong>di</strong> Cholesky secondo Kershaw Il calcolo del fattore incompleto<strong>di</strong> Cholesky si basa sulla fattorizzazione triangolare <strong>di</strong> matrici simmetricheche viene <strong>di</strong> seguito brevemente richiamata. Poichè con la memorizzazione compatta<strong>di</strong> A vengono conservati i soli elementi appartenenti alla triangolare alta, convieneriscrivere la (3.51) come:P −1 =(Ũ T Ũ) −1(3.52)dove Ũ = ˜L T . Supponiamo che A sia una matrice 3×3 piena <strong>di</strong> cui svolgiamo peresteso la fattorizzazione:⎡⎤ ⎡⎤ ⎡⎤u 11 0 0 u 11 u 12 u 13 a 11 a 12 a 13⎣ u 12 u 22 0 ⎦ ⎣ 0 u 22 u 23⎦ = ⎣ a 12 a 22 a 23⎦ (3.53)u 13 u 23 u 33 0 0 u 33 a 13 a 23 a 33Si noti che nella (3.53) si è sfruttata la simmetria <strong>di</strong> A ed il fatto che i soli elementia ij memorizzati sono quelli per cui j ≥ i.Sviluppiamo il prodotto (3.53) procedendo secondo la successione delle righe <strong>di</strong>A. Per la prima riga vale:a 11 = u 2 11 ⇒ u 11 = √ a 11a 12 = u 11 u 12 ⇒ u 12 = a 12u 11(3.54)a 13 = u 11 u 13 ⇒ u 13 = a 13u 11


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI83Si può osservare che i coefficienti sotto<strong>di</strong>agonali <strong>di</strong> A vengono <strong>di</strong> volta in volta giàutilizzati nel calcolo delle righe superiori a quella corrente. Si procede, pertanto, conle righe 2 e 3 considerando i soli termini relativi alla triangolare alta <strong>di</strong> A:√a 22 = u 2 12 + u 2 22 ⇒ u 22 = a 22 − u 2 12a 23 = u 12 u 13 + u 22 u 23 ⇒ u 23 = 1 (a 23 − u 12 u 13 ) (3.55)u√ 22a 33 = u 2 13 + u 2 23 + u 2 33 ⇒ u 33 = a 33 − u 2 13 − u 2 23Dalle (3.54) e (3.55) si può facilmente generalizzare l’algoritmo <strong>di</strong> calcolo del fattorecompleto <strong>di</strong> Cholesky per una matrice <strong>di</strong> or<strong>di</strong>ne n:001 u 11 := √ a 11002 Per j = 2, n003 u 1j := a 1j /u 11004 Fine Per005 Per i = 2, n√006 u ii :=007 Per j = i + 1, n008 u ij :=009 Fine Per010 Fine Pera ii − ∑ i−1l=1 u2 li(a ij − ∑ i−1l=1 u li u lj)/u iiIl passaggio concettuale dal fattore completo <strong>di</strong> Cholesky a quello incompleto secondoKershaw risulta a questo punto banale, in quanto all’algoritmo precedente èsufficiente aggiungere l’assegnazione:a ij = 0 ⇒ u ij := 0 (3.56)Poiché A è memorizzata in modo compatto, e così anche Ũ, si deduce imme<strong>di</strong>atamenteche, in virtù dell’assegnazione (3.56), i vettori IA e JA descrivono anche latopologia <strong>di</strong> Ũ per la quale sarà sufficiente adottare un vettore PREC contenente icoefficienti non nulli memorizzati sequenzialmente per righe.Il nuovo algoritmo <strong>di</strong> calcolo del fattore incompleto <strong>di</strong> 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 LINEARI003 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)2009 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) = j013 PREC(k1) :=(SYSMAT(k1) − ∑ )l1,l2 PREC(l1) · PREC(l2) /PREC(k)014 Fine Per015 Fine PerVa osservato, tuttavia, che l’implementazione efficiente delle sommatorie in riga8 e 13 sugli in<strong>di</strong>ci l, l1 ed l2 è in realtà non banale e va preferibilmente effettuatacalcolando separatamente il contributo del coefficiente relativo al k corrente in mododa evitare le <strong>di</strong>spen<strong>di</strong>ose ricerche previste in riga 7, 11 e 12. Tale implementazioneè effettuata nella subroutine KERSH a <strong>di</strong>sposizione dello studente.Si deve infine ricordare che l’uso generalizzato delle (3.54) e (3.55) comportal’estrazione <strong>di</strong> ra<strong>di</strong>ci quadrate il cui argomento, nel caso <strong>di</strong> una fattorizzazione incompleta,non è più garantito essere positivo. In questo caso l’elemento <strong>di</strong>agonalein questione verrà posto pari ad un numero positivo arbitrario (ad esempio, l’ultimocoefficiente <strong>di</strong>agonale <strong>di</strong> Ũ non nullo). Si <strong>di</strong>mostra comunque teoricamente che sela matrice A è <strong>di</strong> tipo M, come ad esempio si verifica nella <strong>di</strong>scretizzazione agli elementifiniti dell’equazione ellittica <strong>di</strong> Laplace se si utilizzano funzioni <strong>di</strong> base linearidefinite su una triangolazione <strong>di</strong> Delaunay, tutte le ra<strong>di</strong>ci da calcolare nel fattoreincompleto esistono nel campo reale.Applicazione della decomposta incompleta Me<strong>di</strong>ante l’algoritmo sviluppatonel precedente paragrafo non si calcola esplicitamente la matrice <strong>di</strong> precon<strong>di</strong>zionamentoP −1 ma solamente il fattore incompleto Ũ. E’ quin<strong>di</strong> necessario sviluppare unalgoritmo ad hoc che permetta <strong>di</strong> calcolare il generico prodotto P −1 v senza generareesplicitamente P −1 . Sia quin<strong>di</strong> w il vettore in R n risultato del prodotto P −1 v. Perdefinizione <strong>di</strong> P −1 si ha:−1w =(Ũ Ũ) T v (3.57)cioè, premoltiplicando per P ambo i membri:(Ũ T Ũ)w = v (3.58)


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI85❅❅❅ z = v❅Ũ T ❅❅Figura 3.17: Schema della soluzione del sistema con sostituzioni in avanti.Il calcolo <strong>di</strong> w viene quin<strong>di</strong> ricondotto alla soluzione <strong>di</strong> un sistema lineare la cuimatrice è P . Poiché P è fattorizzabile nel prodotto <strong>di</strong> due matrici triangolari, ilsistema (3.58) è risolvibile tramite sostituzioni in avanti e all’in<strong>di</strong>etro. Posto:la (3.58) <strong>di</strong>venta:Ũw = z (3.59)Ũ T z = v (3.60)che si può facilmente risolvere con sostituzioni in avanti (Figura 3.17). Iniziandodalla prima componente, ricavata in modo imme<strong>di</strong>ato come:z 1 = v 1u 11(3.61)si ottiene con semplici calcoli la formula ricorrente:()z i = 1 ∑i−1v i − u ji z j i = 2, . . . , n (3.62)u iij=1Come osservato per il prodotto matrice-vettore e per la determinazione del fattoreincompleto <strong>di</strong> Cholesky, la sommatoria contenuta in (3.62) non è banale daimplementare in modo efficiente memorizzando le matrici secondo il sistema CRS.A tal proposito, risulta conveniente definire un vettore <strong>di</strong> accumulazione s nelle cuicomponenti viene aggiornato il prodotto contenuto nella sommatoria dell’equazione(3.62) procedendo per righe <strong>di</strong> Ũ. L’algoritmo per il calcolo del vettore z puòpertanto essere scritto come:001 Per j = 1, n002 azzero s j003 Fine Per004 z 1 := v 1 /PREC(1)


86 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI❅❅ Ũ❅❅❅❅w = zFigura 3.18: Schema della soluzione del sistema con sostituzioni all’in<strong>di</strong>etro.005 Per i = 2, n006 k := IA(i)006 Per k1 = IA(i − 1) + 1, IA(i) − 1007 j := JA(k1)008 s j := s j + PREC(k1) · z i−1009 Fine Per010 z i := (v i − s i ) /PREC(k)011 Fine PerOttenuto il vettore z si può infine calcolare w risolvendo il sistema (3.59) tramitesostituzioni all’in<strong>di</strong>etro (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:w n = z n(3.63)u nn()w i = 1n∑z i − u ij w j i = n − 1, . . . , 1 (3.64)u iij=i+1L’implementazione della (3.18) risulta stavolta molto semplice anche memorizzandola matrice Ũ in forma compatta. Sempre utilizzando il vettore <strong>di</strong> accumulos, l’algoritmo corrispondente può essere scritto nel modo seguente:001 w n := z n /PREC(nt)002 Per i = n − 1, 1 con passo -1003 azzero s i004 k := IA(i)005 Per k1 = IA(i) + 1, IA(i + 1) − 1006 j := JA(k1)007 s i := s i + PREC(k1) · w j


3.3. METODI DEL GRADIENTE PER LA SOLUZIONE DI SISTEMI LINEARI87008 Fine Per009 w i := (z i − s i ) /PREC(k)010 Fine PerPer un confronto, viene messa a <strong>di</strong>sposizione dello studente la subroutine LSOLVEche implementa gli algoritmi soprariportati.


88 CAPITOLO 3. METODI ITERATIVI PER SISTEMI LINEARI


Capitolo 4Soluzione numerica <strong>di</strong> equazioni<strong>di</strong>fferenziali4.1 Il problema <strong>di</strong> CauchyIn questo capitolo ci occupiamo della soluzione numerica <strong>di</strong> equazioni <strong>di</strong>fferenzialialle derivate or<strong>di</strong>narie (ODE, Or<strong>di</strong>nary Differential Equations). Il materiale quipresentato è una personale ri-elaborazione e sintesi del materiale presentato nellibro [3].Il problema <strong>di</strong> Cauchy cerca <strong>di</strong> trovare una funzione y(t) la cui derivata è ugualepunto per punto ad un’altra funzione f(t, y(t)), funzione della variabile in<strong>di</strong>pendentet e della funzione y(t) stessa. La funzione trovata deve anche sod<strong>di</strong>sfare certecon<strong>di</strong>zioni iniziali.Consideriamo il seguente:Problema 4.1.1 (Problema <strong>di</strong> Cauchy). Trovare la funzione y(t) ∈ C 1 (I), I =[t 0 , T ] (0 < T < ∞), tale chey ′ (t) = f(t, y(t)) t ∈ I,y(t 0 ) = y 0 ,(4.1)dove f(t, y) : S → R, S = I × (−∞, +∞).La soluzione <strong>di</strong> (4.1) è una funzione y(t) : I → R che si può scrivere in formaintegrale nel seguente modo:y(t) = y 0 +∫ tt 0f (τ, y(τ)) dτ. (4.2)Possiamo dare la seguente interpretazione “locale” del problema <strong>di</strong> Cauchy. Sianoδ e η due numeri reali positivi, e siano t 0 ∈ I e y 0 ∈ R. Formiamo gli intervalli89


90 CAPITOLO 4. SOLUZIONE DI ODEyy 0y 0+δ yy0−δ yΣφ(t)φ’(t)t 0−δ tt 0 t 0 + δ ttFigura 4.1: Interpretazione geometrica della soluzione y := φ(t) del problema <strong>di</strong>Cauchy (4.1).K = [t 0 − δ, t 0 + δ] e J = [y 0 − η, y 0 + η], e sia I × J ⊆ Σ ⊂ R. Una funzionef : Σ → R si <strong>di</strong>ce lipschitziana in Σ se esiste L > 0 tale che:| f(t, y 1 ) − f(t, y 2 ) | ≤ L| y 1 − y 2 |per ogni t ∈ I e per ogni y 1 e y 2 ∈ J. Si noti che una funzione f lipschitziana ècontinua in J, mentre non tutte le funzioni continue sono lipschitziane. Ad esempiog(y) = y 1/3 è continua ma non lipschitziana in [−1, 1]. In particolare, una funzioneg <strong>di</strong> classe C 1 (J) e tale per cui esiste una costante K > 0 tale che | g ′ (y) | ≤ K perogni y ∈ J è lipschitziana in J. Infatti:| g(y 1 ) − g(y 2 ) | = | g ′ (ξ)(y 1 − y 2 ) | ≤ K| y 1 − y 2 |.La funzione g(y) = | y | /∈ C 1 (I) ma è evidentemente lipschitziana in I.Sia M = max t∈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. φ(t 0 ) = y 0 ;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 91La funzione φ(t) si chiama soluzione o integrale del problema <strong>di</strong> Cauchy (4.1), percui y(t) := φ(t). L’interpretazione geometrica è mostrata in Figura 4.1. Per ognipunto t ∈ I, la derivata della funzione φ(t) è uguale al valore che la f assume inquel punto.Definizione 4.1.2 (Buona posizione). Il problema <strong>di</strong> Cauchy (4.1) si <strong>di</strong>ce ben postose esiste una soluzione unica, la quale <strong>di</strong>pende in maniera con<strong>di</strong>nua dai dati inizialie dal secondo membro dell’equazione <strong>di</strong>fferenziale.Possiamo rendere più precisa la definizione <strong>di</strong> <strong>di</strong>pendenza continua dai datidefinendo la stabilità del problema <strong>di</strong> Cauchy:Definizione 4.1.3 (Problema stabile (alla Liapunov)). il problema <strong>di</strong> Cauchy (4.1)è 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(t 0 ) = y 0 + δ 0 ,è tale che:| y(t) − z(t) | < Kɛ ∀t ∈ I,con la costante K in<strong>di</strong>pendente da ɛ e funzione dei dati del problema, e cioè t 0 , y 0 ,f.Dato il problema <strong>di</strong> Cauchy (4.1), se la f(t, y) è continua e uniformemente lipschitzianain y per t ∈ I e y ∈ R, allora il problema è 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 <strong>di</strong> Gronwall 1 ,1 Il lemma <strong>di</strong> Gronwall risulta molto importante, e vale la pena ricordarlo.Lemma 4.1.1 (<strong>di</strong> 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) sod<strong>di</strong>sfa la<strong>di</strong>suguaglianza:∫ tϕ(t) ≤ ψ(t) + g(τ)ϕ(τ) dτ, ∀t ∈ I,t 0allora(∫ t)ϕ(t) ≤ ψ(t)exp g(τ) dτt 0∀t ∈ I.


92 CAPITOLO 4. SOLUZIONE DI ODEt0t 1t j−1t jt j+1t N−1t =TNFigura 4.2: Discretizzazione dell’intervallo I = [t 0 , T ] in N sottointervalli <strong>di</strong> passo hotteniamo:Esempio 4.1.4.w(t) = δ 0 +∫ t| w(t) | ≤ (1 + | t − t 0 |) ɛ + Lt 0[f(τ, y(τ)) − f(τ, z(τ))] dτ +∫ tt 0| w(τ) | dτ≤ ɛ (1 + | t − t 0 |) e L| t − t 0 | , ∀t ∈ I∫ tt 0δ(τ) dτ≤ Cɛ, C = (1 + M t )e MtL , M t = max | t − t 0 |.ty ′ (t) = −y(t) + t t ∈ I = [0, 1],y(t 0 ) = 1,la cui soluzione è: y(t) = 2e −t + t − 1.z ′ (t) = −z(t) + t + δ t ∈ I = [0, 1],z(t 0 ) = 1 + δ 0 ,la cui soluzione è: z(t) = (2 + δ 0 − δ)e −t + t + δ − 1. Allora:per ogni t ∈ I.| y(t) − z(t) | = | (δ − δ 0 )e −t − δ | ≤ | δ |(1 − e −t ) + | δ 0 |e −t ≤ 2ɛ,4.2 Meto<strong>di</strong> a un passoLa soluzione del problema <strong>di</strong> Cauchy (4.1) in forma chiusa è possibile solo per particolarif(t, y). In generale, si dovrà ricorrere alla risoluzione numerica; si vuole quin<strong>di</strong>ricavare un algoritmo che permetta <strong>di</strong> approssimare la y(t) per t ∈ I. A tal fine, si


4.2. METODI A UN PASSO 93<strong>di</strong>scretizza l’intervallo I, e cioè si sud<strong>di</strong>vide l’intervallo in sotto-intervalli <strong>di</strong> passo h,e si in<strong>di</strong>ca con t j il generico punto in<strong>di</strong>viduato da t j = t 0 + jh, j = 0, 1, . . . , N, conh = (T − t 0 )/N (cf. Figura 4.2). Si in<strong>di</strong>chi con y j la soluzione numerica al passo t j :y j ≈ y(t j ). Intuitivamente, andremo a ricavare meto<strong>di</strong> numerici per il calcolo <strong>di</strong> y j ,j = 1, . . . , N; tali meto<strong>di</strong> approssimeranno per punti la nostra soluzione.Metodo <strong>di</strong> Eulero in avanti o esplicito. Si pensi quin<strong>di</strong> l’equazione <strong>di</strong>fferenzialescritta nel punto t j :y ′ (t j ) = f(t j , y(t j )). (4.3)Dobbiamo trovare una approssimazione <strong>di</strong> y ′ (t j ). A tal fine, scriviamo l’espansionein serie <strong>di</strong> Taylor della y(t j+1 ) = y(t j + h):y(t j+1 ) = y(t j + h) = y(t j ) + hy ′ (t j ) + h22 y′′ (t j ) + O(h 3 ), (4.4)dove O(h 3 ) ∝ Ch 3 (“O” grande). Trascurando i termini O(h 2 ) otteniamo l’approssimazione:y ′ (t j ) ≈ y j ′ = y j+1 − y j.hSostituendo in (4.3), si arriva al cosiddetto metodo <strong>di</strong> Eulero in avanti (o esplicito):y j+1 = y j + hf(t j , y j ) j = 0, 1, . . . , N − 1. (4.5)E’ quin<strong>di</strong> possibile scrivere il seguente algoritmo:Algorithm Eulero EsplicitoInput: t 0 , y 0 , N, h;for j = 0, 1, . . . , N − 1end for1. t j = t 0 + jh2. f j = f(t j , y j )3. y j+1 = y j + hf jEsempio 4.2.1. Proviamo ad applicare il metodo nel caso semplice <strong>di</strong> f(t, y) =−y(t), con t 0 = 0, T = 1 e y 0 = 1, che ammette soluzione y(t) = e −t . Sostituendof = −y in (4.5), otteniamo:y j+1 = (1 − h)y jUtilizzando un passo <strong>di</strong> integrazione h = 0.1, da cui N = 10, otteniamo la seguentetabella:


94 CAPITOLO 4. SOLUZIONE DI ODEj y j y(t j )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.367879441y10.90.80.70.60.50.4Eulero EsplicitoSoluzione Analitica0.30 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1tCome 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 <strong>di</strong> f(t, y) = −5y(t),con t 0 = 0, T = 3 e y 0 = 1, che ammette soluzione y(t) = e −5t . Sostituendo f = −5yin (4.5), otteniamo:y j+1 = (1 − 5h)y jUtilizzando h = 0.3, da cui N = 10, otteniamo la seguente tabella:j y j y(t j )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-06y10.80.60.40.20Eulero EsplicitoSoluzione Analitica-0.20 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7t3In questo caso il metodo produce delle stime molto meno accurate e si notano delleoscillazioni importanti nella soluzione numerica. Infatti, come vedremo più avanti,lo schema è stabile solo sotto certe con<strong>di</strong>zioni su h, ancorchè il problema <strong>di</strong> Cauchy sistabile secondo Liapunov. E’ dunque necessario andare a stu<strong>di</strong>are il comportamentodell’errore e stabilire la convergenza dello schema, e cioè la sua consistenza e stabilità.


4.2. METODI A UN PASSO 95Si pensi ora l’equazione <strong>di</strong>fferen-Metodo <strong>di</strong> Eulero all’in<strong>di</strong>etro o implicito.ziale scritta nel punto t j+1 :y ′ (t j+1 ) = f(t j+1 , y(t j+1 )). (4.6)Dobbiamo trovare una approssimazione <strong>di</strong> y ′ (t j+1 ). A tal fine, scriviamo l’espansionein serie <strong>di</strong> Taylor della y(t j ) = y(t j+1 − h):y(t j ) = y(t j+1 − h) = y(t j+1 ) − hy ′ (t j+1 ) + h22 y′′ (t j+1 ) + O(h 3 ).Di nuovo trascurando i termini O(h 2 ) possiamo ricavare:y ′ (t j+1 ) ≈ y j+1 ′ = y j+1 − y j.hSostituendo in (4.6), otteniamo il cosiddetto metodo <strong>di</strong> Eulero all’in<strong>di</strong>etro (o implicito):y j+1 = y j + hf(t j+1 , y j+1 ) j = 0, 1, . . . , N − 1. (4.7)Si noti che la nostra incognita, y j+1 , appare in maniera implicita sia a sinistra che adestra del simbolo <strong>di</strong> uguale, in maniera implicita come argomento della f(t, y), chein generale non potrà più essere calcolata esplicitamente. Infatti, nel caso in cui y j+1non sia esplicitabile, dovremmo ricorrere ad un metodo <strong>di</strong> tipo Newton-Raphson peril calcolo <strong>di</strong> y j+1 in ogni passo temporale (punto 2. dell’algoritmo seguente). Questofatto dà ragione dei nomi esplicito e implicito. Possiamo quin<strong>di</strong> scrivere il seguentealgoritmo:Algorithm Eulero ImplicitoInput: t 0 , y 0 , N, h;for j = 0, 1, . . . , N − 11. t j+1 = t j + h2. Risolvere y j+1 − y j − hf(t j+1 , y j+1 ) = 0end forRiproduciamo gli stessi esempi riportati sopra, ma con il metodo <strong>di</strong> Eulero all’in<strong>di</strong>etro.Si noti che in questo caso, essendo la f(t, y) lineare in y, anche tale schema<strong>di</strong>venta esplicito.Esempio 4.2.3. Caso <strong>di</strong> f(t, y) = −y(t), con t 0 = 0, T = 1 e y 0 = 1. Sostituendof = −y in (4.7), otteniamo:y j+1 = 11 + h y j.Utilizzando h = 0.1, da cui N = 10, otteniamo la seguente tabella:


96 CAPITOLO 4. SOLUZIONE DI ODEj y j y(t j )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.367879441y10.90.80.70.60.50.4Eulero ImplicitoSoluzione Analitica0.30 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1tCome si vede il metodo fornisce approssimazioni simili a quelle del caso esplicito,ma con sovrastima dei valori invece <strong>di</strong> sottostima.Esempio 4.2.4. Proviamo ora ad applicare il metodo nel caso <strong>di</strong> f(t, y) = −5y(t),con t 0 = 0, T = 3 e y 0 = 1. Sostituendo f = −5y in (4.5), otteniamo:y j+1 = 11 + 5h y j.Utilizzando h = 0.3, da cui N = 10, otteniamo la seguente tabella:j y j y(t j )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-07y10.80.60.40.20Eulero ImplicitoSoluzione Analitica-0.20 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7t3In 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 <strong>di</strong> Eulero esplicito. Lo schema <strong>di</strong> Eulero implicito, infatti, ha lastessa accuratezza dello schema esplicito ma risulta sempre stabile.Ve<strong>di</strong>amo per quest’ultima equazione <strong>di</strong>fferenziale un’interpretazione geometricadegli schemi <strong>di</strong> Eulero rispettivamente implicito ed esplicito. Per lo schema implicito,dall’eq. (4.7) si ricava imme<strong>di</strong>atamente che il punto (t j+1 , y j+1 ) è ottenuto


4.2. METODI A UN PASSO 970.4Eulero ImplicitoSoluzione Analiticay0.2y' 0.6=(y 0.6-y 0.3)/h=f(t 0.6,y 0.6)y' 0.9=(y 0.9-y 0.6)/h=f(t 0.9,y 0.9)00 0.3 0.6 0.9tFigura 4.3: Interpretazione geometrica dello schema <strong>di</strong> Eulero Implicito per l’equazione<strong>di</strong>fferenziale y ′ = −5y. Le rette rappresentate con punti e punti-linee sono ivalori <strong>di</strong> f(t, y) calcolati sull’ascissa j + 1.proseguendo a partire dal punto (t j , y j ) lungo la <strong>di</strong>rezione che ha pendenza pari ay ′ j+1 = (y j+1 − y j )/h = f(t j+1 , y j+1 ), mentre per lo schema esplicito tale <strong>di</strong>rezioneè pari a y ′ j = (y j+1 − y j )/h = f(t j , y j ). Quin<strong>di</strong>, nello schema implicito il nuovopunto è ottenuto utilizzando come pendenza la funzione calcolate in t j+1 , ed essendof(t, y) = −5y decrescente (y(t) = exp(−5t)), la pendenza sarà, in valore assoluto,decrescente e sarà inferiore (sempre in valore assoluto) a quella vera, da cui si vedeche lo schema implicito sovrastima la soluzione analitica (Figura 4.3). Nel caso <strong>di</strong>Eulero Esplicito, la situazione è analoga, con la <strong>di</strong>fferenza che la <strong>di</strong>rezione <strong>di</strong> ricercain ogni punto ha una pendenza che in questo caso è sempre sovrastimata (in valoreassoluto), da cui la soluzione esatta è sempre sottostimata.Metodo <strong>di</strong> Crank-Nicolson. Abbiamo visto che gli schemi <strong>di</strong> Eulero sono ricavatia partire dalla serie <strong>di</strong> Taylor trascurando per entrambi i termini proporzionalia h 2 . Il metodo <strong>di</strong> Crank-Nicolson cerca <strong>di</strong> migliorare l’accuratezza trascurandoi termini O(h 3 ). Per fare ciò senza complicare l’implementazione dello schema siparte dal fatto che sottraendo tra <strong>di</strong> loro le due serie <strong>di</strong> Taylor scritte prima, si ha


98 CAPITOLO 4. SOLUZIONE DI ODEcancellazione dei termini proporzionali a h 2 :y(t j+1 ) = y(t j ) + hy ′ (t j ) + h22 y′′ (t j ) + h36 y′′′ (t j ) + O(h 4 )y(t j ) = y(t j+1 ) − hy ′ (t j+1 ) + h22 y′′ (t j+1 ) − h36 y′′′ (t j+1 ) + O(h 4 ),da cui si ricava imme<strong>di</strong>atamente che:y ′ (t j+1 ) + y ′ (t j ) ≈ y j+1 ′ + y j ′ = y j+1 − y j.hScrivendo la (4.1) come me<strong>di</strong>a tra il passo t j+1 e il passo t j , otteniamo imme<strong>di</strong>atamenteil metodo <strong>di</strong> Crank-Nicolson:y j+1 = y j + h 2 [f(t j+1, y j+1 ) + f(t j , y j )] . (4.8)Lo schema è <strong>di</strong> tipo implicito, perchè a secondo membro l’incognita y j+1 è contenutaall’interno della f(t, y). L’algoritmo sarà dunque simile a quello <strong>di</strong> Eulero Implicito.Algorithm Crank-NicolsonInput: t 0 , y 0 , N, h;for j = 0, 1, . . . , N − 11. t j+1 = t j + h2. f j = f(t j , y j ) = 03. Risolvere y j+1 − y j − 0.5h [f(t j+1 , y j+1 ) + f j ] = 0end forRiproduciamo gli stessi esempi riportati sopra, ma con il metodo <strong>di</strong> Eulero all’in<strong>di</strong>etro.Si noti che in questo caso, essendo la f(t, y) lineare in y, anche tale schema<strong>di</strong>venta esplicito.Esempio 4.2.5. Caso <strong>di</strong> f(t, y) = −y(t), con t 0 = 0, T = 1 e y 0 = 1. Sostituendof = −y in (4.8), otteniamo:y j+1 = 2 − h2 + h y j.Utilizzando h = 0.1, da cui N = 10, otteniamo la seguente tabella:


4.2. METODI A UN PASSO 99j y j y(t j )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.367879441y10.90.80.70.60.50.4Crank-NicolsonSoluzione Analitica0.30 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1tCome si vede il metodo fornisce approssimazioni molto migliori rispetto ai meto<strong>di</strong> <strong>di</strong>Eulero. Il motivo è proprio nell’aver trascurato termini <strong>di</strong> or<strong>di</strong>ne superiore rispettoa quelli trascurati nel ricavare i meto<strong>di</strong> <strong>di</strong> Eulero.Esempio 4.2.6. Proviamo ora ad applicare il metodo nel caso <strong>di</strong> f(t, y) = −5y(t),con t 0 = 0, T = 3 e y 0 = 1. Sostituendo f = −5y in (4.5), otteniamo:y j+1 = 2 − 5h2 + 5h y j.Utilizzando h = 0.3, da cui N = 10, otteniamo la seguente tabella:j y j y(t j )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-07y10.80.60.40.2Crank-NicolsonSoluzione Analitica00 0.3 0.6 0.9 1.2 1.5 1.8 2.1 2.4 2.7 3tAnche in questo caso il metodo <strong>di</strong> Crank-Nicolson produce soluzioni più accuratedei meto<strong>di</strong> <strong>di</strong> Eulero, pur essendo stabile (perchè implicito).


100 CAPITOLO 4. SOLUZIONE DI ODE4.2.1 Deduzione degli schemi per mezzo <strong>di</strong> formule <strong>di</strong> quadraturaIn maniera equivalente, si posssono ricavare le formule dei tre schem stu<strong>di</strong>ati inprecedenza nel seguente modo. Integriamo l’equazione <strong>di</strong>fferenziale tra i due puntit j e t j+1 , ottenendo:y(t j+1 ) = y(t j ) +∫ tj+1t jf(τ, y(τ)) dτApprossimando l’integrale a secondo membro con una formula <strong>di</strong> quadratura otteniamoi <strong>di</strong>versi schemi. I meto<strong>di</strong> <strong>di</strong> Eulero esplicito e implicito si ottengono approssimandoil valore dell’integrale con l’area dei rettangoli che hanno per baseh = t j+1 − t j e altezza y(t j ) e y(t j+1 ), rispettivamente; il metodo <strong>di</strong> Crank-Nicolsonsi ottiene utilizzando la formula dei trapezi:y(t j+1 ) ≈ y(t j ) + hf(t j , y(t j )),y(t j+1 ) ≈ y(t j ) + hf(t j+1 , y(t j+1 )),y(t j+1 ) ≈ y(t j ) + h 2 [f(t j+1, y(t j+1 )) + f(t j , y(t j ))] ,e sostituendo y j al posto <strong>di</strong> y(t j ).4.3 Convergenza degli schemiSi vuole analizzare la convergenza della successione y j verso la soluzione analiticay(t j ). Quin<strong>di</strong>, definito l’errore e(t j ) = y j −y(t j ), in maniera molto naturale chie<strong>di</strong>amoche l’errore tenda a zero al tendere a zero dei termini che abbiamo trascurati, quin<strong>di</strong>per h → 0. Anche alla luce degli esperimenti precedenti, ci doman<strong>di</strong>amo allora:1. la soluzione numerica tende alla soluzione vera (cioè l’errore tende a zero) perh → 0?2. e quanto velocemente?3. qual’è il valore massimo <strong>di</strong> h che mi ritorna una soluzione numerica qualitativamentevicina a quella vera?Siccome l’errore è definito per tutti i punti t j , si può richiedere che il massimo modulodell’errore calcolato tra tutti i punti t j tenda a zero. Abbiamo quin<strong>di</strong> la seguente:Definizione 4.3.1 (Convergenza). Uno schema per la soluzione del problema <strong>di</strong>Cauchy (4.1) è convergente se:limh→0 max0≤j≤N | y j − y(t j ) | = 0


4.3. CONVERGENZA DEGLI SCHEMI 101h e h,EE e h,EI e h,CNe h,EEe h−1,EEe h,EIe h−1,EIe h,CNe h−1,CN0.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.33Tabella 4.1: Norma dell’errore per i meto<strong>di</strong> <strong>di</strong> EE, EI, e CN, e rapporto tra due valoriconsegcutivi consecutivi. Si nota che i meto<strong>di</strong> <strong>di</strong> Eulero hanno un rapporto <strong>di</strong> circa2 mentre tale rapporto per Crank-Nicolson è circa 4, in<strong>di</strong>cando quin<strong>di</strong> convergenzalineare (O(h)) e quadratica (O(h 2 )), rispettivamente.Accorgendoci che l’argomento del limite è una norma “funzionale”, possiamosostituire la precedente con una norma qualsiasi, e cioè:lim ‖y h − y(t)‖ = 0h→0dove y h = {y 0 , y 1 , . . . , y N }. Per esempio, si può utilizzare la norma L 2 definita da:[∫‖g(t)‖ =4.3.1 Convergenza sperimentaleI] 1| g(t) | 2 2dtAnalizziamo ora sperimentalmente la convergenza così definita per gli schemi ricavatipiù sopra. Per fare questo calcoliamo l’errore per ogni j e an<strong>di</strong>amo a valutare lanorma sfruttando il fatto che t j+1 − t j = h è costante:[h ∑ N=1j=0 | y j − y(t j ) | 2] 1 2e h,xx = ‖y h − y(t)‖ ≈ [h ∑ N=1j=0 | y(t j) | 2] ,12dove xx = EE, EI, CN per Eulero esplicito, Eulero implicito e Crank-Nicolson.Calcoliamo dunque la norma precedente per valori decrescenti del passo <strong>di</strong> integrazioneh, ad esempio in sequenza geometrica <strong>di</strong> 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 <strong>di</strong> Eulero si comportano in maniera molto simile,mostrando una convergenza del primo or<strong>di</strong>ne (O(h)), mentre Crank-Nicolson mostrauna convergenza <strong>di</strong> or<strong>di</strong>ne 2 (O(h 2 )). Bisogna quin<strong>di</strong> formalizzare queste osservazioni


102 CAPITOLO 4. SOLUZIONE DI ODE0.4Eulero ImplicitoSoluzione Analiticay0.20τ j+1(h)0.3 0.6 0.9tFigura 4.4: Interpretazione geometrica dell’errore <strong>di</strong> troncamento locale (in<strong>di</strong>catocon τ j+1 (h)) per il metodo <strong>di</strong> Eulero Esplicito applicato all’esempio 4.2.2,e stu<strong>di</strong>are quin<strong>di</strong> il comportamento degli schemi in generale. Come per tutti glischemi, il modo più <strong>di</strong>retto per stu<strong>di</strong>are la convergenza è quello <strong>di</strong> verificare laconsistenza dello schema e la sua stabilità.4.3.2 Consistenza e errore <strong>di</strong> troncamento.La prima osservazione da fare riguarda l’or<strong>di</strong>ne <strong>di</strong> convergenza. Non sorprendentementegli schemi convergono alla soluzione con lo stesso or<strong>di</strong>ne in h dei termini chesono stati trascurati negli sviluppi <strong>di</strong> Taylor. Quin<strong>di</strong> la velocità <strong>di</strong> convergenza èfunzione del cosiddetto errore <strong>di</strong> troncamento. Bisogna però <strong>di</strong>stinguere tra errore<strong>di</strong> troncamento locale e errore <strong>di</strong> propagazione. Il primo è l’errore che si commetteavanzando <strong>di</strong> un passo (da t j a t j+1 ), assumendo <strong>di</strong> partire dal valore esatto dellasoluzione (y(t j )). Il secondo è l’errore <strong>di</strong> propagazione derivante dall’accumulo deglierrori <strong>di</strong> troncamento locali. Quin<strong>di</strong> possiamo scrivere:e j+1 = y(t j+1 ) − y j+1 = y(t j+1 ) − y ∗ j+1 + y ∗ j+1 − y j+1dove y ∗ j+1 è la soluzione ottenuta dallo schema a partire dalla soluzione vera y(t j ).In generale, scriviamo tutti gli schemi precedenti (e tutti gli schemi ad un passo)come:y j+1 = y j + hΦ(t j , y j , f j ; h), 0 ≤ j ≤ N − 1, (4.9)


4.3. CONVERGENZA DEGLI SCHEMI 103dove la funzione Φ(·, ·, ·; h) in<strong>di</strong>vidua il particolare schema 2 Sostituendo la soluzionevera y(t) nella precedente otteniamo:y(t j+1 ) = y(t j ) + hΦ(t j , y(t j ), f(t j , y(t j )); h) + ɛ j+1 ,dove il termine ɛ j+1 è il residuo al passo j + 1. Scriviamo tale residuo nella forma:ɛ j+1 = hτ j+1 (h)dove τ j+1 (h) è l’errore <strong>di</strong> troncamento locale. L’errore <strong>di</strong> troncamento non globalema locale massimo (verificare) è quin<strong>di</strong> dato da:La funzione Φ è tale che:τ(h) =max τ j+1(h). (4.10)0≤j≤N−1lim Φ(t j, y(t j ), f(t j , y(t j )); h) = f(t j , y(t j )) j = 1, 2, . . . , N.h→0Ricordando la (4.4), per cui si ha y(t j+1 ) − y(t j ) = hy ′ (t j ) + O(h 2 ), si vede subitoche la precedente implica che t j+1 (h) → 0 al tendere <strong>di</strong> h a zero, da cui risulta:lim τ(h) = 0,h→0che implica che lo schema (4.9) è consistente, cioè l’errore locale <strong>di</strong> troncamentotende a zero con h. Inoltre si <strong>di</strong>ce che lo schema ha or<strong>di</strong>ne <strong>di</strong> convergenza o <strong>di</strong>accuratezza pari a p seτ(h) = O(h p ).Esempio 4.3.2 (Errore <strong>di</strong> troncamento per Eulero Esplicito). Per il metodo <strong>di</strong>Eulero esplicito il residuo vale:ɛ j+1 (h) = | y(t j+1 ) − y ∗ j+1 | = | y j+1 − y(t j ) − hf(t j , y(t j )) | = h22 | y′′ (ξ) |,con ξ ∈ I punto opportuno (derivante dall’applicazione del teorema del valor me<strong>di</strong>o).L’errore <strong>di</strong> troncamento locale è dunque:τ j+1 (h) = h 2 | y′′ (ξ) |,mostrando che lo schema è del primo or<strong>di</strong>ne <strong>di</strong> accuratezza, come verificato sperimentalmentein precedenza. In Figura 4.4 si riporta un’interpretazione geometricadell’errore <strong>di</strong> troncamento locale e dell’errore <strong>di</strong> propagazione.Si vede facilmente dalla loro derivazione con la formula <strong>di</strong> Taylor che i meto<strong>di</strong>precedentement stu<strong>di</strong>ati sono tutti consistenti; gli schemi <strong>di</strong> Eulero hanno accuratezzap = 1, mentre Crank-Nicolson ha accuratezza p = 2, come evidenziato anchedagli esperimenti numerici.2 Ad esempio, per EE: Φ(t j , y j , f j , h) = f(t j , y j ).


104 CAPITOLO 4. SOLUZIONE DI ODE4.3.3 StabilitàLa stabilità <strong>di</strong> uno schema viene definita in maniera analoga alla stabilità definita peril problema <strong>di</strong> 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 <strong>di</strong> passi<strong>di</strong> integrazione, la stabilità implicherà che tali errori non vengano amplificati dalloschema. In questo caso bisogna considerare un punto fissato t j ∈ I = [t 0 , T ], con Tlimitato, e vedere cosa succede a piccole perturbazioni della soluzione al tendere <strong>di</strong>h a zero; siccome t j = t 0 + jh, bisogna far tendere contemporanemante j all’infinitoin modo che:lim t j = th→0j→∞Abbiamo dunque la seguente:Definizione 4.3.3 (Zero-stabilità). 3 Uno schema ad un passo (eq. (4.9)) si <strong>di</strong>cezero-stabile se perturbazioni alla soluzione rimangono limitate al tendere <strong>di</strong> h a zero.Lo schema esplicito (4.9) caratterizzato da una Φ(t, y, f(t, y(t); h) lipschitziana,è zero stabile. Infatti, una Φ(t, y, f(t, y(t); h) lipschitziana è caratterizzata da:| Φ(t k , y k , f(t k , y k ); h) − Φ(t k , z k , f(t k , z k ); h) | ≤ Λ| y k − z k |.In<strong>di</strong>cando con w k = y k − z k , si ha facilmente:w k+1 = w k + h [Φ(t k , y j , f(t k , y k ); h) − Φ(t k , z j , f(t k , z k ); h)] + hδ k+1 .La somma per k = 0, 1, . . . , j risulta:w j+1 = w 0 + hj∑δ k+1 hk=0Per la lischitzianità <strong>di</strong> Φ si ha:j∑[Φ(t k , y j , f(t k , y k ); h) − Φ(t k , z j , f(t k , z k ); h)] .k=0| w j+1 | ≤ | w 0 | + hj∑δ k+1 + hΛk=0j∑| w k |k=03 In maniera equivalente si può dare la seguente definizione <strong>di</strong> zero-stabilità:Definizione 4.3.4 (Zero-stabilità). Lo schema ad un passo (4.9) per la soluzione <strong>di</strong> (4.1) si <strong>di</strong>cezero-stabile se esiste h 0 > 0 e una costante C > 0 tali che per ogni h ∈ (0, h 0 ] e ɛ > 0 piccolo apiacere, per | δ j | ≤ ɛ:| y j − z j | ≤ ɛ ∀0 ≤ j ≤ N,dove y j è la soluzione numerica del problema (4.1), e z j è la soluzione numerica del problema (4.3).


4.3. CONVERGENZA DEGLI SCHEMI 105Usando la versione <strong>di</strong>screta del lemma <strong>di</strong> Gronwall 4 si ottiene subito:| w j | ≤ ɛ (1 + hj) exp (Λhj) .La <strong>di</strong>mostrazione si conclude notando hj ≤ T .Una <strong>di</strong>mostrazione simile porta al seguente:Teorema 4.3.2 (Teorema <strong>di</strong> Lax-Richtmeyer). Uno schema zero-stabile e consistenteè convergente.Si noti che i meto<strong>di</strong> <strong>di</strong> Eulero sono zero-stabili perchè la (4.1) è ben posta.Siccome sono consistenti, sono anche convergenti.Analisi <strong>di</strong> convergenza per il metodo <strong>di</strong> Eulero esplicitoDefiniamo come prima l’errore al passo t j+1 come e j+1 = y(t j+1 ) − y j+1 e in<strong>di</strong>chiamocon y ∗ j+1 la soluzione ottenuta dopo un passo del metodo <strong>di</strong> Eulero partendo peròdalla soluzione esatta:y ∗ j+1 = y(t j ) + hf(t j , y(t j )).Possiamo scrivere:e j+1 = ( y(t j+1 ) − y ∗ j+1)+(y∗j+1 − y j+1).Il primo termine è il residuo (h volte l’errore <strong>di</strong> troncamento locale), mentre ilsecondo considera l’accumulo <strong>di</strong> tale errore nel tempo. Quin<strong>di</strong> possiamo scrivere:| e j+1 | ≤ h| τ j+1 | + (1 + hL)| e j |.4Lemma 4.3.1 (Lemma <strong>di</strong> Gronwall <strong>di</strong>screto). Si in<strong>di</strong>chi con K n una successione non negativa econ ϕ n una successione tale che, dato ϕ 0 ≤ g 0 :Se g 0 ≥ 0 e p j ≥ 0 per ogni j ≥ 0, allora:∑j−1∑j−1ϕ j ≤ g 0 + p k + K k ϕ k .k=0k=0( ) (∑j−1j−1) ∑ϕ j ≤ g 0 + p k exp K k ϕ k .k=0k=0


106 CAPITOLO 4. SOLUZIONE DI ODEMaggiorando l’errore <strong>di</strong> troncamento locale con quello globale si ottiene per ricorrenzae notando che e 0 ≤ τ(h):| e j+1 | ≤ [ 1 + (1 + hL) + . . . + (1 + hL) j] h| τ(h) | ≤ exp(L(t j+1 − t 0 )) − 1τ(h),Lavendo notato che (1 + hL) ≤ e hL e t j+1 = t 0 + (j + 1)h. Dalla consistenza delloschema <strong>di</strong> Eulero, si ricava imme<strong>di</strong>atamente che:τ j+1 (h) = h 2 y′′ (ξ), ξ ∈ [t j , t j+1 ],e in<strong>di</strong>cando con M = max ξ∈I | y ′′ (ξ) |, si ha subito la convergenza (al primo or<strong>di</strong>ne<strong>di</strong> accuratezza p = 1) dello schema <strong>di</strong> Eulero esplicito:| e j | ≤ exp(L(t j+1 − t 0 )) − 1 ML 2 h.Abbiamo fatto i conti fin qui senza tenere in considerazione gli errori <strong>di</strong> arrotondamento.Se lo facessimo, non potremmo più concludere che l’errore tende a zero conh, ma ci sarà un termine aggiuntivo nella maggiorazione dell’errore proporzionale a1/h (con costante piccola, peraltro). Esisterà quin<strong>di</strong> un valore h ∗ che minimizzeràl’errore, e al <strong>di</strong> sotto del quale l’errore comincerà a crescere, essendo l’accumlazionedell’errore <strong>di</strong> arrotondamento preponderante rispetto all’errore <strong>di</strong> troncamento. Ingenere, però, h ∗ è praticamente molto piccolo, per cui questo effetto non si vede pervalori ragionevolmente piccoli <strong>di</strong> h.4.3.4 Assoluta stabilitàLa zero stabilità non spiega il comportamento visto nell’esempio 4.2.2, dove si notaval’instabilità del metodo <strong>di</strong> Eulero in avanti. Infatti in questo caso il metodo esplicitoè stabile solo per h < 0.2.Bisogna quin<strong>di</strong> ricorrere alla nozione <strong>di</strong> assoluta stabilità, che intende verificarela stabilità dello schema a h fissato e per valori <strong>di</strong> T che aumentano. Tale concetto <strong>di</strong>stabilità però <strong>di</strong>pende dalla particolare forma <strong>di</strong> 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 è y(t) = e λt . Anche se in realtà λ ∈ C, noi assumeremo per semplicitàλ ∈ R. E’ evidente che la soluzione tenderà a zero per t che tende all’infinito seλ < 0, altrimenti tenderà all’infinito. Quin<strong>di</strong> per λ < 0, la stabilità dovrà richiedere


4.3. CONVERGENZA DEGLI SCHEMI 107che le perturbazioni alla soluzione numerica tendano a zero all’aumentare del tempo.Nel caso <strong>di</strong> λ > 0 la definizione <strong>di</strong> stabilità dovrà tenere conto invece della possibilecrescita nel tempo delle perturbazioni ma non tanto da <strong>di</strong>struggere l’accuratezzadello schema. Di nuovo per semplicità assumeremo λ < 0, rimandando al testo [3]per approfon<strong>di</strong>menti.Sotto queste ipotesi, possiamo dare la seguente definizione <strong>di</strong> stabilità assoluta:Definizione 4.3.5 (Assoluta stabilità). Lo schema ad un passo (4.9) si <strong>di</strong>ce assolutamentestabile se, applicato all’equazione test (4.11) con λ < 0, la soluzionenumerica y j sod<strong>di</strong>sfa:limtj→∞ | y j | → 0Si noti che l’equazione test in realtà può essere pensata come la linearizzazione delgenerico problema <strong>di</strong> Cauchy (4.1). Infatti, linearizzando (4.1) si ottiene il seguenteproblema <strong>di</strong> Cauchy:y ′ (t) = ∂f (t, y(t))y(t)∂yy(0) = 1da cui l’equazione test con λ = ∂f (y, y(t)).∂yStabilità degli schemi <strong>di</strong> Eulero e Crank-NicolsonStu<strong>di</strong>amo ora la stabilità assoluta per gli schemi <strong>di</strong> Eulero esplicito ed implicito, e loschema <strong>di</strong> Crank-Nicolson, per dare un senso compiuto ai risultati degli esperimentiriportati più sopra.Applicando il metodo <strong>di</strong> Eulero in avanti all’equa-Metodo <strong>di</strong> Eulero in avanti.zione test (4.11) si ottiene:y j+1 = y j + λhy j = (1 + hλ)y j .Per induzione, partendo da j = 0, si ottiene imme<strong>di</strong>atamente:che tende a zero se e solo se:y j = (1 + hλ) j| 1 + hλ | < 1da cui la con<strong>di</strong>zione <strong>di</strong> assoluta stabilità per il metodo <strong>di</strong> Eulero esplicito:0 < h < 2−λ


108 CAPITOLO 4. SOLUZIONE DI ODE2Eulero Esplicito1e -10th=0.01h=0.05h=0.15h=0.2h=0.3y j0-1-20 0.5 1tFigura 4.5: Soluzioni numeriche dell’equazione test con λ = −10 ottenute conil metodo <strong>di</strong> Eulero esplicito per <strong>di</strong>versi valori <strong>di</strong> h a confronto con la soluzioneanalitica.Nel caso λ = −1 (esempio (4.2.1)) si ottiene che lo schema <strong>di</strong> Eulero esplicito èstabile se h < 2. Nel caso λ = −5 (esempio (4.2.2)) lo schema risulta stabile seh < 0.4. Si noti che il risultato precedente ci <strong>di</strong>ce che la soluzione tende a zeroper h < 0.4. Un’analisi più approfon<strong>di</strong>ta rivela però che la soluzione numerica saràoscillante ((1 + hλ) < 0) per 0.2 < h < 0.4, mentre tenderà a zero monotonicamente(con valori sempre positivi, e quin<strong>di</strong> qualitativamente in accordo con la soluzioneanalitica) per h < 0.2. Nel caso λ = −10 invece lo schema è 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 <strong>di</strong>versi valori <strong>di</strong> h.Metodo <strong>di</strong> Eulero all’in<strong>di</strong>etro. Applichiamo ora il metodo <strong>di</strong> Eulero all’in<strong>di</strong>etro(o implicito)all’equazione test (4.11)::y j+1 = y j + λhy j+1 =11 − hλ y j.Per induzione, partendo da j = 0, si ottiene imme<strong>di</strong>atamente la con<strong>di</strong>zione <strong>di</strong>stabilità:|11−hλ | < 1,


4.3. CONVERGENZA DEGLI SCHEMI 109sempre verificata per qualsiasi h (a patto che sia λ < 0, ovviamente). Lo schemarisulta quin<strong>di</strong> incon<strong>di</strong>zionatamente stabile, cioè stabile per qualsiasi valore <strong>di</strong> h, comemenzionato precedentemente negli esempi 4.2.3 e 4.2.4. Anche la monotonia dellasoluzione è assicurata per qualsiasi valore <strong>di</strong> h, per λ < 0.Metodo <strong>di</strong> Crank-Nicolson. E’ facile intuire che proprietà <strong>di</strong> stabilità incon<strong>di</strong>zionataè comune agli schemi impliciti, per cui anche Crank-Nicolson dovrebbeesserlo. Infatti:y j+1 = y j + λh2 (y j+1 + y j ) = 2 + hλ2 − hλ y j,da cui, sempre per induzione, la con<strong>di</strong>zione <strong>di</strong> stabilità <strong>di</strong>venta:2 + hλ∣2 − hλ∣ < 1da cui segue imme<strong>di</strong>atamente la stabilità incon<strong>di</strong>zionata dello schema <strong>di</strong> Crank-Nicolson, mentre chiaramente la monotonia della soluzione nomerica non è assicuratase non per h < 2/| λ |.4.3.5 Implementazione meto<strong>di</strong> implicitiRipren<strong>di</strong>amo <strong>di</strong> nuovo l’algoritmo <strong>di</strong> Eulero implicito:Algorithm Eulero ImplicitoInput: t 0 , y 0 , N, h;for j = 0, 1, . . . , N − 11. t j+1 = t j + h2. Risolvere y j+1 − y j − hf(t j+1 , y j+1 ) = 0end forIl passo al punto 2. richiede <strong>di</strong> risolvere un problema non lineare per y j+1 . Talepasso viene implementato utilizzando un metodo iterativo alla Newton. Chiamiamox la nostra incognita: y j+1 = x, così che il problema <strong>di</strong>venta:Trovare lo zero della funzione g(x), trovare cioè la soluzione della equazioneg(x) = 0, dove:g(x) = x − y j − hf(t j+1 , x) = 0.Possiamo usare un’iterazione <strong>di</strong> Newton-Raphson oppure <strong>di</strong> Picard. An<strong>di</strong>amo aformalizzare nel dettaglio il caso <strong>di</strong> Picard, e an<strong>di</strong>amo a verificare le con<strong>di</strong>zioni <strong>di</strong>convergenza <strong>di</strong> tale schema. In<strong>di</strong>cando con r l’in<strong>di</strong>ce <strong>di</strong> iterazione nonlineare, loschema <strong>di</strong> Picard si pù scrivere come:x (r+1) = g(x (r) ) = x (r) − y j − hf(t j+1 , x (r) ).


110 CAPITOLO 4. SOLUZIONE DI ODELo schema sopra converge se | g ′ (x) | < 1 per x ∈ I ξ , dove I ξ è un intorno del puntofisso. La derivata <strong>di</strong> g è:g ′ (x) = 1 − h ∂f∂x (t j+1, x),da cui si ricava una con<strong>di</strong>zione sufficiente per la convergenza dello schema <strong>di</strong> Picardsimile alla con<strong>di</strong>zione <strong>di</strong> assoluta stabilità per lo schema <strong>di</strong> Eulero esplicito:∣ 1 − h∂f ∂x (t j+1, x)∣ < 1che implica una restrizione al passo <strong>di</strong> integrazione che limita l’utilizzo <strong>di</strong> questoschema:h∂f∣∂x (t j+1, x)∣ < 2.Se invece del metodo <strong>di</strong> Picard, usiamo lo schema <strong>di</strong> Newton-Raphson non siha più alcuna restrizione sul passo <strong>di</strong> integrazione richiesta dalla convergenza delloschema <strong>di</strong> risoluzione nonlineare. Tutto questo può essere ripetuto anche per loschema <strong>di</strong> Crank-Nicolson. In conclusione, dal punto <strong>di</strong> vista computazionale, èquasi sempre preferibile usare uno schema implicito al posto <strong>di</strong> uno esplicito assiemeallo schema <strong>di</strong> Newton-Raphson, anche se la cosa deve essere verificata sul particolareproblema (e quin<strong>di</strong> la particolare f(t, (y(t))) che si vuole risolvere.


Bibliografia[1] G. Gambolati. Lezioni <strong>di</strong> meto<strong>di</strong> numerici per ingegneria e scienze applicate.Cortina, Padova, Italy, 2 e<strong>di</strong>tion, 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 e<strong>di</strong>tion, 2007.[4] Y. Saad. Iterative Methods for Sparse Linear Systems. Second e<strong>di</strong>tion. SIAM,Philadelphia, PA, 2003.[5] J. R. Shewchuk. An introduction to the conjugate gra<strong>di</strong>ent method without theagonizing pain. Technical report, Pittsburgh, PA, USA, 1994.111

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!