Вы находитесь на странице: 1из 51

Metode directe pentru sisteme de ecuat ii liniare

Eliminare gaussiana, descompunere LU, Cholesky


Radu T. Trmbit as
Universitatea Babes-Bolyai
March 19, 2012
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 1 / 44
Descompunerea LU
Descompunerea LU
Transforma A C
mm
ntr-o matrice triunghiulara superior, U
scazand multiplii de linii
Fiecare L
i
introduce zerouri sub diagonala n coloana i :
L
m1
. . . L
2
L
1
. .
L
1
A = U =A = LU unde L = L
1
1
L
1
2
. . . L
1
m1
_

_




_

_
A
L
1

_

0
0
0
_

_
L
1
A
L
2

_


0
0
_

_
L
2
L
1
A
L
3

_



0
_

_
L
3
L
2
L
1
A
Triunghiularizare triunghiulara
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 2 / 44
Matricele L
k
Matricele L
k
La pasul k se elimina elementele de sub A
kk
:
x
k
=
_
x
11
x
kk
x
k+1,k
x
mk

T
L
k
x
k
=
_
x
11
x
kk
0 0

T
Multiplicatorii
jk
= x
jk
/x
kk
apar in L
k
:
L
k
=
_

_
1
.
.
.
1

k+1,k
1
.
.
.
.
.
.

mk
1
_

_
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 3 / 44
Construct ia lui L
Construct ia lui L
Matricea L cont ine tot i multiplicatorii ntr-o singura matrice (cu
semne +)
L = L
1
1
L
1
2
. . . L
1
m1
=
_

_
1

21
1

31

32
1
.
.
.
.
.
.
.
.
.
.
.
.

m1

m2

m,m1
1
_

_
Denim
k
= [0, . . . , 0,
k+1,k
, . . . ,
m,k
]
T
. Atunci L
k
= I
k
e

k
.
Avem L
1
k
= I +
k
e

k
, deoarece e

k
= 0 si
_
I
k
e

k
_ _
I +
k
e

k
_
= I
k
e

k
e

k
= I
De asemenea, L
1
k
L
1
k+1
= I +
k
e

k
+
k+1
e

k+1
, deoarece e

k+1
= 0
si
_
I +
k
e

k
_
_
I +
k+1
e

k+1
_
= I +
k
e

k
+
k+1
e

k+1
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 4 / 44
Eliminare gaussiana fara pivotare
Eliminare gaussiana fara pivotare
Se factorizeaza A C
mm
n A = LU
Eliminare gaussiana fara pivot
U := A; L = I ;
for k := 1 to m1 do
for j := k + 1 to m do

jk
:= u
jk
/u
kk
;
u
j ,k:m
:= u
j ,k:m

jk
u
k,k:m
;
Ciclul interior poate scris utilizand operat ii matriciale n loc de
cicluri for
Numar de operat ii (complexitatea)

m
k=1
2(mk)(mk) 2

m
k=1
k
2

2
3
m
3
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 5 / 44
Eliminare gaussiana cu produs exterior
Eliminare gaussiana cu produs exterior
Ciclul interior poate scris cu operat ii matriciale n loc de for
Eliminare gaussiana cu produs exterior
for k := 1 to m1 do
rows := k + 1 : m;
A
rows,k
:= A
rows,k
/A
k,k
;
A
rows,rows
:= A
rows,rows
A
rows,k
A
k,rows
;
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 6 / 44
Stabilitatea EG
Necesitatea pivotarii I
EG asa cum a fost prezentata este instabila.
Pentru anumite matrice EG poate esua, datorita tentativei de
mpart ire la zero
A =
_
0 1
1 1
_
Matricea este nesingulara si bine condit ionata;
condA =
3+

5
2
2.168
Fenomenul este mai general; este evident iat de o usoara perturbat ie a
lui A
A =
_
10
20
1
1 1
_
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 7 / 44
Stabilitatea EG
Necesitatea pivotarii II
Acum procesul nu esueaza; se obt ine (n aritmetica exacta)
L =
_
1 0
10
20
1
_
, U =
_
10
20
1
0 1 10
20
_

