Corso di Calcolo Numerico

Documenti analoghi
Corso di Matematica per la Chimica

Sistemi lineari. 2x 1 + x 2 x 3 = 2 x 1 x 2 + x 3 = 1 x 1 + 3x 2 2x 3 = 0. x 1 x 2 x 3

Esercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =

Esercitazione 4: Vettori e Matrici

Corso di Calcolo Numerico

Un sistema lineare si rappresenta in generale come

8 Metodi iterativi per la risoluzione di sistemi lineari

Risoluzione di sistemi lineari sparsi e di grandi dimensioni

Esercitazione 5: Sistemi a risoluzione immediata.

RISOLUZIONE DI SISTEMI LINEARI

Appunti su Indipendenza Lineare di Vettori

Sistemi sovradeterminati

Applicazioni eliminazione di Gauss

Corso di Calcolo Numerico

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Corso di Matematica Generale M-Z Dipartimento di Economia Universitá degli Studi di Foggia ALGEBRA LINEARE. Giovanni Villani

MATRICI E SISTEMI LINEARI

Per esempio, una matrice 4 4 triangolare alta ha la forma. 0 a. mentre una matrice di ordine 4 triangolare bassa è del tipo

Elementi di Algebra Lineare Matrici e Sistemi di Equazioni Lineari

Corso di Matematica per la Chimica

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

Corso di Analisi Numerica - AN1. Parte 2: metodi diretti per sistemi lineari. Roberto Ferretti

Si consideri il sistema a coefficienti reali di m equazioni lineari in n incognite

SISTEMI LINEARI: APPROFONDIMENTI ED ESEMPI

SISTEMI LINEARI. x y + 2t = 0 2x + y + z t = 0 x z t = 0 ; S 3 : ; S 5x 2y z = 1 4x 7y = 3

Motivazione: Come si fa? Matrici simmetriche. Fattorizzazioni di matrici speciali

SISTEMI LINEARI MATRICI E SISTEMI 1

Metodi numerici per la risoluzione di Sistemi Lineari

Geometria BIAR Esercizi 2

LEZIONE 3. a + b + 2c + e = 1 b + d + g = 0 3b + f + 3g = 2. a b c d e f g

Esercizi svolti. risolvere, se possibile, l equazione xa + B = O, essendo x un incognita reale

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Matrici elementari e fattorizzazioni

Corso di Matematica per la Chimica

Il teorema di Rouché-Capelli

I. Foglio di esercizi su vettori linearmente dipendenti e linearmente indipendenti. , v 2 = α v 1 + β v 2 + γ v 3. α v 1 + β v 2 + γ v 3 = 0. + γ.

Introduzione soft alla matematica per l economia e la finanza. Marta Cardin, Paola Ferretti, Stefania Funari

LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.

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

NORMA DI UN VETTORE. Una NORMA VETTORIALE su R n è una funzione. : R n R +

Corso di Geometria BIAR, BSIR Esercizi 2: soluzioni

Lezioni di Algebra Lineare. II. Aritmetica delle matrici e eliminazione di Gauss. versione ottobre 2008

La riduzione a gradini e i sistemi lineari (senza il concetto di rango)

Corso di Matematica e Statistica 3 Algebra delle matrici. Una tabella rettangolare: la matrice. Una tabella rettangolare: la matrice

LEZIONE Equazioni matriciali. Negli Esempi e si sono studiati più sistemi diversi AX 1 = B 1, AX 2 = R m,n, B = (b i,h ) 1 i m

Metodi per la risoluzione di sistemi lineari

Decomposizione LU di una matrice quadrata

2x 5y +4z = 3 x 2y + z =5 x 4y +6z = A =

ESERCIZI SULLE MATRICI

SISTEMI LINEARI, METODO DI GAUSS

MATEMATICA. a.a. 2014/ Sistemi di equazioni lineari

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

Giuseppe Accascina. Note del corso di Geometria e Algebra

Argomento 13 Sistemi lineari

Riassumiamo le proprietà dei numeri reali da noi utilizzate nel corso di Geometria.

Sistemi lineari - Parte Seconda - Esercizi

Inversa di una matrice

Facoltá di Scienze MM.FF.NN. Corso di Studi in Informatica- A.A

= elemento che compare nella seconda riga e quinta colonna = -4 In generale una matrice A di m righe e n colonne si denota con

