Sunteți pe pagina 1din 13

Metode Numerice Curs 6

IV.3. Factorul de condiionare al unei matrice


Definiie 1. Factorul de condiionare al unei matrice ptrate AMn,n(R) se
definete prin
cond(A) = ||A|| ||A-1||
unde |||| este o norma operatorial a matricei A (de exemplu, ||||1 sau ||||). Prin
convenie cond(A) = dac A este singular.
Se poate observa c
1

Ax
Ax
cond(A) = max
min

x 0 x x 0 x
Factor de condiionare cond(A) mare nseamn A aproape singular.
Factorul de condiionare cond(A) are urmtoarele proprieti

cond(A) 1

cond(In) = 1 pentru orice n 1

cond(A) = cond(A) pentru orice scalar 0

cond(D) = max i min i

1in
1i n

pentru orice matrice diagonal

D=diag(1, 2, ..., n).


Calcul valorii exacte a factorului de condiionare al unei matrice A
presupune calculul ||A-1||. Cum numrul de operaii necesare pentru calculul normei
inversei lui A (||A-1||) este mai mare dect cel pentru rezolvarea unui sistem liniar
Ax = b, de obicei n practic se folosete un estimator pentru ||A-1||. Determinarea
unei estimaii pentru ||A-1|| pleac de la observaia c, dac Ax = y, atunci
x
||A-1||,
y

i mrginea superioar a mulimii


x

, Ax = y
y

este ||A-1|| i se atinge pentru o anumit valoare y.

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

Comanda MAPLE cond(A) din pachetul linalg calculeaz factorul de


condiionare matricei A.
Considerm sistemul
Ax = b, cu A nesingular

i notm cu x* soluia exact.


S presupunem c n locul matricei A este furnizat matricea A + E i ca
urmare se rezolv sistemul
(A+E) x = b,
a crui soluie o notm cu x . Atunci
(A+E) x = Ax*
E x = A(x*- x ).
A-1E x =x*- x
Atunci

||x*- x || = || A-1E x || || A-1|| || E|| || x || ,


de unde
x x *
E
cond(A)
.
x
A
Deci factor de condiionare mic i variaii relative mici ale coeficienilor
matricei implic variaii relative mici ale soluiei. Dac factorul de condiionare
cond(A) este mare, atunci rezolvarea sistemului Ax = b este o problem ru
condiionat.
S presupunem acum c n locul vectorului termenilor liberi b este dat
vectorul b i ca urmare se rezolv sistemul

A x = b ,
a crui soluie o notm cu x . Atunci
A x = b - b + b
A x = b - b + Ax*
A(x*- x ) = b- b
x*- x = A-1(b- b )
Atunci

Metode Numerice Curs 6

Ax *
||x*- x || = || A-1(b- b )|| || A-1|| || (b- b )|| =|| A-1|| || (b- b )||

b
-1

|| A ||

b b
b

||A|| ||x*||,

de unde
b b
x x *
cond(A)
.
x*
b

Deci factor de condiionare mic i variaii relative mici ale termenilor


liberi implic variaii relative mici ale soluiei.
Dac gradul de acuratee a datelor de intrare este compatibil cu precizia
mainii mach, atunci
x x *
cond(A)mach.
x*
n urma calculului soluiei sistemului Ax = b se pot pierde pn la log10(cond(A))
cifre zecimale semnificative relativ la acurateea datelor de intrare.

Interpretare geometric: n = 2: Ecuaii unui sistem liniar a crui matrice A


M2,2(R) pot fi interpretate ca ecuaiile a dou drepte n plan, iar soluia sistemului
drept coordonatele punctului de intersecie a celor dou drepte. Factor de
condiionare mare al matricei A nseamn c dreptele sunt aproape paralele.

problem bine condiionat

problem ru condiionat

Exemplu
Considerm sistemul Ax = b, unde

Mdlina Roxana Buneci

A=

Metode Numerice Curs - 2007

888.445

887.112

887.112

885.781

i
b= 1
0
Considerm urmtoarele comenzi MAPLE:
> with(linalg):
> A:=matrix(2,2,[888.445,887.112,887.112,885.781]);

