Sunteți pe pagina 1din 49

Capitolul 2

SISTEME DETERMINATE DE ECUAII


ALGEBRICE LINIARE

2.1

Formularea problemei

Se consider sistemul de n ecuaii algebrice liniare cu n necunoscute:

A x = b, A nn , b n1 .

(2.1)

Problema de calcul este determinarea unei soluii x n1 a sistemului de


ecuaii (2.1) sau, altfel spus, determinarea unui vector care s satisfac ecuaia
dat.
Definiie:
Oricare ar fi matricea A nn , aceasta se numete inversabil
(nesingular) dac exist o matrice X nn astfel nct s fie ndeplinit
relaia: A X = X A = I n .

n relaia anterioar, I n este notaia pentru matricea unitate de ordinul n. n


continuare, se noteaz cu A 1 matricea X care satisface relaia din definiia
anterioar.
Teorem de existen i unicitate:
Dac matricea A nn este inversabil, atunci oricare ar fi vectorul
b n1 exist i este unic soluia x a ecuaiei (2.1).

Soluia se poate scrie sub forma:


x = A 1 b .

(2.2)

Observaii:
1. A 1 este notaia pentru inversa matricei A. n practic nu se recomand
calculul matricei inverse i apoi aplicarea relaiei (2.2). Un exemplu care s
ilustreze aceasta este urmtorul: se consider ecuaia a x = b , n care a = 7
i b = 21 . Se mai consider o aritmetic a virgulei mobile cu = 10 , t = 6 i

36

2.

Sisteme determinate de ecuaii algebrice liniare

rotunjire prin tiere. Atunci soluia ecuaiei este:


x = a 1 b = (7) 1 21 = 0.142857 21 = 2.99997 .
Acelai sistem se poate rezolva direct i anume: x = 21 / 7 = 3 , aceasta
reprezentnd soluia exact.
2. Nu se recomand rezolvarea ecuaiei prin regula Cramer:
x i = i / , i = 1,..., n ,
unde reprezint determinantul matricei A, iar i reprezint
determinanii matricelor obinute prin nlocuirea coloanei numrul i a
matricei A cu termenul liber asociat ecuaiei (2.1).
Un exemplu pentru aceast situaie este acela n care considernd n = 20 ,
rezult c trebuie estimai 21 de determinani care, dac sunt calculai dup
definiie, necesit calculul a 20! termeni care implic 19 nmuliri/termen,
deci 19 20! operaii n virgul mobil. O operaie n virgul mobil
nseamn o nmulire i o adunare: q = v w z . Pentru un calculator cu
100000 nmuliri/secund, rezult c numai pentru efectuarea nmulirilor
sunt necesari 3 10 8 ani, la care se adaug erorile de rotunjire!
Exemplul 2.1:

Problemele de tipul (2.1) sunt foarte des ntlnite n practic. Ca exemplu


generic, se consider un proces dinamic cu n mrimi de intrare ( u 1 , ..., u n ) i o
mrime de ieire (y). Corespunztor funcionrii acestuia n regim staionar sau
n regim dinamic, pentru care se realizeaz o liniarizare a modelului neliniar
dup un punct de funcionare, modelul intrare-ieire al procesului poate fi
descris de o ecuaie de forma:
y( u 1 , , u n ) = c1 u 1 + + c n u n .

(2.3)

Se consider un numr de n experimente prin care se impun anumite valori


mrimilor de intrare i se msoar valorile pe care le ia mrimea de ieire a
procesului. Rezultatele obinute pot fi tabelate astfel:
nr. experiment

u1

un

a11

a1n

b1

ai1

ain

bi

2.1

Formularea problemei

37

an1

ann

bn

Notnd cu A matricea format din valorile pe care le iau mrimile de intrare


ale procesului, A = [a ij ]1i n i cu b = [b i ]1i n vectorul valorilor mrimii de
1 j n

ieire, relaia (2.3) se poate rescrie sub forma A x = b, A nn , b n1 .


(2.1(2.1), unde x = [c1

c 2 c n ] T , T fiind notaia pentru operaia de

transpunere vectorial. Rezolvarea ecuaiei rezultate constituie, n acest caz, o


identificare a modelului pentru regimul static de funcionare a procesului.
Problema aceasta va avea o soluie, dac i numai dac liniile sau coloanele
matricei experimentelor [A | b] sunt vectori liniari independeni, dup cum se va
specifica ulterior.
Metodele numerice de rezolvare a unui sistem de ecuaii algebrice liniare se
mpart n urmtoarele dou categorii: metode directe i metode iterative
(indirecte).
Metodele directe se bazeaz pe reducerea sistemului (2.1) la un sistem
echivalent, direct rezolvabil prin mijloace elementare. Principial, aceasta
folosete eliminarea progresiv a necunoscutelor, numit i eliminare
gaussian.
Practic, prin transformri elementare de echivalen, se aduce matricea A a
sistemului la anumite forme tipice:
a) forma superior triunghiular:
u 11 u 1n
0

;
U=

0 0 u nn
b) forma inferior triunghiular:
l11 0 0

.
L=

l n1 l nn
Procedura de transformare se numete triangularizare. Astfel, se furnizeaz
soluia exact a sistemului de ecuaii (2.1), n cazurile (ideale) n care erorile de
rotunjire sunt absente. Numrul de operaii n virgul mobil, necesare
triangularizrii unei matrice ptratice de ordin n, este de ordinul lui n 3 . De
aceea, aceste metode se recomand pentru rezolvarea unor sisteme de ecuaii
algebrice liniare de ordin mai mic dect 10 2 .

38

2.

Sisteme determinate de ecuaii algebrice liniare

Metodele iterative au la baz construirea unui ir de aproximaii pentru


[k ]
soluia sistemului (2.1), x , k = 0,1, care s fie convergent pentru k la
soluia adevrat, x :
lim || x x

[k]

|| = 0 .

Practic, calculele se opresc la un index de iterare [s], atunci cnd este


ndeplinit o condiie de forma:
[s]
[ s 1]
|| x x
|| impus ,
sau, altfel spus, x

[s]

constituie o aproximare satisfctoare a soluiei calculate.

Avnd n vedere faptul c pentru o singur iteraie numrul de operaii n


virgul mobil este de ordinul lui n 2 , asemenea metode se folosesc pentru
sisteme de ordin mare i anume 10 2 10 4 .

2.2

Rezolvarea sistemelor prin triangularizare direct

2.2.1 Principiul metodei

Se consider problema (2.1) i matricea sistemului: A = [a ij ]1i n .


1 j n

Definiie:
Matricele [a 11 ] , , [a ij ]1i n 1 se numesc submatrice principale ale lui A
1 j n 1

sau minori principali directori.


Teorem:
Dac matricea A nn are toate submatricele principale inversabile
(nesingulare), atunci exist matricele L, D, U nn astfel nct:

A =LDU

(2.4)

unde L este o matrice inferior triunghiular, D este o matrice diagonal i U


este o matrice superior triunghiular.

Se pot face, n cele ce urmeaz, urmtoarele observaii:


1. relaia (2.4) se numete factorizare L-D-U a matricei A;
2. uzuale sunt factorizrile: A = L U ;
3. demonstraia teoremei enunate este constructiv, constituind nsui
algoritmul de descompunere L-U a matricei A;

2.2

Rezolvarea sistemelor prin triangularizare direct

39

4. algoritmul de descompunere este n fond procedeul de eliminare gaussian,


prin care matricea A este adus la forma superior triunghiular n urma unui
ir de transformri de asemnare. Transformrile efectuate asupra matricei A
se acumuleaz ntr-o matrice inferior triunghiular, cu elementele de pe
diagonala principal egale cu 1. Acest tip de descompunere se numete
descompunere Doolittle.
5. considernd descompunerea L-U a matricei sistemului A, A = L U , atunci
rezolvarea sistemului (2.1) implic dou subetape:
a. rezolvarea sistemului L y = b , etap numit i substituie nainte,
obinnd

soluia

intermediar

y.

Determinarea

componentelor

vectorului y = [ y i ]1i n are loc din aproape n aproape: se ncepe cu y1


(prima ecuaie), se nlocuiete n a doua ecuaie determinnd pe y 2 i
b.

aa mai departe.
rezolvarea sistemului U x = y , n care necunoscuta este x , etap
numit i substituie invers. n acest caz, determinarea componentelor
vectorului x are loc pornind de la ultima ecuaie.

Aceast manier de descompunere i de rezolvare se ncadreaz n aanumita rezolvare a sistemelor determinate de ecuaii algebrice liniare prin
triangularizare simpl (direct).
n continuare se prezint cteva rezultate referitoare la algebra matricelor
triunghiulare.
Definiie:
Se numete matrice triunghiular unitate o matrice inferior sau superior
triunghiular care are elementele de pe diagonala principal egale cu 1.

n ceea ce privete matricele triunghiulare, sunt valabile urmtoarele


rezultate.
R1: Inversa unei matrice superior (inferior) triunghiular este o matrice superior
(inferior) triunghiular.
R2: Produsul a dou matrice superior (inferior) triunghiulare este o matrice
superior (inferior) triunghiular.
R3: Inversa unei matrice superior (inferior) triunghiular unitate este o matrice
superior (inferior) triunghiular unitate.
R4: Produsul a dou matrice superior (inferior) triunghiulare unitate este o
matrice superior (inferior) triunghiular unitate.
n cele ce urmeaz, se enun i demonstreaz urmtorul rezultat esenial.
Propoziie:

40

2.

Sisteme determinate de ecuaii algebrice liniare

Dac matricea A admite o descompunere L-U, atunci aceast descompunere


este unic.

Demonstraia se realizeaz prin reducere la absurd, presupunnd c matricea A


admite dou descompuneri L-U i anume: A = L1 U 1 , A = L 2 U 2 . De aici
rezult c L1 U 1 = L 2 U 2 , ceea ce conduce la:
L21 L1 = U 2 U 11 ,
adic o matrice inferior triunghiular unitate ( L21 L1 ) este identic cu o
matrice superior triunghiular ( U 2 U 11 ). Acest lucru este posibil numai dac
ambele matrice sunt diagonale i au diagonala principal unitar, adic:
L21 L1 I n i U 2 U 11 I n ,
ceea ce implic L1 L 2 , U 1 U 2 .
Procedura de triangularizare direct necesit un numr de operaii n virgul
mobil de ordinul lui n 3 / 3 . Numrul total de operaii n virgul mobil pentru
rezolvarea unui sistem determinat de ecuaii algebrice liniare, folosind
triangularizarea simpl, este de ordinul lui (n 3 / 3) + n 2 , n 2 operaii fiind
necesare pentru parcurgerea celor dou etape din rezolvarea propriu-zis a
sistemului, anume substituia nainte i substituia napoi.
Dac matricea A este simetric ( A = A T ) i pozitiv definit
T
T
( x n1 , x 0 n , x A x > 0 i x A x = 0 x 0 n ), atunci A se
descompune sub forma A = L LT . Aceasta se numete descompunerea
Cholesky. n acest caz, algoritmul necesit mai puine operaii n virgul mobil
i anume n 3 / 6 , exploatnd faptul c matricea A este simetric.
2.2.2 Procedura de triangularizare direct a unei matrice