a + 2b + c 3d = 0, a + c d = 0 c d

Matrici. Matrici.h Definizione dei tipi. Un po di esercizi sulle matrici Semplici. Media difficoltà. Difficili

Corso di Calcolo Numerico

LEZIONE 3. Typeset by AMS-TEX

Esercizi svolti sui sistemi lineari

Esercizi sui sistemi di equazioni lineari.

Richiami di algebra delle matrici a valori reali

Corso di Geometria BIAR, BSIR Esercizi 10: soluzioni

Sui determinanti e l indipendenza lineare di vettori

Metodi diretti per la soluzione di sistemi lineari

Esercitazione 6 - Soluzione

3. Vettori, Spazi Vettoriali e Matrici

MATRICI E VETTORI APPROFONDIMENTO PER IL CORSO DI LABORATORIO DI INFORMATICA SARA POLTRONIERI

( ) TEORIA DELLE MATRICI. A. Scimone a.s pag 1

2. ALGORITMO DEL SIMPLESSO

Determinanti. Definizione ed esempi. Definizione ed esempi. Proprietà dei determinanti Rango di matrici

Esercitazione 1-I parte

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Teorema di Thevenin generalizzato

Transcript:

Corso di Calcolo Numerico Dottssa MC De Bonis Università degli Studi della Basilicata, Potenza Facoltà di Ingegneria Corso di Laurea in Ingegneria Meccanica Corso di Calcolo Numerico - Dottssa MC De Bonis

Risoluzione di Sistemi Lineari Vogliamo trovare un approssimazione delle soluzioni di sistemi di n equazioni lineari in n incognite: a 1,1 x 1 +a 1,2 x 2 + +a 1,n x n = b 1 a 2,1 x 1 +a 2,2 x 2 + +a 2,n x n = b 2 a n 1,1 x 1 +a n 1,2 x 2 + +a n 1,n x n = b n 1 a n,1 x 1 +a n,2 x 2 + +a n,n x n = b n (1) Ponendo a 1,1 a 1,2 a 1,n 1 a 1,n a 2,1 a 2,2 a n,n 1 a 2,n A = a n 1,1 a n 1,2 a n 1,n 1 a n 1,n b = b 1 b 2 b n 1 a n,1 a n,2 a n,n 1 a n,n b n e x = [x 1 x 2 x n 1 x n ] T, il sistema (1) diventa: Ax = b, A R n n, b, x R n Corso di Calcolo Numerico - Dottssa MC De Bonis

È noto che il sistema (1) ammette un unica soluzione se e solo se la matrice A è non singolare, cioè det(a) 0 In questo caso possiamo scrivere x = A 1 b Il metodo di risoluzione che certamente conoscete è la Regola di Cramer: x i = det(a i), i = 1,, n, det(a) dove A i denota la matrice ottenuta da A sostituendo la colonna i esima con il vettore b I determinanti coinvolti potrebbero essere calcolati utilizzando la Regola di Laplace scritta nella forma det(a) = n ( 1) j+1 a 1,j det(a 1,j ), j=1 dove A 1,j rappresenta la matrice di ordine n 1 ottenuta da A eliminando la prima e la j esima colonna Corso di Calcolo Numerico - Dottssa MC De Bonis

La Regola di Cramer non è ammissibile come metodo numerico in quanto il suo costo computazionale è dell ordine di [(n + 1)(n 1)n]! Supponendo di poter effettuare ogni operazione moltiplicativa in 7 10 8 secondi, per risolvere un sistema 20 20 occorrono circa 2 10 6 anni!! Si potrebbe pensare di calcolare A 1 e risolvere il sistema utilizzando la formula x = A 1 b Tra tutti i metodi che si conoscono per il calcolo della matrice inversa, quello meno costoso ha un costo computazionale dell ordine di n 3 Inoltre è necessario eseguire il prodotto A 1 b che ha un costo computazionale di n 2 In seguito vedremo dei metodi numerici per la risoluzione di un sistema lineare che sono molto più efficienti dal punto di vista computazionale Corso di Calcolo Numerico - Dottssa MC De Bonis