888.445
A :=
887.112

887.112

885.781

> A1:=matrix(2,2,[888445/1000,887112/1000,887112/1000,
885781/1000]);

177689

200
A1 :=
110889

125

110889

125
885781

1000

> cond(A1);

3152602660249
> b:=vector([1,0]);

b := [ 1, 0 ]
> Digits:=6;

Digits := 6
> linsolve(A,b);

[ -499.248 , 500.000 ]
> Digits:=15;

Digits := 15
> linsolve(A,b);

[ 0.887555222890557 10 9, -0.888888888888889 10 9 ]
> Digits:=10;

Digits := 10
> linsolve(A,b);

[ 0.2496249066 10 7, -0.2500000000 10 7 ]
> linsolve(A1,b);

[ 885781000, -887112000 ]

Metode Numerice Curs 6

Dei matricele A i A1 sunt egale - diferena este dat doar de reprezentarea


coeficienilor: simbolic (ca numere raionale) n cazul lui A1 i n virgul mobil n
cazul lui A comenzile linsolve(A,b) i linsolve(A1,b) ntorc rezultate diferite.
Soluia corect a sistemului este cea obinut n varianta n care s-a lucrat simbolic:
x1

885781000

x2

-887112000

Rezultatul eronat furnizat de comanda linsolve(A,b) se datoreaz relei condiionri


a matricei A. Se observ c factorul de condiionare este:
0.315260266024900 10 13

Revenim la sistemul
Ax = b, cu A nesingular
notm cu x* soluia exact i cu x soluia aproximativ. Vectorul
r = b - A x
se numete reziduu. Avem

||x*- x || = 0 ||r|| = 0,
dar ||x*- x || i ||r|| nu sunt mici simultan. Avem
r = b - A x = Ax* - A x = A(x*- x )
A-1r = x* - x

|| x* - x || = ||A-1r|| ||A-1|| ||r|| =cond(A)

1
||r|| =
|| A ||

= cond(A)

|| x* ||
|| x* ||
||r|| cond(A)
||r|| =
|| A |||| x* ||
|| Ax* ||

= cond(A)

|| x* ||
||r||.
|| b ||

de unde rezult

x * x
r
cond(A)
x*
b
Ca urmare factor de condiionare mic (problem bine condiionat) i reziduu mic
implic variaii relative mici ale soluiei.

Exemplu
Considerm sistemul Ax = b, unde

Mdlina Roxana Buneci

A=

Metode Numerice Curs - 2007

1.001

i
b = 2.001
2
Evident soluia corect a sistemului este
x1

x2

Dac se consider vectorul y


y1
y2

2
=

se observ c
b - Ay =

0.001
0

Deci y aparent verific sistemul, dei este diferit de x. Aceasta se datoreaz valorii
factorului de condiionare al lui A pe care-l putem determina folosind urmtoarele
comenzi MAPLE:
> with(linalg):
> A:=matrix(2,2,[1,1.001,1,1]);

1
A :=
1

1.001

> cond(A);

4004.001000
Artm n continuare c dac reziduu este mare atunci variaia relativ a
coeficienilor matricei de intrare A este mare. S presupunem c x este soluia
sistemului (A+E) x = b. Atunci
(A+E) x = b
E x = b -A x
E x = r
de unde
||r|| = ||E x || ||E|| || x ||,

Metode Numerice Curs 6

i ca urmare
|| r ||
|| E ||

.
|| A |||| x || || A ||
n consecin dac a reziduu este mare atunci variaia relativ a coeficienilor
matricei de intrare A este mare. Deci dac algoritmul de rezolvare a sistemului este
stabil atunci reziduul relativ este mic indiferent dac problema este bine
condiionat sau nu.

IV.4. Metode iterative de rezolvare a sistemelor liniare


IV.4.1. Generaliti
Metodele iterative constau n construcia unui ir (xk)k convergent ctre
soluia exact a sistemului. Oprirea procesului iterativ are loc la un indice m
determinat pe parcursul calculului n funcie de precizia impus astfel nct
termenul xm s constituie o aproximaie satisfctoare a soluiei cutate.
Se consider sistemul liniar
Ax = b, AMn,n(R) nesingular

