Corso di Geometria e Algebra Lineare - Sezione di Metodi Numerici



Documenti analoghi
Corso di Matematica per la Chimica

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

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

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

Parte 2. Determinante e matrice inversa

4. Operazioni elementari per righe e colonne

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Corso di Calcolo Numerico

Metodi diretti per la soluzione di sistemi lineari

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

Dimensione di uno Spazio vettoriale

Corso di Calcolo Numerico

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

( x) ( x) 0. Equazioni irrazionali

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0.

Esercizi su lineare indipendenza e generatori

Spazi lineari - PARTE II - Felice Iavernaro. Dipartimento di Matematica Università di Bari. 9 e 16 Marzo 2007

RICHIAMI SULLE MATRICI. Una matrice di m righe e n colonne è rappresentata come

Diagonalizzazione di matrici e applicazioni lineari

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

Condizionamento del problema

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

Parte 3. Rango e teorema di Rouché-Capelli

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

Esponenziali elogaritmi

Documentazione esterna al software matematico sviluppato con MatLab

I PROBLEMI ALGEBRICI

Lezione 9: Cambio di base

SISTEMI LINEARI QUADRATI: METODI ITERATIVI

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

e-dva - eni-depth Velocity Analysis

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Esercizi di Macroeconomia per il corso di Economia Politica

Matematica generale CTF

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

LE FUNZIONI A DUE VARIABILI

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Appunti sulla Macchina di Turing. Macchina di Turing

Introduzione. Rappresentazione di numeri in macchina, condizion

LEZIONE 31. B i : R n R. R m,n, x = (x 1,..., x n ). Allora sappiamo che è definita. j=1. a i,j x j.

1 Giochi a due, con informazione perfetta e somma zero

Capitolo 2. Operazione di limite

Luigi Piroddi

Metodi Stocastici per la Finanza

1. PRIME PROPRIETÀ 2

Il principio di induzione e i numeri naturali.

risulta (x) = 1 se x < 0.

ANALISI DEL CONDIZIONAMENTO DI UN SISTEMA LINEARE

B9. Equazioni di grado superiore al secondo

Autovalori e Autovettori

Esercizi svolti sui numeri complessi

Soluzione degli esercizi sul moto rettilineo uniformemente accelerato

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

Esercizi sul moto rettilineo uniformemente accelerato

Applicazioni lineari

Ottimizzazione Multi Obiettivo

Tutorato di GE110. Universitá degli Studi Roma Tre - Corso di Laurea in Matematica

ESERCIZI APPLICAZIONI LINEARI

1 Applicazioni Lineari tra Spazi Vettoriali

Studente: SANTORO MC. Matricola : 528

Lezioni di Matematica 1 - I modulo

LEZIONE 7. Esercizio 7.1. Quale delle seguenti funzioni è decrescente in ( 3, 0) e ha derivata prima in 3 che vale 0? x x2. 2, x3 +2x +3.

Il valore assoluto. F. Battelli Università Politecnica delle Marche, Ancona. Pesaro, Precorso di Analisi 1, Settembre 2005 p.

Matematica generale CTF

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

Percorsi di matematica per il ripasso e il recupero

Determinante e inversa di una matrice

Parte 6. Applicazioni lineari

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

Informatica. Rappresentazione dei numeri Numerazione binaria

1 Serie di Taylor di una funzione

Transitori del primo ordine

Metodi iterativi per sistemi lineari

Microeconomia, Esercitazione 3 Effetto reddito, sostituzione, variazione compensativa, domanda di mercato, surplus del consumatore.

Fondamenti e didattica di Matematica Finanziaria

Introduzione al MATLAB c Parte 2

MATRICI E DETERMINANTI

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

19. Inclusioni tra spazi L p.

Programmazione dinamica

3 GRAFICI DI FUNZIONI

NOME:... MATRICOLA:... Scienza dei Media e della Comunicazione, A.A. 2007/2008 Analisi Matematica 1, Esame scritto del x 1.

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Algebra e Geometria. Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2)

Matematica B - a.a 2006/07 p. 1