I metodi numerici per la risoluzione di un sistema lineare si suddividono in due classi: Metodi diretti: in assenza di errori di arrotondamento la soluzione viene calcolata esattamente in un numero finito di passi; Metodi iterativi: attraverso un processo iterativo viene generata una successione infinita di vettori convergente, sotto opportune condizioni, alla soluzione cercata Anche in assenza di errori di arrotondamento non si ottiene mai la soluzione esatta perchè ad un certo punto è necessario arrestare il processo I criteri di scelta di un algoritmo sono: stabilità occupazione di memoria costo computazionale Non esiste un algoritmo migliore degli altri in assoluto La scelta viene fatta in funzione delle caratteristiche della matrice A del sistema ( sparsità, dimensione, struttura) Corso di Calcolo Numerico - Dottssa MC De Bonis

Definizione Una matrice A R n n si dice densa se la maggior parte dei suoi elementi è non nullo Definizione Una matrice A R n n si dice sparsa se il numero dei suoi elementi non nulli è dell ordine di n Osservazione Per memorizzare in un calcolatore una matrice sparsa (soprattutto se n è molto grande) è possibile utilizzare solo tre vettori di lunghezza n: uno per memorizzare gli elementi non nulli, uno per memorizzare i corrispondenti indici di riga ed uno per memorizzare i corrispondenti indici di colonna Corso di Calcolo Numerico - Dottssa MC De Bonis

I metodi diretti risolvono il problema iniziale trasformandolo in problemi equivalenti aventi la stessa soluzione ma matrici dei coefficienti differenti In generale, se la matrice A del sistema è densa i metodi diretti sono più efficienti Se, invece, la matrice A del sistema è sparsa, i metodi diretti non preservano la sparsità delle matrici coinvolte nel procedimento, anzi con il procedere del metodo il numero degli elementi non nulli presenti in queste matrici generalmente cresce e (se n è molto grande) può ben presto saturare la memoria centrale del calcolatore In questi casi è utile e, spesso indispensabile, utilizzare i metodi iterativi perchè, invece, quest ultimi lasciano inalterata la matrice A del sistema Corso di Calcolo Numerico - Dottssa MC De Bonis

Condizionamento del problema Supponiamo di introdurre una perturbazione A R n n sulla matrice A e una perturbazione b R n sul vettore dei termini noti b La soluzione che calcoleremo, supponendo che i numeri siano rappresentabili con infinite cifre e che tutte le operazioni aritmetiche siano fatte esattamente, non sarà x ma y = x + x, x R n, cioè la soluzione sarà a sua volta perturbata Risolveremo allora il sistema (A + A)y = (b + b) Anche se la matrice A è non singolare, A + A potrebbe risultare singolare Tuttavia, supponendo che A + A è non singolare e che A 1 A < 1 2 otteniamo la seguente maggiorazione per l errore relativo indotto sulla soluzione x: δx 2 cond(a) ( δa + δb ), dove cond(a) = A A 1 e denota una fissata norma matriciale indotta Corso di Calcolo Numerico - Dottssa MC De Bonis

La quantità cond(a) viene chiamata indice o numero di condizionamento della matrice A cond(a) rappresenta il coefficiente di amplificazione delle perturbazioni indotte sulla matrice A e sul termine noto b Se cond(a) è piccolo il problema è ben condizionato, altrimenti è mal condizionato Osservazione Per qualunque norma matriciale indotta si ha cond(a) = A A 1 AA 1 = I = 1 Corso di Calcolo Numerico - Dottssa MC De Bonis

Il seguente teorema precisa meglio il significato di cond(a) Teorema Per ogni matrice non singolare A R n n e per ogni norma matriciale indotta, la quantità (cond(a)) 1 rappresenta la distanza relativa minima di A dall insieme di tutte le matrici singolari di ordine n, cioè 1 cond(a) = min { A B A } : B R n n singolare Corso di Calcolo Numerico - Dottssa MC De Bonis

Esempi di matrici mal condizionate sono: Matrici di Hilbert H n = 1 1 2 1 1 2 3 1 1 3 4 1 n 1 n+1 1 1 3 n 1 1 4 1 1 5 n+1 n+2 1 n+2 1 2n 1 Corso di Calcolo Numerico - Dottssa MC De Bonis

Matrici di Vandermonde V n = 1 1 1 1 x 1 x 2 x 3 x n x 2 1 x 2 2 x 2 3 x 2 n x n 1 1 x n 1 2 x3 n 1 xn n 1 x i x j per i j Corso di Calcolo Numerico - Dottssa MC De Bonis