In aritmetica n virgula otanta, dubla precizie, 1 10


20
nu este
reprezentabil exact, el se va rotunji la 10
20
Factorii calculat i ai descompunerii vor

L =
_
1 0
10
20
1
_
,

U =
_
10
20
1
0 10
20
_
Produsul

L

U nu este apropiat de A

U =
_
1 0
10
20
1
_

_
10
20
1
0 10
20
_
=
_
10
20
1
1 0
_
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 8 / 44
Stabilitatea EG
Necesitatea pivotarii III
Rezolvand sistemul

Ux =
_
1
0
_
se obt ine x =
_
0
1
_
, dar solut ia corecta este x =
_
1
1
_
Explicat ie: EG nu este nici regresiv stabila, nici stabila (ca algoritm de
factorizare). Mai mult, matricele triunghiulare obt inute pot foarte
prost condit ionate, introducandu-se astfel o sursa suplimentara de
instabilitate.
Observat ie: Daca un pas al unui algoritm nu este regresiv stabil,
algoritmul ntreg poate instabil.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 9 / 44
Pivotare
Pivotare
La pasul k, am utilizat elementul k, k al matricei ca pivot si am
introdus zerouri n coloana k a liniilor ramase
_

_

x
kk




_

_

x
kk

0
0
0
_

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

_



x
ik


_

_

0
0
x
ik

0
_

_
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 10 / 44
Pivotare Pivotare
Pivotare
De asemenea, se poate utiliza orice alta coloana j k:
_

_



x
ij


_

_

0
0
x
ij

0
_

_
Alegand diferit i pivot i ne asiguram ca putem evita pivot ii nuli sau
foarte mici

In loc sa utilizam pivot i n pozit ii diferite, putem interschimba linii sau


coloane si sa utilizam algoritmul standard (pivotare)
O implementare concreta poate face pivotarea indirect, fara a muta
zic datele
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 11 / 44
Pivotare Pivotare part iala
Pivotare part iala
Alegerea pivot ilor dintre tot i candidat ii valizi este costisitoare(pivotare
completa)
Consideram doar pivot ii din coloana k si interschimbam
liniile(pivotare part iala)
_

_



x
ik


_

_
Select ie pivot
P
1

_

x
ik




_

_
Interschimbare linii
L
1

_

x
ik

0
0
0
_

_
Eliminare
Cu operat ii matriceale:
L
m1
P
m1
. . . L
2
P
2
L
1
P
1
A = U
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 12 / 44
Factorizarea PA = LU
Factorizarea PA = LU
Pentru a combina tot i L
k
si tot i P
k
n forma dorita de noi, rescriem
factorizarea precedenta sub forma
L
m1
P
m1
. . . L
2
P
2
L
1
P
1
A = U
_
L

m
L

2
L

1
_
(P
m1
P
2
P
1
) A = U
unde
L

k
= P
m1
P
k+1
L
k
P
1
k+1
P
1
m1
Aceasta ne da factorizare (descompunerea) LU a lui A
PA = LU
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 13 / 44
Eliminarea gaussiana cu pivotare part iala
Eliminarea gaussiana cu pivotare part iala
Factorizeaza A C
mm
n PA = LU
Eliminare gaussiana cu pivotare part iala
U := A; L := I ; P := I ;
for k := 1 to m1 do
Alege i k care maximizeaza |u
ik
|;
l
k,1:k1
l
i ,1:k1
;
p
k,:
p
i ,:
;
for j := k + 1 to m do

jk
:= u
jk
/u
kk
;
u
j ,k:m
:= u
j ,k:m

jk
u
k,k:m
;
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 14 / 44
Eliminarea gaussiana cu pivotare part iala Exemplu
Exemplu
Rezolvat i sistemul
_
_
1 1 1
1 1 2
2 4 2
_
_
x =
_
_
3
4
8
_
_
prin descompunere LUP.
Solut ie: Avem
_
_
1 1 1 1
2 1 1 2
3 2 4 2
_
_

_
_
3 2 4 2
2 1 1 2
1 1 1 1
_
_