CAPITOLO I. Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Programmazione Dinamica

LEZIONE 14. a 1,1 v 1 + a 1,2 v 2 + a 1,3 v a 1,n 1 v n 1 + a 1,n v n = w 1

1 Estensione in strategia mista di un gioco

APPLICAZIONI LINEARI

Università degli Studi di Roma Tor Vergata. Corso di Laurea in Ingegneria Meccanica

Alessandro Pellegrini

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

Esercizi svolti. 1. Si consideri la funzione f(x) = 4 x 2. a) Verificare che la funzione F(x) = x 2 4 x2 + 2 arcsin x è una primitiva di

Corrispondenze e funzioni

Algebra Lineare e Geometria

Dispense di Informatica per l ITG Valadier

Transcript:

Corso di Geometria e Algebra Lineare - Sezione di Metodi Numerici C. Vergara 3. Metodo della fattorizzazione LU per la risoluzione di un sistema lineare Errori di arrotondamento. Prima di affrontare la questione della risoluzione numerica di un sistema lineare, si introduca un concetto generale fondamentale in analisi numerica. In particolare, preso un qualsiasi numero reale, in generale esso sarà composto da un numero infinito di cifre dopo la virgola senza alcuna periodicità. La sua memorizzazione richiederebbe quindi infinite celle di memoria e non è quindi possibile al calcolatore. Per questo motivo, il calcolatore introduce necessariamente delle approssimazioni nella memorizzazione dei numeri, in quanto può solo considerare un numero finito di cifre dopo la virgola. Tale errore pre il nome di errore di arrotondamento. Un numero α viene memorizzato come ˆα α. Le operazioni fra numeri al calcolatore risentiranno di questa approssimazione. Ad esempio sommando due numeri α e β memorizzati in ˆα e ˆβ rispettivamente, si ottiene ˆα+ ˆβ α+β. Si dice che il calcolatore lavora in aritmetica non esatta. Inoltre, ci si aspetta che l errore cui è affetta la somma di due numeri sia maggiore degli errori di arrotondamento dei numeri di partenza. Si parla di propagazione dell errore di arrotondamento che, se il numero di operazioni è grande, può portare a risultati molto diversi da quello che si sarebbe ottenuto in aritmetica esatta, cioè senza errori di arrotondamento. L operazione più sensibile alla propagazione degli errori di arrotondamento è la sottrazione. Quindi in un algoritmo ove compaia una sottrazione, se possibile, il sottrao va preso il più piccolo possibile. Si torni allo schema della prima lezione. Si è visto come un fenomeno fisico descritto da una grandezza x F venga sotto opportune ipotesi modellato con un problema matematico, di soluzione x. L errore x f x è detto errore di modello ed è cura del fisico-matematico controllare tale errore. Successivamente si è fatto notare come sia necessario introdurre un problema numerico a seguito dell approssimazione numerica, che porta alla soluzione x N. L errore fra la soluzione esatta del problema matematico e la sua approssimazione numerica x x N è detto errore numerico. È il numerico che si deve occupare di controllare tale errore. Tuttavia, la soluzione numerica x N è quella che otterrei in aritmetica esatta, ovvero se non ci fossero gli errori di arrotondamento. In realtà, poichè il problema numerico viene dato da risolvere al calcolatore mediante un algoritmo, ciò che alla fine si ottiene è una soluzione effettiva ˆx N che è diversa da x N in quanto affetta dagli errori di arrotondamento. È sempre cura del numerico occuparsi di tale errore. Posizione del problema. Si consideri il seguente problema: 1

