Sunteți pe pagina 1din 4

METODE NUMERICE: Laborator #2

Sisteme triunghiulare. Inversarea matricelor.


S apt am ana: 24 Februarie 2014
Titulari curs: Florin Pop, George Popescu
Responsabil Laborator: Madalina Hristache
Obiective Laborator

In urma parcurgerii acestui laborator studentul va capabil sa:


factorizeze o matrice folosind una dintre metodele: Crout, Doolittle, Cholesky;
rezolve recursiv un sistem triunghiular;
inverseze o matrice prin metoda partit
,
ionarii;
inverseze o matrice prin metoda Gauss-Jordan.
Not
,
iuni teoretice
Factorizarea LU
Aceasta metoda presupune descompunerea matricei sistemului, A, astfel:
A = L * U ; L - inferior triunghiulara, U - superior triunghiulara.
_

_
a
11
a
12
a
1n
a
21
a
22
a
2n
.
.
.
.
.
.
.
.
. . . .
a
n1
a
n2
a
nn
_

_
=
_

_
l
11
0 0
l
21
l
22
0
.
.
.
.
.
.
.
.
. . . .
l
n1
l
n2
l
nn
_

_
u
11
u
12
u
1n
0 u
22
u
2n
.
.
.
.
.
.
.
.
. . . .
0 0 u
nn
_

_
. (1)

In funct
,
ie de condit
,
iile impuse, se disting factorizarile: Crout, Doolittle s
,
i Cholesky.
Important
,
a factorizarii LU consta n transformarea unui sistem cu matrice patratica n doua sisteme tri-
unghiulare.
Factorizarea Crout
Condit
,
ia ce se impune este : u
ii
= 1, pentru i = 1 : n.
Parametrii factorizarii Crout:
l
ip
= a
ip

p1

k=1
l
ik
u
kp
, pentru i = p : n
u
pj
=
1
l
pp

_
a
pj

p1

k=1
l
pk
u
kj
_
, pentru j = p + 1 : n
p = 1 : n
1
METODE NUMERICE Laborator #2 Sisteme triunghiulare. Inversarea matricelor.
Factorizarea Doolittle
Condit
,
ia ce se impune este : l
ii
= 1, pentru i = 1 : n.
Parametrii factorizarii Doolittle:
l
ip
=
1
u
pp

_
a
ip

p1

k=1
l
ik
u
kp
_
, pentru i = p : n
u
pj
= a
pj

p1

k=1
l
pk
u
kj
, pentru j = p + 1 : n
p = 1 : n
Factorizarea Cholesky
Condit
,
ia ce se impune este : U = L
T
.
Parametrii factorizarii Cholesky:
l
ii
=

_
a
ii

i1

k=1
l
2
ik
, pentru i = 1 : n
l
ij
=
a
ij

j1

k=1
l
ik
l
jk
l
jj
, pentru j = 1 : i 1
Rezolvarea sistemelor triunghiulare
Sistem inferior triunghiular Sistem superior triunghiular
Forma
sistemului
a
11
x
1
= b
1
a
21
x
1
+ a
22
x
2
= b
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
x
1
+ a
n2
x
2
+ + a
nn
x
n
= b
n
a
11
x
1
+ a
12
x
2
+ + a
1n
x
n
= b
1
a
22
x
2
+ + a
2n
x
n
= b
2
.
.
.
.
.
.
.
.
.
.
.
.
a
nn
x
n
= b
n
Solut
,
ia
sistemului
x
i
=
b
i

i1

j=1
A
ij
x
j
A
ii
, pentru i = 1 : n x
i
=
b
i

n

j=i+1
A
ij
x
j
A
ii
, pentru i = n : 1
Inversarea matricelor prin metoda partit
,
ionarii

In unele cazuri (de exmplu cand anumite zone ale matricei cont
,
in elemente nule), se poate diviza matricea
de inversat n patru submatrice A
1
, A
2
, A
3
s
,
i A
4
, astfel ncat matricele de pe diagonala principala A
1
s
,
i A
4
sa e patratice.
A =
_
A
1
A
3
A
2
A
4
_
(2)
Daca se noteaza inversa matricei A
X = A
1
=
_
X
1
X
3
X
2
X
4
_
(3)
este valabila ecuat
,
ia matriceala:
A A
1
=
_
A
1
A
3
A
2
A
4
_

_
X
1
X
3
X
2
X
4
_
=
_
I 0
0 I
_
. (4)
Facultatea de Automatica si Calculatoare, UPB Pagina 2 din ??
METODE NUMERICE Laborator #2 Sisteme triunghiulare. Inversarea matricelor.

In nal rezulta:
X
1
=
_
A
1
A
3
A
1
4
A
2
_
1
X
2
= A
1
4
A
2
X
1
X
3
= A
1
1
A
3
X
4
X
4
=
_
A
4
A
2
A
1
1
A
3
_
1
Problema 1
Rulat
,
i exemplul de cod pentru factorizarea Crout s
,
i facet
,
i modicarile necesare pentru a o transforma n
factorizare Doolittle.
1 function [L U] = Crout(A)
2 [n n] = size(A);
3 L = zeros(n);
4 U = eye(n);
5 L(1 : n, 1) = A(1 : n, 1);
6 for k = 1 : n
7 for i = k : n
8 % --------------------------------
9 s = 0;
10 for m = 1 : k-1
11 s = s + L(i, m)
*
U(m, k);
12 endfor
13 % --------------------------------
14 % echivalent pentru calculul sumei
15 % s = L(i, 1 : k-1)
*
U(1 : k-1, k);
16 L(i, k) = A(i, k) - s;
17 endfor
18 for j = k+1 : n
19 % --------------------------------
20 s = 0;
21 for m = 1 : k-1
22 s = s + L(k, m)
*
U(m, j);
23 endfor
24 % ---------------------------------
25 % echivalent pentru calculul sumei
26 % s = L(k, 1 : k-1)
*
U(1 : k-1, j);
27 U(k, j) = (A(k, j) - s) / L(k, k);
28 endfor
29 endfor
30 endfunction
Listing 1: Factorizare Crout
Problema 2
Fie T R
nn
o matrice simetrica, tridiagonala si pozitiv denita.
Scriet i un algoritm de calcul al factorizarii Cholesky T = L L
T
, cu L inferior triunghiulara.
Hint: Din cazul general de factorizare L U se deduce o formula de recurent a.
function [L, U] = choT(A)
Facultatea de Automatica si Calculatoare, UPB Pagina 3 din ??
METODE NUMERICE Laborator #2 Sisteme triunghiulare. Inversarea matricelor.
Problema 3
Fiind data matricea A R
nn
si un vector coloana b R:
a) Sa se implementeze o funct ie MATLAB care aduce matricea A n forma superior triunghiulara prin elim-
inare Gaussiana.
function [A, b] = Elim Gauss(A, b)
b) Sa se realizeze o funct ie MATLAB care rezolva un sistem superior triunghiular de ecuat ii liniare.
Folosindu-va de funct ia Elim Gauss(A, b) sa scrie o funct ie de test care rezolva sistemul de ecuat ii liniare
dat prin A si b init ial.
function x = SST(A, b)
function x = test(A, b)
Problema 4
Calculat
,
i inversa prin metoda Gauss-Jordan, apoi prin metoda partit
,
ionarii pentru matricea:
A =
_

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

_
(5)
Facultatea de Automatica si Calculatoare, UPB Pagina 4 din ??