Calcolo numerico/Fattorizzazione LU (eliminazione gaussiana)

Da testwiki.
Vai alla navigazione Vai alla ricerca

Template:Calcolo numerico

Eliminazione gaussiana

Consideriamo la matrice A e facciamo operazioni sulle sue righe.

A𝒙=[𝒃]i,i=1,…,n

Risolviamo direttamente l'eliminazione di Gauss sulla matrice che ha come colonne le colonne di A e poi i termini noti. Se i termini non sono noti a priori possono esserci dei problemi, e si puΓ² applicare il metodo della potenza inversa, che serve per calcolare l'autovalore di modulo minimo.

Dopo aver fattorizzato A=LU, bisogna risolvere i sistemi Lπ’š=𝒃 e poi U𝒙=π’š. Spezziamo quindi il problema in due parti, separando la fattorizzazione della matrice dalla trattazione vera e propria della soluzione.

Descrizione dell'algoritmo

L'eliminazione gaussiana trasforma un sistema della forma A𝒙=𝒃 in un sistema della forma U𝒙=𝒄.

Supponiamo di essere al k-esimo passo di fattorizzazione, cioè supponiamo che la parte della matrice superiore alla riga Ak sia già stata ridotta a una triangolare superiore. A ogni passo, le operazioni sulle righe della matrice modificano anche il blocco quadrato in basso a destra, con le righe dalla k+1-esima all'n-esima.

Sottraiamo alla i-esima equazione la k-esima moltiplicata per un opportuno coefficiente.

Descrivendo l'algoritmo, per k=1,…,nβˆ’1 (passi di fattorizzazione), per i=k+1,…,n (righe successive alla k-esima), definisco l'elemento

Mik=Aik(k)Akk(k)

e sottraggo a Mikβˆ—Ak, in modo che

Aik(k+1)=0

Ad esempio, nel passo k=1, prendiamo la prima riga e la sottraiamo a tutte le altre moltiplicata per il rispettivo coefficiente Mik. Nel passo successivo lasciamo invariate le righe precedenti alla k-esima, e così via.

I coefficienti nel blocco quadrato degli Aij con k+1<j<n,k+1<i<n in basso a destra, che vengono modificati a ogni passo k, diventano:

Aij(k+1)=Aij(k)βˆ’Mikβˆ—Akj(k)

Analogamente per il termine noto:

bi(k+1)=bi(k)βˆ’Mikbk(k)

Matrice elementare di Gauss

Template:Definizione

In forma sintetica:

Ikβˆ’101005:60βˆ’Mk+1,kIkβˆ’Mn,k

In maniera compatta: Mk=Iβˆ’π’˜kβˆ—π’†kt, dove π’˜k Γ¨ un vettore colonna con le prime k componenti uguali a 0, e le restanti uguali a Mik e 𝒆k Γ¨ il k-esimo vettore della base canonica. Il prodotto tra il vettore colonna e il vettore riga Γ¨ una matrice.

Rappresentazione compatta dell'eliminazione di Gauss

Poniamo A(1)=A, A(k+1)=MkA(k) per k=1,…,nβˆ’1, dove A(k) indica la matrice ottenuta al passo k-esimo. Ogni passo dell'eliminazione di Gauss puΓ² essere quindi rappresentato in modo compatto come un prodotto tra due matrici. Allora, chiamando U la matrice triangolare superiore ottenuta all'ultimo passo, si ha:

U=Mnβˆ’1…M2M1A

Per poter scrivere A=LU, ci si chiede se il prodotto delle Mi Γ¨ invertibile, e questo Γ¨ vero perchΓ© Γ¨ prodotto di matrici invertibili. Allora si puΓ² scrivere:

A=(Mnβˆ’1Mnβˆ’2…M2M1)βˆ’1U

ed esplicitando la matrice inversa del prodotto:

A=M1βˆ’1M2βˆ’1…Mnβˆ’1βˆ’1U

Osservazione 2.3

Siccome L Γ¨ la matrice triangolare inferiore con entrate uguali a 1 sulla diagonale, il suo determinante, prodotto delle entrate diagonali, Γ¨ 1, e quindi

det⁡A=det⁡(LU)=det⁡Lβˆ—det⁡U=det⁡U

allora la fattorizzazione della matrice puΓ² essere considerata anche come un modo per calcolare il determinante.

Teniamo conto del fatto che:

Mk=Iβˆ’π’˜k𝒆kt

Allora

Mkβˆ’1=I+π’˜k𝒆kt

infatti si verifica che

Mkβˆ’1Mk=(I+π’˜k𝒆kt)(Iβˆ’π’˜k𝒆kt)=I+π’˜k𝒆ktβˆ’π’˜k𝒆ktβˆ’π’˜k𝒆ktπ’˜k𝒆kt