_
_
3 2 4 2
2
1
2
1 2
1
1
2
1 1
_
_
_
_
3 2 4 2
2
1
2
1 1
1
1
2
1 0
_
_

_
_
3 2 4 2
2
1
2
1 1
1
1
2
1 0
_
_

_
_
3 2 4 2
2
1
2
1 1
1
1
2
1 1
_
_
.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 15 / 44
Eliminarea gaussiana cu pivotare part iala Exemplu
Exemplu (continuare)
Deci
L =
_
_
1 0 0
1
2
1 0
1
2
1 1
_
_
, U =
_
_
2 4 2
0 1 1
0 0 1
_
_
, P =
_
_
0 0 1
0 1 0
1 0 0
_
_
.
Sistemele triunghiulare corespunzatoare sunt
_
_
1 0 0
1
2
1 0
1
2
1 1
_
_
y = Pb =
_
_
8
4
3
_
_
,
cu solut ia y = [8, 0, 1]
T
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 16 / 44
Eliminarea gaussiana cu pivotare part iala Exemplu
Exemplu (continuare)
si
_
_
2 4 2
0 1 1
0 0 1
_
_
x =
_
_
8
0
1
_
_
,
cu solut ia x = [1, 1, 1]
T
.
Vericare
PA =
_
_
0 0 1
0 1 0
1 0 0
_
_

_
_
1 1 1
1 1 2
2 4 2
_
_
=
_
_
2 4 2
1 1 2
1 1 1
_
_
LU =
_
_
1 0 0
1
2
1 0
1
2
1 1
_
_

_
_
2 4 2
0 1 1
0 0 1
_
_
=
_
_
2 4 2
1 1 2
1 1 1
_
_
.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 17 / 44
Pivotare totala
Pivotare totala
Daca se selecteaza pivot i din coloane diferite, sunt necesare matrice
de permutare la stanga Q
k
:
L
m1
P
m1
L
2
P
2
L
1
P
1
AQ
1
Q
2
Q
m1
= U
(L

m1
L

2
L

1
)(P
m1
P
2
P
1
)A(Q
1
Q
2
Q
m1
) = U
Punem
L = (L

m1
L

2
L

1
)
1
P = P
m1
P
2
P
1
Q = Q
1
Q
2
Q
m1
pentru a obt ine
PAQ = LU
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 18 / 44
Pivotare totala
Liu Hui c. 220 c. 280
Matematician chinez, a
discutat eliminarea
,,gaussiana n comentariile
sale asupra lucrarii ,,Cele noua
capitole ale artei matematice
263 AD
Carl Friedrich Gauss 1777-1855
Matematica, astronomie,
geodezie, magnetism
1809 GE
(Ca adolescent n
Braunschweig a descoperit
teorema binomiala,
reciprocitatea patratica, media
aritmetico-geometrica. . . )
1807-1855: Universitatea din
Gottingen
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 19 / 44
Stabilitatea LU Stabilitatea LU fara pivotare
Stabilitatea LU fara pivotare
Pentru A = LU calculata fara pivotare:

U = A + A,
A
L U
= O(eps)
Eroare se refera la

L

U, nu la

L sau

U
Nota: la numitor apare L U, nu A
L si U pot arbitrar de mari, de exemplu
A =
_
10
20
1
1 1
_
=
_
1 0
10
20
1
_ _
10
20
1
0 1 10
20
_
Deci, algoritmul este nestabil
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 20 / 44
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 crestere
=
max
ij
|u
ij
|
max
ij
|a
ij
|
care implica U = O( A)
Pentru descompunerea PA = LU calculata cu pivotare:

U = PA + A,
A
A
= O(eps)
Daca = O(1), atunci algoritmul este regresiv stabil
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 21 / 44
Stabilitatea LU Factorul de crestere
Factorul de crestere
Consideram matricea
_

_
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
_

_
_

_
1 1
1 2
1 4
1 8
16
_