Richiami sulle Norme di Vettori e Matrici Una norma vettoriale è una funzione che associa ad un vettore x R n un numero reale x con le seguenti proprietà: 1 x > 0, x 0 e x = 0 x = 0; 2 cx = c x, c R; 3 x + y x + y, y R n Le norme vettoriali più frequentemente utilizzate sono: norma infinito: x = max 1 i n x i norma 1: norma euclidea: x 1 = n x i i=1 x 2 = ( n i=1 x i 2 ) 1 2 = x T x Corso di Calcolo Numerico - Dottssa MC De Bonis

Analogamente, una norma matriciale è una funzione che associa ad una matrice A R n n il numero reale A tale che 1 A > 0, A 0 e A = 0 A = 0; 2 ca = c A, c R; 3 A + B A + B, B R n n ; 4 AB A B, B R n n Le norme matriciali più note sono: norma infinito: A = max 1 i n norma 1: A 1 = max 1 j n norma spettrale: A 2 = n a i,j j=1 n a i,j i=1 ρ(a T A), dove ρ(a) è il raggio spettrale della matrice A, cioè il modulo massimo degli autovalori di A; 1 2 n n norma di Frobenius: A F = a i,j 2 i=1 j=1 Corso di Calcolo Numerico - Dottssa MC De Bonis

Data una norma vettoriale e una norma matriciale, si dice che le due norme sono compatibili se Ax A x, A R n n, x R n Una norma vettoriale può risultare compatibile con più norme matriciali Ad ogni norma vettoriale possiamo associare una norma matriciale nel seguente modo: A = sup x 0 Ax x = max x =1 Ax Una norma così definita viene chiamata naturale o indotta da quella del vettore Per le norme matriciali naturali abbiamo inoltre I = max Ix = 1 x =1 Le norme matriciali, 1 e 2 sono naturali La norma F non è naturale in quanto I F = n 1 2 Corso di Calcolo Numerico - Dottssa MC De Bonis

Si ha x induce A x 1 induce A 1 x 2 induce A 2 Corso di Calcolo Numerico - Dottssa MC De Bonis

Metodi Diretti Sistemi Triangolari Siano x = (x 1 x 2 x n ) T e b = (b 1 b 2 b n ) T Denotiamo con l 1,1 0 0 0 l 2,1 l 2,2 0 0 L = l n 1,1 l n 1,2 l n 1,n 1 0 l n,1 l n,2 l n,n 1 l n,n matrice triangolare inferiore (Low) Corso di Calcolo Numerico - Dottssa MC De Bonis

e con U = u 1,1 u 1,2 u 1,n 1 u 1,n 0 u 2,2 u 2,n 1 u 2,n 0 0 u n 1,n 1 u n 1,n 0 0 0 u n,n matrice triangolare superiore (Up) Vogliamo risolvere i sistemi Lx = b e Ux = b Osservazione det(l) = l 1,1 l 2,2 l n,n 0 l i,i 0 i = 1,, n det(u) = u 1,1 u 2,2 u n,n 0 u i,i 0 i = 1,, n Corso di Calcolo Numerico - Dottssa MC De Bonis

Algoritmo di sostituzione in avanti (forward substitution) Lx = b l 1,1 x 1 = b 1 l 2,1 x 1 + l 2,2 x 2 = b 2 l 3,1 x 1 + l 3,2 x 2 + l 3,3 x 3 = b 3 l n,1 x 1 + l n,2 x 2 + l n,3 x 3 + + l n,n x n = b n x 1 = b 1 l 1,1 x 2 = b 2 l 2,1 x 1 l 2,2 x 3 = b 3 l 3,1 x 1 l 3,2 x 2 l 3,3 x i = b i i 1 k=1 l i,k x k l i,i, i = 4,, n Corso di Calcolo Numerico - Dottssa MC De Bonis

x 1 = b 1 /l 1,1 ; 1 operazione for i=2:n x i = b i ; for k=1:i-1 x i = x i l i,k x k ; i-1 operazioni end x i = x i /l i,i ; 1 operazione end costo computazionale n i = i=1 n(n + 1) 2 n2 2 Corso di Calcolo Numerico - Dottssa MC De Bonis