ma 𝒆ktπ’˜k Γ¨ il vettore nullo, gli altri due termini sono opposti e rimane Mkβˆ’1Mk=I.

Consideriamo allora L=M1βˆ’1M2βˆ’1…Mnβˆ’1βˆ’1, che si riscrive come

=(I+π’˜1𝒆1t)βˆ—(I+π’˜2𝒆2t)…(I+π’˜kβˆ’1𝒆kβˆ’1t)

=I+βˆ‘i=1nβˆ’1π’˜i𝒆it

L'ultimo passaggio vale perchΓ©, ad esempio

(I+π’˜1𝒆1t)(I+π’˜2𝒆2t)=I+π’˜1𝒆1t+π’˜2𝒆2t+π’˜1𝒆1tπ’˜2𝒆2t

𝒆1tπ’˜2=0 come prima, perchΓ© hanno zeri in posizioni complementari. In generale

𝒆itπ’˜k=0βˆ€i≀k

i termini misti si annullano, e quindi rimane

(I+π’˜1𝒆1t)(I+π’˜2𝒆2t)=I+π’˜1𝒆1t+π’˜2𝒆2t

e, procedendo cosΓ¬ fino al passo n-esimo, le colonne π’˜k𝒆kt si sommano una accanto all'altra, e si ottiene la matrice triangolare inferiore L cercata, con entrate uguali a 1 sulla diagonale, zeri nella parte superiore, e i moltiplicatori nella parte inferiore (i moltiplicatori in L sono positivi).

Operazioni sul termine noto

Le operazioni che l'eliminazione gaussiana fa sul termine noto equivalgono alla risoluzione del sistema Lπ’š=𝒃. Eseguo, per k=1,…,n e per i=k+1,…,n:

yi=biβˆ’Likyk=biβˆ’Mikyk.

Esempio 2.6

Ad esempio, nel caso di una matrice 4Γ—4,

y1=b1

y2=b2βˆ’L21y1

y3=b3βˆ’L31y1βˆ’L32y2

y4=b4βˆ’L41y1βˆ’L42y2βˆ’L43y3

Al primo passo di eliminazione gaussiana, il primo coefficiente è già definitivo mentre tutti gli altri vengono modificati. Al secondo passo anche il secondo coefficiente risulta definitivo, e così via. Al terzo passo, si lavora solo sull'ultima componente.

Si ha un aggiornamento progressivo per colonne.

La fattorizzazione ha un costo computazionale di n3 operazioni, mentre la risoluzione vera e propria ne richiede n2.

Vogliamo risolvere il sistema A𝒙=𝒃, e nell'algoritmo dell'eliminazione gaussiana, per k=1,…,nβˆ’1, per i=k+1,…,n, compiamo le seguenti operazioni:

1. definiamo i moltiplicatori

Mik=|Aik||Akk|

2. per j=k+1,…,n

aij(k+1)=aij(k)βˆ’Mikakj(k)

3. sul termine noto

bi(k+1)=bi(k)βˆ’Mikbk(k)

4. passo quindi dal sistema A𝒙=𝒃 al sistema U𝒙=𝒄 con 𝒄 soluzione di Lπ’š=𝒃.

5. U Γ¨ la matrice ottenuta dopo l'eliminazione gaussiana, mentre L ha entrate uguali a 1 sulla diagonale principale e ha i coefficienti Mik nella parte inferiore.

Problema dell'esistenza della fattorizzazione

Data una matrice quadrata A, chiamiamo sottomatrici principali di A le matrici Ak, ottenute privando A della k-esima riga e della k-esima colonna. Si dicono matrici principali di testa le sottomatrici che contengono il coefficiente A11.

Teorema 2.5

Data una matrice quadrata A in β„‚n,n, se le matrici Ak sono non singolari per k=1…,n, allora esiste unica la fattorizzazione A=LU.

Nel momento del calcolo del moltiplicatore Mik, in aritmetica esatta si hanno problemi se Akk=0. Siccome la matrice Γ¨ non singolare, esisterΓ  una riga in cui il termine in posizione k Γ¨ diverso da 0, allora, per evitare problemi, si scambia questa riga con la k-esima.

Teorema 2.6

Data Aβˆˆβ„‚n,n, allora esiste P matrice di permutazione tale che PA Γ¨ fattorizzabile nel prodotto LU.

Una matrice di permutazione che scambia le righe i-esima e k-esima si ottiene scambiando tali righe nella matrice identica, in particolare, considerando i quattro coefficienti Aii=Akk=1 e Aik=Aki=0, si inverte il loro valore, ponendo Aii=Akk=0 e Aik=Aki=1.

Template:Avanzamento