Metodi numerici
per la risoluzione di
sistemi lineari quadrat
Generalità sulle matrici
Sia A una matrice quadrata di ordine n con element reali o complessi; valgono le seguent definizioni:
Norme vettoriali 1
Il concetto di norma estende il concetto di
“lunghezza” di un vettore xRn o di una matrice A Rnn
Definizione
Una norma vettoriale è una funzione da Rn in R, da xx, per cui valgono le seguent proprietà
Disuguaglianza triangolare 3
Norme vettoriali 2
Esempi
“sfere” unitarie relatve alle norme descritte
Norme matriciali indotte 1
Definizione
Una norma matriciale è una funzione da Rnn in R, da AA, per cui valgono le seguent proprietà
5
Norme matriciali indotte 2
In generale, si considerano le norme matri- ciali indotte, per le quali vale la proprietà
Esempi
dove max indica l’autovalore massimo di ATA
x2
x1
x
6
Sistemi lineari quadrat 1
Siano ARnn, bRn; se det(A)0, allora
xRn tale che
Ax b
Molt modelli matematci significatvi sono di tpo lineare
La necessità di risolvere sistemi lineari na- sce da contest molto diversificat
È importante disporre di un’ampia varietà di algoritmi, in modo da poter scegliere il più adat- to al problema specifico (in base a stabilità, occupazione di memoria, velocità)
7
Sistemi lineari quadrat 2
I metodi per la risoluzione di sistemi lineari si dividono in due categorie
Metodi diretti: si basano sull’idea di trasfor- mare il sistema attraverso un numero finito di operazioni in un sistema equivalente la cui soluzione sia esplicitamente calcolabile; in assenza di errori di arrotondamento, forniscono la soluzione esatta
Metodi iteratvi: la soluzione è ottenuta come limite di una successione; permettono di sfrut- tare l’eventuale sparsità della matrice dei coef- ficient poiché, al contrario dei metodi diretti, detta matrice non è soggetta a modifiche
Condizionamento 1
In relazione al sistema lineare Ax b, si esprimano le perturbazioni sui dat A e b rispettivamente con FRnn e fRn
Numericamente, si risolve il sistema (A F)x() b f
con x(0) x
Se det(AF)0 si può quindi ricavare x() (A F)1(b f )
funzione di derivabile nell’origine
Calcolando la derivata, si ottiene pertanto Fx()(AF)x’() f
da cui, per )0, Fx(0)Ax’(0) f, ovvero
x’(0) A1(f Fx(0)) 9
Condizionamento 2
Sviluppando in serie, x()x(0)x’(0)O(2), segue che x()x(0) x’(0) da cui
Condizionamento 3
Proseguendo nella derivazione…
k(A)A1A numero di condizionamento della matrice A (per qualsiasi norma )
11
Condizionamento 4
Il rapporto fra l’errore relatvo sui risultat e l’errore relatvo sui dat è sempre minore del numero di condizionamento k(A)
Valori grandi di k(A) indicano malcondizio- namento, cioè possibilità di notevole ampli- ficazione degli errori commessi sui sat in ingersso
Condizionamento
Proprietà 1
k(A)A1A è sempre 1; infatti…
k(A)A1A A1A I 1
Non ci sono relazioni tra ordine del sistema e numero di condizionamento
Esempio 1
k(A1) 4105
A1 matrice di piccole dimensioni, ma malcondizionata
13
Condizionamento
Proprietà 2
Esempio 2
k(A2) n2n1
A2 matrice grande, ma malcondizionata
Non ci sono relazioni tra determinante e numero di condizionamento
Infatti, det(A2)1 0, ma A2 è malcondizio-nata
Viceversa, per la matrice
det(A3) 10n, k(A3) 1
A3 matrice quasi singolare, ma bencondi- zionata
Non è semplice calcolare k(A): occorre calcolare A1, il che equivale a risolvere n sistemi lineari occorre stmare k(A)
Condizionamento
Proprietà 3
15
Il metodo di Kramer
xi det(Ai)/det(A), per i1,…,n è inefficiente
Esempio: si consideri un sistema di piccole dimensioni, con n30
Occorre calcolare n1 determinant di ordine n, per ciascuno dei quali è necessario sommare n! termini;
inoltre, per ogni termine, si calcolano n1 prodotti Complessivamente si effettuano (n1)n!(n1) operazioni
Per n30, si effettuano circa 1034 prodotti che, supponendo un tempo di 106 secondi per pro- dotto, comportano un tempo di esecuzione totale pari a 1028sec 1020 anni
Come si risolve Axb? 1
Tuttavia… in qualche caso il calcolo è semplice sistemi con matrici triangolari inferiori o superiori
Esempio
17
Come si risolve Axb? 2
Si consideri il sistema lineare Lyb, con LRnn matrice triangolare inferiore non singolare
Sistemi triangolari 1
Algoritmo di
sosttuzione in avant
Si consideri il sistema lineare Rxy, con RRnn matrice triangolare superiore non singolare
19
Sistemi triangolari 2
Algoritmo di
sosttuzione all’indietro
Per valutare il costo computazionale degli algoritmi di sosttuzione, si calcola il numero di prodotti e divisioni (“più costose” delle somme algebriche) eseguite
Prodotti
Divisioni
La complessità computazionale (in entrambi i casi) risulta O(n2)
Sistemi triangolari 3
Idea: trasformare un problema complesso per esempio, risolvere un sistema lineare qualunque riducendolo a un problema più semplice
In questo caso… se esistono le matrici LRnn, triangolare inferiore, e RRnn triangolare superiore, tali che ALR (fat- torizzazione LR), allora
21
Metodi diretti
Fattorizzazione LR 1
Esiste la fattorizzazione LR e, se esiste, è unica?
n2 equazioni in n2n incognite
Si fissano n incognite
Fattorizzazione alla Crout
Fattorizzazione alla Dolittle 22
Metodi diretti
Fattorizzazione LR 2
Teorema di Fattorizzazione
Sia ARnn; se det(Ak)0, per k1,2,…,n1, con Ak minore principale di ordine k, allora esiste ed è unica la fattorizzazione alla Dolittle e det(A)i1rii (si dimostra per induzione su k)
Le ipotesi del teorema non sono di facile verifica Sono soddisfatte dalle matrici simmetriche e definite positve e dalle matrici a diagonale dominante in senso debole e non singolari
23
Metodi diretti
Fattorizzazione LR 3
n
Come si può dunque passare dalla risolu- zione del sistema Axb alla risoluzione di LRxb?
Il metodo di Gauss formalizza l’idea di risolvere il sistema eliminando, passo dopo passo, le incognite dalle equazioni
Si trasforma il sistema lineare assegnato in uno equivalente, del tpo Rxy
Il metodo di eliminazione
di Gauss 1
Eliminazione di x dalla II: si moltplica la I per il co- efficiente di x nella II e si divide per il coefficiente di x nella I; si sottrae I da II (uguale procedura per IIII)
Eliminazione di y dalla III: si moltplica la II per il coefficiente della y nella III e si divide per il coeffi- ciente di y nella II; si sottrae II da III
25
Il metodo di eliminazione
di Gauss 2
In termini matriciali…
Le trasformazioni successive cui è soggetta AA(0) possono essere rappresentate come:
Il metodo di eliminazione
di Gauss 3
In generale, dato il sistema lineare Axb, si vuole costruire la successione di matrici M1, M2,…, Mn1 tali che
Ovvero, in termini algoritmici:
27
Il metodo di eliminazione
di Gauss 4
Graficamente, la struttura delle matrici A(k1) e A(k) è la seguente
Il metodo di eliminazione
di Gauss 5
Pertanto data A(k1) definita come
si vuole calcolare Mk tale che
29
Il metodo di eliminazione
di Gauss 6
MkI(k)ekT, con ek, kesimo versore della base canonica di Rn
ak,k è detto elemento pivot ed il suo valore è cruciale per lo
svolgimento del metodo di Gauss
• Il metodo si interrompe se l’elemento pivot è 0
• Le ipotesi del teorema di fattorizzazione (det(Ak)0, per k1,2,…,n1) garantscono che ciò non accada
Il metodo di eliminazione di Gauss 7
(k1)
Si ottiene infine:
con
Il sistema lineare Lybviene implicitamente risolto
Il metodo di eliminazione di Gauss 8
31
Dal punto di vista implementatvo, l’area di memo- ria riservata alla matrice A può essere utlizzata per memorizzare R e gli element significatvi di L
Esempio
Il metodo di eliminazione
di Gauss 9
Le matrici Mi non vengono costruite esplicitamente La complessità in spazio è dell’ordine di n2
La complessità in tempo (valutata in base al numero di prodotti e divisioni eseguite) risulta
(nk)2 (nk)[(n1)n(2n1)]/6[(n1)n]/2 n3/3
L’algoritmo di Gauss 1
n1 k1 k1
n1
L’algoritmo di Gauss 2
L’algoritmo di Gauss calcola la fattorizzazio-ne LR di A
Per risolvere il sistema Axb…
Occorre calcolare yL1b: si può aggiungere la colonna n1esima ad A per memorizzare b; si esegue quindi l’ultma istruzione dell’algoritmo fino al valore jn1
Resta da risolvere Rxy con l’algoritmo di sosttuzione all’indietro
In alternatva, si possono risolvere in parallelo n sistemi lineari, con la stessa matrice A, per invertrla
L’algoritmo di Gauss 3
35
Il metodo di Gauss può “non funzionare” anche nel caso di matrici molto semplici
Esempio: nel caso della matrice A
il metodo si arresta subito, ma il sistema lineare ha soluzione immediata ed il sistema equivalente
ha già matrice triangolare superiore
Il metodo di Gauss si interrompe se akk 0 Idea: scambiare la riga kesima, con una delle righe successive, tale che aik 0 (i
k1,…,n)
Osservazione: se det(A)0 e akk 0, ne- cessariamente qualche elemento aik , per ik1,…,n, della colonna kesima deve, es- sere non nullo
Se akk 0 ma molto piccolo (in valore as-
soluto) rispetto agli altri element della matrice L’algoritmo di Gauss può risulta- re instabile a causa del calcolo di
Il metodo di Gauss
Pivotng e scaling 1
(k1)
(k1)
(k1)
(k1) (k1)
Per estendere il metodo di Gauss a matrici non singolari ed assicurare una maggiore stabilità al generico passo k, si procede alla scelta dell’elemento pivot in base ad una delle seguent strategie:
Pivotng totale viene scelto il massimo, in modulo, fra tutti gli element della matrice ancora da trasformare come elemento pivot
Pivotng parziale viene scelto il massimo, in modulo, fra gli element della colonna kesima come elemento pivot
37
Il metodo di Gauss
Pivotng e scaling 2
Si seleziona apq con kp,qn tale che
Il metodo di Gauss con pivotng totale è stabile ma, a causa dell’alto numero di confront, il tempo di esecuzione risulta circa raddoppiato
non è compettvo 38
Il metodo di Gauss
Pivotng totale
(k1)
Se pk, si scambiano le righe kp e le colonne kq
Si seleziona apk con kpn tale che
La stabilità del metodo di Gauss con pivotng par-ziale non è dimostrabile, ma sperimentalmente ac-certata; per n grande, il tempo di esecuzione è paragonabile al metodo di Gauss classico
è il metodo diretto più usato nella pratca 39
Il metodo di Gauss
Pivotng parziale 1
(k1)
Se pk, si scambia la riga kesima con la pesima
In termini matriciali…
Matrice identtà
Matrice di permutazione
Il metodo di Gauss
Pivotng parziale 2
AP
scambio di colonne ij
PA
scambio di righe ij
Pertanto, il metodo di Gauss con pivotng parziale si formalizza come
Il sistema lineare LyPb viene implicitamen- te risolto (PPn1Pn2…P1)
Il metodo di Gauss
Pivotng parziale 3
41
Esempio: ALR, n3
Fattorizzazione diretta 1
Per A simmetrica, cioè tale che AAT, siano
Di conseguenza, si ottiene RDU e, fattoriz- zando A,
ALDU ATUTDLT LUT
Fattorizzazione diretta 2
43
Il calcolo di L risulta semplificato
e la fattorizzazione richiede, complessiva-mente, circa n3/6 operazioni
Fattorizzazione diretta 3
44
Teorema
Sia ARnn simmetrica e definita positva (AAT e xTAx0,x0); allora det(Ak)0, per k1,…,n
Dal Teorema di Fattorizzazione è noto che det(A)i1rii, da cui deriva che rii0, i, per cui, ponendo
si ottiene ALDULDLTLD½D½LT, ovvero, definendo SLD½, ASST
Fattorizzazione di Cholesky 1
45
n
Si not che se MNNT con det(N)0, allora M è simmetrica e definita positva, ovvero
xRn, x0, vale xTMxxTNNTxNTx2 0 e vale il seguente Teorema di Choleski
Teorema di Fattorizzazione di Choleski
ARnn è simmetrica e definita positva se e solo se ammette una fattorizzazione del tpo ASST , con S triangolare inferiore
Fattorizzazione di Cholesky 2
2
Fattorizzazione di Cholesky 3
47
L’algoritmo di Choleski
L’algoritmo di Choleski è utlizzato per verificare se la matrice A è simmetrica e definita positva
È un algoritmo stabile e richiede n3/6 operazioni
Nella seconda istruzione, occorre controllare che il radicando sia positvo (maggiore di una costante proporzionale alla precisione di macchina) per evitare di dividere (nella quarta riga) per sjj0
Nei metodi diretti, la presenza di eventuali element nulli nella matrice non può essere sfruttata ai fini di ridurre il costo computa- zionale e l’occupazione di memoria (entram-bi aspetti significatvi per sistemi di grandi dimensioni)
Infatti le successive trasformazioni di A possono introdurre numeri diversi da zero laddove prima c’erano zeri (fillin)
I metodi iteratvi sono utli per la risoluzione di sistemi lineari di grandi dimensioni con matrici A sparse (tali cioè che il numero degli element non nulli è dell’ordine di n)
I metodi iteratvi 1
49
Nel caso dei metodi iteratvi, dato il sistema lineare Axb, ARnn, bRn, con soluzione x*Rn, si vuole costruire, partendo da x(0)Rn assegnato, una successione {x(k)} tale che
x(k) x*
{x(k)} facile e computazionalmente “poco costosa” da costruire
I metodi iteratvi 2
Consideriamo il sistema lineare Axb con det(A)0
La matrice A può essere riscritta come la diffe- renza fra due matrici, APN, con det(P)0
Pertanto:
Axb (PN)xb PxNxb xP1NxP1b Il sistema viene così ricondotto ad un problema di calcolo del punto fisso, che può essere affrontato con il metodo delle approssimazioni successive
x(k1) P1N x(k) P1b Bx(k) g dove B è la matrice di iterazione
I metodi iteratvi 3
51
Sia e(k)x*x(k) l’errore al passo k
Si dimostra facilmente che e(k1)Be(k)Bk1e(0) Teorema 1
Sia B1, allora il metodo iteratvo, con matri- ce di iterazione B, è convergente
Teorema 2
Condizione necessaria e sufficiente per la con- vergenza del metodo iteratvo, con matrice di iterazione B, è che il raggio spettrale (B) della matrice,
(B)maxi
con i autovalori di B, sia strettamente minore di 1
Convergenza nei metodi iteratvi
52
1in
Il costo di un metodo iteratvo è dato dal
#iterazioni costo del prodotto di B per un vettore
Quindi l’uso dei metodi iteratvi è consiglia- to nel caso di matrici sparse e di grandi di- mensioni
Il formato sparse è utlizzato in Matlab per ridurre i cost di memorizzazione della matrice
Matrici sparse
53
Sia ADEF con:
Come scegliere P e N?
La scelta PD dà luogo al metodo di Jacobi, che può essere scritto, componente per componente, nella forma
La matrice di iterazione è
BJ D1 (EF) D1 (DA) ID1A
Il metodo di Jacobi
55
La scelta PDE dà luogo al metodo di GaussSeidel, che può essere scritto, com- ponente per componente, nella forma
La matrice di iterazione è
BGS (D E)1F (D E)1 (DEA) I (D E)1A
Il metodo di GaussSeidel
Quando fermare un metodo iteratvo?
Quando l’errore x*x(k) è inferiore ad una tolleranza desiderata
Ma l’errore è una quanttà incognita…
Servono stmatori dell’errore a posteriori che consentano di quantficare l’errore a partre da quanttà note (già calcolate)
Il residuo
r(k) b Ax(k)
La differenza fra la soluzione calcolata per passi successivi (l’incremento)
x(k1) x(k)
Criteri di arresto
57
In generale non si può affermare che il me- todo di GaussSeidel converga più veloce- mente del metodo di Jacobi (o viceversa)
Tuttavia, nel caso di matrici tridiagonali il metodo di GaussSeidel converge se e solo se converge il metodo di Jacobi e, asin- totcamente, sono necessarie metà iterazio- ni per GaussSeidel per ottenere la stessa precisione di Jacobi
Condizioni per la convergenza 1
Il vettore residuo è nullo se e solo se calco- lato con la soluzione esatta
Un residuo piccolo non necessariamente implica vicinanza alla soluzione (dipende dal condizionamento della matrice A)
Se una matrice A è a diagonale dominante in senso forte sia Jacobi che GaussSeidel convergono (condizione sufficiente)
GaussSeidel converge se A è una matrice simmetrica e definita positva (condizione sufficiente)
Condizioni per la convergenza 2
59