Algoritmo di sostituzione all indietro (backward substitution) Ux = b u 1,1 x 1 + u 1,2 x 2 + u 1,3 x 3 + + u 1,n x n = b 1 u 2,2 x 2 + u 2,3 x 3 + + u 2,n x n = b 2 u n 1,n 1 x n 1 + u n 1,n x n u n,n x n = b n 1 = b n x n = b n u n,n x n 1 = b n 1 u n 1,n x n u n 1,n 1 x n 2 = b n 2 u n 2,n 1 x n 1 u n 2,n x n u n 2,n 2 x i = b i n u i,k x k k=i+1 u i,i, i = n 3, n 4,, 2, 1 Corso di Calcolo Numerico - Dottssa MC De Bonis

x n = b n /u n,n ; 1 operazione for i=n-1:-1:1 x i = b i ; for k=i+1:n x i = x i u i,k x k ; n-i operazioni end x i = x i /u i,i ; 1 operazione end costo computazionale 1 n i + 1 = i=n n i = i=1 n(n + 1) 2 n2 2 Corso di Calcolo Numerico - Dottssa MC De Bonis

Osservazione Gli Algoritmi di sostituzione in avanti e all indietro sono ben definiti se le matrici L e U sono non singolari, cioè l i,i 0, u i,i 0, i = 1,, n Corso di Calcolo Numerico - Dottssa MC De Bonis

Metodo di eliminazione di Gauss Sia A R n n una generica matrice di ordine n e x, b R n due vettori colonna di lunghezza n Scriviamo esplicitamente il sistema Ax = b a 1,1 x 1 + a 1,2 x 2 + a 1,3 x 3 + a 1,n x n = b 1 a 2,1 x 1 + a 2,2 x 2 + a 2,3 x 3 + a 2,n x n = b 2 a n,1 x 1 + a n,2 x 2 + a n,3 x 3 + a n,n x n = b n Supponendo che a 1,1 0 Possiamo eliminare l incognita x 1 dalla 2 a, 3 a,, n esima equazione sommando all i esima equazione i = 2,, n la prima equazione moltiplicata per m i,1 = a i,1 a 1,1, i = 2,, n Eseguiamo, cioè, le seguenti combinazioni lineari a (2) i,j = a i,j + m i,1 a 1,j i, j = 2,, n b (2) i = b i + m i,1 b 1 Corso di Calcolo Numerico - Dottssa MC De Bonis

Il nuovo sistema, equivalente a quello precedente, diventa a 1,1 x 1 + a 1,2 x 2 + a 1,3 x 3 + + a 1,n x n = b 1 a (2) 2,2 x 2 + a (2) 2,3 x 3 + + a (2) 2,n x n = b (2) 2 a (2) 3,2 x 2 + a (2) 3,3 x 3 + + a (2) 3,n x n = b (2) 3 a (2) n,2 x 2 + a (2) n,3 x 3 + + a (2) n,nx n = b (2) n Supponendo che a 2,2 0 Possiamo eliminare l incognita x 2 dalla 3 a, 4 a,, n esima equazione sommando all i esima equazione i = 3,, n la seconda equazione moltiplicata per m i,2 = a(2) i,2, i = 3,, n a (2) 2,2 Eseguiamo, cioè, le seguenti combinazioni lineari a (3) i,j = a(2) i,j + m i,2a (2) 2,j i, j = 3,, n b (3) i = b (2) i + m i,2 b (2) 2 Corso di Calcolo Numerico - Dottssa MC De Bonis

Il nuovo sistema, equivalente a quello precedente, diventa a 1,1 x 1 + a 1,2 x 2 + a 1,3 x 3 + + a 1,n x n = b 1 a (2) 2,2 x 2 + a (2) 2,3 x 3 + + a (2) 2,n x n = b (2) 2 a (3) 3,3 x 3 + + a (3) 3,n x n = b (2) 3 a (3) n,3 x 3 + + a (3) n,nx n = b (2) n Gli elementi a 1,1, a (2) 2,2, a(3) 3,3,, che compaiono durante le successive eliminazioni vengono detti elementi pivot Dopo (n 1) passi, supponendo che tutti gli elementi pivot siano non nulli, si ottiene il seguente sistema triangolare superiore equivalente ai precedenti a 1,1 x 1 + a 1,2 x 2 + a 1,3 x 3 + + a 1,n x n = b 1 a (2) 2,2 x 2 + a (2) 2,3 x 3 + + a (2) 2,n x n = b (2) 2 a (3) 3,3 x 3 + + a (3) 3,n x n = b (3) 3 a (n) n,nx n = b (n) n che può essere risolto con l Algoritmo di sostituzione all indietro Corso di Calcolo Numerico - Dottssa MC De Bonis

