• Non ci sono risultati.

Metodi numerici per la risoluzione di sistemi lineari quadrat

N/A
N/A
Protected

Academic year: 2021

Condividi "Metodi numerici per la risoluzione di sistemi lineari quadrat"

Copied!
59
0
0

Testo completo

(1)

Metodi numerici

per la risoluzione di

sistemi lineari quadrat

(2)

Generalità sulle matrici

Sia A una matrice quadrata di ordine n con element reali o complessi; valgono le seguent definizioni:

(3)

Norme vettoriali  1

Il concetto di norma estende il concetto di

“lunghezza” di un vettore xRn o di una matrice A Rnn

Definizione

Una norma vettoriale  è una funzione da Rn in R, da xx, per cui valgono le seguent proprietà

Disuguaglianza triangolare 3

(4)

Norme vettoriali  2

Esempi

“sfere” unitarie relatve alle norme descritte

(5)

Norme matriciali indotte  1

Definizione

Una norma matriciale  è una funzione da Rnn in R, da AA, per cui valgono le seguent proprietà

5

(6)

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

x2

x1

x

6

(7)

Sistemi lineari quadrat  1

Siano ARnn, bRn; se det(A)0, allora 

xRn 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

(8)

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

(9)

Condizionamento  1

In relazione al sistema lineare Ax  b, si esprimano le perturbazioni sui dat A e b rispettivamente con FRnn e fRn

 Numericamente, si risolve il sistema (A F)x()  b f

con x(0) x

Se det(AF)0 si può quindi ricavare x()  (A F)1(b f )

funzione di  derivabile nell’origine

Calcolando la derivata, si ottiene pertanto Fx()(AF)x’()  f

da cui, per )0, Fx(0)Ax’(0)  f, ovvero

x’(0)  A1(f Fx(0)) 9

(10)

Condizionamento  2

Sviluppando in serie, x()x(0)x’(0)O(2), segue che x()x(0)  x’(0) da cui

(11)

Condizionamento  3

Proseguendo nella derivazione…

 k(A)A1A numero di condizionamento della matrice A (per qualsiasi norma )

11

(12)

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

(13)

Condizionamento

Proprietà  1

k(A)A1A è sempre  1; infatti…

k(A)A1A  A1A  I  1

Non ci sono relazioni tra ordine del sistema e numero di condizionamento

Esempio 1

k(A1)  4105

A1 matrice di piccole dimensioni, ma malcondizionata

13

(14)

Condizionamento

Proprietà  2

Esempio 2

k(A2)  n2n1

A2 matrice grande, ma malcondizionata

Non ci sono relazioni tra determinante e numero di condizionamento

Infatti, det(A2)1  0, ma A2 è malcondizio-nata

(15)

Viceversa, per la matrice

det(A3)  10n, k(A3)  1

A3 matrice quasi singolare, ma bencondi- zionata

Non è semplice calcolare k(A): occorre calcolare A1, il che equivale a risolvere n sistemi lineari  occorre stmare k(A)

Condizionamento

Proprietà  3

15

(16)

Il metodo di Kramer

xi det(Ai)/det(A), per i1,…,n è inefficiente

Esempio: si consideri un sistema di piccole dimensioni, con n30

Occorre calcolare n1 determinant di ordine n, per ciascuno dei quali è necessario sommare n! termini;

inoltre, per ogni termine, si calcolano n1 prodotti Complessivamente si effettuano (n1)n!(n1) operazioni

Per n30, si effettuano circa 1034 prodotti che, supponendo un tempo di 106 secondi per pro- dotto, comportano un tempo di esecuzione totale pari a 1028sec  1020 anni

Come si risolve Axb?  1

(17)

Tuttavia… in qualche caso il calcolo è semplice  sistemi con matrici triangolari inferiori o superiori

Esempio

17

Come si risolve Axb?  2

(18)

Si consideri il sistema lineare Lyb, con LRnn matrice triangolare inferiore non singolare

Sistemi triangolari  1

Algoritmo di

sosttuzione in avant

(19)

Si consideri il sistema lineare Rxy, con RRnn matrice triangolare superiore non singolare

19

Sistemi triangolari  2

Algoritmo di

sosttuzione all’indietro

(20)

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

(21)

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 LRnn, triangolare inferiore, e RRnn triangolare superiore, tali che ALR (fat- torizzazione LR), allora

21