i desfacerea matricei A definit prin


A = N-P.
cu N o matrice inversabil. Fie x0 un vector arbitrar din Rn. Construim irul (xk)k
folosind relaia de recuren:

Nxk+1 = P xk + b, k 0.
Notm ek = x* xk eroarea absolut cu care xk aproximeaz x*, soluia exact a
sistemului Ax = b.

Teorem. Fie sistemul liniar Ax = b cu AMn,n(R) nesingular i fie A = NP o desfacere a matricei A (N Mn,n(R) matrice nesingukar). irul (xk)k definit
prin
Nxk+1 = P xk + b, k 0, x0 dat

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

converge la soluia exact a sistemului Ax = b oricare ar fi x0 dac i numai dac


(N-1P) < 1 ((N-1P) reprezint raza spectral a lui N-1P, i.e. maximum modulelor

valorilor proprii ale lui N-1P).

Demonstraie. Notm G = N-1P. Atunci


ek+1 = x* xk+1 = x* - N-1(P xk + b)
= x* - N-1P xk - N-1 b
= x* - N-1P xk - N-1 Ax*
= x* - N-1P xk - N-1 (N-P) x*
= x* - N-1P xk - x* + N-1 P x*
= N-1 P (x* - xk)
= Gek.
Ca urmare ek+1 = G ek = G G ek-1 = ...= Gk+1e0, pentru orice k 0. n consecin,
lim x k = x* pentru orice termen iniial x0 dac i numai dac lim G k e0 =0 pentru

orice e0, sau echivalent lim G k =0. Este cunoscut c lim G k =0 dac i numai
k

dac (G) < 1.

Din demonstraia teoremei anterioare a rezultat c dac G= N-1P i ek = x*


xk, atunci ek = Gek-1 = Gke0 pentru orice k 0.
N se alege astfel nct sistemul
Nxk+1 = P xk + b, k 0.
a crui soluie este xk+1 s se rezolve uor de exemplu se alene N diagonal sau
triunghiular

n cazul metodelor concrete descrise n continuare se consider

desfacerea standard a matricei A = (ai,j)1i,jn definit prin:


A=L+D+R
unde
a1,1 0
D = diag(a1,1,a2,2,. an,n) =

0 0

a2,2 0 0

..
0

0 0 an,n

Metode Numerice Curs 6

0
L =

0 0

a2,1 0

0 0

..
an,1 an,2 an,3 an,n-1 0

0 a1,2 a1,3 a1,n-1 a1,n


R =

0 0 a2,3 a2,n-1 a2,n


..
0 0

IV.4.2. Metoda Jacobi

Metoda Jacobi se caracterizeaz prin desfacerea

N = D, P = - (L+R)
1
0
a11
N-1 =

-1

N P=

0 0

0 0 0
a 22
..
0

0 0

0 0

1
a nn

-a1,2 -a1,3 -a1,n-1 -a1,n

-a2,1 0 -a2,3 -a2,n-1 -a2,n

0 0
a 22
..
0

1
0
a11

0 0

:......................................................

-an,1 -an,2 -an,3 -an,n-1 0

a nn
9

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

Dac G = N-1P, atunci coeficienii matricei G = (gij)1i,jn sunt:


0, i = j
gi,j =

a i, j

, i j.

a i,i

irul (xk)k definit prin


Nxk+1 = P xk + b, k 0, x0 dat
converge la soluia exact a sistemului Ax = b oricare ar fi x0 dac i numai dac
(G) < 1. Deoarece (G) ||G||, pentru orice norm operatorial |||| a lui G, avem
(G) min( G 1 , G

), i ca urmare pentru a asigura convergena irului (xk)k este

suficient ca min( G 1 , G

)<1.

Calculm G 1 :
G 1 = max{

g i, j ,1 jn}
i =1
n

= max{
i =1
i j

a i, j

, 1 jn}

a i ,i

Calculm G :
n

= max{ g i, j ,1 in}
j=1
n

= max{

a i, j

j=1
j i

a i ,i

,1 in}.

