+ All Categories
Home > Documents > Eliminare gaussian a, descompunere LU, Cholesky Radu T. Tr^...

Eliminare gaussian a, descompunere LU, Cholesky Radu T. Tr^...

Date post: 29-Mar-2019
Category:
Upload: phamdang
View: 233 times
Download: 0 times
Share this document with a friend
59
Metode directe pentru sisteme de ecuat ¸ii liniare Eliminare gaussian˘ a, descompunere LU, Cholesky Radu T. Trˆ ımbit ¸a¸ s Universitatea ”Babe¸ s-Bolyai” March 26, 2008 Radu T. Trˆ ımbit ¸a¸ s (Universitatea ”Babe¸ s-Bolyai” ) Metode directe pentru sisteme de ecuat ¸ii liniare March 26, 2008 1 / 42
Transcript

Metode directe pentru sisteme de ecuatii liniareEliminare gaussiana, descompunere LU, Cholesky

Radu T. Trımbitas

Universitatea ”Babes-Bolyai”

March 26, 2008

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 1 / 42

Descompunerea LU

Descompunerea LU

Transforma A ∈ Cm×m ıntr-o matrice triunghiulara superior, Uscazand multiplii de linii

Fiecare Li introduce zerouri sub diagonala ın coloana i :

Lm−1 . . . L2L1︸ ︷︷ ︸L−1

A = U =⇒ A = LU unde L = L−11 L−1

2 . . . L−1m−1

× × × ×× × × ×× × × ×× × × ×

A

L1→

× × × ×0 × × ×0 × × ×0 × × ×

L1A

L2→

× × × ×× × ×0 × ×0 × ×

L2L1A

L3→

× × × ×× × ×× ×0 ×

L3L2L1A

“Triunghiularizare triunghiulara”

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 2 / 42

Matricele Lk

Matricele Lk

La pasul k se elimina elementele de sub Akk :

xk =[

x11 · · · xkk xk+1,k · · · xmk

]TLkxk =

[x11 · · · xkk 0 · · · 0

]TMultiplicatorii `jk = xjk/xkk apar in Lk :

Lk =

1. . .

1−`k+1,k 1

.... . .

−`mk 1

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 3 / 42

Constructia lui L

Constructia lui L

Matricea L contine toti multiplicatorii ıntr-o singura matrice (cusemne +)

L = L−11 L−1

2 . . . L−1m−1 =

1

`21 1`31 `32 1

......

. . .. . .

