Sunteți pe pagina 1din 7

LABORATOR 2 - SISTEME DE ECUATII

LINIARE. METODA
LUI GAUSS

Reamintim c
a un sistem de n ecuatii algebrice liniare cu n necunoscute este de
forma:

8
>
> a11 x1 + a12 x2 + ::: + a1n xn = b1
<
a21 x1 + a22 x2 + ::: + a2n xn = b2
(1) :
>
> :::::::::::::::::::::::::::
:
an1 x1 + an2 x2 + ::: + ann xn = bn

Daca notam cu A matricea coecientilor, cu x vectorul coloana al necunoscutelor


si cu b coloana al termenilor liberi, sistemul (1) se scrie sub form
a matriceala:

Ax = b;

unde:

2 3 2 3 2 3
a11 a12 ::: a1n x1 b1
6 a21 a22 ::: a2n 7 6 x2 7 6 b2 7
6 7 6 7 6 7
(2) A=6 .. .. .. 7;x = 6 .. 7;b = 6 .. 7:
4 . . . 5 4 . 5 4 . 5
an1 an2 ::: ann xn bn

Metodele numerice de rezolvare a sistemelor algebrice de ecuatii liniare sunt de


doua tipuri: metode directe si metode indirecte (sau iterative).
Metodele directe constau n transformarea sistemului (1) ntr-un sistem triun-
ghiular echivalent, care se rezolv a usor. Cele mai cunoscute metode directe sunt:
metoda Gauss, metoda Cholesky (utilizat a pentru sistemele n care matricea A este
simetrica si pozitiv denit a) si metoda Householder.
Metodele directe permit determinarea solutiilor sistemului n cazul ideal, cnd
nu avem erori de rotunjire. Num arul operatiilor efectuate este de ordinul n3 : Pentru
sisteme cu un num ar de ecuatii mai mare de 100, metodele directe devin inutilizabile
datorita acumul arii erorilor de rotunjire care altereaz a solutia.
Metodele indirecte (sau iterative) constau n constructia unui sir (x(k) ) de vec-
tori n-dimensionali, care converge la solutia exact a a sistemului. Se alege ca solutie
aproximativ a a sistemului un termen x(s) al sirului, al c arui ordin depinde de pre-
cizia impus a.
O iteratie presupune efectuarea unui num ar de operatii aritmetice de ordinul n2 :
Metodele iterative sunt utilizate la reolvarea sistemelor mari de ecuatii. Cele mai
cunoscute metode iterative sunt: Jacobi, Gauss-Siedel, metodele de relaxare.
1
2

1. Metoda Gauss. Factorizarea LU


Fie 2 3 2 3
0 0
6 .. 7 6 .. 7
6 . 7 6 . 7
6 7 6 7
6 0 7 6 7
m=6 7 si er = 6 1 7
6 mr+1;r 7 6 0 7
6 7 6 7
6 .. 7 6 . 7
4 . 5 4 .. 5
mn;r 0
(elementul 1 din er se aa pe linia r).
O matrice de forma M = In mr eTr ; unde eTr = [0; :::; 0; 1; 0; :::; 0]; se numeste
matrice Frobenius. O astfel de matrice are urmatoarea structura:
2 3
1 0 0 ::: 0
6 . .. 7
6 7
6 7
6 0 1 0 ::: 0 7
Mr = 6 6 0
7:
6 mr+1;r 1 ::: 0 7 7
6 .. . 7
4 . . . 5
0 mn;r 0 ::: 1
De exemplu, dac
a n = 4 si r = 2; avem:
2 3 2 3
1 0 0 0 0
6 0 1 0 0 7 6 0 7
M2 = 6 7 6
4 0 0 1 0 5 4 m32 5
7 0 1 0 0
0 0 0 1 m42
2 3 2 3
1 0 0 0 0 0 0 0
6 0 1 0 0 7 6 0 0 0 0 7
= 6 7 6
4 0 0 1 0 5 4 0 m32
7
1 0 5
0 0 0 1 0 m42 0 1
2 3
1 0 0 0
6 0 1 0 0 7
= 6 4 0
7:
m32 1 0 5
0 m42 0 1
Matricile Frobenius sunt inversabile, dup
a cum se va vedea n continuare:
(In mr eTr ) (In + mr eTr ) = In + mr eTr mr eTr mr (eTr mr ) eTr :
Deoarece eTr mr = 0; rezult a: Mr (In + mr eTr ) = In :Analog se arat a c
a
T
a si Mr 1 = (In + mr eTr ):
(In + mr er ) Mr = In ; deci Mr este inversabil
Arat
am n continuare c
a pentru orice matrice p atratic
a A de ordinul n care
satisface 2 3
a11 ::: a1r
6 .. 7 6= 0 pentru orice r = 1; :::; n 1;
det 4 ... . 5
ar1 arr
exist
a o matrice inferior triunghiular
a M 2 Mn (R) astfel nct U = M A este
superior triunghiular
a.
3