Esempio Consideriamo il seguente sistema 2x 1 x 2 + x 3 2x 4 = 0 2x 2 x 4 = 1 x 1 2x 3 + x 4 = 0 2x 2 + x 3 + x 4 = 4 applicando il metodo di Gauss con m 2,1 = 0, m 3,1 = 1 2 m 4,1 = 0 si ottiene il sistema 2x 1 x 2 + x 3 2x 4 = 0 2x 2 x 4 = 1 1 2 x 2 5 2 x 3 + 2x 4 = 0 2x 2 + x 3 + x 4 = 4 Corso di Calcolo Numerico - Dottssa MC De Bonis

Con m 3,2 = 1 4 m 4,2 = 1 si ha 2x 1 x 2 + x 3 2x 4 = 0 2x 2 x 4 = 1 Infine, con 5 2 x 3 + 9 4 x 4 = 1 4 x 3 + 2x 4 = 3 m 4,3 = 2 5 si ottiene 2x 1 x 2 + x 3 2x 4 = 0 2x 2 x 4 = 1 5 2 x 3 + 9 4 x 4 = 1 4 29 10 x 4 = 29 10 Da cui, sostituendo all indietro, si ha ( x 4 = 1, x 3 = 1 4 9 ) ( 4 x 4 2 ) = 1, x 2 = 1 + x 4 5 2 = 1, x 1 = x 2 x 3 + 2x 4 2 = 1 Corso di Calcolo Numerico - Dottssa MC De Bonis

Ponendo a i,j = a (1) i,j e b i = b (1) i, i, j = 1,, n, il seguente schema di calcolo riassume il metodo di eliminazione di Gauss: Per k = 1, 2,, n 1 m i,k = a(k) i,k a (k) k,k a (k+1) i,j = a (k) i,j + m i,ka (k) k,j, i, j = k + 1,, n b (k+1) i = b (k) i + m i,k b k Osservazione Il metodo di Gauss si può applicare se e soltanto se ad ogni passo k = 1,, n 1 l elemento pivot a (k) k,k 0 Corso di Calcolo Numerico - Dottssa MC De Bonis

Consideriamo le sottomatrici di A A k = (a i,j ) i,j=1,,k, k = 1,, n, dette matrici principali di testa di A Vale il seguente teorema Teorema Sia A R n n Gli elementi pivot a (k) k,k, k = 1,, n, sono tutti diversi da zero se e soltanto se tutte le matrici principali di testa di A sono non singolari, cioè det(a k ) 0, k = 1,, n Corso di Calcolo Numerico - Dottssa MC De Bonis

Esempi di matrici per le quali la condizione det(a k ) 0, k = 1,, n, è verificata sono: matrici a diagonale dominante per righe, cioè a i,i > n a i,j, i = 1,, n; j=1 j i matrici a diagonale dominante per colonne, cioè a j,j > n a i,j, j = 1,, n, ; i=1 j i matrici simmetriche definite positive, cioè A T = A e x T Ax > 0, x R n, x 0 Corso di Calcolo Numerico - Dottssa MC De Bonis

for k=1:n-1 for i=k+1:n a i,k = a i,k /a k,k ; 1 operazione for j=k+1:n a i,j = a i,j + a i,k a k,j ; n-k operazioni end b i = b i + a i,k b k ; 1 operazione end end U=triu(A); Si risolve il sistema triangolare superiore U x = b con l algoritmo di sostituzione all indietro costo computazionale n 1 [2(n k) + (n k) 2 ] + n2 n 1 2 = 2 i + k=1 n(n 1) = 2 2 + i=1 n(n 1)(2n 1) 6 = n3 3 + n2 5 6 n n3 3 + n2 n3 3 n 1 i=1 + n2 2 i 2 + n2 2 Corso di Calcolo Numerico - Dottssa MC De Bonis