Principiul triangularizrii simple poate fi prezentat prin urmtorul algoritm,


descris principial n limbajul pseudocod:
atribuie A 1 A
pentru k = 1, n 1 execut
* determinare matrice M k astfel nct matricea A k +1 = M k A k s

aib elementele:
a [i ,kk+1] = 0, i = k + 1,..., n i a [i ,kj+1] = a [i ,kj] , i = 1,..., n; j = 1,..., k 1

atribuie A k +1 M k A k

2.2

Rezolvarea sistemelor prin triangularizare direct

41

n final se obine matricea A n = U .


Acest algoritm parcurge (n 1) etape, la fiecare etap zerorizndu-se
elementele de sub diagonala principal i pstrnd nealterate transformrile care
s-au efectuat n coloanele anterioare ale matricei A.
Notnd cu vectorul coninnd elementele coloanei k a matricei A k ,
anume:
= [ 1 k

k +1 n ] T = [a 1[ k,k] a [kk,k]

a [kk+]1,k

a [nk,k] ] T ,

atunci matricea de transformare M k se construiete astfel nct vectorul M k


s aib elementele:
M k = [ 1 k

0 0] T .

Se consider vectorul m k de forma:

m k = [0 0 k +1,k

n ,k ]T ,

elementele i, k , i = k + 1,..., n numindu-se multiplicatori.


Vectorul m k se numete vector Gauss sau vector de multiplicatori.
Subvectorul care conine strict numai multiplicatorii se numete subvector
Gauss:
t k = [ k +1, k n ,k ] T .
Definiie:
Matricea M k se numete matrice de transformare elementar de ordin n i
indice k sau matrice Gauss i este definit prin:
T
Mk = In mk ek ,
T

n care e k = [0 0 1 0 0] T , elementul egal cu 1 fiind n poziia k.

Definit astfel, matricea M k este o matrice inferior triunghiular unitate,


este nesingular i deci admite invers. Inversa acesteia este de forma:

M k1 = I n + m k e k .
T

(2.5)

Efectul aplicrii matricei M k asupra vectorului definit anterior, , este:


T

M k = (I n m k e k ) = m k e k = m k k
= [ 1 k

k +1 k +1,k k

n n ,k k ]T

ultimele n k elemente trebuind a fi zerorizate. Presupunnd c k 0 i


alegnd i , k = i / k , i = k + 1,..., n , va rezulta:
M k = [ 1 k

0 0] T .

42

2.

Dac

la

Sisteme determinate de ecuaii algebrice liniare

etapa

triangularizrii,

elementul

a [kk, k] 0

i , k = a [i ,kk] / a [kk, k] , i = k + 1,..., n , atunci se obine:


M k c k (A k ) = [a 1[ k, k] a [kk]1, k

a [kk,k]

0 0] T ,

n care c k (A k ) reprezint notaia pentru coloana k a matricei A k . Acest


rezultat evideniaz faptul c primele k elemente din coloana k a matricei A k
rmn neschimbate, iar ultimele n k elemente devin zero. Elementul
k = a [kk,k] se numete pivot.
Observaii:
1. n practic, pe calculator, etapa k descris mai sus se poate realiza testnd
condiia:
| a [kk, k] |> ,
n loc de a verifica a [kk, k] 0 , unde este o constant impus, de valoare
mic sau foarte mic. De exemplu, constanta poate fi egal cu epsilonulmain. Aceasta se realizeaz datorit faptului c, dac n aritmetica real
(exact) pivotul este nul, n aritmetica virgulei mobile, datorit erorilor de
calcul, aceast situaie este echivalent cu:
| a [kk, k] | .
2. Cnd pivotul este n modul mai mic sau egal cu , eliminarea gaussian
eueaz. Aceasta corespunde situaiei cnd matricea iniial A are
submatricea principal de ordin k singular, deci conform teormei enunate
anterior, descompunerea L-U a matricei A nu exist.
Efectul aplicrii transformrii M k asupra celorlaltor coloane ale matricei
A k este urmtorul. Se consider un vector de forma = [1 n ] T .
Aplicnd transformarea M k vectorului , se obine:
M k = [1 k

n n ,k k ]T .

k +1 k +1, k k

Concluzii:

a) Matricea M k las nemodificate primele k 1 coloane ale matricei A k .


Considernd vectorul ca fiind coloana numrul j a matricei A k :
= c j (A k ) = [* *
1

atunci se obine:

j+1

0 0] T ,
k

j < k , j = 1,..., k 1 ,

2.2

Rezolvarea sistemelor prin triangularizare direct

M k c j (A k ) = [* *
1

j+1

43

0 0 k +1,k 0 0 n ,k 0] T
k

k +1

= c j (A k )
b) Matricea M k transform coloana k a matricei A k , zeroriznd liniile
k + 1,..., n .
c) Matricea M k transform coloanele k + 1,..., n ale lui A k n liniile
k + 1,..., n . Considernd vectorul ca fiind coloana j a matricei A k :
= c j (A k ),

j = k + 1,..., n ,

atunci se obine:
M k c j (A k ) = [* * a [kk+]1, j k +1, k a [kk, ]j a [nk, ]j n , k a [kk, ]j ] T ,
notaia * semnificnd faptul c elementele implicate rmn nemodificate.
Sumariznd, asupra matricei iniiale A se aplic transformrile M 1 , ...,
M n 1 , obinndu-se n final forma superior triunghiular U:

M n 1 M 2 M 1 A = U .

(2.6)

nmulind la stnga relaia (2.6) cu M 11 M 21 M n 11 , se obine:


A = M 11 M 21 M n 11 U .

(2.7)

Notnd produsul M 11 M 21 M n 11 cu L, atunci relaia (2.7) devine:


A =LU .
innd cont de forma matricelor M k1 , k = 1,..., n 1 dat de relaia (2.5), atunci
matricea L este egal cu:
n 1

L = M 11 M 21 M n11 = I n + m k e k .
T

k =1

Matricea L este inferior triunghiular unitate i conine n fiecare coloan, sub


elementul unitar de pe diagonala principal, subvectorii Gauss.
Prima sub-etap de rezolvare a sistemului (2.1) este substituia nainte
aplicat sistemului de ecuaii L y = b . Vectorul y rezultat este, de fapt,
vectorul care se obine aplicnd la stnga, n aceeai ordine, transformrile
elementare care s-au aplicat matricei A:
y = L1 b = M n 1 M 2 M 1 b .
Exemplul 2.2:

Se consider o aritmetic a virgulei mobile cu = 10 , t = 5 i rotunjire prin


tiere.

44

2.

Sisteme determinate de ecuaii algebrice liniare

7 0
10

A = 3 2.099 6;
5
1 5
7
10

A 1 = A; A 2 = * 1 10 3
*
2.5
7

y=
6.001 ;
0.15004 10 5

7
b = 3.901; A x = b, x = ?
6
0
0
7
10

;
3
6; A 3 = * 1 10
6

*
5
*
0.15005 10 5
0.35 0
x = 1.5 1 = x a ,
0.99993 1

unde x a reprezint soluia adevrat a sistemului. Rezult, aadar, erori mari n


soluia calculat, x . Cauza care a determinat apariia acestor erori este aceea c
la pasul al doilea al triangularizrii s-a lucrat cu un pivot foarte mic n modul
( 1 10 3 ), pentru aritmetica virgulei mobile folosite. Multiplicatorul
corespunztor este 3, 2 = 2.5 /(10 3 ) = 2.5 10 3 , deci are o valoare foarte mare
n modul pentru aceeai aritmetic. Aceasta a condus, mai departe, la apariia
fenomenului de omitere catastrofal n calculele care s-au efectuat pentru
obinerea vectorilor y i x .
Concluzie:

La triangularizarea simpl, unde elementele matricei A se modific


corespunztor relaiei:
a [ijk +1] = a [ijk ] ik a [kjk ] , i = k + 1,..., n; j = k ,..., n ,
multiplicatorii ik pot avea, n principiu, orice valoare. Dac aceste valori sunt
mari sau foarte mari, atunci pot apare fenomenele de omitere catastrofal i/sau
de neutralizare a termenilor. Mai mult, dac aceti multiplicatori au valori
supraunitare n modul, atunci ei amplific erorile prezente n termenii a [kjk ] , n
felul acesta triangularizarea simpl fiind instabil numeric, n general. Altfel
spus, nu exist nici un control asupra stabilitii numerice a algoritmului
triangularizrii simple.

2.3

Rezolvarea sistemelor
pivotare parial

prin

triangularizare

cu

n cazul triangularizrii cu pivotare parial (Figura 2.1), la pasul k se caut


pivotul k printre elementele din coloana k, pornind de la elementul de pe

2.3

Rezolvarea sistemelor prin triangularizare cu pivotare parial

45

diagonala principal n jos, alegndu-se elementul care are cea mai mare valoare
n modul:
| a [i kk ],k |= max{| a [i ,kk] |} = k .
k i n

Ak =

0
ik
n
|
k

Fig. 2.1 Principiul triangularizrii cu pivotare parial a unei matrice: pivotul se


gsete n coloana k, liniile k n; k=1,...,n

Dac i k k , elementul maxim n modul nu se gsete pe diagonala


principal, atunci se interschimb (permut) liniile k i i k . Lucrul acesta se
realizeaz automat cu ajutorul unei matrice de permutare de linii Pk care
multiplic la stnga matricea A k : Pk A k . Pentru matricea care rezult astfel,
se determin apoi matricea de transformare M k ca i n cazul traingularizrii
simple, obinnd matricea:
A k +1 = M k (Pk A k ) .
n felul acesta, multiplicatorii calculai sunt subunitari n modul
| i , k | 1, i = k + 1,..., n , iar algoritmul triangularizrii devine stabil numeric.
Matricea M k Pk se numete matrice de transformare elementar stabilizat.
Matricea de permutare Pk se obine din matricea unitate de ordinul n, I n ,
schimbnd adecvat ntre ele liniile k i i k . Aceast matrice are urmtoarele
proprieti:
det(Pk ) = 1; Pk = Pk1 .
Teorem:
Dac matricea A nn este nesingular, atunci exist o matrice P nn ,
numit matrice general de permutare de linii, astfel nct:
P A = L' U ,

46

2.

Sisteme determinate de ecuaii algebrice liniare

n care U este o matrice superior triunghiular i L' este o matrice inferior


triunghiular unitate. cu elementele | l i , j | 1, i > j .

Demonstraia acestei teoreme este constructiv, constituind nsui algoritmul


de triangularizare cu pivotare parial a unei matrice. Se poate face observaia
c matricea L' conine n coloana k, sub elementul de pe diagonala principal,
subvectorul Gauss (de la triangulaizarea simpl) avnd liniile permutate.
Algoritmul de triangularizare cu pivotare parial este urmtorul:
atribuie A 1 A
pentru k = 1, n 1 execut

* determinare pivot k a [i kk ],k astfel nct | a [i kk ],k |= max{| a [i ,kk] |}


k i n

dac (i k k ) atunci
* determin Pk
altfel
atribuie Pk I n

* calcul Pk A k
* determinare matrice M k astfel nct matricea

A k +1 = M k (Pk A k ) s ndeplineasc condiiile de la

triangularizarea simpl
atribuie A k +1 M k (Pk A k )