`m1 `m2 · · · `m,m−1 1

Definim `k = [0, . . . , 0, `k+1,k , . . . , `m,k ]T . Atunci Lk = I − `ke∗k .

Avem L−1k = I + `ke∗k , deoarece e∗k`k = 0 si(

I − `ke∗k) (

I + `ke∗k)

= I − `ke∗k`ke∗k = I

De asemenea, L−1k L−1

k+1 = I + `ke∗k + `k+1e∗k+1, deoarece e∗k`k+1 = 0

si(I + `ke∗k

) (I + `k+1e∗k+1

)= I + `ke∗k + `k+1e∗k+1

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 4 / 42

Eliminare gaussiana fara pivotare

Eliminare gaussiana fara pivotare

Se factorizeaza A ∈ Cm×m ın A = LU

Eliminare gaussiana fara pivot

U := A; L = I ;for k := 1 to m− 1 do

for j := k + 1 to m do`jk := ujk/ukk ;uj ,k :m := uj ,k :m − `jkuk,k :m;

Ciclul interior poate fi scris utilizand operatii matriciale ın loc decicluri for

Numar de operatii (complexitatea)∼ ∑m

k=1 2(m− k)(m− k) ∼ 2 ∑mk=1 k2 ∼ 2

3 m3

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 5 / 42

Eliminare gaussiana cu produs exterior

Eliminare gaussiana cu produs exterior

Ciclul interior poate fi scris cu operatii matriciale ın loc de for

Eliminare gaussiana cu produs exterior

for k := 1 to m− 1 dorows := k + 1 : m;Arows,k := Arows,k/Ak,k ;Arows,rows := Arows,rows − Arows,kAk,rows ;

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 6 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

De ce este necesara pivotarea

Sa consideram sistemul 10 −7 0−3 2.099 65 −1 5

x1

x2

x3

=

73.901

6

cu solutia exacta [0,−1, 1]T . Presupunem ca lucram pe o masinaipotetica cu AVF ın baza 10, cu precizia de 5 cifre.

Primul pas al eliminarii gaussiene produce 10 −7 00 −0.001 60 2.5 5

x1

x2

x3

=

76.001

2.5

Elementul (2,2) este mic in raport cu celelalte elemente ale matricei.Totusi, sa realizam eliminarea fara interschimbari.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 7 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Pasul urmator 2.5 · 103(E2) + (E3)→ (E3)(5 +

(2.5 · 103

)(6))

x3 =(2.5 +

(2.5 · 103

)(6.001)

)Rezultatul lui

(2.5 · 103

)(6.001) este 1.50025 · 104 care nu este

reprezentat exact pe masina noastra ipotetica.

Se rotunjeste la 1.5002 · 104

Rezultatul este adaugat la 2.5 si rotunjit din nou. Ambele cifre 5marcate (

5 + 1.5000 · 104)

x3 = (2.5 + 1.50025 · 104)

se pierd datorita erorilor de rotunjire.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 8 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Pe masina noastra ipotetica, ultima ecuatie devine

1.5005 · 104x3 = 1.5004 · 104

Substitutia inversa ıncepe cu

x3 =1.5004 · 104

1.5005 · 104= 0.999 93,

comparat cu solutia exacta x3 = 1.

Ecuatia a doua devine

−0.001x2 + 6 · 0.99993 = 6.001

cu solutia

x2 =1.5 · 10−3

−1.0 · 10−3= −1.5

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 9 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Pe masina noastra ipotetica, ultima ecuatie devine

1.5005 · 104x3 = 1.5004 · 104

Substitutia inversa ıncepe cu

x3 =1.5004 · 104

1.5005 · 104= 0.999 93,

comparat cu solutia exacta x3 = 1.

Ecuatia a doua devine

−0.001x2 + 6 · 0.99993 = 6.001

cu solutia

x2 =1.5 · 10−3

−1.0 · 10−3= −1.5

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 9 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Pe masina noastra ipotetica, ultima ecuatie devine

1.5005 · 104x3 = 1.5004 · 104

Substitutia inversa ıncepe cu

x3 =1.5004 · 104

1.5005 · 104= 0.999 93,

comparat cu solutia exacta x3 = 1.

Ecuatia a doua devine

−0.001x2 + 6 · 0.99993 = 6.001

cu solutia

x2 =1.5 · 10−3

−1.0 · 10−3= −1.5

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 9 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

In fine, x1 se obtine din ecuatia

10x1 + (−7)(−1.5) = 7,

care dax1 = −0.35.

In loc de [0,−1, 1]T , am obtinut [−0.35,−1.5, 0.99993]T .Inacceptabil!

Nu am avut o acumulare a erorilor de rotunjire, iar matricea este bineconditionata.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 10 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

In fine, x1 se obtine din ecuatia

10x1 + (−7)(−1.5) = 7,

care dax1 = −0.35.

In loc de [0,−1, 1]T , am obtinut [−0.35,−1.5, 0.99993]T .Inacceptabil!

Nu am avut o acumulare a erorilor de rotunjire, iar matricea este bineconditionata.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 10 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

In fine, x1 se obtine din ecuatia

10x1 + (−7)(−1.5) = 7,

care dax1 = −0.35.

In loc de [0,−1, 1]T , am obtinut [−0.35,−1.5, 0.99993]T .Inacceptabil!

Nu am avut o acumulare a erorilor de rotunjire, iar matricea este bineconditionata.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 10 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Necazurile provin de la alegerea unui pivot mic la al doilea pas aleliminarii.

Pivotul conduce la un multiplicator de 2.5 · 103, iar la ultima ecuatiese ajunge la coeficienti de 103 ori mai mari decat ın problemaoriginala.

Erorile de rotunjire mici ın raport cu acesti coeficienti suntinacceptabile comparativ cu matricea originala si solutia exacta.

Eliminarea gaussiana fara pivotare este instabila!

Daca efectuam (E2)←→ (E3), nu mai apar multiplicatori mari sirezultatul final este precis.

Daca multiplicatorii sunt < 1 ın modul avem garantia ca solutia esteprecisa.

Aceasta se asigura prin pivotare partiala.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 11 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Necazurile provin de la alegerea unui pivot mic la al doilea pas aleliminarii.

Pivotul conduce la un multiplicator de 2.5 · 103, iar la ultima ecuatiese ajunge la coeficienti de 103 ori mai mari decat ın problemaoriginala.

Erorile de rotunjire mici ın raport cu acesti coeficienti suntinacceptabile comparativ cu matricea originala si solutia exacta.

Eliminarea gaussiana fara pivotare este instabila!

Daca efectuam (E2)←→ (E3), nu mai apar multiplicatori mari sirezultatul final este precis.

Daca multiplicatorii sunt < 1 ın modul avem garantia ca solutia esteprecisa.

Aceasta se asigura prin pivotare partiala.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 11 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Necazurile provin de la alegerea unui pivot mic la al doilea pas aleliminarii.

Pivotul conduce la un multiplicator de 2.5 · 103, iar la ultima ecuatiese ajunge la coeficienti de 103 ori mai mari decat ın problemaoriginala.

Erorile de rotunjire mici ın raport cu acesti coeficienti suntinacceptabile comparativ cu matricea originala si solutia exacta.

Eliminarea gaussiana fara pivotare este instabila!

Daca efectuam (E2)←→ (E3), nu mai apar multiplicatori mari sirezultatul final este precis.

Daca multiplicatorii sunt < 1 ın modul avem garantia ca solutia esteprecisa.

Aceasta se asigura prin pivotare partiala.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 11 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Necazurile provin de la alegerea unui pivot mic la al doilea pas aleliminarii.

Pivotul conduce la un multiplicator de 2.5 · 103, iar la ultima ecuatiese ajunge la coeficienti de 103 ori mai mari decat ın problemaoriginala.

Erorile de rotunjire mici ın raport cu acesti coeficienti suntinacceptabile comparativ cu matricea originala si solutia exacta.

Eliminarea gaussiana fara pivotare este instabila!

Daca efectuam (E2)←→ (E3), nu mai apar multiplicatori mari sirezultatul final este precis.

Daca multiplicatorii sunt < 1 ın modul avem garantia ca solutia esteprecisa.

Aceasta se asigura prin pivotare partiala.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 11 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Necazurile provin de la alegerea unui pivot mic la al doilea pas aleliminarii.

Pivotul conduce la un multiplicator de 2.5 · 103, iar la ultima ecuatiese ajunge la coeficienti de 103 ori mai mari decat ın problemaoriginala.

Erorile de rotunjire mici ın raport cu acesti coeficienti suntinacceptabile comparativ cu matricea originala si solutia exacta.

Eliminarea gaussiana fara pivotare este instabila!

Daca efectuam (E2)←→ (E3), nu mai apar multiplicatori mari sirezultatul final este precis.

Daca multiplicatorii sunt < 1 ın modul avem garantia ca solutia esteprecisa.

Aceasta se asigura prin pivotare partiala.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 11 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Necazurile provin de la alegerea unui pivot mic la al doilea pas aleliminarii.

Pivotul conduce la un multiplicator de 2.5 · 103, iar la ultima ecuatiese ajunge la coeficienti de 103 ori mai mari decat ın problemaoriginala.

Erorile de rotunjire mici ın raport cu acesti coeficienti suntinacceptabile comparativ cu matricea originala si solutia exacta.

Eliminarea gaussiana fara pivotare este instabila!

Daca efectuam (E2)←→ (E3), nu mai apar multiplicatori mari sirezultatul final este precis.

Daca multiplicatorii sunt < 1 ın modul avem garantia ca solutia esteprecisa.

Aceasta se asigura prin pivotare partiala.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 11 / 42

Eliminare gaussiana cu produs exterior Necesitatea pivotarii

Pivotare

Necazurile provin de la alegerea unui pivot mic la al doilea pas aleliminarii.

Pivotul conduce la un multiplicator de 2.5 · 103, iar la ultima ecuatiese ajunge la coeficienti de 103 ori mai mari decat ın problemaoriginala.

Erorile de rotunjire mici ın raport cu acesti coeficienti suntinacceptabile comparativ cu matricea originala si solutia exacta.

Eliminarea gaussiana fara pivotare este instabila!

Daca efectuam (E2)←→ (E3), nu mai apar multiplicatori mari sirezultatul final este precis.

Daca multiplicatorii sunt < 1 ın modul avem garantia ca solutia esteprecisa.

Aceasta se asigura prin pivotare partiala.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 11 / 42

Pivotare

Pivotare

La pasul k, am utilizat elementul k , k al matricei ca pivot si amintrodus zerouri ın pozitia k a liniilor ramase

× × × × ×xkk × × ×× × × ×× × × ×× × × ×

−→× × × × ×

xkk × × ×0 × × ×0 × × ×0 × × ×

Dar, orice alt element i ≥ k din coloana k poate fi utilizat ca pivot:

× × × × ×× × × ×× × × ×xik × × ×× × × ×

−→× × × × ×

0 × × ×0 × × ×

xik × × ×0 × × ×

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 12 / 42

Pivotare Pivotare

Pivotare

De asemenea, se poate utiliza orice alta coloana j ≥ k:× × × × ×× × × ×× × × ×× xij × ×× × × ×

−→× × × × ×

× 0 × ×× 0 × ×× xij × ×× 0 × ×

Alegand diferiti pivoti ne asiguram ca putem evita pivotii nuli saufoarte mici

In loc sa utilizam pivoti ın pozitii diferite, putem interschimba linii saucoloane si sa utilizam algoritmul standard (pivotare)

O implementare concreta poate face pivotarea indirect, fara a mutafizic datele

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 13 / 42

Pivotare Pivotare partiala

Pivotare partiala

Alegerea pivotilor dintre toti candidatii valizi este costisitoare(pivotarecompleta)

Consideram doar pivotii din coloana k si interschimbamliniile(pivotare partiala)× × × × ×× × × ×× × × ×xik × × ×× × × ×

Selectie pivot

P1−→

× × × × ×

xik × × ×× × × ×× × × ×× × × ×

Interschimbare linii

L1−→

× × × × ×

xik × × ×0 × × ×0 × × ×0 × × ×

Eliminare

Cu operatii matriceale:

Lm−1Pm−1 . . . L2P2L1P1A = U

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 14 / 42

Factorizarea PA = LU

Factorizarea PA = LU

Pentru a combina toti Lk si toti Pk ın forma dorita de noi, rescriemfactorizarea precedenta sub forma

Lm−1Pm−1 . . . L2P2L1P1A = U(L′m · · · L′2L′1

)(Pm−1 · · ·P2P1) A = U

undeL′k = Pm−1 · · ·Pk+1LkP−1

k+1 · · ·P−1m−1

Aceasta ne da factorizare (descompunerea) LU a lui A

PA = LU

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 15 / 42

Eliminarea gaussiana cu pivotare partiala

Eliminarea gaussiana cu pivotare partiala

Factorizeaza A ∈ Cm×m ın PA = LU

Eliminare gaussiana cu pivotare partiala

U := A; L := I ; P := I ;for k := 1 to m− 1 do

Select i ≥ k to maximize |uik |;lk,1:k−1 ↔ li ,1:k−1;pk,: ↔ pi ,:;for j := k + 1 to m do

`jk := ujk/ukk ;uj ,k :m := uj ,k :m − `jkuk,k :m;

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 16 / 42

Eliminarea gaussiana cu pivotare partiala Exemplu

Exemplu

Rezolvati sistemul 1 1 11 1 22 4 2

x =

348

prin descompunere LUP.

Solutie: Avem

1 1 1 12 1 1 23 2 4 2

∼ 3 2 4 2

2 1 1 21 1 1 1

∼ 3 2 4 2

2 12 1 2

1 12 1 1

3 2 4 2

2 12 −1 1

1 12 −1 0

∼ 3 2 4 2

2 12 −1 1

1 12 1 0

∼ 3 2 4 2

2 12 −1 1

1 12 1 −1

.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 17 / 42

Eliminarea gaussiana cu pivotare partiala Exemplu

Exemplu (continuare)

Deci

L =

1 0 012 1 012 1 1

, U =

2 4 20 −1 10 0 −1

, P =

0 0 10 1 01 0 0

.

Sistemele triunghiulare corespunzatoare sunt 1 0 012 1 012 1 1

y = Pb =

843

,

cu solutia y = [8, 0,−1]T

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 18 / 42

Eliminarea gaussiana cu pivotare partiala Exemplu

Exemplu (continuare)

si 2 4 20 −1 10 0 −1

x =

80−1

,

cu solutia x = [1, 1, 1]T .

Verificare

PA =

0 0 10 1 01 0 0

· 1 1 1

1 1 22 4 2

=

2 4 21 1 21 1 1

LU =

1 0 012 1 012 1 1

· 2 4 2

0 −1 10 0 −1

=

2 4 21 1 21 1 1

.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 19 / 42

Pivotare totala

Pivotare totala

Daca se selecteaza pivoti din coloane diferite, sunt necesare matricede permutare la stanga Qk :

Lm−1Pm−1 · · · L2P2L1P1AQ1Q2 · · ·Qm−1 = U

(L′m−1 · · · L′2L′1)(Pm−1 · · ·P2P1)A(Q1Q2 · · ·Qm−1) = U

Punem

L = (L′m−1 · · · L′2L′1)−1

P = Pm−1 · · ·P2P1

Q = Q1Q2 · · ·Qm−1

pentru a obtinePAQ = LU

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 20 / 42

Pivotare totala

Liu Hui c. 220 –c. 280Matematician chinez, adiscutat eliminarea,,gaussiana” ın comentariilesale asupra lucrarii ,,Cele nouacapitole ale artei matematice”263 AD

Carl Friedrich Gauss 1777-1855Matematica, astronomie,geodezie, magnetism1809 GE(Ca adolescent ınBraunschweig a descoperitteorema binomiala,reciprocitatea patratica, mediaaritmetico-geometrica. . . )1807-1855: Universitatea dinGottingen

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 21 / 42

Stabilitatea LU Stabilitatea LU fara pivotare

Stabilitatea LU fara pivotare

Pentru A = LU calculata fara pivotare:

LU = A + δA,‖δA‖‖L‖ ‖U‖ = O(eps)

Eroare se refera la LU, nu la L sau U

Nota: la numitor apare ‖L‖ ‖U‖, nu ‖A‖‖L‖ si ‖U‖ pot fi arbitrar de mari, de exemplu

A =[

10−20 11 1

]=[

1 01020 1

] [10−20 1

0 1− 1020

]Deci, algoritmul este nestabil

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 22 / 42

Stabilitatea LU Stabilitatea LU cu pivotare

Stabilitatea LU cu pivotare

Daca se face pivotare, toate elementele lui L sunt ≤1 ın modul, deci‖L‖ = O(1)Pentru a masura cresterea lui U, se introduce factorul de cretere

ρ =maxij |uij |maxij |aij |

care implica ‖U‖ = O(ρ ‖A‖)Pentru descompunerea PA = LU calculata cu pivotare:

LU = PA + δA,‖δA‖‖A‖ = O(ρeps)

Daca ρ = O(1), atunci algoritmul este regresiv stabil

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 23 / 42

Stabilitatea LU Factorul de crestere

Factorul de crestere

Consideram matricea1 1−1 1 1−1 −1 1 1−1 −1 −1 1 1−1 −1 −1 −1 1

=

1−1 1−1 −1 1−1 −1 −1 1−1 −1 −1 −1 1

1 11 2

1 41 8

16

Nu apare nici o pivotare, deci aceasta este o factorizare PA = LU

Factorul de crestere ρ = 16 = 2m−1 (se poate arata ca acesta estecazul cel mai nefavorabil)

Deci, ρ = 2m−1 = O(1), uniform, pentru toate matricele dedimensiune m

Regresiv stabil conform definitiei, dar rezultatul poate fi inutil

Totusi, nu se stie exact de ce, factorii de crestere sunt mici ın practica

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 24 / 42

Descompunerea Cholesky Matrice SPD

Matrice SPD

Reamintim:

A ∈ Rm×m este simetrica daca aij = aji , sau A = AT

A ∈ Cm×m este hermitiana daca aij = aji , sau A = A∗

O matrice hermitiana A este hermitian pozitiv definita daca x∗Ax > 0pentru x 6= 0

x∗Ax este ıntotdeauna real deoarece x∗Ay = y∗AxSimetric pozitiv definita, sau SPD, pentru matrice reale

daca A este m×m PD si X are rang maxim, atunci X ∗AX este PD

Deoarece (XAX )∗ = X ∗AX , si daca x 6= 0 atunci Xx 6= 0 six∗(X ∗AX )x = (Xx)∗A(Xx) > 0Orice submatrice principala a lui A este PD, si orice element diagonalaii > 0

matricele PD au valori proprii reale pozitive si vectori propriiortonormali

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 25 / 42

Descompunerea Cholesky Factorizarea Cholesky

Factorizarea Cholesky

Se elimina sub pivot si la dreapta pivotului (datorita simetriei):

A =[

a11 w ∗

w K

]=[

α 0w/α I

] [α w ∗/α0 K − ww ∗/a11

]=[

α 0w/α I

] [1 00 K − ww ∗/a11

] [α w ∗/α0 I

]= R∗1 A1R1

unde α =√

a11

K − ww ∗/a11 este o submatrice principala a matricei PD R−∗1 AR−11 ,

deci elementul ei din stanga sus este pozitive

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 26 / 42

Descompunerea Cholesky Factorizarea Cholesky

Factorizarea Cholesky

Se aplica recursiv si se obtine

A = (R∗1 R∗2 . . . R∗m)(Rm . . . R2R1) = R∗R, rii > 0

Existenta si unicitatea: orice matrice HPD are o factorizare Choleskyunica

Algoritmul recursiv de pe folia precedenta nu esueaza niciodataRezulta si unicitatea, deoarece α =

√a11 este determinat unic (dat) la

fiecare pas si la fel, ıntreaga linie w/α

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 27 / 42

Descompunerea Cholesky Algoritmul de factorizare Cholesky

Algoritmul de factorizare Cholesky

Factorizeaza matricea HPD A ∈ Cm×m ın A = RT R:

Factorizare Cholesky

R := A;for k := 1 to m do

for j := k + 1 to m doRj ,j :m := Rj ,j :m − Rk,j :mRk,j/Rk,k

Rk,k :m := Rk,k :m/√

Rk,k

Complexitatea (numar de operatii)

m

∑k=1

m

∑j=k+1

2(m− j) ∼ 2m

∑k=1

k

∑j=1

j ∼m

∑k=1

k2 ∼ m3

3

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 28 / 42

Descompunerea Cholesky Exemplu

Exemplu

Sa se rezolve sistemul 1 2 12 5 31 3 3

x =

4107

folosind descompunerea Cholesky.

Solutie: Calculand radicalii pivotilor si complementele Schur se obtine

B =

1 2 15 3

3

∼ 1 2 1

1 12

∼ 1 2 1

1 11

.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 29 / 42

Descompunerea Cholesky Exemplu

Exemplu

Sistemele corespunzatoare sunt: 12 11 1 1

y =

4107

cu solutia y =

[4 2 1

]Tsi 1 2 1

1 11

x =

421

,

cu solutia x =[

1 1 1]T

.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 30 / 42

Descompunerea Cholesky Stabilitateatea

Stabilitatea

Factorul Cholesky calculat R satisface

R∗R = A + δA,‖δA‖‖A‖ = O(eps)

algoritmul este regresiv stabil

Dar, eroarea ın R poate fi mare ,∥∥∥R − R∥∥∥ / ‖R‖ = O(κ(A)eps)

Rezolvare Ax = b pentru HPD A cu si doua substitutii

Numarul de operatii Cholesky ∼ m3/3Algoritm regresiv stabil:

(A + ∆A)x = b,‖∆A‖‖A‖ = O(eps)

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 31 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitiveSe ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitiveSe ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitiveSe ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitive

Se ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitiveSe ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitiveSe ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitiveSe ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Backslash ın MATLAB

Backslash ın MATLAB

x=A\b pentru A densa realizeaza urmatorii pasi

1 Daca A este triunghiulara superior sau inferior se rezolva prinsubstitutie inversa sau directa

2 Daca A este o permutare a unei matrice triunghiulare, se rezolva prinsubstitutie (utila pentru [L,U]=lu(A) caci L este permutata)

3 Daca A este simetrica sau hermitiana

Se verifica daca toate elementele digonale sunt pozitiveSe ıncearca cu Cholesky; daca se termina cu succes se rezolva prinsubstitutie

4 Daca A este Hessenberg , se reduce la o matrice triunghiulara superiorsi apoi se rezolva prin substitutie inversa

5 Daca A este patratica, se factorizeaza PA = LU si se rezolva prinsubstitutie inversa

6 Daca A nu este patratica, se face factorizare QR cu metodaHouseholder, si se rezolva problema de aproximare ın sensul celor maimici patrate

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 32 / 42

Descompunere QR

Descompunere QR

Fie A ∈ Cm×n. Se numeste descompunere QR a lui A perechea dematrice (Q, R) unde Q ∈ Cm×n este unitara, R ∈ Cn×n estetriunghiulara superior si A = QR.

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 33 / 42

Descompunere QR Metoda lui Householder

Triunghiularizare Householder

Metoda lui Householder ınmulteste cu matrice unitare pentru atransform matricea ıntr-una triunghiulara; de exemplu la primul pas:

Q1A =

r11 × · · · ×0 × · · · ×0 × · · · ×...

.... . .

...0 × · · · ×

La sfarsit, am obtinut un produs de matrice ortogonale

Qn . . . Q2Q1︸ ︷︷ ︸Q∗

A = R

“Triunghiularizare ortogonala”

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 34 / 42

Introducerea de zerouri

Introducerea de zerouri

Qk introduce zerouri sub diagonala ın coloana k

Pastreaza zerourile introduse anterior× × ×× × ×× × ×× × ×× × ×

A

Q1−→

× × ×0 × ×0 × ×0 × ×0 × ×

Q1A

Q2−→

× × ×

× ×0 ×0 ×0 ×

Q2Q1A

Q3−→

× × ×× ×

×00

Q3Q2Q1A

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 35 / 42

Reflectori Householder

Reflectori Householder

Fie Qk de forma

Qk =[

I 00 F

]unde I este (k − 1)× (k − 1) si F este (m− k + 1)× (m− k + 1)Cream reflectorul Householder F care introduce zerouri:

x =

××...×

Fx =

‖x‖

0...0

= ‖x‖ e1

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 36 / 42

Reflectori Householder-Ideea

Reflectori Householder-Ideea

Ideea: reflectam ın raport cu hiperplanul H, ortogonal pev = ‖x‖2 e1 − x , aplicand matricea unitara

F = I − 2vv ∗

v ∗v

A se compara cuproiectorul

P⊥v = I − vv ∗

v ∗v

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 37 / 42

Alegerea reflectorului

Alegerea reflectorului

Putem aplica relexia oricarui multiplu z al lui ‖x‖ e1 cu |z | = 1Proprietati numerice mai bune pentru ‖v‖ mare, de exempluv = sign(x1) ‖x‖ e1 + x

Nota:sign(0) = 1, darın MATLAB,sign(0)==0

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 38 / 42

Algoritmul lui Householder

Algoritmul lui Householder

Calculeaza factorul R al descompunerii QR a matricei m× n A(m ≥ n)

Lasa rezultatul ın A, memorand vectorii de reflexie vk pentru utilizareulterioara

Factorizare QR prin metoda Householder

for k := 1 to n dox := Ak :m,k ;vk := sign(x1)‖x‖2e1 + x ;vk := vk/‖vk‖2;Ak :m,k :n = Ak :m,k :n − 2vk (v ∗k Ak :m,k :n)

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 39 / 42

Aplicarea sau obtinerea lui Q

Aplicarea sau obtinerea lui Q

Calculam Q∗b = Qn . . . Q2Q1b si Qx = Q1Q2 . . . Qnx implicit

Pentru a crea Q explicit, aplicam pentru x = I

Calculul implicit al lui Q∗b

for k := 1 to n dobk :m = bk :m − 2vk (v ∗k bk :m);

Calculul implicit al lui Qx

for k := n downto 1 doxk :m = xk :m − 2vk (v ∗k xk :m);

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 40 / 42

Complexitatea -Householder QR

Complexitatea -Householder QR

Cea mai mare parte a efortului

Ak :m,k :n = Ak :m,k :n − 2vk (v ∗k Ak :m,k :n)

Operatii pe iteratie:

2(m− k)(n− k) pentru produsele scalare v∗k Ak :m,k :n(m− k)(n− k) pentru produsul exterior 2vk (· · · )(m− k)(n− k) pentru scaderea Ak :m,k :n − · · ·4(m− k)(n− k) total

Incluzand ciclul exterior, totalul devine

n

∑k=1

4(m− k)(n− k) = 4n

∑k=1

(mn− k (m + n) + k2

)∼ 4mn2 − 4(m + n)n2/2 + 4n3/3 = 2mn2 − 2n3/3

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 41 / 42

Complexitatea -Householder QR

Figure: Alston S. Householder(1904-1993), matematicianamerican. Contributii importante:biologie mtematica, algebraliniara numerica. Cartea sa ”Thetheory of matrices in numericalanalysis” a avut un mare impactasupra dezvoltarii analizeinumerice si a informaticii.

Figure: James Wallace Givens(1910-1993) Pionier al algebreiliniare numerice si informaticii

Radu T. Trımbitas (Universitatea ”Babes-Bolyai” )Metode directe pentru sisteme de ecuatii liniare March 26, 2008 42 / 42


Recommended