Dati una matrice A R n n e un vettore b R n, determinare il vettore x R n tale che Ax = b. (1) Tale problema è detto sistema lineare e consiste in n equazioni lineari nelle n incognite x j, j = 1,...,n. Sea ij, i,j = 1,...,n, sonoglielementidia, lai esimaequazionedelsistemalineare (1) è n a ij x j = b i, i = 1,...,n. j=1 La soluzione x del problema (1) esiste unica se e solo se det(a) 0 e può essere espressa con la formula di Cramer x i = det(b i) det(a), i = 1,...,n, dove B i è la matrice ottenuta a partire da A e sostituo l i esima colonna con il vettore b. Per capire se la formula di Cramer sia applicabile oppure no dobbiamo indagarne la complessità, cioè il numero delle operazioni necessarie alla sua applicazione. Si può mostrare che, data una matrice C R n n, il calcolo di det(c) con la formula di Laplace consta in un numero di operazioni che è asintotico di (n + 1)!. Di conseguenza, anche la complessità della formula di Cramer è asintotica di (n+1)!. Di seguito calcoliamo a titolo di esempio il tempo che un calcolatore, che svolge 10 9 operazioni al secondo, impiegherebbe per calcolare il determinante. Ad esempio, per n = 15 ci vorrebbero circa 12 ore, per n = 20 servirebbero 3240 anni, per n = 100 ci vorrebbero 10 143 anni! Da questi numeri, deduciamo che la risoluzione di un sistema lineare non può essere effettuata con la formula di Cramer, se non per dimensioni modeste. Tuttavia, in molte applicazioni è necessario dover risolvere sistemi lineari di dimensione 10 3, 10 4, 10 5 o addirittura maggiore. Da qui l esigenza di cercare tecniche alternative per la risoluzione del problema (1). Matrici particolari. Di seguito si analizza il caso di matrici con struttura particolare, al fine di indagare se per esse esistano algoritmi efficienti per la risoluzione del sistema lineare associato, che non si basino sulla formula di Cramer. Matrice diagonale. Si consideri una matrice diagonale D, cioè tale per cui d ij = 0 se i j. Il sistema lineare associato, Dx = b, non è in realtà un sistema lineare perché le equazioni sono disaccoppiate fra di loro. In altri termini, la i esima equazione coinvolge solo l incognita x i, in particolare d ii x i = b i, i = 1,...n, da cui si ottiene che la soluzione può essere facilmente calcolabile con la formula x i = b i d ii, i = 1,...,n, che ha una complessità pari a n, in quanto consiste in n divisioni. Matrici triangolari. Sia L una matrice tale per cui l ij = 0 se i < j (matrice triangolare inferiore). La prima equazione del sistema lineare associato, L x = b, diventa l 11 x 1 = b 1, 2

che coinvolge solo l incognita x 1, la quale può essere determinata dalla formula x 1 = b 1 l 11. La seconda equazione coinvolge invece sia l incognita x 1 che l incognita x 2, in particolare l 21 x 1 +l 22 x 2 = b 2. Tuttavia, l incognita x 1 è già stata determinata e quindi si può scrivere una formula esplicita anche per la x 2 : x 2 = b 2 l 21 x 1 l 22. In generale quindi, note le x i, i = 1,...,j 1, l incognita x j può essere determinata dalla formula esplicita x j = b j j 1 i=1 l jix i, l jj che definisce il metodo delle sostituzioni in avanti. In termini di algoritmo, tale metodo può essere implementato nel seguente modo: Algoritmo sostituzioni in avanti: for j = 1:n x(j) = b(j); for i = 1:j-1 x(j) = x(j) - L(j,i)*x(i); x(j) = x(j) / L(j,j); La complessità di tale algoritmo si può mostrare essere asintotica di n 2. La risoluzione di un sistema con matrice triangolare inferiore è quindi effettuabile. Ad esempio, se n = 10 5, il calcolatore considerato impiegherebbe 10 secondi per determinare la soluzione. Discorsi analoghi valgono per una matrice triangolare superiore U, cioè tale per cui u ij = 0 se i > j. In questo caso, possiamo applicare il metodo delle sostituzioni all indietro, che consiste, date le soluzioni x i, i = j +1,...,n, nella formula x j = b j n i=j+1 u jix i u jj. Per la sua implementazione si può considerare il seguente Algoritmo sostituzioni all indietro: for j = 1:n x(n-j+1) = b(n-j+1); for i = n-j+2:n x(n-j+1) = x(n-j+1) - U(n-j+1,i)*x(i); x(n-j+1) = x(n-j+1) / U(n-j+1,n-j+1); 3