atribuie U A n
n ansamblu, asupra matricei A sunt aplicate urmtoarele transformri:

M n 1 Pn 1 M 2 P2 M 1 P1 A = U .

(2.8)

Folosind faptul c Pk = Pk1 , sau altfel spus Pk Pk = I n , relaia (2.8) poate fi


scris sub forma:

(M n 1 Pn 1 M 1 P1 P1 P2 Pn 1 ) (Pn 1 P2 P1 ) A = U

(2.9)

Matricea produs Pn 1 P2 P1 se noteaz cu P. Ea este numit matrice


general de permutare de linii. Produsul din prima parantez din relaia (2.9) se
noteaz cu L'1 . Relaia (2.9) se scrie sub forma: P A = L' U , n care matricea
L' = Pn 1 P2 M 11 P2 M 2 1 Pn 1 M n 11 este o matrice inferior
triunghiular unitate avnd n fiecare coloan, sub diagonala principal,
subvectori Gauss cu liniile permutate.

2.3

Rezolvarea sistemelor prin triangularizare cu pivotare parial

47

Definiie:
Matricea A nn se numete diagonal dominant pe coloane dac n
fiecare coloan a sa elementul de pe diagonala principal este, n modul, mai
mare dect suma modulelor celorlaltor elemente:
n

| a j, j | | a i , j |, j = 1,..., n .
i =1
i j

n acest caz, se poate enuna urmtorul rezultat.


Propoziie:
Dac matricea A este diagonal dominant pe coloane, atunci ea admite
factorizarea:

P A = L' U ,
n care P = I n i elementele matricei L' sunt n modul subunitare.

Altfel spus, nu este implicat permutarea de linii n cazul traingularizrii unei


matrice diagonal dominante pe coloane.
Rezolvarea sistemului A x = b, A nn , b n1 se realizeaz n dou
etape:
a) descompunerea L' -U a matricei A:
P A = L' U
b) rezolvarea propriu-zis a sistemului care comport trei subetape, i anume:
b.1.) calculul vectorului c = P b ;
b.2.)

rezolvarea sistemului L' y = c prin substituie nainte;

b.3.)

rezolvarea sistemului U x = y prin substituie napoi.

Aceast modalitate de rezolvare se bazeaz pe urmtoarele relaii:


P A x = P b , P A = L' U , L' U x = P b , y = U x , c = P b .
Exemplul 2.3:

Se consider problema de la Exemplul 2.2. Se aplic, de aceast dat,


triangularizarea cu pivotare parial. n acest caz, permutarea de linii intervine
la pasul al doilea al triangularizrii, permutndu-se liniile 2 i 3: P = P2 . Se
obine, n final:
0
7
10 7
0

y = 2.5 ; U = 0 2.5
5 ; x = 1 .
6.002
0
1
0 6.002

48

2.

Sisteme determinate de ecuaii algebrice liniare

Dac algoritmul de triangularizare cu pivotare parial eueaz, n sensul c


pivotul gsit la o anumit etap [k] este nul sau foarte mic n modul, aceasta
corespunde situaiei cnd n aritmetica real primele k coloane ale matricei A
sunt liniar dependente. Dac ns pivotul gsit este n modul foarte mic n
sensul preciziei dorite (mai mic dect un anumit parametru impus), atunci se
recurge la traingularizarea matricei sistemului prin pivotare total, ceea ce
implic att permutri de linii ct i de coloane.

2.4

Rezolvarea sistemelor
pivotare total

prin

triangularizare

cu

n cazul triangularizrii cu pivotare total (Figura 2.2), la pasul [k] al


triangularizrii se alege drept pivot elementul maxim n modul din submatricea
format din liniile de la k la n, coloanele de la k la n:
| a [i kk ], jk |= max{| a [i ,kj] |} .
k i n
k j n

Dac acest element nu se afl n linia i/sau coloana k, atunci are loc
permutarea adecvat de linii i/sau coloane n scopul aducerii acelui element pe
diagonala principal, anume n linia k i coloana k.

Ak =

0
ik
n
|
k

|
jk

Fig. 2.2 Principiul triangularizrii cu pivotare total a unei matrice: pivotul se


gsete n submatricea determinat de coloanele k n i liniile k n; k=1,...,n

n continuare, se enun i demonstreaz urmtorul rezultat.


Teorem:
Pentru orice matrice A nn nesingular, exist dou matrice generale de
permutare, P matrice general de permutare de linii i S matrice general
de permutare de coloane, astfel nct:
P A S = L' U ,

2.4

Rezolvarea sistemelor prin triangularizare cu pivotare total

49

unde U este o matrice superior triunghiular, iar L' este o matrice inferior
triunghiular unitate avnd elementele | l i , j | 1, i j , n fiecare coloan a
matricei L, sub elementul de pe diagonala principal, gsindu-se subvectori
Gauss avnd liniile permutate ntre ele. Matricele generale de permutare P i S
sunt:
P = Pn 1 P2 P1 ; S = S1 S 2 S n 1 ,
unde matricele Pk , S k , k = 1,..., n 1 sunt matrice de permutare de linii i,
respectiv, de coloane.

Demonstraia teoremei este constructiv, reprezentnd nsui algoritmul


triangularizrii cu pivotare total a matricei A. Acesta este descris n limbajul
pseudocod, dup cum urmeaz:
atribuie A 1 A
pentru k = 1, n 1 execut

* determinare pivot k a [i kk ], jk care satisface: | a [i kk ], jk |= max{| a [i ,kj] |}


k i n
k j n

dac (i k k ) atunci
* determinare Pk (permutarea liniilor i k i k)
altfel
atribuie Pk I n

dac ( j k k ) atunci
* determinare S k (permutarea coloanelor j k i k)
altfel
atribuie S k I n

atribuie A 'k +1 Pk A k S k
* traingularizare matrice A 'k +1 :

A k +1 M k A 'k +1 = M k (Pk A k S k )

atribuie U A n
Tabloul general al transformrilor este:
M n 1 Pn 1 M 2 P2 M 1 P1 A S1 S 2 S n 1 = U .

(2.10)

n relaia (2.10) se noteaz cu S produsul S1 S 2 S n 1 i se ine cont de


faptul c Pk Pk = I n . Atunci relaia (2.10) devine:

50

2.

Sisteme determinate de ecuaii algebrice liniare

(M n 1 Pn 1 M 2 P2 M 1 P1 P1 P2 Pn 1 )
(Pn 1 P1 ) A S = U

(2.11)

Matricea Pn 1 P2 P1 se noteaz cu P, iar cu (L' ) 1 se noteaz produsul


M n 1 Pn 1 M 2 P2 M 1 P1 P1 P2 Pn 1 . n felul acesta, relaia (2.11)
devine: P A S = L' U .
Observaii:
1. Matricea de permutare de linii, Pk , se obine din matricea unitate I n
schimbnd adecvat ntre ele liniile k i i k . Deoarece se schimb linii ntre
ele, matricea Pk se aplic la stnga matricei A k . Matricea Pk are
proprietile:
det(Pk ) = 1; Pk = Pk1 .
2. Matricea de permutare de coloane, S k , se obine din matricea unitate I n
schimbnd adecvat ntre ele coloanele k i j k . Deoarece se schimb coloane
ntre ele, matricea S k se aplic la dreapta matricei A k . Matricea S k are
proprietile:
det(S k ) = 1; S k = S k 1 .
Pentru nelegerea etapelor rezolvrii sistemului (2.1), se nmulesc ambii
membri ai ecuaiei, la stnga, cu matricea P i se insereaz ntre A i x
produsul S S 1 = I n , obinndu-se:
P A S S 1 x = P b .

(2.12)

Aadar, rezolvarea sistemului comport urmtoarele etape:


a) triangularizarea cu pivotare total a matricei siatemului A:
P A S = L' U ;
b) rezolvarea propriu-zis a sistemului (2.12), cu urmtoarele subetape:
b.1.) calculul vectorului c = P b ;
b.2.) rezolvarea sistemului L' y = c prin substituie nainte;
b.3.) rezolvarea sistemului U z = y prin substituie napoi;
b.4.) determinarea soluiei: x = S z .
Observaii:
1) Permutrile de linii efectuate asupra matricei A implic permutri de linii
asupra termenului liber b .

2.5

Aplicaii ale descompunerilor L-U

51

2) Permutrile de coloane efectuate asupra matricei A implic permutri de linii


n soluia calculat a sistemului z .
3) Triangularizarea cu pivotare total asigur, la fiecare iteraie a sa, pivoii cei
mai mari n valoare absolut. Astfel, multiplicatorii vor fi subunitari n
modul, de valoarea cea mai mic posibil, | i , k | 1 , iar elementele care se
transform devin:
a [i ,kj+1] a [i ,kj] i ,k a [kk, ]j ,

j = k ,..., n; i = k + 1,..., n .

Ca urmare, triangularizarea cu pivotare total reprezint procedura de


triangularizare cea mai precis i stabil numeric. Dezavantajul ei este acela
c necesit un timp de calcul mai mare. De regul, se folosete
triangularizarea cu pivotare parial, recurgndu-se la triangularizarea cu
pivotare total numai cnd cea parial eueaz.
4) Dac A este o matrice singular, atunci pivotarea total va eua. n
aritmetica real exact aceasta corespunde situaiei cnd pivotul este nul,
matricea A avnd rangul egal cu k-1, daca algoritmul eueaz la iteraia k. n
aritmetica n virgul mobil, datorit erorilor de rotunjire, un pivot nul
nseamn ndeplinirea condiiei:
| a [i kk ], jk | ,
i se spune c matricele A, ca i A k , sunt algoritmic singulare.
5) Dac matricea A este diagonal dominant pe linii i pe coloane i n plus
elementele de pe diagonal satisfac relaiile:
| a 11 || a 22 | | a nn | ,
atunci descompunerea L' -U cu pivotare total este:
P A S = L' U; unde : P = I n ; S = I n .

2.5

Aplicaii ale descompunerilor L-U

2.5.1 Calculul determinantului

Considernd o matrice A nn nesingular, pentru care s-a calculat una


din descompunerile de tip L-U, calculul determinantului acesteia poate fi fcut
dup cum urmeaz.

Descompunerea L-U bazat pe triangularizarea simpl

n acest caz, descompunerea L-U a matricei A este:


A =LU ,

(2.13)

52

2.

Sisteme determinate de ecuaii algebrice liniare

unde L este o matrice inferior triunghiular unitate, iar matricea U = [u i, j ]1i , j n


este o matrice superior triunghiular. Aplicnd funcia determinant det(.) relaiei
(2.13) se obine:
det(A ) = det(L U) = det(L) det( U) .

(2.14)

Matricea L fiind o matrice inferior triunghiular unitate, determinantul su este


egal cu 1, iar matricea U fiind o matrice superior triunghiulare, determinantul
su este egal cu produsul elementelor de pe diagonala principal. innd cont
de acestea, relaia (2.14) devine:
n

det(A) = u i ,i .
i =1

Descompunerea L-U bazat pe triangularizarea cu pivotare parial

n acest caz, descompunerea L-U a matricei A este:


P A = L' U ,

(2.15)

n care P este matricea general de permutare de linii (matrice nesingular), L'