_
Nu apare nici o pivotare, deci aceasta este o factorizare PA = LU
Factorul de crestere = 16 = 2
m1
(se poate arata ca acesta este
cazul cel mai nefavorabil)
Deci, = 2
m1
= O(1), uniform, pentru toate matricele de
dimensiune m
Regresiv stabil conform denit iei, dar rezultatul poate inutil
Totusi, nu se stie exact de ce, factorii de crestere sunt mici n practica
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 22 / 44
Descompunerea Cholesky Matrice SPD
Matrice SPD
Reamintim:
A R
mm
este simetrica daca a
ij
= a
ji
, sau A = A
T
A C
mm
este hermitiana daca a
ij
= a
ji
, sau A = A

O matrice hermitiana A este hermitian pozitiv denita daca x

Ax > 0
pentru x = 0
x

Ax este ntotdeauna real deoarece x

Ay = y

Ax
Simetric pozitiv denita, sau SPD, pentru matrice reale
daca A este mm PD si X are rang maxim, atunci X

AX este PD
Deoarece (XAX)

= X

AX, si daca x = 0 atunci Xx = 0 si


x

(X

AX)x = (Xx)

A(Xx) > 0
Orice submatrice principala a lui A este PD, si orice element diagonal
a
ii
> 0
matricele PD au valori proprii reale pozitive si vectori proprii
ortonormali
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 23 / 44
Descompunerea Cholesky Factorizarea Cholesky
Factorizarea Cholesky
Se elimina sub pivot si la dreapta pivotului (datorita simetriei):
A =
_
a
11
w

w K
_
=
_
0
w/ I
_ _
w

/
0 K ww

/a
11
_
=
_
0
w/ I
_ _
1 0
0 K ww

/a
11
_ _
w

/
0 I
_
= R

1
A
1
R
1
unde =

a
11
K ww

/a
11
este o submatrice principala a matricei PD R

1
AR
1
1
,
deci elementul ei din stanga sus este pozitiv
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 24 / 44
Descompunerea Cholesky Factorizarea Cholesky
Factorizarea Cholesky
Se aplica recursiv si se obt ine
A = (R

1
R

2
. . . R

m
)(R
m
. . . R
2
R
1
) = R

R, r
ii
> 0
Existent a si unicitatea: orice matrice HPD are o factorizare Cholesky
unica
Algoritmul recursiv de pe folia precedenta nu esueaza niciodata
Rezulta si unicitatea, deoarece =

a
11
este determinat unic (dat) la
ecare pas si la fel, ntreaga linie w/
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 25 / 44
Descompunerea Cholesky Algoritmul de factorizare Cholesky
Algoritmul de factorizare Cholesky
Factorizeaza matricea HPD A C
mm
n A = R
T
R:
Factorizare Cholesky
R := A;
for k := 1 to m do
for j := k + 1 to m do
R
j ,j :m
:= R
j ,j :m
R
k,j :m
R
k,j
/R
k,k
R
k,k:m
:= R
k,k:m
/
_
R
k,k
Complexitatea (numar de operat ii)
m

k=1
m

j =k+1
2(mj ) 2
m

k=1
k

j =1
j
m

k=1
k
2

m
3
3
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 26 / 44
Descompunerea Cholesky Exemplu
Exemplu
Sa se rezolve sistemul
_
_
1 2 1
2 5 3
1 3 3
_
_
x =
_
_
4
10
7
_
_
folosind descompunerea Cholesky.
Solut ie: Calculand radicalii pivot ilor si complementele Schur se obt ine
B =
_
_
1 2 1
5 3
3
_
_

_
_
1 2 1
1 1
2
_
_

_
_
1 2 1
1 1
1
_
_
.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 27 / 44
Descompunerea Cholesky Exemplu
Exemplu
Sistemele corespunzatoare sunt:
_
_
1
2 1
1 1 1
_
_
y =
_
_
4
10
7
_
_
cu solut ia y =
_
4 2 1

T
si
_
_
1 2 1
1 1
1
_
_
x =
_
_
4
2
1
_
_
,
cu solut ia x =
_
1 1 1

T
.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 28 / 44
Descompunerea Cholesky Stabilitateatea
Stabilitatea
Factorul Cholesky calculat