Dac G 1 < 1 sau G <1, atunci (G) <1. Dar condiia G <1 este echivalent cu
n

a i, j

a
j=1
j i

< 1 pentru orice i, 1 in

i ,i

| ai,i | > a i, j pentru orice i, 1 in


i =1
i j

10

Metode Numerice Curs 6

caz n care spunem c A este diagonal dominant. Deci dac ai,i 0 pentru orice i
= 1,2,, n, i dac A este diagonal dominant atunci irul obinut prin metoda
Jacobi converge la soluia exact a sistemului Ax = b. Dac ek = x*- xk este eroarea
absolut cu care xk aproximeaz x*, soluia exact a sistemului Ax = b, atunci ek =
Gke0 pentru orice k 0. n consecin, pentru orice norme compatibile
ek G k e0 G k e0 G

Fie n1, = min( G 1 , G

e0

) i fie > 0 dat. Vom considera xk este o aproximaie

satisfctoare pentru soluia exact a sistemului dac


(n1,)k < .
ceea ce este echivalent cu
ln ( )
k
+1.
ln (n 1, )

irul (xk)k construit prin metoda Jacobi este definit prin


Nxk+1 = P xk + b, k 0, x0 dat
xk+1 = N-1P xk + N-1 b, k 0,
xk+1 = G xk + N-1 b, k 0,
Deci pentru orice i, 1 i n,
n

x ik +1 = gi, jx kj +
j=1

n
n
a i,j k
bi
b
b
xj + i .
= gi, jx kj - i =
a i,i j=1
a i,i j=1 a i,i
a i,i
ji

ji

n consecin, irul (x )k construit prin metoda Jacobi este:


x0 dat

x ik +1 =

n
1
(bi - a i, jx kj ), i =1,2,,n, k0.
a i,i
j=1
ji

IV.4.3. Metoda Gauss-Seidel

Metoda Gauss-Seidel corespunde desfacerii

11

Mdlina Roxana Buneci

Metode Numerice Curs - 2007

N = L + D, P = -R.
irul (xk)k construit prin metoda Gauss-Seidel este definit prin
Nxk+1 = P xk + b, k 0, x0 dat

a1,1

0 0

a2,1 a2,2 0

:..................................................

an,1 an,2 an,3 an,n-1 ann

x1k +1
x k2 +1

= Pxk + b

x kn +1

Deci
1
1 n
1 n
((Pxk)1 + b1) =
( P1, jx kj + b1) =
( P1, jx kj + b1) =
a1,1
a1,1 j=1
a1,1 j=2

x1k +1 =

n
1 n
1
( a1,jx kj + b1) =
(b1 - a1,jx kj )
a1,1 j=2
a1,1
j= 2

i pentru orice i , 2 i n, avem


i1
n
i1
1
1
((Pxk)i + bi - a i, jx kj +1 ) =
( Pi, jx kj + bi - a i, jx kj +1 )
a i,i
a i,i j=1
j=1
j=1

x ik +1 =
=

n
i1
1
( Pi, jx kj + bi - a i,jx kj +1 )
a i,i j=i +1
j=1

n
i1
1
( a i, jx kj + bi - a i,jx kj +1 )
a i,i j=i +1
j=1

n
i1
1
( bi - a i, jx kj - a i, jx kj +1 )
a i,i
j=i +1
j=1

n consecin, irul (xk)k construit prin metoda Gauss-Seidel este:


x0 dat

12

Metode Numerice Curs 6

pentru k0,

x1k +1 =

n
1
(b1 - a1, jx kj )
a1,1
j= 2

x ik +1 =

n
i1
1
( bi - a i,jx kj - a i,jx kj +1 ), i =2,3,,n
a i,i
j=i +1
j=1

Ca i n cazul metodei Jacobi dac ai,i 0 pentru orice i = 1,2,, n, i dac A este
diagonal dominant atunci irul obinut prin metoda Gauss-Seidel converge la
soluia exact a sistemului Ax=b. De asemenea dac A este o matrice simetric i
are elementele de pe diagonala principal pozitive, atunci metoda Gauss-Seidel
converge dac i numai dac matricea A este pozitiv definit.

13

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