este o matrice inferior triunghiular unitate, iar U = [u i , j ]1i , j n este o matrice
superior triunghiular. innd cont de faptul c matricea P este inversabil,
relaia (2.15) poate fi scris sub forma:
A = P 1 L' U .

(2.16)

Aplicnd funcia determinant det(.) relaiei (2.16), se obine:


det(A) = det(P 1 L' U) = det(P 1 ) det(L' ) det( U) .
innd cont de urmtoarele:
P 1 = P1 P2 Pn 1 , det(P 1 ) = det(P1 ) det(P2 ) det(Pn 1 ) ;
det(Pi ) = 1, i {1,..., n 1} , deoarece dac Pi I n este realizat o

permutare de linii la iteraia [i] a algoritmului de triangularizare cu


pivotare parial;
det(L' ) = 1 ;

det( U) = u i,i ,

i =1

atunci relaia (2.16) devine:


n

det(A) = (1) Npl u i ,i ,


i =1

unde Npl reprezint numrul de permutri de linii efectiv realizate n procesul


de triangularizare a matricei A.

2.5

Aplicaii ale descompunerilor L-U

53

Descompunerea L-U bazat pe triangularizarea cu pivotare total

n acest caz, descompunerea L-U a matricei A este:


P A S = L' U ,

(2.17)

n care P este matricea general de permutare de linii (matrice nesingular), S


este matricea general de permutare de coloane (matrice nesingular), L' este o
matrice inferior triunghiular unitate, iar U = [u i , j ]1i , j n este o matrice superior
triunghiular. innd cont de faptul c matricele P i S sunt inversabile, relaia
(2.17) devine:

A = P 1 L' U S 1 .

(2.18)

Dar P 1 = P1 P2 Pn 1 i S 1 = S n 1 S 2 S1 . Ca urmare, relaia (2.18)


devine:
n

i =1

i =1

det(A) = det(Pi ) det(L' ) det( U) det(S i ) .

innd cont de urmtoarele:


det(Pi ) = 1, i {1,..., n 1} , deoarece dac

Pi I n

(2.19)

este realizat o

permutare de linii la iteraia [i] a algoritmului de triangularizare cu pivotare


total;
det(S i ) = 1, i {1,..., n 1} , deoarece dac Si I n este realizat permutare

de coloane la iteraia [i] a algoritmului de triangularizare cu pivotare total;


det(L' ) = 1 ;

det( U) = u i,i ,

i =1

atunci relaia (2.19) devine:


n

det(A) = (1) Npl+ Npc u i,i ,


i =1

unde Npl este numrul permutrilor de linii, iar Npc numrul permutrilor de
coloane ce s-au realizat efectiv pe parcursul procedurii de triangularizare cu
pivotare total a matricei A.
2.5.2 Rezolvarea ecuaiilor matriciale

Se consider ecuaia matricial de forma:


A X = B, A nn ; B np ; X np ; X = ? .

(2.20)

54

2.

Sisteme determinate de ecuaii algebrice liniare

Se scriu matricele B i X pe coloane, sub forma:


B = [ b1 b k

b p ]; b k n1 , k = 1,..., p

X = [x1 x k

x p ]; x k n1 , k = 1,..., p

(2.21)

Apelnd la descompunerea L-U cu traingularizare simpl (relaia (2.13)) a


matricei A a sistemului (2.20), se obine relaia:
L U X = B.

(2.22)

Notnd produsul U X cu Y, relaia (2.22) devine: L Y = B sau, folosind


relaiile (2.21), se poate scrie:
L y k = b k , k = 1,..., p
U x k = y k , k = 1,..., p

(2.23)

Aadar, rezolvarea ecuaiei matriciale (2.20) implic descompunerea L-U a


matricei sistemului i apoi determinarea succesiv a coloanelor matricei
necunoscutelor, X cu ajutorul relaiilor (2.23). Numrul de operaii n virgul
mobil necesar rezolvrii unui astfel de sistem este de ordinul lui
(n 3 / 3) + p n 2 , unde n 3 / 3 operaii n virgul mobil sunt necesare
descompunerii L-U, iar p n 2 operaii sunt necesare rezolvrii sistemului n
maniera descris.
n cazul n care se utilizeaz descompunerea L-U cu pivotare parial (relaia
(2.15)) a matricei A a sistemului, atunci rezolvarea sistemului de ecuaii
matriciale (2.20) parcurge urmtoarele etape:
a) descompunerea L' -U a matricei A (relaia (2.15));
b) calculul coloanelor matricei X; pentru k = 1,..., p se execut:
b.1.) calculul vectorului c = P b k ;
b.2.) rezolvarea sistemului L' y k = c prin substituie nainte;
b.3.) rezolvarea sistemului U x k = y k prin substituie invers.
n cazul n care se apeleaz la descompunerea L-U cu pivotare total (relaia
(2.17)) a matricei A a sistemului, atunci rezolvarea sistemului de ecuaii
matriciale (2.20) parcurge urmtoarele etape:
a) descompunerea L' -U a matricei A (relaia (2.17));
b) calculul coloanelor matricei X; pentru k = 1,..., p se execut:
b.1.) calculul vectorului c = P b k ;
b.2.) rezolvarea sistemului L' y k = c prin substituie nainte;

2.5

Aplicaii ale descompunerilor L-U

55

b.3.) rezolvarea sistemului U z k = y k prin substituie invers;


b.4.) ordonare soluie calculat: x k = S z k .
2.5.3 Calculul inversei unei matrice

Fie o matrice A nn nesingular. Se dorete aflarea inversei acesteia,


notat cu A 1 . Acest tip de problem se ncadreaz n problematica rezolvrii
ecuaiilor matriciale de tipul (2.20), considernd B = I n .
Astfel, n prima faz se utilizeaz una din descompunerile L-U ale matricei
A, anume traingularizare simpl, triangularizare cu pivotare parial sau
triangularizare cu pivotare total, urmat de o a doua faz de rezolvare propriuzis a unui sistem de tipul (2.20). n final, matricea invers A 1 este egal cu
matricea ale crei coloane sunt vectorii rezultai la faza a doua menionat i
anume: A 1 = X = [x 1 x k x n ] . Detaliile acestei proceduri sunt
urmtoarele, n funcie de tipul de triangularizare a matricei de inversat A caee
este folosit:

triangularizare simpl

1. descompunere L-U (relaia (2.13));


2. L y k = e k , e k = [0 0 1 0 0] T , unde 1 apare n poziia k;

U x k = y k , k = 1,..., n
triangularizare cu pivotare parial

1. descompunere L-U (relaia (2.15));


2. c = P e k , e k = [0 0 1 0 0] T , unde 1 apare n poziia k;
L' y k = c

U x k = y k , k = 1,..., n
triangularizare cu pivotare total

1. descompunere L-U (relaia (2.17));


2. c = P e k , e k = [0 0 1 0 0] T , unde 1 apare n poziia k;
L' y k = c

U zk = yk
x k = S z k , k = 1,..., n .

56

2.

Sisteme determinate de ecuaii algebrice liniare

Aceast procedur de determinare a inversei unei matrice necesit un numr


de operaii n virgul mobil de ordinul lui (n 3 / 3) + n n 2 , n cazul utilizrii
triangularizrii simple. Concluzia care se poate desprinde este aceea c
inversarea unei matrice necesit un numr mare de operaii n virgul mobil.
Ca urmare, n practic, nu se recomand rezolvarea sistemelor prin metoda
bazat
pe
calculul
explicit
al
inversei
matricei
sistemului:
1
A x = b x = A b , deoarece exist posibilitatea afectrii rezultatului
obinut de ctre erorile de rotunjire acumulate.
2.5.4 Rezolvarea sistemelor n corpul numerelor complexe

Fie sistemul de ecuaii:


A z = b, A C nn , b C n1 .

(2.24)

n principiu, se poate aplica metodologia de rezolvare a sistemelor de ecuaii


avnd matricea sistemului i termenul liber cu elemente numere reale, dac
operaiile cu numere complexe sunt definite (implementate) n limbajul de
programare folosit. Altfel, trebuie scrise funcii sau rutine, stabile din punct de
vedere numeric, care s implementeze operaiile cu numere complexe.
De regul, problema rezolvrii unui sistem complex de ordinul n se
transform n problema rezolvrii unui sistem real de dimensiune 2 n . Astfel,
se pot rescrie matricele implicate n (2.24) sub forma urmtoare, unde i 2 = 1 :
A = A 1 + i A 2 , A 1 , A 2 n n ,
b = b1 + i b 2 , b1 , b 2 n1 ,

(2.25)

z = z1 + i z 2 , z1 , z 2 n1 .
nlocuind relaiile (2.25) n (2.24) se obine:
(A 1 + i A 2 ) (z 1 + i z 2 ) = b1 + i b 2 .
Efectund calculele se obine:
(A 1 z1 A 2 z 2 ) + i (A 2 z 1 + A 1 z 2 ) = b1 + i b 2 .

(2.26)

Din relaia (2.26), identificnd partea real i partea imaginar pentru cei doi
membri ai egalitii, se obine:
A 1 z 1 A 2 z 2 = b1 ,
A 2 z1 + A1 z 2 = b 2 ,

ceea ce se poate scrie sub form matricial astfel:

2.6

Metode iterative

57

A 2 z1 b1
= .

A 1 z 2 b 2

A1

A 2

(2.27)

A2
z1
, cu x vectorul i cu


z 2
A 1

A1
Notnd cu C matricea de blocuri
A 2
b1

d vectorul , relaia (2.27) se reduce la:
b 2
Cx =d.

(2.28)

Rezolvnd sistemul (2.28), se obine o soluie care se poate rescrie sub forma:
x = [x 1 x n

x n +1 x 2n ] T ,

iar soluia sistemului complex este:


z = [ x 1 x n ] T + i [ x n +1 x 2n ] T .

2.6

Metode iterative

2.6.1 Principiul i convergena metodelor iterative

Fie sistemul de ecuaii algebrice liniare:


A x = b, A nn , b n1 ,

(2.29)

n care A este o matrice nesingular.


Metodele iterative se bazeaz pe construcia unui ir de aproximaii ale
[k]
soluiei, x , k = 0,1,... , convergent la soluia adevrat:
lim x

[k]

= x , x

[ 0]

Pentru construcia acestui ir, se consider rescrierea sau descompunerea


matricei A a sistemului sub forma: A = N P , n care N este o matrice
nesingular. De regul, se alege matricea N cu o form simpl. Ecuaia (2.29)
devine:
( N P) x = b N x = P x + b .

(2.30)

58

2.

Sisteme determinate de ecuaii algebrice liniare

irul de aproximaii se construiete cu ajutorul relaiei:


Nx
n care estimaia iniial x

[ k +1]

[ 0]

=Px

[k]

+ b, k = 0,1,...

(2.31)

este dat (cunoscut). n particular, x

[0]

= 0n .

Din relaia (2.31) rezult:


x

[ k +1]

= N 1 P x

[k]

+ N 1 b, k = 0,1,... .

(2.32)

Se face urmtoarea notaie:


G = N 1 P, G nn .
Matricea G are valori proprii n general complexe, i (G ) C , care formeaz
mulimea numit spectrul matricei G.

Definiie:
Se numete raz spectral a matricei G mrimea:

(G ) = max{| i (G ) |} .
1i n