Pivoting e stabilità Se al k esimo passo si trova a (k) k,k = 0, il metodo di Gauss, così come è stato descritto, non può proseguire Se a (k) k,k = 0 necessariamente qualche altro elemento a (k) i,k, i = k + 1,, n, della colonna k esima della matrice dei coefficienti deve essere non nullo, altrimenti la matrice dei coefficienti sarebbe singolare Se, ad esempio, a (k) r,k 0, basta scambiare l equazione k esima con la r esima e poi procedere con le eliminazioni Dunque, ogni sistema non singolare può essere sempre ricondotto alla forma triangolare superiore con il metodo di Gauss più eventuali scambi di equazioni Corso di Calcolo Numerico - Dottssa MC De Bonis

Per assicurare una migliore stabilità numerica al metodo di eliminazione di Gauss è spesso necessario permutare l ordine delle equazioni anche quando l elemento pivot non è esattamente zero, ma è molto piccolo (in valore assoluto) rispetto agli altri elementi Per cercare di evitare catastrofiche propagazioni di errori è di solito necessario scegliere, al generico passo k esimo, l elemento pivot seguendo una delle seguenti strategie: Pivoting parziale: si sceglie r uguale al più piccolo intero k tale che a (k) r,k = max k i n a(k) i,k e, se r k, si scambia l equazione k esima con l r esima; Pivoting totale: si sceglie la coppia (r, s), con r, s k tale che a (k) r,s = max k i,j n a(k) i,j e si scambiamo l equazione k esima con l r esima e l incognita k esima (con il suo coefficiente) con l s esima Corso di Calcolo Numerico - Dottssa MC De Bonis

La strategia di pivoting parziale è la meno costosa e, poichè, in generale, risulta soddisfacente, essa è la strategia più utilizzata Osservazione Il metodo di eliminazione di Gauss senza pivoting è comunque numericamente stabile quando: la matrice A del sistema è simmetrica e a diagonale dominante (la strategia di pivot non produce scambi); la matrice A del sistema è simmetrica e definita positiva Corso di Calcolo Numerico - Dottssa MC De Bonis

Esempio Consideriamo il sistema lineare Ax = b di ordine n = 18, dove ( a i,j = cos (j 1) 2i 1 ) 2n π, i, j = 1,, n, e b i = n a i,j, i = 1,, n, j=1 la cui soluzione esatta è x = (1, 1,, 1) T cond(a) = A A 1 = 1690251471518910 Risolvendo il sistema con il metodo di eliminazione di Gauss senza e con la strategia di pivoting parziale, si ottengono i seguenti risultati: Corso di Calcolo Numerico - Dottssa MC De Bonis

Gauss 9999999968425205e-001 1000000005848771e+000 9999999953310822e-001 1000000003291504e+000 9999999977773912e-001 1000000001703849e+000 9999999983501708e-001 1000000001767299e+000 9999999982508074e-001 1000000001433063e+000 9999999991425489e-001 1000000000200525e+000 1000000000347843e+000 9999999993163441e-001 1000000000800448e+000 9999999992564082e-001 1000000000564552e+000 9999999996959291e-001 Gauss + pivoting parziale 9999999999999993e-001 1000000000000000e+000 1000000000000001e+000 1000000000000001e+000 9999999999999997e-001 1000000000000000e+000 1000000000000000e+000 1000000000000001e+000 9999999999999998e-001 9999999999999999e-001 9999999999999993e-001 1000000000000000e+000 9999999999999996e-001 9999999999999990e-001 9999999999999996e-001 1000000000000000e+000 1000000000000000e+000 9999999999999999e-001 Corso di Calcolo Numerico - Dottssa MC De Bonis

Metodo di Gauss e Fattorizzazione LU Il metodo di eliminazione di Gauss consiste nel costruire una successione di matrici [A b] = [A (1) b (1) ] [A (k) b (k) ] [A (n) b (n) ] in modo tale che, per k = 1,, n 1, [A (k+1) b (k+1) ] = M (k) [A (k) b (k) ] dove M (k) = 1 0 0 0 1 0 0 0 1 0 0 m k+1,k 1 0 0 m k+2,k 0 0 0 0 m n,k 0 0 1 è la matrice elementare di Gauss Corso di Calcolo Numerico - Dottssa MC De Bonis