che ha ancora complessità asintotica a n 2. Fattorizzazione LU di una matrice e risoluzione del sistema lineare associato. Siano A i, i = 1,...,n le sottomatrici principali di A, ottenute considerando le prime i righe e i colonne di quest ultima. Allora vale il seguente Teorema 1 Se det(a i ) 0, i = 1,...,n, allora esiste un unica matrice triangolare inferiore L, con elementi diagonali tali che l ii = 1,i = 1,...,n, e un unica matrice triangolare superiore U, tali che A = LU (fattorizzazione LU). Sotto ipotesi quindi più restrittive di quella necessaria a garantire esistenza e unicità della soluzione del problema (1), si può fattorizzare una matrice A nel prodotto di una matrice triangolare inferiore e di una triangolare superiore. Si noti come, il fatto che gli elementi diagonali di L siano stati fissati, serva per garantire l unicità della fattorizzazione. Qualora la fattorizzazione LU esista, il sistema (1) può essere riscritto come LU x = b. Pono y = U x, il precedente sistema è equivalente alla risoluzione della coppia di sistemi { Ly = b, (2) U x = y, che possono essere risolti in sequenza con il metodo delle sostituzioni. Il costo dunque della risoluzione del sistema lineare (1) si è ridotto, a valle della fattorizzazione LU, a essere asintotico di n 2. Tuttavia rimangono ancora 2 quesiti cui rispondere al fine ti poter applicare tale idea in concreto: 1) Come si possono determinare i fattori L e U? 2) Qualora esista un algoritmo che mi permetta di determinare i 2 fattori, qual è la sua complessità? A questi quesiti dà una risposta il Metodo dell Eliminazione Gaussiana (MEG). Tale metodo consiste in n 1 passi, tali per cui, parto dalla matrice A, al k 1-esimo passo si aggiornano le righe dalla k-esima all ultima, metto dei valori nulli sulla colonna k 1- esima. Alla fine, la matrice che si ottiene è dunque triangolare superiore, e coincide con il fattore U. L algoritmo per l implementazione di tale metodo è riportato di seguito: Algoritmo dell Eliminazione Gaussiana: for k = 1:n-1 for i = k+1:n L(i,k) = A(i,k) / A(k,k); for j = k+1:n A(i,j) = A(i,j) - L(i,k) * A(k,j); Nella matrice L è memorizzato il fattore triangolare inferiore, mentre nella parte superiore di A è memorizzato il fattore U. 4

La risoluzione di un sistema lineare con la tecnica della fattorizzazione LU consiste dunque di 2 passi: 1) La determinazione dei fattori LU mediante MEG (costo O(n 3 )); 2) Risoluzione dei 2 sistemi triangolari (2) (costo O(n 2 )). Il costo complessivo è quindi asintotico di n 3. Il grosso del costo della fattorizzazione risiede quindi nel calcolo dei fattori. Ad esempio, per una matrice di dimensione n = 10 4, il tempo di calcolo impiegato dal calcolatore considerato è di circa 1000 s 15 min. Considerando invece una matrice con n = 10 5, si ottiene un tempo di circa 11 giorni. Possiamo quindi affermare che per matrici con dimensioni fino a circa 10 4, le prestazioni del MEG sono accettabili e quindi la fattorizzazine LU costituisce un valido metodo numerico per la risoluzione pratica di un sistema lineare. Per dimensioni maggiori, il tempo di attesa potrebbe non essere accettabile, per cui bisogna ricorrere a metodi diversi (metodi iterativi). Tecnica del pivoting. Si consideri la seguente matrice 1 1 2 2 2 2, 3 6 4 e si applichi MEG. Per k = 1, si ottiene L(2,1) = A(2,1)/A(1,1) = 2/1 = 2, A(2,2) = A(2,2) L(2,1) A(1,2) = 2 2 1 = 0, A(2,3) = A(2,3) L(2,1) A(1,3) = 2 2 3 = 4. Proseguo, ad un certo punto, per k = 2 e i = 3, si ottiene L(3,2) = A(3,2)/A(2,2), e l algoritmo si arresta perché A(2,2) = 0. Eppure det(a) 0, quindi ci sono delle situazioni in cui sebbene la soluzione del sistema lineare esista, MEG non è in grado di determinarla. Calcoliamo det(a 2 ) per l esempio proposto. Si ottiene det(a 2 ) = 2 1 2 1 = 0, e quindi non sono soddisfatte le ipotesi del Teorema 1. In effetti, si può mostrare che ogniqualvoltanonsianosoddisfattetaliipotesi(ovveroseesistealmenounj < n, talechedet(a j ) = 0), allora MEG incontra una divisione per zero e si arresta. Sarebbe opportuno saper individuare a priori quali matrici incorrebbero in un arresto del MEG, in modo da evitare di iniziare il calcolo. A tal fine basterebbe vericare che i det(a i ) siano diversi da zero. Tuttavia ciò non è implementabile, visto il proibitivo costo del calcolo del determinante. Ci si chiede se esistano allora delle condizioni sufficienti che garantiscano l esistenza dei fattori L e U e quindi la buona riuscita del MEG senza arresti dovuti a divisione per zero. Si riportano di seguito dei casi che garantiscono ciò: Matrici a dominanza diagonale stretta per righe: sono le matrici tali che a ii > j i a ij i, la cui verifica richiede un O(n 2 ) di operazioni. 5