n cele ce urmeaz, se enun i demonstreaz urmtorul rezultat.

Propoziie:
Condiia necesar i suficient ca irul de soluii aproximative, defint prin
relaia (2.32), s fie convergent ctre soluia adevrat a sistemului de ecuaii
(2.29) este ca matricea G = N 1 P s aib toate valorile proprii n modul
subunitare sau, altfel spus, raza spectral a matricei G s fie subunitar.

Demonstraia pornete de la expresia erorii la iteraia [k], care este:


[k]
[k]
e = x x , k = 0,1,... . Eroarea la pasul [ k + 1 ] este:
e

[ k +1]

=xx

[ k +1]

=x Gx

[k ]

N 1 b .

(2.33)

nlocuind n relaia (2.33) expresia vectorului b din relaia (2.30), se obine:


e

[ k +1]

=x Gx

[k]

N 1 ( N x P x ) = G ( x x

[k]

) =G e

[k ]

. (2.34)

Exprimnd eroarea la pasul [k] n funcie de eroarea la pasul [k-1], prin


folosirea repetat a relaiei (2.34), se obine urmtorul rezultat:
e
Cum e

[ 0]

[ k +1]

=Ge

[k ]

= G2 e

[ k 1]

= = G k +1 e

[0]

0 n n general, atunci condiia referitoare la limita irului de

aproximaii, prezentat la nceput, este ndeplinit dac i numai dac

2.6

Metode iterative

59

lim G k = 0 nn . Aceast condiie este satisfcut dac matricea G are valorile

proprii subunitare n modul, altfel spus, dac raz spectral a matricei G este
subunitar.

Observaii:
1. Cu ct raza spectral subunitar a matricei G este mai mic, cu att viteza de
convergen a irului de soluii aproximative (2.32) va fi mai mare.
2. n practic, de multe ori, condiia necesar i suficient prezentat anterior se
verific (nlocuiete) printr-o condiie suficient, dac este posibil, i anume:
dac || G || < 1 atunci (G ) < 1 .
De regul se folosete norma matricial infinit, rezultnd condiia:
n

|| G || = max{ | g i , j |} < 1 .
1 i n j=1

Dac aceast ultim condiie este ndeplinit, atunci metoda iterativ este
sigur convergent i nu mai este necesar s se calculeze valorile proprii ale
matricei G de caracterizare a convergenei. Dac, ns, condiia suficient nu
este satisfcut, atunci nu se poate afirma nimic n ceea ce privete
convergena metodei i se recurge la calculul valorilor proprii ale matricei G,
n scopul verificrii condiiei necesare i suficiente.
n continuare se consider urmtoarea descompunere a matrcii A a
sistemului (2.29):
A=L+ D+ U,
n care L este o matrice inferior triunghiular cu diagonala principal nul avnd
elementele de sub diagonala principal egale cu elementele matricei A de
acelai rang, D este o matrice diagonal avnd elementele de pe diagonala
principal egale cu elementele de pe diaonala principal a matricei A, iar U este
o matrice superior triunghiular avnd elementele de deasupra diagonalei
principale egale cu elementele matricei A de acelai rang.
Se mai face presupunerea c elementele diagonalei principale a matricei A
sunt nenule. n caz contrar, se pot face permutri de linii i/sau coloane astfel
nct s fie ndeplinit i aceast condiie.
2.6.2 Metoda Jacobi i metoda Gauss-Seidel

n cazul metodei Jacobi, matricele N i P sunt:


N = D, P = ( L + U ) .

(2.35)

60

2.

Sisteme determinate de ecuaii algebrice liniare

Din relaia (2.31), folosind relaia (2.35), rezult:


Dx

[ k +1]

= ( L + U ) x

[k ]

+ b, k = 0,1,... .

(2.36)

a i ,i x [i k +1] = a i , j x [jk ] + b i , i = 1,..., n .

(2.37)

Relaia (2.36) se poate scrie pe linii astfel:


n

j=1
j i

Dac elementul a i ,i 0 , atunci relaia (2.37) se poate rescrie sub forma:


n

x [i k +1] = ( b i / a i ,i ) (a i , j / a i ,i ) x [jk ] , i = 1,..., n .

(2.38)

j=1
j i

Matricea G corespunztoare metodei Jacobi este:


G Jacobi = N 1 P = D 1 (L + U) = [g i , j ]1i , j n ,
i= j
0,
n care g i , j =
.
a i , j / a i ,i , i j
Condiia suficient care se impune pentru ca metoda Jacobi s fie convergent
este:
n

max{ | g i , j |} = max{ | a i , j / a i ,i |} < 1 .


1i n j=1

1i n j=1
j i

(2.39)

n relaia (2.39) fiind implicate doar numere pozitive, dac maximul lor este mai
mic dect 1, atunci toate sunt subunitare:
n

| a i , j / a i ,i | < 1
j=1
j i

| a i ,i |> | a i , j | .

(2.40)

j=1
j i

O matrice care satisface relaia (2.40) se numete matrice diagonal dominant


pe linii.

Propoziie:
Dac matricea A este diagonal dominant pe linii, atunci metoda Jacobi
este convergent, oricare ar fi estimaia iniial a soluiei sistemului de ecuaii
(2.29).

Observaie:

2.6

Metode iterative

61

Condiia (2.40) nseamn c i = 1,..., n , j = 1,..., n , i j , | a i , j / a i ,i |< 1 .


Revenind la relaia (2.38), se observ c a i , j / a i ,i sunt coeficienii care
multiplic estimaiile anterioare, deci erorile ce afecteaz aceste estimaii sunt
micorate pe msur ce procesul iterativ avanseaz. Ca urmare, dac matricea A
este diagonal dominant pe linii, atunci procedura este sigur stabil numeric.

Metoda Gauss-Seidel pornete de la descompunerea A = N P n care:


N = L + D, P = U .
Relaia (2.31) se poate rescrie, n acest caz, sub forma:
( L + D) x

[ k +1]

= U x

[k ]

+ b, k = 0,1,... .

(2.41)

Relaia (2.41) se poate scrie, pe linii, sub forma:


i

j=1

j=i +1

a i, j x [jk +1] = a i, j x [jk ] + b i ,

i = 1,..., n ,

din care rezult, dac a i ,i 0 :


i 1

x [i k +1] = ( b i / a i ,i ) (a i , j / a i ,i ) x [jk +1] +


j=1

(a i, j / a i,i ) x [jk ] ,

i = 1,..., n .

j=i +1

Se poate demonstra c, i n cazul metodei Gauss-Seidel, dac matricea A


este diagonal dominant pe linii, atunci metoda este convergent.
n general, se demonstreaz c ntre raza spectral subunitar a matricei
G Jacobi = D 1 (L + U)
i raza spectral subunitar a matricei
G Gauss Seidel = ( L + D) 1 U exist relaia:
2 (G Jacobi ) (G Gauss Seidel ) < 1 .
Rezult, n general, c dac metoda Gauss-Seidel este convergent, atunci
viteza sa de convergen este mai mare dect cea corespunztoare metodei
Jacobi.
Exist situaii n care, pentru ambele metode, razele spectrale sunt
subunitare, dar apropiate de valoarea 1. n acest caz, convergena ambelor
metode este extrem de lent, recomandndu-se ca n descompunerea matricei A
s se utilizeze unul sau mai muli parametri de accelerare a convergenei.
2.6.3 Metoda relaxrilor succesive

Se pornete de la descompunerea matricei A corespunztoare metodei


Gauss-Seidel. Relaia (2.41) se poate scrie sub forma:

62

2.

Sisteme determinate de ecuaii algebrice liniare

[ k +1]

= ( L + D ) 1 U x

[k]

+ (L + D) 1 b, k = 0,1,... .

n acest relaie, n membrul drept se adun i se scade cantitatea x


innd cont de faptul c I n = (L + D)

[ k +1]

=x

[k ]

=x

( L + D)

(L + D) rezult:

[U x

[k ]

[k ]

[k ]

+ ( L + D) x

[k ]

b]

( L + D) [ A x

[k ]

b]

Se face urmtoarea notaie:


r

[k ]

=bAx

[k]

[k ]

n care r se numete reziduu corespunztor iteraiei [k].


n acest caz, se poate scrie:
x

[ k +1]

=x

[k ]

+ (L + D) 1 r

[k]

(2.42)

Se transform relaia (2.42), nmulind termenul care conine reziduul cu un


parametru de accelerare a convergenei:
x

[ k +1]

=x

[k ]

+ (L + D) 1 r

[k]

(2.43)

Al doilea termen din suma exprimat n relaia (2.43) poate fi interpretat ca


un factor de corecie pentru estimaia de la iteraia [k]. Astfel, soluia de la
iteraia [ k + 1 ] se obine prin corectarea soluiei de la iteraia anterioar [k],
[k ]
corecia realizndu-se n funcie de reziduul r .
Relaia (2.43) se poate rescrie sub forma:
x

[ k +1]

=x

[k ]

(L + D) 1 (L + D) x

+ [(L + D) 1 U x

[k ]

[k ]

+ (L + D) 1 b]

(2.44)

Paranteza dreptunghiular pune n eviden aproximaia la iteraia [ k + 1 ],


obinut prin metoda Gauss-Seidel. Relaia (2.44) devine:
x

[ k +1]

= (1 ) x

[k ]

[ k +1]

+ x Gauss Seidel .

(2.45)

Se demonstreaz c irul de aproximaii obinut cu ajutorul relaiei de recuren


(2.45) este convergent pentru (0,2) . Dac (0,1) metoda se numete a
subrelaxrilor succesive, iar dac (1,2) ea se numete a suprarelaxrilor
succesive. Dac = 1 , se obine metoda Gauss-Seidel.
n general, dac metoda este convergent, atunci numrul de iteraii ca
funcie de parametrul atinge un punct de minim corespunztor unei valori
optim (a se vedea Figura 2.3). Se poate arta c optim i optim au aproximativ
valorile:

2.6

Metode iterative

optim

63

2
1 + 1 2Jacobi

; optim

Jacobi

1 + 1 2Jacobi

Gauss Seidel

2
optim

n practic, la nivelul fiecrei componente, se pot folosi relaiile de calcul


(2.45):
i 1

x [i k +1] = (1 ) x [i k ] + [(b i a i, j x [jk +1]


j=1

a i, j x [jk ] ) / a i,i ] .

j=i +1

Relaiile prezentate corespund unei descompuneri a matricei A care depinde


de parametrul , i anume:
A x = b;
A x = b A = N() P()
n care N() = L + D i P() = (1 ) D U .
numar iteratii

numar minim
iteratii

optim

Fig. 2.3 Metoda suprarelaxrii succesive

***
Algoritmii prezentai lucreaz pn cnd este ndeplinit o condiie de tipul:
[s ]
[ s 1]
|| x x
|| x .
Se folosete, de regul, norma infinit i atunci condiia de stop este:
max{| x [is ] x [is 1] |} x .
1i n

[ k +1]

[k]

Notnd x n = x
i x v = x , atunci urmtorul algoritm descrie
procedura general aplicat n cazul unei metode iterative:
[0]
citete x , x
[ 0]

atribuie x n x
atribuie vn 1

64

2.

Sisteme determinate de ecuaii algebrice liniare