Metodi diretti

Fattorizzazione LR  1

(22)

Esiste la fattorizzazione LR e, se esiste, è unica?

n2 equazioni in n2n incognite

 Si fissano n incognite

Fattorizzazione alla Crout

Fattorizzazione alla Dolittle 22

Metodi diretti

Fattorizzazione LR  2

(23)

Teorema di Fattorizzazione

Sia ARnn; se det(Ak)0, per k1,2,…,n1, con Ak minore principale di ordine k, allora esiste ed è unica la fattorizzazione alla Dolittle e det(A)i1rii (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

(24)

Come si può dunque passare dalla risolu- zione del sistema Axb alla risoluzione di LRxb?

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 Rxy

Il metodo di eliminazione

di Gauss  1

(25)

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 IIII)

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

(26)

In termini matriciali…

Le trasformazioni successive cui è soggetta AA(0) possono essere rappresentate come:

Il metodo di eliminazione

di Gauss  3

(27)

In generale, dato il sistema lineare Axb, si vuole costruire la successione di matrici M1, M2,…, Mn1 tali che

Ovvero, in termini algoritmici:

27

Il metodo di eliminazione

di Gauss  4

(28)

Graficamente, la struttura delle matrici A(k1) e A(k) è la seguente

Il metodo di eliminazione

di Gauss  5

(29)

Pertanto data A(k1) definita come

si vuole calcolare Mk tale che

29

Il metodo di eliminazione

di Gauss  6

(30)

MkI(k)ekT, con ek, kesimo 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 k1,2,…,n1) garantscono che ciò non accada

Il metodo di eliminazione di Gauss  7

(k1)

(31)

Si ottiene infine:

con

Il sistema lineare Lybviene implicitamente risolto

Il metodo di eliminazione di Gauss  8

31

(32)

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

(33)

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

(nk)2   (nk)[(n1)n(2n1)]/6[(n1)n]/2  n3/3

L’algoritmo di Gauss  1

n1 k1 k1

n1

(34)

L’algoritmo di Gauss  2

L’algoritmo di Gauss calcola la fattorizzazio-ne LR di A

Per risolvere il sistema Axb…

Occorre calcolare yL1b: si può aggiungere la colonna n1esima ad A per memorizzare b; si esegue quindi l’ultma istruzione dell’algoritmo fino al valore jn1

Resta da risolvere Rxy con l’algoritmo di sosttuzione all’indietro

In alternatva, si possono risolvere in parallelo n sistemi lineari, con la stessa matrice A, per invertrla

(35)

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

(36)

Il metodo di Gauss si interrompe se akk  0 Idea: scambiare la riga kesima, con una delle righe successive, tale che aik  0 (i

k1,…,n)

Osservazione: se det(A)0 e akk  0, ne- cessariamente qualche elemento aik , per ik1,…,n, della colonna kesima 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

(k1)

(k1)

(k1)

(k1) (k1)

(37)

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 kesima come elemento pivot

37

Il metodo di Gauss

Pivotng e scaling  2

(38)

Si seleziona apq con kp,qn 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

(k1)

Se pk, si scambiano le righe kp e le colonne kq

(39)

Si seleziona apk con kpn 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

(k1)

Se pk, si scambia la riga kesima con la pesima

(40)

In termini matriciali…

Matrice identtà

Matrice di permutazione

Il metodo di Gauss

Pivotng parziale  2

AP

scambio di colonne ij

PA

scambio di righe ij

(41)

Pertanto, il metodo di Gauss con pivotng parziale si formalizza come

Il sistema lineare LyPb viene implicitamen- te risolto (PPn1Pn2…P1)

Il metodo di Gauss

Pivotng parziale  3

41

(42)

Esempio: ALR, n3

Fattorizzazione diretta  1

(43)

Per A simmetrica, cioè tale che AAT, siano

Di conseguenza, si ottiene RDU e, fattoriz- zando A,

ALDU  ATUTDLT  LUT

Fattorizzazione diretta  2

43

(44)

Il calcolo di L risulta semplificato

e la fattorizzazione richiede, complessiva-mente, circa n3/6 operazioni

Fattorizzazione diretta  3

44

(45)

Teorema

Sia ARnn simmetrica e definita positva (AAT e xTAx0,x0); allora det(Ak)0, per k1,…,n

Dal Teorema di Fattorizzazione è noto che det(A)i1rii, da cui deriva che rii0, i, per cui, ponendo