Matrici a dominanza diagonale stretta per colonne: sono le matrici tali che a ii > j i a ji i. Matrici simmetriche definite positive: sono le matrici tali che a ij = a ji i,j (simmetria) e tali che per ogni x 0 si abbia x T Ax > 0 (definita positività). Quindi l esistenza dei fattori L e U di una di queste tre categorie di matrici è garantita e di conseguenza il MEG non si arresta. Ovviamente, esso queste condizioni sufficienti, nulla si può concludere se una matrice non appartiene a nessuna delle tre categorie sopra riportate. Supponiamo che esista j < n tale che det(a j ) = 0. Ci si chiede se si possa modificare MEG al fine di portarlo a buon fine. A tal fine, si riconsideri l esempio di prima e si scambino la seconda e la terza riga. Ovviamente, al fine di ottenere la stessa soluzione, si devono scambiare anche la seconda e la terza componente del termine noto b. Si ha e applicando MEG, questa volta si ottiene 1 1 2 3 6 4 2 2 2, A(2,2) = 3. In effetti, in questo caso det(a 2 ) 0. Si può mostrare in particolare che se det(a k ) = 0 allora A(k,k) = 0 al k esimo passo del MEG, che porterebbe quindi ad un arresto a questo passo. Se quindi al passo k si ottiene A(k,k) = 0, l idea è quella di scambiare la riga k esima con una riga i > k tale per cui A(i,k) 0. Si noti che non si possono toccare le righe sopra la k esima in quanto già aggiornate definitivamente. In questo modo, al passo k, la nuova matrice avrà un elemento A(k, k) diverso da zero, e il MEG può procedere. Tale tecnica pre il nome di pivoting. Come visto, la sottrazione è l operazione più delicata in termini di propagazione dell errore di arrotondamento. Nell algoritmo MEG si può notare come all interno del ciclo più interno ci sia una sottrazione. Perciò, il termine L(i,k) * A(k,j) andrebbe preso il più piccolo possibile. Poiché A(k,j) non è stato ancora aggiornato, si può lavorare solo su L(i,k) che al passo precedente era stato determinato con L(i,k) = A(i,k) / A(k,k). L idea è quindi quella di prere fra tutte le righe i > k quella che assicura un elemento sulla colonna k massimo, cioè a ik a jk j > k. In particolare, ciò viene fatto anche se l elemento A(k,k) non è nullo al passo k, in modo da ridurre al minimo gli errori di arrotondamento. Il pivoting come detto permette di portare a termine il MEG anche se qualcuno dei determinanti di A i sia nullo. Questo perché non si sta piú operando con la matrice A, ma con PA, dove P è una matrice di permutazione (composta da soli 1 e 0) che tiene in conto dello scambio di righe effettuate su A. Ad esempio, nell esempio proposto si ha 1 1 2 3 6 4 2 2 2 = 1 0 0 0 0 1 0 1 0 1 1 2 2 2 2 3 6 4. 6