atribuie iter 0
ct timp ( vn > x ) execut

atribuie x v x n
atribuie iter iter + 1
* calculeaz x n
* calculeaz vn = max{| x n (i) x v (i) |}
1i n

n final, se obin urmtoarele: numrul de iteraii (iter) i vectorul x n care


aproximeaz soluia sistemului cu precizia impus x . n descrierea anterioar,
[ 0]

x reprezint estimaia iniial a soluiei, iar vn este notaia pentru valoarea


normei vectoriale infinit.

2.7

Caracterizarea problemei rezolvrii unui sistem de


ecuaii algebrice liniare. Precizia soluiei calculate

Precizia soluiei calculate a problemei:


A x = b, A nn , b n1
depinde critic de buna sa condiionare numeric. Aceast proprietate este
caracterizat de numrul de condiie al matricei A a sistemului. Aceste concepte
fac obiectul acestui subcapitol.
2.7.1 Numrul de condiie al unei matrice

Definiie:
Oricare ar fi matricea A nn , se definete numrul su de condiie n
raport cu norma vectorial , notat k ( A) , ca fiind:
k ( A) = M / m ,
M = max{|| A x || / || x || }, m = min{|| A x || / || x || } ,
x 0n

x 0n

unde || . || este una din normele vectoriale uzuale (a se vedea Anexa A).

Cum n general M m , rezult c i k (A) 1 . Se poate demonstra c


1 / m =|| A 1 || . Astfel, se poate defini numrul de condiie n raport cu
operaia de inversare matricial ca fiind:
k (A) =|| A || || A 1 || .

2.7

Caracterizarea problemei rezolvrii unui sistem de ecuaii algebrice


liniare. Precizia soluiei calculate

65

Numrul de condiie depinde n general de norma matricial folosit. ntre


diferitele numere de condiie corespunztoare aceleiai matrice exist relaii
care reflect relaiile dintre normele matriciale echivalente utilizate. Astfel, dac
i sunt dou norme matriciale (vectoriale), exist constantele c1 , c 2
astfel nct s aib loc relaia:
c1 k ( A ) k ( A ) c 2 k ( A ) .
n multe abordri, este folosit norma infinit pentru a calcula numrul de
condiie al unei matrice:
k (A) =|| A || || A 1 || .
Cum calculul normei infinit este imediat (a se vedea Anexa A), problema
este de a determina norma infinit pentru invers. O soluie o reprezint calculul
inversei matricei A prin triangularizare i apoi calculul normei infinit. n acest
fel, se obine o aproximare a numrului de condiie al matricei. Dezavantajul
acestei modaliti este c este necesar un volum mare de calcule.
Discuia asupra numrului de condiie al unei matrice este reluat n
capitolul 5 destinat studiului valorilor singulare ale unei matrice. Se prezint
acolo modalitatea uzual folosit pentru calculul eficient al numrului de
condiie.
Exemplul 2.4:

dac A = I n (matrice unitate de ordinul n), atunci k (A) = 1 ;


dac A = Pk (matrice elementar de permutare de linii), atunci k (A) = 1 ;
dac A = S k (matrice elementar de permutare de coloane), atunci
k (A) = 1 ;
A = diag{d 11 ,..., d ii ,..., d nn }
dac
(matrice
diagonal),
atunci
k ( A) = max{| d ii |} / min{| d ii |} .
1i n

1 i n

n funcie de valorile numrului de condiie, matricea A poate fi caracterizat


dup cum urmeaz:
a) dac numrul de condiie este egal cu 1, matricea A se spune c este foarte
bine condiionat;
b) dac numrul de condiie este mic, apropiat de valoarea 1, atunci matricea
A este bine condiionat;
c) dac numrul de condiie este mare, atunci matricea A este prost
condiionat;
d) dac numrul de condiie este foarte mare, atunci matricea A este aproape
singular;
e) dac numrul de condiie este infinit, atunci matricea A este singular.

66

2.

Sisteme determinate de ecuaii algebrice liniare

Se mai utilizeaz i inversul numrului de condiie:


rk (A) = 1 / k (A) .
n funcie de valorile pe care le poate lua acesta, matricea A poate fi
caracterizat dup cum urmeaz, unde m este notaia pentru epsilonul-main:
a) matrice foarte bine condiionat, dac rk ( A) = 1 ;
b) matrice bine condiionat, dac rk ( A) < 1 , dar apropiat de valoarea 1:
m << rk (A) < 1 ;
c) matrice prost condiionat (aproape singular) dac rk (A) m ;
d) matrice singular (foarte prost condiionat) dac rk (A) = 0 .
Conform acestor caracterizri se poate afirma, n general, c numrul de
condiie al unei matrice reprezint inversul distanei dintre matricea A i
mulimea matricelor singulare.
Exemplul 2.5:

De regul se prefer caracterizarea singularitii pe baza numrului de


condiie sau a inversului su, dect folosirea valorii determinantului. Fie
matricea:
0.1 0

.
D =

0 0.1 100100
Atunci det(D) = 10 100 0 n simpl precizie, dei k (D) = 1 , ceea ce arat c
matricea D este o matrice foarte bine condiionat.
Exemplul 2.6:

n general, nu exist o corelaie ntre numrul de condiie i valoarea


determinantului unei matrice. Fie matricea:
1 1 1
1, i < j
0

Bn =
= [ b i , j ]1i , j n cu b i , j = 1, i = j , i, j = 1,..., n .

1
0, i > j

0
0
1

nn
Atunci det(B n ) = 1 i k (B n ) = n 2 n . Pentru n avnd valori mari, matricea
B n este prost condiionat. Proasta condiionare a unei matrice se poate reflecta
n rezultatele triangularizrii sale. Astfel, dac n urma triangularizrii unei
matrice, matricea U superior triunghiular are pe diagonala principal elemente
nule sau foarte mici, atunci sigur matricea iniial este prost condiionat.
Reciproca, n general, nu este valabil: matricea poate fi prost condiionat, ns

2.7

Caracterizarea problemei rezolvrii unui sistem de ecuaii algebrice


liniare. Precizia soluiei calculate

67

datorit erorilor de calcul, elementele de pe diagonala matricei U pot s nu fie


neaprat foarte mici.
2.7.2 Precizia soluiei calculate

Fie sistemul de ecuaii:


A x = b, A nn , b n1 .
(2.46)
Caracterizarea (condiionarea) acestei probleme este dat de numrul de
condiie al matricei A, aa cum a fost el definit la nceputul acestui capitol. Pot
exista dou situaii generale prezentate n continuare:
I.
Soluia este calculat fr erori (exact), dar pot exista erori n matricea
A i termenul liber b . Se disting urmtoarele dou subcazuri, I.1 i I.2,
prezentate n continuare.
Se presupune c termenul liber al sistemului (2.46) este uor perturbat,
~
lucrndu-se cu vectorul b n loc de vectorul b . De fapt, se rezolv
(exact) problema:
~
A~
x=b.
Dac ~
x este soluia exact a acestei noi probleme, atunci se demonstreaz c
eroarea relativ satisface la relaia:
~
~
x =|| x ~
x || / || x || k (A) || b b || / || b || = k (A) b .
I.1

Rezult, aadar, c eroarea relativ n termenul liber este amplificat n soluia


calculat de k ( A) ori, n absena erorilor de rotunjire.
Exemplul 2.7:

Fie sistemul (2.46) cu urmtoarele matrice:


4.1 2.8
4.1 ~ 4.11
A=
, b = , b =

.
9.7
9.70
9.7 6.6
1
Soluia exact a sistemului A x = b este x = . Soluia exact a sistemului
0
0.34
~
A~
x = b este ~
x=
x.
0.97
~
Realizeaznd urmtoarele notaii: b = b b , x = x ~
x , rezult pentru acest
exemplu:
k 1 ( A) (|| x ||1 / || x ||1 ) /(|| b ||1 / || b ||1 ) = 2294.4 ,

68

2.

Sisteme determinate de ecuaii algebrice liniare

deci matricea A este prost condiionat.


I.2

De aceast dat, se consider matricea sistemului ca fiind afectat de


perturbaii:
~
A = A + E, || E || <<|| A || .
De fapt, se rezolv exact problema:
~
A~
x = b.
(2.47)

x este soluia exact a ecuaiei (2.47), atunci se demonstreaz c eroarea


Dac ~
relativ satisface la relaia:
x k (A) (|| E || / || A || ) = k (A) A .
Rezult faptul c perturbaiile n matricea sistemului, n ipoteza absenei erorilor
de rotunjire la calculul soluiei, se regsesc n soluia calculat amplificate de
k (A) ori.
II.

Datele iniiale ale problemei (2.46), A i b , sunt exacte, dar procedura


de calcul a soluiei este afectat de eroare (erori de rotunjire). n acest
caz se disting dou situaii, II.1 i II.2, prezentate n cele ce urmeaz.

II.1 Apar erori datorate decompunerii gaussiene.