R satisface

R = A + A,
A
A
= O(eps)
algoritmul este regresiv stabil
Dar, eroarea n

R poate mare ,
_
_
_

R R
_
_
_ / R = O((A)eps)
Rezolvare Ax = b pentru HPD A si cu doua substitut ii
Numarul de operat ii Cholesky m
3
/3
Algoritm regresiv stabil:
(A +A)x = b,
A
A
= O(eps)
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 29 / 44
Descompunerea Cholesky Stabilitateatea
John von Neumann
(1903-1957)
Andre Louis Cholesky
(1875-1918)
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 30 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
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 prin
substitut ie inversa sau directa
2
Daca A este o permutare a unei matrice triunghiulare, se rezolva prin
substitut ie (utila pentru [L,U]=lu(A) caci L este permutata)
3
Daca A este simetrica sau hermitiana
Se verica daca toate elementele diagonale sunt pozitive
Se ncearca cu Cholesky; daca se termina cu succes se rezolva prin
substitut ie
4
Daca A este Hessenberg , se reduce la o matrice triunghiulara superior
si apoi se rezolva prin substitut ie inversa
5
Daca A este patratica, se factorizeaza PA = LU si se rezolva prin
substitut ie inversa
6
Daca A nu este patratica, se face factorizare QR cu metoda
Householder, si se rezolva problema de aproximare n sensul celor mai
mici patrate
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 31 / 44
Descompunere QR
Descompunere QR
Fie A C
mn
. Se numeste descompunere QR a lui A perechea de
matrice (Q, R) unde Q C
mn
este unitara, R C
nn
este
triunghiulara superior si A = QR.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 32 / 44
Descompunere QR Metoda lui Householder
Triunghiularizare Householder
Metoda lui Householder nmult este cu matrice unitare pentru a
transform matricea ntr-una triunghiulara; de exemplu la primul pas:
Q
1
A =
_

_
r
11

0
0
.
.
.
.
.
.
.
.
.
.
.
.
0
_

_
La sfarsit, am obt inut un produs de matrice ortogonale
Q
n
. . . Q
2
Q
1
. .
Q

A = R
Triunghiularizare ortogonala
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 33 / 44
Introducerea de zerouri
Introducerea de zerouri
Q
k
introduce zerouri sub diagonala n coloana k
Pastreaza zerourile introduse anterior
_

_





_

_
A
Q
1

_

0
0
0
0
_

_
Q
1
A
Q
2

_


0
0
0
_

_
Q
2
Q
1
A
Q3

0
0
_

_
Q
3
Q
2
Q
1
A
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 34 / 44
Reectori Householder
Reectori Householder
Fie Q
k
de forma
Q
k
=
_
I 0
0 F
_
unde I este (k 1) (k 1) si F este (mk + 1) (mk + 1)
Cream reectorul Householder F care introduce zerouri:
x =
_

.
.
.

_
Fx =
_

_
x
0
.
.
.
0
_

_
= x e
1
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 35 / 44
Reectori Householder-Ideea
Reectori Householder-Ideea
Ideea: reectam n raport cu hiperplanul H, ortogonal pe
v = x
2
e
1
x, aplicand matricea unitara
F = I 2
vv

v
A se compara cu
proiectorul
P
v
= I
vv