Deoarece a11 6= 0; putem considera matricea Frobenius


2 3
1 0 ::: ::: 0
6 a21 1 0 ::: 0 7
6 a 7
6 11 7
M1 = 6 .. .. 7 :
6 . 7
4 a. 5
n1
0 ::: ::: 1
a11
Dac
a not
am A1 = A si A2 = M1 A1 ; atunci avem
2 (2) (2) (2)
3
a11 a12 ::: a11
6 (2) (2) 7
6 0 a22 ::: a2n 7
6
A2 = 6 . .. .. 7;
7
4 .. . . 5
(2) (2)
0 an2 ::: ann
(1) (2) (1)
unde, notnd cu aij = aij ; pentru i; j = 1; :::; n; avem: a1j = a1j ; pentru j =
(1) (1)
(2) (1) ai1 a1j
1; :::; n; si aij = aij (1)
; pentru i; j = 2; :::; n:
a11
Observ
am c
a
(2) a21 a12 1 a11 a12
a22 = a11 = 6= 0:
a11 a11 a21 a11
Dac
a not
am 2 3
1 0 0 ::: 0
6 0 1 0 ::: 0 7
6 7
6 (2)
a32 7
6 7
6 0 1 ::: 0 7
6 (2)
a22 7
M2 = 6 7;
6 .. .. .. .. 7
6 . . . . 7
6 7
6 (2)
an2 7
4 5
0 (2)
0 ::: 1
a22
atunci
2 (3) (3) (3) (3) 3
a11 a12 a13 ::: a1n
6 (3) (3) (3) 7
6 0 a22 a23 ::: a2n 7
6 (3) (3) 7
A3 = M2 A2 = 6
6 0 0 a33 ::: a3n 7;
7
6 .. .. .. .. 7
4 . . . . 5
(3) (3)
0 0 an3 ::: ann
(2) (2)
(3) (2) (3) (2) ai2 a2j
unde aij = aij ; pentru i = 1; 2; j = 1; :::; n; si aij = aij (2)
; pentru
a22
i; j = 3; :::; n:
Un calcul simpu ne arat
a c
a
(2) (2) a11 a12 a13
(3) (2) a32 a23 1
a33 = a33 (2)
= (1) (2)
a21 a22 a23 6= 0:
a22 a11 a22 a31 a32 a33
4

(r)
n general, arr 6= 0 si se poate ar
ata considera matricea Frobenius:
2 3
1 0 0 ::: 0
6 .. 7
6 . 7
6 7
6 0 1 0 ::: 0 7
6 7
6 (r)
ar+1;r 7
6 7
Mr = 6 0 ::: 0 7:
6 (r)
arr 7
6 .. 7
6 7
6 . 7
6 (r) 7
4 anr 5
0 ::: (r)
0 ::: 1
arr

Dac
a not
am cu Ar+1 = Mr Ar ; atunci
2 (r+1) (r+1) (r+1) (r+1)
3
a11 a12 ::: a1r ::: a1n
6 (r+1) (r+1) (r+1) 7
6 0 a22 ::: a2r ::: a2n 7
6 .. .. .. .. 7
6 7
6 . . . . 7
6 7
Ar+1 =6
6 0 0
(r+1)
::: arr ::: arn
(r+1) 7;
7
6 (r+1) (r+1) 7
6 0 0 ::: 0 ar+1;r+1 ::: ar+1;n 7
6 .. .. .. .. .. 7
6 7
4 . . . . . 5
(r+1) (r+1)
0 0 ::: 0 an;r+1 ::: ann

(r) (r)
(r+1) (r) (r+1) (r) air arj
unde aij = aij ; pentru i = 1; :::; r; j = 1; :::; n; si aij = aij (r)
; pentru
arr
i; j = r + 1; :::; n:
n nal se obtine matricea superior triunghiular
a
2 (n) (n) (n)
3
a11 a12 ::: a1r
6 (n) (n) 7
6 0 a22 ::: a2n 7
U = An = Mn 1 ::: M2 M1 A = 6
6 .. .. .. 7:
7
4 . . . 5
(n)
0 0 ::: ann

Not
am cu M = Mn 1 Mn ::: M2 M1 si astfel obtinem
2 c
a U = M A:
2 3 2 3
5 2 1 1 0 0
6 1 1 0 7
Exemplul 1. A1 = 4 5 6 2 ; 5 M1 = 4 5;
4
4 2 1 0 1
2 3 2 3 5
5 2 1 1 0 0
6 0 8 1 7 6 0 1 0 7
A2 = 4 5; M2 = 4 5;
18 9 9
0 0 1
25 5 3 20 2 3
5 2 1 1 0 0
6 0 8 1 7 6 1 1 0 7:
U = A3 = 4 5; M = M1 M2 = 4 5
9 7 9
0 0 1
4 20 20
5

Consider
am sistemul:
8
< 5x1 + 2x2 + x3 = 12
5x1 6x2 + 2x3 = 1 ;
:
4x1 + 2x2 + x3 = 3