Se obin urmtoarele rezultate:
A = L U , n cazul triangularizrii simple;
P A = L' U , n cazul triangularizrii cu pivotare parial;
P A S = L' U , n cazul triangularizrii cu pivotare total.
Plecnd de la matricea A, creia i se aplic o procedur de triangularizare, se
obin matricele L ( L' ), U, P, (S). Dac se efectueaz operaia invers, se obine:
~
L U = A , corespunztor triangularizrii simple;
~
P 1 L' U = A , corespunztor triangularizrii cu pivotare parial;
~
P 1 L' U S 1 = A , corespunztor triangularizrii cu pivotare total,
~
~
unde A este matricea iniial plus o matrice de eroare: A = A + E c .
n continuare, discuia se refer la descompunerea cu pivotare parial i la
cea cu pivotare total, deoarece procedurile corespunztoare lor se bazeaz pe
matrice stabilizate, iar algoritmii sunt stabili din punct de vedere numeric.
Avnd in vedere volumul de calcule implicat (numrul de operaii n virgul
mobil), se poate afirma c dac ordinul n al sistemului este mic, atunci:
|| E c || <<|| A || , iar dac ordinul n este mare, atunci: || E c || <|| A || . Aadar,
norma matricei de eroare E c se poate apropia de cea a matricei A a sistemului.

2.7

Caracterizarea problemei rezolvrii unui sistem de ecuaii algebrice


liniare. Precizia soluiei calculate

69

Ca urmare, o posibilitate de a caracteriza precizia descompunerii este de a


calcula raportul:
~
|| E c || / || A || =|| A A || / || A || = A ,c .
De regul se folosete norma 1. n general, se demonstreaz c:
x k ( A ) A ,c .
Dac A ,c 10 d , d > 0 , atunci se poate afirma c triangularizarea matricei
A se face cu d cifre zecimale exacte. Rezult c eroarea n soluia calculat
satisface la relaia:
x k (A ) A ,c 10 p d = 10 ( d p ) .

O matrice foarte bine condiionat este caracterizat de p = 0 . Dac matricea


este bine condiionat, atunci p = 1 2 , iar dac ea este prost condiionat,
atunci p > 2 . Se desprinde urmtoarea concluzie: dac matricea A este prost
condiionat, atunci se pierd p cifre ca precizie n soluia calculat.
Dac, ns, matricea A este diagonal dominant pe linii sau coloane, atunci
ea este bine condiionat. Matricea A poate fi adus la o astfel de form nainte
de a aplica procedura de descompunere, dac este posibil, prin permutri
adecvate de linii i/sau coloane.
Erorile afecteaz procedura de rezolvare prpriu-zis a sistemului (fazele
de substituie nainte i napoi).
x este: r = b A ~
x.
n acest caz, reziduul asociat soluiei calculate ~
Se demonstreaz c, n aceast situaie, eroarea relativ n soluia calculat
satisface la relaia:

II.2

x k (A ) (|| r || / || b || ) .
n concluzie, un reziduu mic n norm fa de norma termenului liber nu
garanteaz o precizie bun a soluiei calculate, dac matricea sistemului este
prost condiionat.
Exemplul 2.8:

Fie sistemul A x = b cu:


2.001
1 1.001
A=
, b=
.

1
2
1
Soluia exact a acestui sistem este x = [1 1] T .
n urma calculelor rezult: ~
x = [ 2 0] T x ,
Aceasta se datoreaz faptului c:

r = b A x = [0.001 0] T .

70

2.

Sisteme determinate de ecuaii algebrice liniare

k 1 ( A) (|| x ~
x ||1 / || x ||1 ) /(|| r ||1 / || b ||1 ) 10 3 ,
deci matricea A este prost condiionat.
O concluzie general care se poate desprinde este urmtoarea: buna
condiionare a problemei de calcul ( k ( A) = 1 10 100 ), mpreun cu
stabilitatea numeric a algoritmului de triangularizare ( || E c || <<|| A || ),
garanteaz faptul c eroarea relativ a soluiei calculate fa de soluia exact
este de acelai ordin de mrime cu erorile relative n datele iniiale ale
problemei (matricea A i termenul liber b ).

O procedur folosit pentru estimarea numrului de cifre exacte ale soluiei


calculate este urmtoarea:
triangularizarea matricei A;
x folosind rezultatele triangularizrii matricei A:
determinarea soluiei ~
calculul reziduului asociat r = b A ~
x;
rezolvarea sistemului A e = r , folosind rezultatele procedurii de
triangularizare;
dac || e ||1 0 , atunci || e ||1 / || ~
x ||1 10 d .
Numrul de cifre exacte ale soluiei calculate este:
d [ lg(|| e || / || ~
x || )] ,
1

unde lg(.) semnific funcia logaritm zecimal, iar [.] semnific funcia parte
ntreag.
O procedur de mbuntire (rafinare) a soluiei calculate este urmtoarea:
1. rezolvare sistem A x = b folosind descompunerea L-U a matricei A i
determinarea soluiei ~
x;
x;
2. calcul reziduu asociat: r = b A ~
3. rezolvare sistem A e = r folosind rezultatele descompunerii L-U a
matricei A i determinarea lui e ;
~ ~
4. rafinarea soluiei: ~
x = x + e;
~
~
x ||1 || ~
x ||1 atunci ~
x=~
x i reluare de la pasul 2, altfel x = ~
x.
5. dac || ~
6. stop
mbuntirea soluiei se face ntr-un numr maxim de iteraii notat ITMAX.
Dac dup ITMAX iteraii, testul de la pasul 5 continu s fie satisfcut (i se
reia de la pasul 2), acesta este un semn c matricea A este prost condiionat
deoarece:

2.8

Exerciii propuse

71

|| e ||1 / || ~
x ||1 k 1 (A) (|| r ||1 / || b ||1 ) .
Astfel, dac numrul de condiie k 1 (A) este mare, atunci i raportul
|| e ||1 / || ~
x ||1 este mare i, ca urmare, valoarea || e ||1 nu se va micora dac
matricea A este prost condiionat.

2.8

Exerciii propuse

E2.1 S se realizeze, n mediul de programare MATLAB, un program pentru


rezolvarea unui sistem de n ecuaii liniare cu n necunoscute, prin metoda
direct folosind triangularizarea matricei sistemului cu pivotare total.
Programul va compara soluia gsit cu cea furnizat de mediul
MATLAB.
n realizarea programului, se vor parcurge urmtoarele etape descrise
parial n limbajul pseudocod.
1. Introducere parametru de control al execuiei procedurii de
triangularizare, n variabila EPS.
2. Introducere ordin sistem, n variabila n, n 2 .
3. Alocare spaiu de memorie pentru matricea sistemului, n variabila
a, prin iniializarea acesteia cu o matrice nul de dimensiune n.
Introducerea elementelor matricei sistemului se face pe linii (a se
vedea observaia 2 care urmeaz). Salvarea valorilor introduse
pentru matricea a, n matricea de lucru aa:
atribuie aa a
Reluare introducere, n caz de eroare.
4. Alocare spaiu de memorie pentru termenul liber al sistemului, n
variabila b, prin iniializarea acesteia cu un vector coloan nul, cu n
componente. Introducerea elementelor termenului liber se
realizeaz pe linii. Salvarea valorilor din vectorul b, n vectorul de
lucru bb:
atribuie bb b
Reluare introducere, n caz de eroare.
5. Faza I-a: eliminare nainte cu pivotare total:
pentru i = 1,n execut

72

2.

Sisteme determinate de ecuaii algebrice liniare

atribuie iord(i) i

* pivotare total:
pentru k = 1,n-1 execut
atribuie [mc,imc] max ( abs ( a(k:n,k:n) ) )
atribuie [ml,jk] max ( mc )
atribuie ik imc ( jk )
atribuie ik ik + (k-1)
atribuie jk jk + (k-1)
dac ( ik ~= k ) atunci
atribuie wmx zeros (1,n)
atribuie wmx a(k,:)
atribuie a(k,:) a(ik,:)
atribuie a(ik,:) wmx
atribuie t b(k)
atribuie b(k) b(ik)
atribuie b(ik) t

dac ( jk ~= k ) atunci
atribuie zmx zeros (n,1)
atribuie zmx a(:,k)
atribuie a(:,k) a(:,jk)
atribuie a(:,jk) zmx
atribuie it iord(k)
atribuie iord(k) iord(jk)
atribuie iord(jk) it

* triangularizare:
dac ( abs ( a(k,k) ) > EPS ) atunci
atribuie a(k+1:n,k) a(k+1:n,k) / a(k,k)
atribuie a(k+1:n,k+1:n) a(k+1:n,k+1:n)

a(k+1:n,k) * a(k,k+1:n)
atribuie b(k+1:n) b(k+1:n) a(k+1:n,k) * b(k)
atribuie a(k+1:n,k) zeros (n-k,1)
altfel
scrie pivot nul sau foarte mic
scrie STOP: algoritm
* STOP program (funcia MATLAB return)

2.8

Exerciii propuse

73

scrie k = , k
scrie a = , a
scrie b = , b

6. Faza a-II-a: calcul soluie sistem:


* substituie napoi:
pentru k = 1,n execut
dac ( abs ( a(i,i) ) < EPS ) atunci
scrie matrice prost condiionat

atribuie b(n) b(n) / a(n,n)


pentru i = n-1,(pas = -1),1 execut
atribuie sum a(i,i+1:n) * b(i+1:n)
atribuie b(i) ( b(i) sum ) / a(i,i)

* ordonare soluie:
atribuie x zeros (n,1)
pentru i = 1,n execut
atribuie x ( iord(i) ) b(i)

7. Calcul soluie folosind funciile MATLAB, pentru comparaie:


atribuie x_bs aa \ bb
atribuie x_inv inv (aa) * bb
8. Afiare soluii x, x_bs, x_inv ( mod de afiare MATLAB dat de
funcia: format long e; ).
9. Calcul reziduuri asociate soluiilor calculate, precum i norme
euclideene:
atribuie r bb aa * x
atribuie nr norm (r,2)
atribuie r_bs bb aa * x_bs
atribuie nr_bs norm (r_bs,2)
atribuie r_inv bb aa * x_inv
atribuie nr_inv norm (r_inv,2)

74

2.

Sisteme determinate de ecuaii algebrice liniare

Afiare rezultate n, nr, r_bs, nr_bs, r_inv, nr_inv ( mod de afiare


MATLAB dat de funcia: format long e; ).
10. Reluare program, dac se dorete, cu alt termen liber (punctul 4).
Dac are loc reluarea, nainte de aceasta se reface matricea a,
utiliznd valorile salvate n matricea de lucru aa:
atribuie a aa
11. Reluare program, dac se dorete, cu alt sistem de acelai ordin n
(punctul 3).
12. Reluare program, dac se dorete, cu un sistem de alt ordin n
(punctul 2).
13. Reluare program, dac se dorete, cu alt parametru EPS (punctul 1).
Observaii:
1.) Descrierea anterioar a programului folosete urmtoarele funcii
MATLAB: max (determinare valoare maxim dintr-un tablou de
numere), zeros (iniializare tablou cu elemente nule), abs (calcul
valoare absolut), return (prsire comand structurat, de exemplu
ciclu cu contor), \ (mprire matricial la stnga, rezolvat prin
triangularizarea cu pivotare parial a matricei demprit), inv (calcul
invers matrice ptratic), norm (calcul norm vectorial/matricial).
2.) Se recomand urmtoarea modalitate general de introducere a unei
matrice, pe linii (n linii, m coloane), n variabila a:
* secven de comenzi MATLAB:
a = zeros (n,m);
for i = 1:n,
fprintf ( Linia %.0f : , i );
a(i,:) = input ( );
end;
* exemplu de introducere (n=m=3):
Linia 1:
[1 2 3]

<RETURN>

[4 5 6]

<RETURN>

[7 8 9]

<RETURN>

Linia 2:
Linia 3:

2.8

Exerciii propuse

75

n descrierea anterioar, s-au subliniat mesajele scrise de ctre program


iar <RETURN> semnific apsarea tastei respective.
3.) Programul se va rula pentru urmtoarele date de intrare, rezulatele
analizndu-se i comparndu-se:
EPS = 1.e-10
I.

n = 3;

II.

n = 3;

7 0
10
7

a = 3 2.099 6; b = 3.901 ;
5
6
1 5
3 2 100
105

a = 1 3 100; b = 102 ;
1 2 1
2
0.03 0.02 1.00
1.05

a = 0.01 0.03 1.00 ; b = 1.02


0.50 1.00 0.50
1.00
(acelai exemplu, cu scalare pe linii)

III.

IV.

n = 3;

1 2 3
5

a= 2
4
1; b = 7 ;
1 14 11
2

n = 4;

0
1
7
0 2
2

2 2
3
2
a=
; b= .
7
4 3 0
1

6
6 1 6 5

E2.2 S se realizeze, n mediul de programare MATLAB, un program pentru


rezolvarea unui sistem de n ecuaii liniare cu n necunoscute, prin metoda
iterativ Jacobi. Programul va compara soluia gsit cu cea furnizat de
mediul MATLAB, aplicnd o metod direct de rezolvare.
n realizarea programului, se vor parcurge urmtoarele etape descrise
parial n limbajul pseudocod.
1. Introducere parametru de control al execuiei procedurii iterative de
rezolvare, n variabila EPS. Introducere numr maxim de iteraii, n
variabila max_iter.
2. Introducere ordin sistem, n variabila n, n 2 .

76

2.

Sisteme determinate de ecuaii algebrice liniare