Il MEG è quindi applicato al sistema lineare PAx = Pb (che ovviamente ammette come soluzione ancora x esso P invertibile) e la fattorizzazione porta a PA = LU. Di conseguenza, i due sistemi triangolari da risolvere sono in questo caso { Ly = Pb, U x = y. Numero di condizionamento. Il numero di condizionamento di una matrice è definito come K(A) := A A 1. Nel caso di matrice simmetrica definita positiva, si ha K(A) = λ MAX λ MIN, (3) con λ MAX e λ MIN autovalore massimo e minimo di A. Il fatto che siano presenti gli errori di arrotondamento fa sì che la matrice A sia memorizzata in una matrice diversa Â, che puó essere scritta come  = A+δA, con δa dovuto agli errori di arrotondamento. Analogamente si memorizza b in ˆb = b+δb. Di conseguenza, il sistema lineare che si sta considerando è effettivamente (A+δA)(x+δx) = b+δb, con δx la perturbazione rispetto alla soluzione del sistema originario. Come visto, δa e δb sono piccoli. Il quesito fondamentale al fine di indagare le proprietà di accuratezza del metodo della fattorizzazione LU è il seguente: parto da perturbazioni piccole sui dati, la perturbazione sulla soluzione δx è piccola? Per rispondere a tale domanda, si consideri la seguente stima (si considera per semplicità il caso δa = 0, ma analoghe conclusioni valgono anche per δa 0): δx x K(A) δb b, che mostra come parto da perturbazioni sui dati piccole, la perturbazione sulla soluzione sia piccola a patto che il numero di condizionamento della matrice sia piccolo. Matrici malcondizionate (K(A) grande) possono quindi portare a delle soluzioni assolutamente sbagliate. In vista della (3), si ha che per matrici simmetriche definite positive, più gli autovalori sono dispersi in una grande regione, più l accuratezza della soluzione è scarsa. Fenomeno del fill-in. Si definisca innanzitutto una matrice sparsa. Una matrice è detta sparsa se il numero di elementi diversi da zero è asintotico di n. Si noti come gli elementi di una matrice siano n 2, quindi c è una grandissima dominanza di elementi nulli. Le matrici sparse sono fondamentali perchè nella risoluzione di problemi agli elementi finiti, volumi finiti, etc, si ha alla fine a che fare con esse. Per ottimizzare l occupazione di memoria (che assieme all accuratezza e alla velocità caratterizzano un metodo numerico) si può dopo il MEG sovrascrivere gli elementi del fattore 7

L nella parte triangolare inferiore di A, lasciando gli elementi diagonali alla memorizzazione del fattore U, visto che si sa a priori che L ii = 1. In questo modo, si mette a disposizione un occupazione di memoria per A e non se ne chiede altra per memorizzare i fattori L e U, ma si usa quella disponibile. In una situazione in cui la memorizzazione dei fattori richiederebbe più memoria di quanta se ne è messa a disposizione per A non sarebbe gradita. Si ha il seguente risultato: Se A è sparsa, in generale L e U sono pieni. Priamo ad esempio un elemento a ij, i > j e si supponga che a ij = 0. Allora, in generale, non si può sperare che l ij = 0! Ciò implica che l occupazione di memoria richiesta dai fattori L e U è molto maggiore di quella di A (n 2 celle di memoria contro le circa n). Per questo motivo la fattorizzazione LU è altamente sconsigliabile per la risoluzione di sistemi lineari con matrici sparse. Si fa notare che la soluzione che si otterrebbe sarebbe comunque esatta e la velocità del MEG sarebbe sempre la stessa; il fatto che si sconsigli tale tecnica in tale situazione è da ricondursi unicamente a questioni di occupazione di memoria. 8