Si ha A = [M (1) ] 1 A (2) = [M (1) ] 1 [M (2) ] 1 A (3) = = [M (1) ] 1 [M (n 1) ] 1 A (n) e b = [M (1) ] 1 [M (n 1) ] 1 b (n) Ponendo L = [M (1) ] 1 [M (n 1) ] 1, U = A (n) e y = b (n), otteniamo A = LU e b = Ly, dove L è una matrice triangolare inferiore e U è una matrice triangolare superiore Dunque, il sistema diventa Ax = b LUx = Ly e, dopo aver applicato il metodo di eliminazione di Gauss, rimane da risolvere il sistema triangolare superiore Ux = y Corso di Calcolo Numerico - Dottssa MC De Bonis

Osservazione Il metodo di eliminazione di Gauss calcola esplicitamente la matrice U La matrice L è 1 0 0 m 2,1 1 0 1 L = m k+1,k 1 m k+2,k 1 0 m n,1 m n,k m n,n 1 1 Calcolate le matrici L e U, per risolvere il sistema Ax = b, basta risolvere i sistemi Ly = b e Ux = y, il primo triangolare inferiore e il secondo triangolare superiore Il costo computazionale è n3 3 + n2 di cui n3 3 n 3 n3 3 sola fattorizzazione A = LU per la Corso di Calcolo Numerico - Dottssa MC De Bonis

Eseguire la fattorizzazione LU di A può essere utile se: è necessario risolvere p sistemi cioè il sistema Ax 1 = b 1, Ax 2 = b 2,, Ax p = b p, AX = B, con A R n n, X, B R n p ( ) n Il costo computazionale p 3 3 + n2 si riduce a n 3 3 + pn2 Se p = n e B = I, risolvere il sistema AX = B, è equivalente a calcolare A 1 si vuole calcolare il det A Infatti det(a) = det(lu) = det(l) det(u) = det(u) = n u i,i i=1 Corso di Calcolo Numerico - Dottssa MC De Bonis

Il metodo di Gauss con la variante del pivot esegue ΠA = LU e Πb = Ly dove Π R n n, detta matrice di permutazione, contiene le informazioni relative agli scambi di righe Vale il seguente Teorema Per ogni matrice A R n n esiste una matrice di permutazione Π R n n tale che ΠA = LU Corso di Calcolo Numerico - Dottssa MC De Bonis

Metodo di Cholesky Sia A R n n una matrice simmetrica definita positiva Vale il seguente Teorema Se A R n n è una matrice simmetrica definita positiva esiste ed è unica la fattorizzazione A = LL T Posto A = (a i,j ) i,j=1,,n e L = (l i,j ) i,j=1,,n, si ha a i,j = n l i,k lk,j T = k=1 n l i,k l j,k k=1 Poichè la matrice è simmetrica, possiamo considerare solo gli elementi di A con j i Otteniamo e a i,j = j 1 k=1 l i,k l j,k + l i,j l j,j, i = 1,, n, j = 1,, i 1 a i,i = i 1 k=1 l 2 i,k + l 2 i,i, i = 1,, n Corso di Calcolo Numerico - Dottssa MC De Bonis

Da cui l i,i = l i,j = 1 ai,i l j,j [ i 1 k=1 a i,j l 2 i,k j 1 k=1 l i,k l j,k ] i = 1,, n j = 1,, i 1 Corso di Calcolo Numerico - Dottssa MC De Bonis

for i=1:n l i,i = 0; for k=1:i-1 l i,i = l i,i + li,k 2 ; i 1 operazioni end l i,i = a i,i l i,i ; 1 operazione for j=1:i-1 l i,j = 0; for k=1:j-1 l i,j = l i,j + l i,k l j,k ; j 1 operazioni end l i,j = (a i,j l i,j )/l j,j ; 1 operazione end end Si risolve il sistema triangolare inferiore Ly = b con l algoritmo di sostituzione in avanti e il sistema triangolare superiore L T x = y con l algoritmo di sostituzione all indietro Corso di Calcolo Numerico - Dottssa MC De Bonis

Costo computazionale n i + i=1 i 1 j=1 j + n 2 = = = 1 2 = n i + i=1 n i + 1 2 i=1 n i=1 n i + 1 2 i=1 n(n + 1) 4 i(i 1) 2 n i 2 1 2 i=1 + + n 2 n i + n 2 i=1 n i 2 + n 2 i=1 = n3 6 + 3 2 n2 + n 3 n3 6 (n + 1)n(2n + 1) 12 + n 2 Corso di Calcolo Numerico - Dottssa MC De Bonis