3. Alocare spaiu de memorie pentru matricea sistemului, n variabila


a, prin iniializarea acesteia cu o matrice nul de dimensiune n.
Introducerea elementelor matricei sistemului se face pe linii (a se
vedea observaia 2 de la exerciiul E2.1). Testarea elementelor de
pe diagonala matricei a:
pentru k = 1,n execut
dac ( abs ( a(i,i) ) < EPS ) atunci
scrie Element pe diagonal nul sau foarte mic
scrie Rearanjai i reintroducei matricea a

Reluare introducere, n caz de eroare.


4. Alocare spaiu de memorie pentru termenul liber al sistemului, n
variabila b, prin iniializarea acesteia cu un vector coloan nul, cu n
componente. Introducerea elementelor termenului liber se
realizeaz pe linii. Reluare introducere, n caz de eroare.
5. Alocare spaiu de memorie pentru aproximaia iniial a soluiei, n
variabila xn, prin iniializarea acesteia cu un vector coloan nul, cu
n componente. Introducerea elementelor vectorului xn se realizeaz
pe linii. Reluare introducere, n caz de eroare.
6. Studiu de convergen:
atribuie nn diag ( diag (a) )
atribuie p nn - a
atribuie g inv (nn) * p
atribuie valp eig (g)
atribuie ro max ( abs (valp) )
scrie => raz spectral matrice convergen, ro = , ro
dac ( ro < 1 ) atunci
scrie metoda converge
altfel
scrie metoda NU converge!

7. Calcul soluie iterativ:


atribuie vninf 1
atribuie iter 0
* comutare mod de afiare (limbaj MATLAB): format long e;

2.8

Exerciii propuse

77

ct timp ( (vninf > EPS) i (iter < max_iter) ) execut


atribuie iter iter + 1
atribuie xv zeros (n,1)
atribuie xv xn
* adaptare soluie metoda Jacobi:
pentru i = 1,n execut
atribuie sum 0
pentru j = 1,i-1 execut
atribuie sum sum + a(i,j) * xv(j)

pentru j = i+1,n execut
atribuie sum sum + a(i,j) * xv(j)

atribuie xn(i) ( b(i) - sum ) / a(i,i)

* sfrit adaptare soluie metoda Jacobi


atribuie vninf max ( abs (xn - xv) )
scrie * iter = , iter
scrie xn = , xn
scrie vninf = , vninf

8. Calcul soluie folosind o metod direct, n mediul MATLAB:


atribuie x a \ b
9. Afiare rezultate: iter, xn, x. Comutare mod de afiare (limbaj
MATLAB): format short;
10. Reluare program, dac se dorete, cu alt estimaie iniial a soluiei
(punctul 5).
11. Reluare program, dac se dorete, cu alt termen liber al sistemului
(punctul 4).
12. Reluare program, dac se dorete, cu alt sistem de acelai ordin
(punctul 3).
13. Reluare program, dac se dorete, cu alt sistem de alt ordin n
(punctul 2).
14. Reluare program, dac se dorete, cu ali parametri EPS i max_iter
(punctul 1).
Observaii:

78

2.

Sisteme determinate de ecuaii algebrice liniare

1.) Descrierea anterioar a programului folosete urmtoarele funcii


MATLAB: abs (calcul valoare absolut), diag (producerea unei
matrice diagonale; extragerea diagonalei principale a unei matrice),
inv (calcul invers matrice ptratic), eig (calcul valori proprii ale
unei matrice), max (determinare valoare maxim dintr-un tablou de
numere), zeros (iniializare tablou cu elemente nule), \ (mprire
matricial la stnga, rezolvat prin triangularizarea cu pivotare
parial a matricei demprit).
2.) Operatorul logic i este implementat n limbajul MATLAB prin
simbolul: &
3.) Programul se va rula pentru urmtoarele date de intrare, rezulatele
analizndu-se i comparndu-se:
EPS = 1.e-10; max_iter = 30
9
5 1 0

I. n = 3; a = 1 5 1; b = 4 ;
6
0 1 5

0
xn = 0 ;
0
2
xn = 2 ;
1

8 1 1
0
8

II. n = 3; a = 2 1 9; b = 12 ; xn = 0 ;
0
1 7 2
4
8
8 1 1
0

a = 2 9
1 ; b = 12 ; xn = 0 .
4
1 2 7
0

E2.3 S se realizeze, n mediul de programare MATLAB, un program pentru


rezolvarea unui sistem de n ecuaii liniare cu n necunoscute, prin metoda
iterativ Gauss-Seidel. Programul va compara soluia gsit cu cea
furnizat de mediul MATLAB, aplicnd o metod direct de rezolvare.
n realizarea programului, se vor parcurge exact aceleai etape descrise n
cadrul exerciiului E2.2. Deosebirile constau n modul de calcul al
matricelor nn i p, care definesc matricea de conveegen g (punctul 6),
precum i n modalitatea de adaptare a soluiei iterative (punctul 7) de la
exerciiul E2.2.

2.9

Probleme propuse

79

Matricele nn i p se calculeaz cu comenzile:


atribuie nn tril (a)
atribuie p nn - a
Poriunea din descrierea n limbaj pseudocod (punctul 7) de la exrciiul
E2.2:
* adaptare soluie metoda Jacobi:
....................................................................
* sfrit adaptare soluie metoda Jacobi
se nlocuiete cu urmtoarea secven de comenzi:

* adaptare soluie metoda Gauss-Seidel:


pentru i = 1,n execut
atribuie sum 0
pentru j = 1,i-1 execut
atribuie sum sum + a(i,j) * xn(j)

pentru j = i+1,n execut
atribuie sum sum + a(i,j) * xv(j)

atribuie xn(i) ( b(i) - sum ) / a(i,i)

* sfrit adaptare soluie metoda Gauss-Seidel

Observaii:
1.) Descrierea anterioar a programului folosete aceleai funcii
MATLAB ca la exerciiul E2.2. Singura deosebire este reprezentat
de nlocuirea funciei diag cu funcia tril (extragerea parii inferior
triunghiulare a unei matrice, inclusiv diagonala, restul de elemente
fiind completate cu zerouri).
2.) Programul se va rula pentru datele de intrare menionate la exerciiul
E2.2, rezulatele analizndu-se i comparndu-se cele dou metode
iterative, Jacobi i Gauss-Seidel.

2.9

Probleme propuse

P2.1. Se consider sistemul de ecuaii algebrice liniare:

80

2.

Sisteme determinate de ecuaii algebrice liniare

1 2 3 x1 5
2
4
1 x 2 = 7 , .

1 14 11 x 3
Folosind transformri elementare directe (fr pivotare), s se determine
pentru ce valoare a parametrului sistemul
(a) nu are soluii?
(b) are o infinitate de soluii?

P2.2. S se realizeze programul pentru rezolvarea unui sistem de ecuaii


algebrice liniare:
A X = B, A nn , B np ,
prin metoda direct bazat pe triangularizarea cu pivotare parial a
matricei sistemului.
Exemple numerice:
4
2
I. A =
0

1
1
2
II. A =
3

0 1
1 2
3
1

2
0

3
0
7
0

0
1
0 1

, B=
;
4 2 4
2

5
2 4 2

2 5 3
1 1

2 2
2 6 4
.
, B=
3 3
2 7 5

2 8 6
4 4

P2.3. S se realizeze programul pentru inversarea unei matrice ptratice real,


de ordinul n, prin metoda direct bazat pe triangularizarea cu pivotare
parial a matricei. Programul va verifica relaia: A A 1 = I n , unde A 1
este inversa calculat, iar I n este matricea unitate de ordinul n.
Exemple numerice:

I.

4
2
A=
0

0 1
1 2
3
1

2
0

3
0
;
2

II.

1
2
A=
3

2 5 3
2 6 4
.
2 7 5

2 8 6

2.9

Probleme propuse

81

P2.4. S se realizeze programul pentru inversarea unei matrice ptratice real,


de ordinul n, inferior triunghiular, exploatnd structura particular a
acesteia. Se va verifica rezultatul obinut efectnd produsele:
A A 1 , A 1 A .
Exemple numerice:
I.

6 0 0
A = 2 1 0 ;
1 7 1

6 0 0
A = 1 0 0 .
2 1 8

II.

P2.5. S se realizeze programul pentru calculul determinantului unei matrice


ptratice real, de ordin n, prin metoda direct bazat pe triangularizarea
cu pivotare total a matricei.

Exemple numerice:

I.

1
2
A=
5

2
2
6
4

4
2
;
8

3
2
7
5

II.

1
2
A=
3

4 2 3
2 0
4
.
0 1 2

2 2 3

P2.6. S se realizeze programul pentru rezolvarea, n corpul numerelor


complexe, a sistemului de ecuaii:
A z = b, A C nn , b C n1 ,
prin transformarea acestuia ntr-un sistem de ecuaii echivalent:
C x = d, C mm , d m1 , m = 2 n .
Sistemul transformat se rezolv utiliznd programul realizat pentru
rezolvarea problemei P2.2.
Exemple numerice:
8

I.

II.

1 + i 2i
2i
2
A=
, b=

, i = 1 ;
2
1
i

2
i

4 + 6i
3 2i 2 3i
2
A=
, b=
, i = 1 .

2
i
1
2
i
2
4
i

+
+

82

2.

Sisteme determinate de ecuaii algebrice liniare

P2.7. S se realizeze programul pentru aducerea unei matrice A mn , m > n ,


la forma superior triunghiular prin eliminare gaussian cu pivotare
parial (de linii).
Exemple numerice:

I.

1 6
2 7

A = 3 8 ;

4 9
5 10

II.

1 6
2 7

A = 3 8

4 9
5 10

11
12
13 .

14
15

P2.8. S se realizeze programul pentru estimarea numrului de condiie al unei


matrice ptratice real, de ordin n, folosind relaia de calcul:
k 1 ( A) =|| A ||1 || A 1 ||1 .
Inversa matricei A se calculeaz folosind programul realizat pentru
rezolvarea problemei P2.3. Norma 1 a matricelor implicate se va calcula
conform definiiei (Anexa A), prin program.
Exemple numerice:

I.

1
4
A=
2

1
2
;
0 1 2

4 2 3
2
2

3
0

II.

1
1 / 2
A=
1 / 3

1 / 4

1 / 2 1 / 3 1 / 4
1 / 3 1 / 4 1 / 5
.
1 / 4 1 / 5 1 / 6

1 / 5 1 / 6 1 / 7

P2.9. Se consider sistemul de ecuaii algebrice liniare:


4 3 2
A x = b, A = 2 3 4, a .
2 4 a
Care este cea mai mic valoare a parametrului a pentru care metoda
iterativ Jacobi va fi convergent?

P2.10. S se realizeze programul pentru rezolvarea unui sistem determinat de


ecuaii algebrice liniare, de ordinul n, prin metoda iterativ a
suprarelaxrii succesive de tip Gauss-Seidel. Considernd drept
parametru de accelerare a convergenei metodei iterative, [1,2] ,
programul va determina, crescnd succesiv parametrul cu pasul 0.1 ,
valoarea optim optim pentru care numrul de iteraii este minim.

2.9

Probleme propuse

83

Exemplu numeric:
2 1 1
5

A = 2 2 1, b = 9 .
1 1 3
6

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