a c
arui solutie este x1 = 1; x2 = 2; x3 = 3: Sub form a matriceal
a sistemul se scrie:
Ax = b: Acest sistem este echivalent cu urm atorul sistem: (M2 M1 A)x = (M2 M1 )b:
Efectund calculele se obtine:
8
< 5x1 + 2x2 + x3 = 12
>
8x2 + x3 = 13 :
>
: 9 27
x3 =
4 4
Numarul operatiilor pentru determinarea matricei U si a vectorului M b
(r)
air (r)
Pentru o linie xat a i se calculeaz
a (r)
;apoi nmultirile cu arj ; r + 1 j n;
arr
(r) (r+1)
si se aduna aij ; r + 1 j n: La fel si cu bi : Sunt 2(n r) + 3 operatii pentru
ecare linie i; r+1 i n; iar pebtru ecare etap a vor (n r)[2(n r)+3] operatii.
Xn
2 1 7
n total vor 2(n r)2 + 3(n r) = n3 + n2 n operatii elementare.
r=1
3 2 6
Dac a adaugam si cele n2 operatii pentru rezolvarea sistemului triunghiular, rezult a
2 3 3 2 7
c
a num arul de operatii pentru rezolvarea sistemului Ax = b este n + n n:
3 2 6
1
n continuare not am cu Lr = Mr : Dup a cum s-a v azut mai nainte, Lr este de
forma In + mr eTr , adic a:
2 3
1 0 0 ::: 0
6 .. 7
6 . 7
6 7
6 0 1 0 ::: 0 7
6 7
6 (r)
ar+1;r 7
6 7
Lr = 6 0 ::: 0 7:
6 (r)
arr 7
6 .. 7
6 7
6 . 7
6 (r) 7
4 anr 5
0 ::: (r)
0 ::: 1
arr
Daca not
am cu L = L1 L2 ::: Ln 1 ; atunci L este o matrice inferior triunghiular
a
de felul urm
ator:
2 3
1 0 0 ::: 0
6 l21 1 0 ::: 0 7
6 7
L=6 . . .. .. 7 :
4 .. .. . . 5
ln1 ln2 ln3 ::: 1
1 1
Deoarece A = M1 M2 ::: Mn 11 U; rezult
a c
a:

(3) A = L U:
6

2 3
a11 ::: a1r
6 .. 7 6=
Asadar, orice matrice p a ce ndeplineste conditia det 4 ...
atratic . 5
ar1 arr
0 pentru orice r = 1; :::; n 1; admite o descompunere unic a sub forma (3), unde
L este inferior triunghiular a avnd elementele de pe diagonala principal a egale cu
1 si U este superior triunghiular a.
Descompunerea (3) este cunoscut a sub numele de factorizarea LU . Algoritmul
pentru factorizarea LU este programat n MATLAB si poate apelat cu secventa
[L; U ] = lu(A) (se aseaz
a cele dou a matrici).
n exemplul precedent avem:
2 3 2 3
1 0 0 1 0 0
6 1 0 7; 6 0 7;
L1 = 4 1 5 L2 = 4 0 1
5
4 9
0 1 0 1
5 20
2 3 2 3 2 3
1 0 0 5 2 1 5 2 1
6 1 1 0 7 6 0 8 1 7 4
A = L U =4 5 4 5= 5 6 2 5:
4 9 9
1 0 0 4 2 1
5 20 4
(r)
tia 1. Daca pivotul este "foarte mic", adica arr << 1, atunci mparti-
Observa
rile la acest pivot produc erori de rotunjire foarte mari, care altereaza solutia. n
acest caz se recomanda schimbarea pivotului. Se poate alege un nou pivot
n o
(r) (r)
r = a ir = max arr j r j n
sau n o
(r) (r)
r = ajr = max akl j r k n; 1 l n :

Aceasta presupune schimbarea ntre ele a dou a linii si eventual a dou


a coloane.
Dam n continuare algoritmul MATLAB pentru rezolvarea prin metoda lui Gauss
a sistemelor de ecuatii liniare, f
ar
a schimbarea pivotului.

Algoritmul Gauss
% Introducere matrice A a coecientilor
% Introducere vector b al termenilor liberi
% Introducere n, dimensiunea matricii A
A_v=A;
b_v=b;
for r=1:n-1
fprintf(Etapa %g,r);
for i=r+1:n
for j=1:n
A(i,j)=A_v(i,j)-(A_v(i,r)*A_v(r,j))/A_v(r,r);
end
b(i)=b_v(i)-A_v(i,r)*b_v(r)/A_v(r,r);
end
A_v=A;
b_v=b;
end
7

%rezolvarea sistemului triunghiular


x=zeros(n,1);
x(n)=b(n)/A(n,n);
for i=n-1:-1:1
s=0;
for j=i+1:n
s=s+A(i,j)*x(j);
end
x(i)=(b(i)-s)/A(i,i);
end
disp(Solutia sistemului prin metoda lui Gauss);
x

S-ar putea să vă placă și