v
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 36 / 44
Reectori Householder-Ideea
Determinarea reectorului
reexie Householder: P = I 2uu
T
, u
2
= 1; P simetrica si
ortogonala, deoarece P = P
T
si
PP
T
=
_
I 2uu
T
_ _
I 2uu
T
_
= I 4uu
T
+ 4uu
T
uu
T
= I
Dorim Px = [c, 0, . . . , 0]
T
= ce
1
(anulam toate componentele lui x
exceptand prima)
Px = x 2u(u
T
x) = ce
1
=u =
1
2u
T
x
(x ce
1
)
x
2
= Px
2
= |c|
obt inem u paralel cu u = x x
2
e
1
, deci u = u/ u
2
. Orice
alegere de semn corespunde; vom alege
u = [x
1
+ sign(x
1
) x
2
, x
2
, . . . , x
n
]
T
, u = u/ u
2
.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 37 / 44
Alegerea reectorului
Alegerea reectorului
Putem aplica reexia oricarui multiplu z al lui x e
1
cu |z| = 1
Proprietat i numerice mai bune pentru v mare, de exemplu
v = sign(x
1
) x e
1
+ x
Nota: sign(0) = 1, dar n
MATLAB, sign(0)==0
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 38 / 44
Algoritmul lui Householder
Algoritmul lui Householder
Calculeaza factorul R al descompunerii QR a matricei mn A
(m n)
Lasa rezultatul n A, memorand vectorii de reexie v
k
pentru utilizare
ulterioara
Factorizare QR prin metoda Householder
for k := 1 to n do
x := A
k:m,k
;
v
k
:= sign(x
1
)x
2
e
1
+ x;
v
k
:= v
k
/v
k

2
;
A
k:m,k:n
= A
k:m,k:n
2v
k
(v

k
A
k:m,k:n
)
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 39 / 44
Aplicarea sau obt inerea lui Q
Aplicarea sau obt inerea lui Q
Calculam Q

b = Q
n
. . . Q
2
Q
1
b si Qx = Q
1
Q
2
. . . Q
n
x implicit
Pentru a crea Q explicit, aplicam pentru x = I
Calculul implicit al lui Q

b
for k := 1 to n do
b
k:m
= b
k:m
2v
k
(v

k
b
k:m
);
Calculul implicit al lui Qx
for k := n downto 1 do
x
k:m
= x
k:m
2v
k
(v

k
x
k:m
);
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 40 / 44
Complexitatea QR-Householder
Complexitatea QR-Householder
Cea mai mare parte a efortului
A
k:m,k:n
= A
k:m,k:n
2v
k
(v

k
A
k:m,k:n
)
Operat ii pe iterat ie:
2(mk)(n k) pentru produsele scalare v

k
A
k:m,k:n
(mk)(n k) pentru produsul exterior 2v
k
( )
(mk)(n k) pentru scaderea A
k:m,k:n

4(mk)(n k) total
Incluzand ciclul exterior, totalul devine
n

k=1
4(mk)(n k) = 4
n

k=1
_
mn k (m + n) + k
2
_
4mn
2
4(m + n)n
2
/2 + 4n
3
/3 = 2mn
2
2n
3
/3
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 41 / 44
Complexitatea QR-Householder
Figure: Alston S. Householder
(1904-1993), matematician
american. Contribut ii importante:
biologie matematica, algebra
liniara numerica. Cartea sa The
Theory of Matrices in Numerical
Analysis a avut un mare impact
asupra dezvoltarii analizei
numerice si a informaticii.
Figure: James Wallace Givens
(1910-1993) Pionier al algebrei
liniare numerice si informaticii
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 42 / 44
Complexitatea QR-Householder
Exemplu
Calculat i descompunerea QR a matricei
A =
_
3 1
4 1
_
.
Solut ie. Reexia pentru prima coloana este P = I 2uu
T
. Vectorul u se
determina astfel:
u =
_
x
1
+ sign(x
1
) x
2
x
2
_
=
_
3 + 5
4
_
=
_
8
4
_
.
u =
_
8
2
+ 4
2
= 4

5
u =
u
u
=
_
2

5
5

5
5
_
.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 43 / 44
Complexitatea QR-Householder
Matricea de reexie este
P =
_
1 0
0 1
_
2
_
2

5
5

5
5
_ _
2

5
5

5
5
_
T
=
_

3
5

4
5

4
5
3
5
_
= Q
T
.
Se obt ine:
Q =
_

3
5

4
5

4
5
3
5
_
R = Q
T
A =
_

3
5

4
5

4
5
3
5
_

_
3 1
4 1
_
=
_
5
7
5
0
1
5
_
.
Radu T. Trmbit as (Universitatea Babes-Bolyai ) Metode directe pentru sisteme de ecuat ii liniare March 19, 2012 44 / 44

Вам также может понравиться