si ottiene ALDULDLTLD½D½LT, ovvero, definendo SLD½, ASST

Fattorizzazione di Cholesky  1

45

n

(46)

Si not che se MNNT con det(N)0, allora M è simmetrica e definita positva, ovvero

xRn, x0, vale xTMxxTNNTxNTx2 0 e vale il seguente Teorema di Choleski

Teorema di Fattorizzazione di Choleski

ARnn è simmetrica e definita positva se e solo se ammette una fattorizzazione del tpo ASST , con S triangolare inferiore

Fattorizzazione di Cholesky  2

2

(47)

Fattorizzazione di Cholesky  3

47

(48)

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 sjj0

(49)

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

(50)

Nel caso dei metodi iteratvi, dato il sistema lineare Axb, ARnn, bRn, 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

(51)

Consideriamo il sistema lineare Axb con det(A)0

La matrice A può essere riscritta come la diffe- renza fra due matrici, APN, con det(P)0

Pertanto:

Axb  (PN)xb  PxNxb  xP1NxP1b Il sistema viene così ricondotto ad un problema di calcolo del punto fisso, che può essere affrontato con il metodo delle approssimazioni successive

x(k1)  P1N x(k)  P1b  Bx(k)  g dove B è la matrice di iterazione

I metodi iteratvi  3

51

(52)

Sia e(k)x*x(k) l’errore al passo k

Si dimostra facilmente che e(k1)Be(k)Bk1e(0) Teorema 1

Sia B1, 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)maxi

con i autovalori di B, sia strettamente minore di 1

Convergenza nei metodi iteratvi

52

1in

(53)

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

(54)

Sia ADEF con:

Come scegliere P e N?

(55)

La scelta PD dà luogo al metodo di Jacobi, che può essere scritto, componente per componente, nella forma

La matrice di iterazione è

BJ  D1 (EF)  D1 (DA)  ID1A

Il metodo di Jacobi

55

(56)

La scelta PDE dà luogo al metodo di GaussSeidel, che può essere scritto, com- ponente per componente, nella forma

La matrice di iterazione è

BGS  (D E)1F  (D E)1 (DEA)  I (D E)1A

Il metodo di GaussSeidel

(57)

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(k1)  x(k)

Criteri di arresto

57

(58)

In generale non si può affermare che il me- todo di GaussSeidel converga più veloce- mente del metodo di Jacobi (o viceversa)

Tuttavia, nel caso di matrici tridiagonali il metodo di GaussSeidel converge se e solo se converge il metodo di Jacobi e, asin- totcamente, sono necessarie metà iterazio- ni per GaussSeidel per ottenere la stessa precisione di Jacobi

Condizioni per la convergenza  1

(59)

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 GaussSeidel convergono (condizione sufficiente)

GaussSeidel converge se A è una matrice simmetrica e definita positva (condizione sufficiente)

Condizioni per la convergenza  2

59

Riferimenti

Documenti correlati

Se A ` e una matrice simmetrica e definita positiva di ordine n, allora il metodo del gradiente coniugato ` e convergente e fornisce in aritmetica esatta la soluzione del sistema Ax =

Se A ` e una matrice simmetrica e definita positiva di ordine n, allora il metodo del gradiente coniugato ` e convergente e fornisce in aritmetica esatta la soluzione del sistema Ax =

Se A ` e una matrice simmetrica e definita positiva di ordine n, allora il metodo del gradiente coniugato ` e convergente e fornisce in aritmetica esatta la soluzione del sistema Ax =

Il metodo SOR ha quale costante quasi ottimale w = 1.350; Il metodo del gradiente coniugato converge in meno iterazioni rispetto agli altri metodi (solo 5 iterazioni, ma si osservi

Si rimane un po’ sorpresi dal fatto che per w = 1.350 il numero di iterazioni fosse inferiore di quello fornito dal valore ottimale teorico w ∗ = 1.333.. Il fatto `e che questo

 Impostare Studente.corsoLaurea = nome; è corretto (metodo statico, campo statico)... Metodi statici privati.  A volte un

Geometricamente, il metodo costruisce ad ogni passo l’approssimazione della radice calcolando l’intersezione della retta passan- te per i punt (a i ,sgn(a i )) e (b

I Scrivere una funzione di Matlab che implemeti il metodo della sostituzione all’indietro.