Sunteți pe pagina 1din 201

UNIVERSITATEA AL.I.

CUZA IAI
FACULTATEA de INFORMATIC

CALCUL NUMERIC

Anca Ignat

CUPRINS
Preliminarii

Calcul matricial

Tipuri de matrici

Norme

Norme matriciale

10

Valori i vectori proprii

14

Surse de erori n calculule numerice

19

Rezolvarea sistemelor liniare

21

Evalaurea erorii n rezolvarea sistemelor liniare

21

Algoritmul de eliminare Gauss

27

Descompuneri LU

33

Factorizarea Choleski

37

Algoritmul Gauss-Jordan de inversare a unei matrici

40

Descompuneri QR

43

Algoritmul lui Givens

43

Algoritmul lui Householder

48

Metode iterative pentru rezolvarea sistemelor de ecuaii liniare

57

Schema general de deducere a unei metode iterative

57

Metoda Jacobi pentru rezolvarea sistemelor liniare

60

Metoda Gauss-Seidel pentru rezolvarea sistemelor liniare

63

Metode iterative pentru matrici simetrice i pozitiv definite

67

Metodele relaxrii

68

Valori i vectori proprii

73

Metoda lui Jacobi pentru aproximarea valorilor proprii ale unei


matrici simetrice

75

Forma superioar Hessenberg

81

Algoritmul QR de aproximare a valorilor proprii ale unei matrici


oarecare

87

Vectori proprii

92

Descompunerea dup valori singulare

Rezolvarea ecuaiilor neliniare

94

96

Metoda biseciei (a njumtirii intervalului)

96

Metoda tangentei (Newton-Raphson)

97

Metoda falsei poziii (a coardei)

100

Metoda secantei

101

Metoda Bairstow de aproximare a rdcinilor complexe ale


polinoamelor

103

Metoda lui Laguerre

106

Interpolare numeric

108

Polinomul de interpolare Lagrange

108

Forma Newton a polinomului de interpolare Lagrange

111

Schema lui Aitken de calcul a diferenelor divizate

115

Polinomul de interpolare Hermite

116

Funcii spline liniare continue

118

Funcii spline cubice de clas C2

119

Integrare numeric

124

Formule de cuadratur NEWTON-CTES

126

Formula trapezului

129

Formula de cuadratur a lui SIMPSON

130

Formula de cuadratur a lui SIMPSON (3/8)

131

Formule iterate

132

Biblioteci de calcul numeric

133

Bibliografie

157

Teme de laborator

158

Preliminarii
Fie K un corp (  - corpul numerelor reale sau - corpul numerelor
complexe).
Definiie
X se numete spaiu vectorial peste corpul K dac sunt definite dou
operaii
+ : X u X X i : K u X X,
astfel nct ( X , + ) este un grup comutativ :
a + b = b + a ,  a,b X comutativitate,
(a + b) + c = a + (b + c) ,  a,b,c X asociativitate ,

 0 X astfel nct a + 0 = 0 + a = a ,  a X - existena


elementului neutru ,

 a X,  -a X astfel ca a + (-a) = (-a) + a = 0 - existena


elementului opus.
iar pentru operaia de nmulire cu scalari au loc relaiile:

O(a+b) = O a + O b , O K ,  a,b X ,
(O + P ) a = O a + P a ,  O,P K ,  a X,

O( Pa ) = (O P)a ,  O,P K ,  a X,
 1 K astfel nct 1.a = a ,  a X.
Exemple:  este spaiu vectorial peste  .
Fie xi , yi , O  . Se definesc vectorii x, y  i operaiile de adunare

i nmulire cu scalari astfel:

x1

x
x 2 , y
#

xn

y1
x1  y1

y2 , x  y x2  y2 ,O x
#
#

yn
xn  yn
3

O x1

O x2 .
#

O xn

Similar se definete spaiu vectorial U peste corpul .


Fie vectorul z U :
z1

z
z 2 cu z1 , z2 ,..., zn  .
#

zn
Pentru z utilizm notaiile:
z = a + ib , Re z = a, Im z = b , z a ib, z  a 2  b 2
Notm cu  mun spaiul matricilor cu elemente reale cu m linii i n
coloane
a11 ! a1n
A # % # ,aij ,i 1,!, m, j 1,!, n
a

m1 " amn

TuU este spaiul matricilor cu elemente numere complexe cu m linii i n


coloane:
a11 ! a1n
A # % # ,aij ,i 1,!, m, j 1,!, n
a

m1 " amn
Definiie
Fie X un spaiu vectorial peste corpul K. Vectorii x1 , x2 , ,xp X

spunem c sunt liniar independeni dac:

D1 x1  D 2 x2  ..  D p x p

0D1 D 2 ...D p

0D i K

Spaiul vectorial X este finit dimensional dac exist vectorii x1 , x2 , ,xp

X, liniar independeni i orice mulime de q elemente din X cu q > p


este liniar dependent. n acest caz dimensiunea spaiului X este p (dimX
= p).
4

Fie spaiul vectorial X finit dimensional cu dim X = p.


Orice sistem de p vectori liniar independeni din X se numete baz a
spaiului X.
Fie x1 , x2 , ,xp X o baz pentru spaiul X . Atunci pentru  x X , 
unice constantele D1, D2,, Dp K astfel nct
x D1 x1  D 2 x2  ..  D p x p 
 este un spaiu vectorial finit dimensional, dim  = n cu baza

canonic:

e1

1
0
,e
# 2

0

0
0

#
,!, en

1 -poziiak
#

0

0
1
,!,e
k
#

0

Calcul matricial

Fie matricea patratic A  u :


a11 ! a1n
A # % # , A
a " a
n1
nn

ij i , j 1!n

Se definete matricea transpus:


AT

a11 ! an1
# % # , AT

a " a
1n
nn

Pentru matricea:
A TuU , A

se definete matricea adjunct AH:

ij i 1!m
j 1!n

ji i , j 1!n

0
0

#

1

 AH

AT

a
ji

j 1!n
i 1!m

a11 ! a1n
A # % # , AH
a

m1 " amn

a11 ! am1

#
%
#

a1n " amn

Pentru A  mun matricea adjunct coincide cu transpusa, AH = AT.


Fie vectorul x  , acesta este considerat vector coloan, x  nu1 :
x1

x
x 2  xT  x1 x2 " xn
#

xn
Dac facem nmulirea matricial Aej obinem coloana j a matricii A:
0

a1 j
a11 ! a1n #
a
2j

Ae j # % # 1poziia j
#
a


m1 " amn #
0
amj

Aej este coloana j a matricii A, j=1,...,n, iar eiTA este linia i a matricii A
i=1,...,m.

Fie vectorii x, y, cu ajutorul lor definim produsele scalare n U i U :


x1

x
x 2  n , y
#

xn

y1

y2  n
#

yn

x, y   xi yi 

y H x

i 1

x1

x
y1 y2 " yn 2
#

xn

x1

x
x 2  n , y
#

xn

y1

y2  n
#

yn

x1

n
x
T
x, y   xi yi  y x y1 y2 " yn 2
#
i 1

xn
Proprietile matricii AH
1.

Proprieti ale matricii AT

(A + B)H = AH + BH

(A + B)T = AT + BT

2. (AH)H = A

(AT)T = A

3. (AB)H = BH AH

(AB)T = BT AT

4. (A-1)H = (AH )-1

(A-1)T = (AT )-1

Propoziie

Fie A mxn , x n , y m atunci:

Ax, y

m

  x, AH y n .

Pentru cazul real avem:


A  mxn , x n  y  m  Ax, y m   x, AT y

n

Demonstraie.
(Ax , y) = yH (Ax) = yH A x = yH (AH)H x = (AH y)H x = (x , AH y).

Tipuri de matrici
Definiii

O matrice A  nun se numete simetric dac A = AT .


O matrice A UuU se numete autoadjunct dac A = AH.
O matrice A UuU se numete unitar dac AHA = A AH = In.
O matrice A UuU se numete ortogonal dac ATA = A AT = In.
O matrice A UuU , A=(ai j ) se numete matrice triunghiular inferior
(sau inferior triunghiular dac ai j = 0 pentru j > i.

a110.....................0

a21a22 ..................0
A #

##
a a a
nn
n1 n 2
O matrice A UuU , A=(ai j ) se numete matrice triunghiular superior
(sau superior triunghiular dac ai j = 0 pentru j < i.
.......... a1n
a11a12 a13 

0a22 a23 a2 n


A 00a33 a3n

000...........a
nn

Notm cu In matricea unitate:

I n  nun ,I n

100"00

010"00
#

00"0
00"0

Norme
Definiie
Fie X un spaiu vectorial peste corpul K. Se numete norm aplicaia:
. : X o 
care ndeplinete condiiile
(1) x t0; x  0 x 0;

(2) x  y d x  y , x, y  X ;


(3) O x

O x , x X , O K .

Vom numi norme vectoriale normele definite pe spaiile X

U sau U

Exemple
Fie spaiile vectoriale U sau  U . Pe aceste spaii urmtoarele aplicaii
sunt norme vectoriale:
n

x 1  xi ;
i 1

x 2 

;

i 1

f

max{ xi i 1..n}.

Definiie
Se numete produs scalar n spaiul vectorial X aplicaia:
, : X u X oK
care satisface condiiile :
(a ) x, x t0, x  X , x, x  0 x 0;

(b)( x, y )  y,x , x, y  X ,


(c) O x, y O x y , x, y  X ,O K ,
(d ) x  y, z  x, z  y, z  x, y, z  X .
Este adevrat urmtoarea inegalitate, numit inegalitatea lui CauchyBuniakovski-Schwarz:
x, y d x,x y, y x, y X

x, y K . Observm

Demonstraie. Fie x X , x z 0, y X n  y z 0,D :

2
2

x, y y , y 0

y, y
0 d x  D y, x  D y x  D y, x  D x  D y, y
x, y y , x ,
 x, x  D y , x x, x 

y, y
2
i innd seama de faptul c (x, y ) y, x (x, y ) x, y x, y rezult
2
x, x y, y  x, y
t 0 deci avem inegalitatea Cauchy-Buniakovski y, y
x  D y , y x, y 

Schwartz.
ntr-un spaiu vectorial dotat cu produs scalar se poate induce o norm
numit euclidian:
x 2 : x, x .
Reaminitm definiia produselor scalare pe U i pe  U introduse anterior:

x, y

xi yi , x, y U
i 1

x y
i

i 1

Obinem norma euclidian (valabil n ambele spaii U i  U ):


n

x 2 

i 1

Norme matriciale
Definiie

Aplicaia  :  nun o  se numete norm matricial dac:


nun
(1) A t0 A 
; A  0 A 0.

(2) D A  D A D  A  nun .


(3) A  B d A  B , A, B  nun .
(4) A * B d A B , A, B  nun .

10

Exemple
n

A F

Norma Frobenius definit de relaia

este o norm

i j

i 1 j 1

matricial.
Vom arta c aceast norm satisface condiiile din definiia normei
matriciale.
Introducem notaiile:
L1
L
 A 2 >C1C2 "Cn @ncare
#

Lm
a1 j

a2 j
n
Li (ai1ai 2 " ain ) ,i 1,!, m;C j m , j 1,!, n.
#

a
mj
Cu aceste notaii vom avea:
m

aij

AF

i 1 j 1

Li

i 1

j 1

2
j 2

Din definiie rezult c:


(1) A F t 0, A mun
 A F

0i 1,!, m, j 1,!, n,aij


A
1

A
2

A
m

(2)Fie A ( L ,L ", L )


 A B

A
i

^ L
i 1

A 2
i 2

A
i

L L

B 2
i 2

B
i

B
1

^ L

 LBi , LiA  LBi

i 1

A
i

0 A 0.

iB ( L ,LB2 ", LBm ) mun

B
i

i 1

mun

 2 (L , L )  L

Considerm vectorii:
a L1A ,L2A ", LmA  m ,b

i 1

` d ^ L

A 2
i 2

i 1

A
i 2

B
2

B
i 2

2 L

L ,L ", L 
B
1

A 2
i 2

B
m

 2Re( LiA , LBi )  LBi


B 2
i 2

 L

AF B

. Atunci produsul scalar

n T
m

(a , b) = ( LiA , LBi ) d a

A F B F . Din aceste relaii rezult:

i 1

A B

2
F

d A F 2 A F B

11

 B

2
F

( A F  B F )2 .

2
2

`d
m

 2 LiA
i 1

LBi

Deci A  B

d A F  B F.

(3)FieO i A mun . Avem:


m n

 O A F

m n

O aij

O aij

i 1j 1

i 1j 1

O AF

(4) Fie matricile A TuU , B nu p


L1A
A
L
 A aij i 1"m 2 ,LiA n ,-liniaiamatricii A
j 1"n
#

LA
m

ik

A
i

L , C
A
i

B
j

i 1 j 1
2

are

elementele

B
j

A * B Tu p

L ,C .

bkj 

k 1

, C2B "C pB ,C Bj n coloana jamatriciiB

produs

B
1

ij i 1"n
j 1" p

Matricea
mij

A 2
i 2

d L
i 1 j 1

B 2
j 2

m A 2 p B 2
Li 2 C j 2
i1
j 1

  A F B F .
Am artat c aplicaia Frobenius este o norm matricial.
Aplicaia

A max  max{ aij ;i 1,! , n, j 1,! , n}

nu este o norm

matricial.

Pentru n = 2 fie:

1
2
T
A
 1

1
.
A * B I 2 , A max  B max
2
1
.
A * B max 1! A max < B max
2

1
2
1
2

1
2
,B
1

12

1
2

Norme matriciale naturale

Fie

 v :  U o o norm vectorial. Pornind de la aceast norm

vectorial definim o norm matricial, numit norm matricial natural


sau indus.

A i  max{

Ax
x

;x  U , x z 0}

 max{ Ax v ; x  U , x v d1}


 max{ Ax v ; x  U , x

1}

A i se numete norm matricial natural sau norm indus de norma


vectorial 

Avem urmtoarea relaie:


Ax v d A i x v , A  nun ,x  U .
Norma Frobenius 

nu este o norm natural. n adevr, pentru orice

norm vectorial  v , norma matricial indus a matricii unitate este 1:


In x

I n i  max{

; x z 0} 1 ,

iar n cazul normei Frobenius avem:


In

(1  1  " 1) 2   n z 1pentrun t 2.

Pentru x 1

norma matricial indus este:

i 1

A 1 max{ aij ; j 1,2,!, n}


i 1

Pentru x

max{ xi i 1,!, n} norma matricial indus este:


n

A f  max{ aij ;i 1,2,!,n} .


j 1

13

Dac 

este o norm vectorial i P  nun este o matrice nesingular

atunci aplicaia  P :  U o , x

Px

este de asemenea o norm

vectorial. Considerm normele matriciale induse de 


i respectiv 
relaia A i,P

i,P

i 

- 

. Legtura dintre cele dou norme matriciale este dat de

PAP 1 .
i

Valori i vectori proprii


Definiii

Fie A  nun . Se numete valoare proprie (autovaloare) a matricii A un


numr complex O pentru care exist un vector nenul x U , x z 0
pentru care:
Ax O x .
Vectorul x se numete vector propriu (autovector) asociat valorii proprii
O.
Observm c:

Ax O x(O I n  A) x 0, x z 0det(O I n  A) 0
adic matricea O I  A este singular. Polinomul:
p A (O ) det(O I n  A) O n  a1O n1  aO n2 ... an1O  an
se numete polinom caracteristic asociat matricii A. Polinomul pA de
grad n are n rdcini care sunt valorile proprii ale matricii A.
Se numete raz spectral a matricii A numrul U ( A) :

U A max{ Oi , i 1,!, n,Oi valorile proprii ale matricii$`


Norma

matricial
n

x 2

xi

i 1

2

indus

este A 2

de

norma

vectorial

euclidian

U ( AT A) i se numete norma spectral.

Fie norma matricial indus de norma euclidian:

14

A 2 sup{ Ax  ; x  X , x 2 1}
Considerm un vector oarecare x cu norma euclidian egal cu 1:
n
n
n
n
n
n
2
Ax 2 Ax, Ax ai j x j aik xk x j (ai j aik xk ).
i 1 j 1
k 1
j1 i1
k 1
H
Tinnd seama de definiia matricii A :
n
H
H
A  aij , A
a ji  A A
 alp alq .

Ax

pq

l 1

 Ax, Ax) ( AH Ax, x).

Se observ c (AHA)H =AHA. Fie O1 , O2 , ..On valorile proprii i x1, x2 ,,


xn vectorii proprii corespunztori pentru matricea AHA. Din:
0 E (Axi , Axi ) = (AHAxi ,xei) =(Oi xi , xi ) = Oi ( xi , xi )
rezult c Oi t 0. Fie raza spectral a matricii AHA,
U(AHA) = max{ OI , i=1..n } t 0.
Sa observm ca vectorii proprii ai matricii AHA corespunztori unor
valori proprii distincte sunt ortogonali:
(Axi , Axj) = (AHA xi ,xj ) = Oi ( xi , xj );

Ax , Ax  Ax , Ax A
i

Ax j , xi

O x ,x
j

O j x j , xi O j xi , x j

din aceste relaii rezult:


( Oi - Oj ) ( xi , xj )=0 ( xi , xj )=0.
Presupunem c vectorii proprii xi ai matricii AHA au norma egal cu 1.
Fie:

x  X , x

i 1

i 1

D i xi ; Di

2

1;

n
n
n
n

H
H





A
Ax
,
x
D
A
Ax
,
D
x
D
O
x
,

i
i i i D j x j
i j j
j 1
j 1
i1
i1



O D
i

2
i

dU AH A

i 1

deci
A  d U AH A

Fie x1 vectorul propriu al matricii AHA corespunztor valorii proprii


O1 U ( AH A) . Atunci ( Ax 1 , Ax 1) = (AHA x 1 , x 1) = O 1 rezultnd:
A    U AH A

15

Propoziie

Fie  o norm matricial natural. Atunci U ( A)d A , A  nun .


Demonstraie. Fie Omax  U ( A) i xmax vectorul propriu corespunztor
lui Omax . Avem:

Axmax

Omax xmax .

Atunci:

A xmax

Omax xmax

U ( A) xmax d A  xmax U ( A)d A

Fie A  nun ,{


 Ak }un ir de matrici. Spunem c irul Ak converge la
matricea 0 dac i numai dac irul de numere pozitive {|| Ak ||} converge
la 0.
Ak o 0,k o f Ak o 0, k o f .

Propoziia 1

Fie A  nun . Atunci:

Ak o0, k o fU ( A)


Dac exist o norm matricial natural pentru care ||A|| < 1 atunci:

Ak o0pentruk o f.
Observaie.

cazul

a a k o0pentruk o f a  1.


Demonstraie. Vom demonstra doar implicaia w. Avem:
Ak o 0,k o f Ak o 0, k o f.

U Ak U A d Ak o 0,k o f.
k

limU A
k of

0U A 1.

16

avem

Fie A  nun . Spunem c seria

este convergent dac irul de

k 0

matrici al sumelor pariale {Sn}, S n

converge la o matrice S,

k 0

numit suma seriei.

Propoziia 2

Fie A 

nun

. Seria

converge dac i numai dac raza spectrala a

k 0

matricii A este subunitar:


n

A 
k

S U A 1.

k 

Dac exista o norm a matricii A astfel nct ||A|| < 1 atunci seria
f

converge. n cazul convergenei avem

k

( I  A) 1.

 S

k 0

Demonstraie. Presupunem c seria este convergent. Deducem c:


nof

S n o S  Sn  Sn1  o 0S n  Sn1

nof

Pr.1

An  An o 0U A 1.

Presupunem c U ( A)1. Atunci 1 nu este valoare proprie pentru matricea


A deci: det( I n  A) z 0( I n  A) 1.
Avem:
( I n  A) Sn

( I n  A)( I n  A  A2  ..  An )
Sn

I n  An1

( I n  A) 1 ( I n  An1 ).

Tinnd seama c am presupus U ( A)1 din Propoziia 1 rezult:


An 1 o 0pentrun o fI n  An 1 o I n pentrun o f S n o ( I n  A) 1.
f

Avem implicaiile:

A  1 U A d A 1 Ak  ( I n  A) 1.
k 0

17

Propoziia 3

Fie A  nun pentru care exist o norm matricial natural astfel ca


A  1 . Atunci exist matricile ( I n r A) 1 i avem evalurile:
1
1
d ( I r A) 1 d
.
1 A
1 A
Demonstraie. Din condiia ||A|| < 1 rezult c U ( A)  1 . Deci 1 nu sunt
valori proprii ale matricii A,

det(In-A) 0 adic exist matricile

( I n r A) 1 . Din relaiile:
( I n r A) 1 I n r A

In 1

I n d ( I n r A) 1  I n r A d ( I n r A) 1 (1  A )

obinem:
1
d ( I n r A) 1 .
1 A

Folosind relaia:
( I n r A) 1 ( I n r A) ( I n r A) 1 r ( I n r A) 1 A I n
deducem:
( I n r A) 1 I n B ( I n r A) 1 A ( I n r A)1 d 1  ( I n r A) 1 A
(1  A ) ( I n r A) 1 d 1
deci:
( I n r A) 1 d

18

1
.
1 A

Surse de erori n calculule numerice

1. Erori n datele de intrare:


- msurtori afectate de erori sistematice sau perturbaii
temporare,
- erori de rotunjire: 1/3 , S , 1/7,..
2. Erori de rotunjire n timpul calculelor:
- datorate capacitii limitate de memorare a datelor,
- operaiile nu sunt efectuate exact.
3. Erori de trunchiere:
- limita unui ir , suma unei serii , funcii neliniare aproximate
de funcii liniare, aproximarea derivatei unei funcii
4. Simplificri n modelul matematic
- idealizri , ignorarea unor parametri.
5. Erori umane i erori ale mainii.

Eroare absolut , eroare relativ

Fie a valoarea exact , valoarea aproximativa.


Eroare absolut : a- sau |a - | sau a 
a = 'a , |a - | 'a
Eroare relativ: a 0

a
a
a
sau
sau
a
a
a

a
d Ga
a

G a se exprim de regul n %.
n aproximrile 1kg 5g, 50g5g erorile absolute sunt egale dar pentru
prima eroarea relativ este 0,5% iar pentru a doua eroarea relativ este
10%.
19

Fie
1 r ' a ,a2

a1

2 r ' a ,

a1 r a2

(1 r 2 ) r ' a r ' a
1

' a  a d' a  ' a .


1

Fie a1 cu eroare relativ G a i a2 cu eroare relativ G a , pentru


2

a = a1 * a2 sau
rezult

G a G a  G a
1

20

a1
a2

Rezolvarea sistemelor liniare


Evalaurea erorii n rezolvarea sistemelor liniare

Fie A  u ,b  , x  i sistemul de ecuaii algebrice liniare:


Ax b
Dac matricea A este nesingular exist i este unic soluia exact:
x A1b
Pentru erorile n datele de intrare facem notaiile:
u
- 'A  eroarea absolut pentru A ;

- 'b  eroarea absolut pentrub


n realitate se rezolv sistemul:
A  'A xi b  'b
soluia fiind x :
x   x  'x
n mod natural se ridic urmatoarele probleme :
1. n ipoteza c matricea A este nesingular ce condiii trebuie s
ndeplineasc 'A pentru ca matricea A+ 'A s fie nesingular ?
2. Presupunnd c matricile A i A+ 'A sunt nesingulare care sunt
'A 'b
relaiile ntre erorile relative ale datelor de intrare
,
i
A
b

'x
?
x
Pentru prima problem n cele ce urmeaz presupunem c matricea A
este nesingular. Din egalitatea:
A  'A  A I n  A1'A 
ale datelor de ieire

rezult c A+'A este nesingular dac i numai dac In+A-1'A este


nesingular.
Propoziie

Fie A nesingular i 'A 

1
. Atunci I+A-1'A este nesingular i
1
A

avem:

 A1'A

1

Demonstraie. Avem:
21

1
1 A

1

'A

'A 

Pr.3
1
1
1
1
1

A
'
A
d
A

'
A


I

A
'
A
1


A1

de unde obinem:

I  A
Pentru
'A 

'A

1

1

1
1
.
d
1  A1'A 1  A1 'A

a doua problem presupunem c A este nesingular i


1
. Au loc urmtoarele implicaii:
A 1

A  'A x  'x

b  'b A  'A 'x  Ax  'A x b  'b

A I  A1'A 'x 'b  'A x 'x


'x d I  A1'A

1

A 1

'b

I  A

1

'A A1 'b  'A x 

1

 'A x 

A 1
'b

'x
d

'
A

(1)
x
1  A1 'A x

Din Ax =b obinem b d A x 

A
1
d
i innd seam de acest
x
b

rezultat, din (1) deducem:


A1 A 'b
'x
'A
d


.
x
A
1  A1 'A b
Notm cu k(A)=||A-1|| ||A|| numrul de condiionare al matricii A.
Propoziie

Dac matricea A este nesingular i 'A 


'x
d
x

1
A 1

atunci:

k A

'b
'A


.
'A b
A
1  k A
A

innd seama c I =A A-1 rezult 1 I d A A1 k A .


Asfel numrul de condiionare al matricii A, k(A) 1, depinde de norma
matricial natural utilizat.
O matrice A pentru care numrul de condiionare este mare se numete
matrice prost condiionat. Pentru matricile prost conditionate eroarea
22

relativ a soluiei sistemului Ax=b ,


relative

'x
poate fi mare chiar dac erorile
x

'b
'A
i
 sunt mici.
b
A

Fie A o matrice simetric A  AT , nesingular. Utiliznd norma matricial


subordonat normei vectoriale euclidiene:

U AT A

A 2

U A2

k A   A 2 A1

2

Observm c matricea simetric A are valorile proprii reale


O1 , O2  On , A2 are valorile proprii O12 , O22  On2 iar A-1 are valorile
1 1
1
proprii , ,...., . Presupunnd c:

O1 O2

On

O1 d O2 d .... d On U A   On iU A1 

O1

obinem pentru matricea simetric A:


A2

U A

On , A1

U A1

de condiionare spectral.
Pentru o matrice ortogonal A AT A

O1

, k A

A AT

On
se numete numr
O1
AT numrul de

I  A1

condiionare spectral k A   A 2 AT  1, deoarece:


2

A2

U A A

U I 1

23

AT

Metode numerice de rezolvarea sistemelor liniare

Fie matricea nesingular A  u i b  . Rezolvarea sistemului


de ecuaii liniare Ax b se poate face folosind regula lui Cramer:
det Ai (b)
xi
,i 1,!, n ,
det A
n care Ai(b) se obine din matricea A prin nlocuirea coloanei i cu
vectorul b. Acest algoritm este foarte costisitor din punct de vedere al
resurselor i este instabil numeric (perturbri mici n datele de intrare pot
conduce la perturbri mari n datele de ieire). Din aceste motive s-au
cutat alte metode de aproximare a soluiei x. Unul din cele mai folosii
algoritmi este algoritmul de eliminare Gauss.
Algoritmul const n transformarea sistemului Ax b ntr-un sistem

bcu A matrice triunghiular superior:
echivalent Ax
x A1b A 1 b (notm Ax b i
Ax b )
Vom considera mai nti rezolvarea sistemelor liniare cu matrici
triunghiulare.

Metoda substituiei

Fie sistemul liniar Ax = b unde matricea sistemului A este triunghiular.


Pentru a gsi soluia unic a sistemului, trebuie ca matricea s fie
nesingular. Determinantul matricilor triunghiulare este dat de formula:
det A = a11a22 " ann
Prin urmare pentru rezolvarea sistemului vom presupunem c:
det A z 0,aii z 0 i = 1,2,!, n
Vom considera nti cazul cnd matricea A este inferior triunghiular.
Sistemul are forma:
a11 x1 = b1

a21 x1  a22 x2 = b2
#

(1)

ai1 x1  ai 2 x2  "  aii xi = bi


#

an1 x1  an 2 x2  "  ani xi  "  ann xn = bi


Necunoscutele x1 , x2 , ..., xn se deduc folosind ecuaiile sistemului de la
prima ctre ultima.
Din prima ecuaie se deduce x1 :

24

b1
(2)
a11
Din a doua ecuaie , utiliznd valoarea x1 din (2) , obinem x2 :
b  a21 x1
x2 = 2
a22
Cnd ajungem la ecuaia i :
ai1 x1  ai 2 x2  "  aii 1 xi 1  aii xi = bi
folosind variabilele x1 , x2 ,..., xi 1 calculate anterior, avem:
b  ai1 x1  "  aii 1 xi 1
xi = i
aii
Din ultima ecuaie se deduce xn astfel:
b  an1 x1  an 2 x2  "  ann1 xn1
xn = n
ann
Algoritmul de calcul a soluiei sistemelor (1) cu matrice inferior
triunghiular este urmtorul:
x1 

i 1

bi  aij x j
j 1

,i 1,2,!, n  1, n
aii
Acest algoritm poart numele de metoda substituiei directe.
Vom considera, n continuare sistemul (1) cu matrice superior
triunghiular :
a11 x1  "  a1i xi  "  a1n1 xn1  a1n xn = b1
xi

%
aii xi  "  ain1 xn1  ain xn = bi
%
an1n1 xn1  an1n xn = bn1
ann xn = bn
Necunoscutele x1 , x2 ,..., xn se deduc pe rnd, folosind ecuaiile
sistemului, de la ultima ctre prima.
Din ultima ecuaie gsim xn :
bn
xn
(4)
ann
Folosind valoarea lui xn dedus mai sus, din penultima ecuaie
obinem:
b a x
xn1 = n1 n1n n
an1n1

25

Cnd ajungem la ecuaia i :


aii xi  aii 1 xi 1  "  ain xn = bi
se cunosc deja xi 1 , xi  2 ,..., xn i deducem:
b  aii 1 xi 1  "  ain xn
xi = i
aii
Din prima ecuaie gsim valoarea lui x1 :
b  a x  "  a1n xn
x1 = 1 12 2
a11
Procedeul descris mai sus poart numele de metoda substituiei inverse
pentru rezolvarea sistemelor liniare cu matrice superior triunghiular:
n

bi 
xi

a x
ij

j i 1

aii

,i

n, n  1,",2,1.

(5)

Pentru a evalua efortul de calcul pentru metoda substituiei inverse vom


nota cu M numrul de operaii *, / (nmuliri/mpriri) efectuate i A
numrul operaiilor (adunri/scderi) efectuate.
Atunci pentru calculul componentei xi se efectueaz M=n-i+1, A=n-i i
n total:
1
n
1
n 1
n n  1
n n  1
M n  i  1 k
, A n  i k
2
2
i n
k 1
i n
k 1
Efortul de calcul pentru metoda substituiei directe este deasemenea
M=n(n+1)/2, A=n(n-1)/2.

26

Algoritmul de eliminare Gauss

Algoritmul se realizeaz n n-1 pai prin transformarea sistemului dat


ntr-un sistem echivalent cu matrice triunghiular superior.
1
1
1
Pas 1: la acest pas se obine sistemul : A x b  Ax b,unde A  are
prima coloan n form superior triunghiular.
2
2
2
Pas 2: se construiete sistemul A x b  Ax b,unde A  are
primele doucoloane n form superior triunghiular.
#
r
r
r
Pasul r: se obine sistemul A x b  Ax b,unde A  are primele r
coloane n form superior triunghiular.
#
n 1
n 1
n 1
Pasul n-1 : se obine sistemul A x b  Ax b,unde A  are
primele n-1 coloane n form superior triunghiular.
r
Dac la un anumit pas matricea A nu poate fi construit aceasta ne va
arta c matricea A este singular.
n realizarea acestor pai se utilizeaz urmtoarele operaii elementare:
nmulirea unei ecuaii cu un factor i adunarea la alt ecuaie;
interschimbarea a dou linii i/sau dou coloane n matricea A;
Pas 1: Intrare : sistemul Ax b
1
1
1
Ieire : sistemul A x b  Ax b,undematricea A  are prima
coloan n form superior triunghiular.
Fie ecuaia i, cu i=1,,n
Ei 
:
ai1 x1  ai 2 x2  "  ain xn bi .
Presupunem a11 z 0 . Operaiile efectuate au ca obiectiv anularea
coeficienilor lui x1 din ecuaiile de la 2 la n i sunt descrise n
continuare:
a
1
1
E1 21  E2 E2 a21
 0
a
11
#
a
E1 i1  Ei
a11
#

Ei ai 1  0

a
E1 n1  En
a11

En an 1  0

27

Sistemul obinut prin aceste operaii are forma:

a11 1 x1  a12 1 x2  """  a1 1n xn b1 1

1
1
1
a22 x2  """  a2 n xn b2

#

1
1
1
ai 2 x2  """  ain xn bi
#

1
an 12 x2  """  ann
xn bn 1
sau
a1 1j

1
aij 

ai 11

b 1
i

a1 j , j 1,", n,b1


1

a
aij   i1 a1 j ,i
a11

2,", n; j

2,", n.

2,", n.

0,i
bi 

b1.

ai1
b1,i
a11

2,", n.

Pas 2: Intrare : A x b
2
2
2
Ieire : A x b  Ax b, A  are primele dou coloane n
form superior triunghiular.
1
z 0 i se urmrete anularea elementelor
Se presupune a22
1



a32
,a42
,", an 2
2

(transformarea

coloanei

form
1

superior

triunghiular). Operaiile efectuate asupra ecuaiilor Ei ,i 3,", n sunt


urmtoarele :
1
1 a32
1
E2  1  E3
a22

1 ai 21
1
E2  1  Ei
a22

1 an 12
1
E2  1  En

a22

28


E3 a32

0;

Ei 2 ai 22

0;

En an 2

0;

Obinem pentru matricea A(2) i vectorul b(2) relaiile:


a1 2j a1 j , j 1,!, n

a2 2j a2 1j , j 2,!, n

1
2
1 ai 2 1
aij  aij   1 a2 j ,i 3,", n; j 3,!, n
a22

2
ai1 0,i 2,!, n
2
ai 2 0,i 3,!, n
b 2 b ,b 2 b 1
1
2
2
1
1


2
a
1
bi  i 21 b2(1) ,i 3,!, n.
bi
a22

Se observ c nu se schimb forma superior triunghiular a primei


coloane.
r 1
r 1
Pas r: Intrare : A x b
r
r
r
Ieire : A x b  Ax b, A  are primele r coloane n form
superior triunghiular.
Sistemul are forma urmtoare:
a11 r 1 x1  "  a1 rr 1 xr  "  a1 nr 1 xn b1 r 1

%
%

arr r 1 xr  "  arn r 1 xn br r 1

r 1
r 1
r 1
ar 1r xr  "  ar 1n xn br 1
#

air r 1 xr  "  ain r 1 xn bi r 1

#

r 1
r 1
r 1
anr xr  "  ann xn bn
Presupunem

arr

r 1

z 0. Vom

urmri

ar r 1r ,ar r 2 r ,", anr r . Operaiile efectuate sunt:

29

anularea

elementelor

r 1 ar r11r
r 1
Er  r 1  Er 1
arr

r 1 air r 1
r 1
Er  r 1  Ei
arr

r 1 anr r 1
r 1
Er  r 1  En

arr

Er 1 ar  1r
r

0;

Ei r air r

0;

En anr

0;

Obinem pentru matricea A(r) i vectorul b(r) formulele:


a1 rj a1 j , j 1,!, n,

akj r akj k 1 ,k 2,! r , j k ,!, n,

r 1
r
r 1
r 1 air
a


a


r 1 arj ,i r  1,!, n; j r  1,!, n.
ij
ij
arr

r
0, j 1,!, r ,i j  1,!, n.
aij
r
b1 ,
b1
r
j 1
b j , j 2,!, r ,
b j

r 1
a
r
r 1


ir
bi
bi  r 1 b2( r 1) ,i r  1,!, n.

arr

Se observ c nu se schimb forma superior triunghiular a primelor r-1


coloane.
La fiecare pas s-a fcut ipoteza arr r 1 z 0 . Elementul arr r 1 poart
numele de pivot. n cazul n care elementul pivot este nul se pot aplica
urmtoarele strategii numite de pivotare:
pivotare
Se
caut
primul
indice
10.Fr
r 1
i0 ^r , r  1,", n`astfelnctai0r z 0 . Se interschimb liniile i0 i r.

S observm c n procesul de calcul la pasul r intervine factorul

1
arr

r 1

astfel c valori mici ale lui arr r 1 conduc la amplificarea erorilor de

30

calcul. Pentru a asigura stabilitatea numeric a procesului de calcul este


de dorit ca arr r 1 s fie mare.
20. Pivotare parial: Se determin indicele i0:

ai 0r

r 1

max air

r 1

;i

r ,!, n

i se interschimb liniile i0 ,rdaci0 z r .


30.Pivotare total: Se determin indicii i0 i j0:
ai r j01
0

max aij r 1 ;i

r ,!, n, j

r ,!, n

i se interschimb liniile i0 ,rdaci0 z r i coloanele j0 ,rdac j0 z r.


Schimbarea coloanelor implic schimbarea ordinii variabilelor astfel nct
n final va trebui refcut ordinea iniial a variabilelor.
r 1
Dac dup pivotare elementul pivot rmne nul, arr 0, atunci putem
deduce c matricea A(r-1) este singular.
r 1
n adevr, dac n procesul de pivotare parial arr 0, atunci
a11a12 """a1n

0"" arn
%

arr "arn
r 1
r 1 r 1
r 1
( r 1)

0
A
a11 a22 " ar 1r 1 det

det A
#





0"" ann

"""ann 

Deoarece operaiile efectuate (cele de inetrschimbare de linii i/sua


coloane) nu au schimbat dect semnul determinantului avem:
r 1
det A r det A 0 det A 0
prin urmare matricea A iniial este singular.
r 1
i n cazul procesului de pivotare total dac arr 0, atunci:
a11a12 """ a1n
%

0"" 0

0"" 0
arr " 0
r 1
r 1 r 1
r 1
( r 1)
0
A
a11 a22 " ar 1r 1 det

det A


#
#




0"" 0



0
"""

Avem det A r det A

r 1

0  A este matrice singular.


31

Putem suma algoritmul descris mai sus astfel:


r 1;
pivotare(r );
while (r d n -1 i |arr | > H )
// Pas r
 for i r  1,}, n
a
< f
- ir ;
arr
<for j r  1,}, n
aij aij  f * arj ;
<air
<bi

0;
bi  f * br ;

 r
r  1;
 pivotare(r );
if (|arr | d H ) 'MATRICE SINGULARA'
else { Am A( n1) ,b mb( n1)
serezolv sistemul triunghiular superior Ax b}
Numrul de operaii efectuate la pasul r i n total este:
(n  r ) 1M  n  r A  n  r A  1A  1M 
n 1

n 1

M : n  r  2 n  r
r 1

n 1
r 1

M
:

r 1

n 1

A
:
n  r  n  r
3

n  1 n 2n  5 ,
n  1 n n  1 ,
3

r 1

n
n
 ' n 2 ;
 ' n 2 
:
3
3

32

Descompuneri LU

Dac avem pentru matricea A o descompunere de tipul A=LU, cu L


matrice triunghiular inferior i U matrice triunghiular superior atunci
rezolvarea sistemul liniar Ax=b se reduce la rezolvarea a dou sisteme
liniare cu matrici triunghiulare:
Ly = bsoluiay
, x A1b
Ax = blLUx = bl 


Ux = y soluiax
Se rezolv nti sistemul inferior triunghiular Ly = b . Apoi se rezolv
sistemul superior triunghiular Ux = y unde y este soluia obinut din
rezolvarea sistemului precedent Ly = b . Vectorul x rezultat din
rezolvarea sistemului Ux = y este i soluia sistemului iniial Ax = b .
Fie minorul principal principal al matricii A:
a11a12 "a1 p

a21a22 "a2 p

 Wu p , p 1,!, n


Ap
#

a p1a p 2 "a pp
Teorem (descompunere LU)
Fie A  u o matrice real ptratic de dimensiune n astfel nct
det Ap z 0 , p = 1,!, n . Atunci exist o unic matrice inferior

triunghiular L = (lij )i , j =1,...,n cu lii = 1, i = 1,!, n

i o unic matrice

superior triunghiular U = (uij )i , j =1,...,n astfel nct


A=LU
(1)
Demonstraie. Existena. Algoritmul Doolittle de calcul al descompunerii
LU
(demonstraia se face prin inducie dup n dimensiunea matricii A )
Fie A  u o matrice real ptratic de dimensiune n care satisface
ipotezele teoremei de mai sus. Algoritmul de calcul al matricilor L i U
are n etape. La fiecare pas se determin cte o linie din matricea U i
cte o coloan din matricea L . Descriem n continuare, un pas oarecare.
Pasul p ( p = 1,2,!, n )
Se determin elementele liniei p ale matricii U , u pi , i = p,!, n , i
elementele coloanei p ale matricii L ,
lip , i = p  1,!, n l pp = 1 (upi= lip =0, i=1,,p-1).

33

Sunt cunoscute din paii anteriori elementele primelor p  1 linii din U


(elemente ukj cu k = 1,!, p  1,j ) i elementele primelor p  1 coloane
din L (elemente lik cu k = 1,!, p  1,j ).
Calculul elementelor liniei p din matricea U , u pi i = p,!, n se face
folosind elementul api i (LU)pi. Avem:
n

a pi = ( LU ) pi

l
k =1

p 1

u (l pk = 0, k = p  1,!, n) = l pk uki = l ppu pi  l pk uki

pk ki

k =1

k =1

Pentru i = p,!, n avem:


p 1

u pi

a pi  l pk uki ,i

p,!, n

(2)

k 1

( l pp = 1 , l pk , uki k = 1,!, p  1 sunt elemente de pe coloane din L i


linii din U calculate la paii anteriori)
Calculul elementelor coloanei p din matricea L : lip , i = p  1,!, n
( lip = 0 , i = 1,!, p  1, l pp = 1 ) se face analog:

aip = ( LU )ip

k =1

k =1

p 1

lik ukp (ukp = 0, k = p  1,!, n) = lik ukp = lipu pp  lik ukp


k =1

Dac u pp z 0 putem calcula elementele nenule ale coloanei p din


matricea L astfel:
p 1

lip

(aip  l pk uki ) / u pp ,i

p  1,", n

(3)

k 1

(elementele l pk , uki k = 1,!, p  1 sunt cunoscute deja la pasul p fiind


calculate anterior)
Dac u pp = 0 , calculele se opresc, descompunerea LU nu poate fi
calculat - matricea A are un minor Ap cu determinantul 0.
Unicitatea. Demonstraie prin reducere la absurd.
Facem observaia c inversa unei matrici nesingulare triunghiular
inferior (superior) este o matrice de acelai tip.
Presupunem c
(4)
A LU LU
1 1
Din ipoteza A nesingular rezult existena inverselor matricilor
L,L1,U ,U1 .
nmulind
egalitatea
(4)
la
stnga
cu

L1icuU11ladreaptaobinemUU11 L1L1.
MatriceaUU11estetriunghiularsuperioriarmatriceaL1L1 estetriunghiularinferior
cuelementelediagonaleegalecu1.RezultUU11

34

L1L1

I ,deciL

L1,U

U1.

Observaii: Pentru memorarea matricilor L i U se poate folosi


matricea A iniial. Vom folosi partea superior triunghiular a matricii
A pentru a memora elementele uij ale matricii U pentru i = 1,2!, n ,

j = i, i  1!, n i partea strict inferior triunghiular a matricii A pentru a


memora elementele lij ale matricii L , i = 2,3!, n , j = 1,2!, i  1. Se
observ c nu am memorat nicieri elementele lii = 1i = 1,!, n . Vom
ine cont de acest lucru n calculele ulterioare. Calculele (2) i (3) se pot
face direct n matricea A .
Algoritmul de eliminare Gauss fr schimbare de linii
descompunere LU

Presupunem c la fiecare pas al algoritmului de eliminare Gauss pivotul


este nenul ( arr( r 1) z 0 ), deci nu e nevoie de schimbare de linii.
Algoritmul se poate scrie astfel:
forr 1,!, n  1

fori

r  1,!, n
a
< f  ir ;
arr
//Ei

Ei  f Er

<for j r  1,!, n
aij aij  f arj ;
<air
<bi

0;

bi  f br ;

Fie:

t (r )

0
#

0
( r )   ,Tr : I n  t ( r )erT   u
tr 1
#

t (r )
n

35

t ( r )erT

0
#

0
( r ) 0"10"0
tr 1
#

t (r )
n

col
Pr

00" 0 "0

00"0"0

(r )
00"tr 1"0lin r  1)
#

00"t ( r ) "0

Matricea Tr este matrice triunghiular inferior cu 1 pe diagonala


principal:
colr

Tr

Inversa matricii Tr este Tr1


Tr Tr1

10"0"0

01"0"0
#

00"1"

(r )
"tr 1"
#

(r )
t




"
"
n

(r ) T
I n  t er . n adevr:

( I n  t ( r )erT )( I n  t ( r )erT ) I n  t ( r )erT  t ( r )erT  t ( r )erT t ( r )erT

 I n  t ( r ) tr( r )erT  I n (0 tr( r ) erT t ( r ) )


Dac A este o matrice oarecare, vrem s vedem cum se poate construi
matricea B=TrA fr a face nmulire matricial. Vom studia legtura ntre
liniile matricilor A i B.
eiT B eiT (Tr A) eiT ( I n  t ( r )erT ) A eiT A  eiT t ( r )erT A eiT A  ti( r ) (erT A)
Linia i a noii matrici B se obine din linia i a matricii A la care se adaug
linia r a matricii A nmulit cu factorul ti( r ) .
eiT Ai 1,!, r(ti( r ) 0)
e B T
.
(r )
T
ei A  ti (er A)i r  1,!, n
Operaia TrA descrie Pasul r al algoritmului de eliminare Gauss dac:
ar( r 1) r
air( r )
anr( r )
(r )
(r )
(r )
tr 1  ( r ) ,", ti
 ( r ) ,", tn
 (r ) .
arr
arr
arr
Algoritmul de eliminare Gauss fr schimbare de linii poate fi descris
astfel:
Tn1 "T2T1 A U cuTr I n  t ( r )erT ,
T
i

36

(r )

ar( r 1) r
air( r )
anr( r )
0
0
(
)
(
)
(
) .

"




"



"



arr( r )
arr( r )
arr( r )

Avem:
A T11T21 "Tn11U  LU ,L : T11T21 "Tn11
T11T21

( I n  t (1)e1T )( I n  t (2)e2T )

I n  t (1)e1T  t (2)e2T  t (1)e1T t (2)e2T

 I n  t (1)e1T  t (2)e2T  t (1)t1(2)e2T I n  t (1)e1T  t (2)e2T (t1(2) 0)


Prin inducie se arat c:
L T11T21 "Tn11 I n  t (1)e1T  t (2)e2T  "  t ( n1)enT1
10"0"0
a

 21 1"0"0
a11

(1)
 a31  a32 "0"0
(1)
a11

a22

(1)

L
ar 1
ar 2
  (1) ""0
a22
a11

(1)
( r 1)
 ar 11  ar 12 " ar 1r "0
(1)
a11

a22
arr( r 1)

(1)
( r 1)
a

a
a
 n1  n(1)2 " nr( r 1) "
a22
arr
a11

Am artat c algoritmul de eliminare Gauss fr schimbare de linii


produce o descompunere LU pentru matricea A.

Factorizarea Choleski
Definiie
Matricea A  u se numete pozitiv semidefinit dac:
Ax, x t 0x  .
Matricea A se numete pozitiv definit dac:
Ax, x !0x  ,x z 0 .
Propoziie
Dac matricea A  u este pozitiv definit atunci matricea A este
nesingular.

37

Demonstraie: Presupunem prin reducere la absurd c matricea A este


pozitiv definit i singular. Atunci, sistemul de ecuaii liniare Ax=0 are
pe lng soluia banal x=0 i o soluie x0z0. Avem:
x 0 z 0 0 Ax 0 , x 0 0, x 0  0contradicie!
Dac matricea A este pozitiv definit rezult c i minorii principali Ap
sunt pozitivi definii n  pu p i deci det Apz0. Avem urmtorul rezultat:
Propoziie
Presupunem c matricea A  u este simetric (A=AT) i pozitiv
definit. Atunci exist o matrice triunghiular inferior L  u astfel ca:
A LLT (factorizareaCholeskiamatricii A)

Algoritmul de determinare a matricii L se desfoar n n etape, la fiecare


etap se determin cte o coloan a matricii L.
La pasul p se cunosc din paii anteriori coloanele 1,2,...,p-1 ale matricii
L:
lir ,r 1,2,!, p  1,i 1,!, ncunoscute
La acest pas se determin elementele coloanei p ale matricii L:
0

l pp ,lip ?,i p,!, n .

l
p 1 p
#

np
Se determin nti elementul diagonal lpp:

a pp

LL
T

pp

l p1

lp2
#

(l p1l p 2 "l pp " l pp 


#



38

p 1

a pp

2
p1

2
p2

2
pp

l  l  "  l l pp

r a pp  l pj2
j 1

Se arat c din faptul c matricea A este simetric i pozitiv definit


expresia de sub radical este nenegativ i n plus lppz0.
Se determin n continuare celelalte elemente ale coloanei p, lip,
i=p+1,...,n:
l p1

lp2
#

aip LLT
(li1"lip "lii " l pp 
ip


#



p 1

li1l p1  li 2l p 2  "  lip 1l pp 1  lipl pp 

aip

l l

ij pj

 lipl pp ,i

p  1,!, n

j 1

Elementele lij, lpj , j=1,...,p-1 sunt determinate la paii anteriori deci sunt
cunoscute.
Avem:
p 1

aip  lij l pj
lip

j 1

l pp

,i

p  1,!, n,lip

39

0,i 1,!, p  1 .

Algoritmul Gauss-Jordan de inversare a unei matrici

Fie A o matrice real ptratic de dimensiune n .


GaussJordan
Ax = y 
o x = A1 y
y1 = a11 x1  "  a1n xn (E1)
y = a x  "  a x (E2)
2
21 1
2n n

#
yn = an1 x1  "  ann xn (En)
n algoritmul Gauss-Jordan se procedeaz astfel: se scoate x1 dintr-una
din relaiile de la (E1) la (En) i se nlocuiete n toate celelalte. Relaia
din care s-a scos x1 se aduce pe prima poziie. Se scoate x2 din una din
relaiile de la (E2) la (En), se aduce aceast relaie pe poziia a doua i se
nlocuiete x2 n toate celelate relaii. ... Se repet aceste operaii pn sau nlocuit toate variabilele xi . Se ajunge la un sistem de forma:
x ByW unde yW PyW  A1 BPW
(1)
( PW este o matrice de permutri care reflect schimbrile de linii
efectuate)
Pasul p ( p = 1,2,!, n )
Vectorul W reflect schimbrile de linii fcute pn la acest pas.
Iniial ( p = 1 ) W i = i,i = 1,!, n . La acest pas sistemul are urmtoarea
form:
p 1

xi = aij yW  aip x p 
j =1

a x
ij

j = p 1

p 1

yW = a pj yW  a pp x p 
p

j =1

p 1

yW = aij yW  aip x p 
i

j =1

,i = 1,!, p  1

pj

xj

j = p 1
n

a x
ij

,i = p  1,!, n

j = p 1

La acest pas se scoate x p dintr-una din relaii i se nlocuiete n toate


celelate. Pentru stabilitatea algoritmului, se caut i0 { p,!, n} astfel
nct:
| ai0 p |= max{| aip | ; i = p,!, n}
Dac ai0 p = 0 ( | ai0 p |d H ) atunci matricea A este singular, inversa nu
poate fi calculat.
Dac ai0 p z 0 ( | ai0 p |> H ), se interschimb linia p cu linia i0 i se

40

actualizeaz vectorul W (W i l W p ). Sistemul rmne n continuare n


0

aceeai form ca mai sus. Avem:


p 1

x p = (a pj yW  yW 
j

j =1

pj

x j )/a pp

j = p 1

nlocuind x p n celelalte (n-1) relaii obinem:

xi (i = 1,!, p  1)sau yW (i = p  1,!, n)


i

p 1

= aij yW 
j

j =1

p 1

a x
ij

j = p 1

 aip (a pj yW  yW 
j

j =1

p 1

= (aij  aip a pj /a pp ) yW  (aip /a pp ) yW 


j

j =1

pj

x j )/a pp =

j = p 1

(a

ij

 aip a pj /a pp ) x j

j = p 1

Sistemul a devenit :
p 1

xi = (aij 
j =1

aip
a
a pj ) yW j  ip yW p 
a pp
a pp

(aij  ip a pj ) x j , i = 1,!, p  1

a pp
j = p 1

p 1

n
a pj
a
1
x p = 
yW j 
yW p  pj x j
a pp
j =1 a pp
j = p 1 a pp
p 1

yW i = (aij 
j =1

aip
a
a pj ) yW j  ip yW p 
a pp
a pp

(aij  ip a pj ) x j , i = p  1,!, n

a pp
j = p 1

La pasul p matricea A se transform n matricea Ac astfel:


Pentru i = 1,!, n , i z p
a
aijc = aij  ip a pj , j = 1,!, n , j z p
a pp
aipc =

aip
a pp

Pentru i = p
acpj = 

a pj
a pp

, j = 1,!, n , j z p

1
a pp
Calculele se pot face la fiecare pas p n matricea A , fr a mai folosi
matricea auxiliar Ac . n final (dup efectuarea pasului n ) n matricea
A vom avea matricea B din formula (1).
Matricea PW are forma:
acpp =

41

eWT1 
T
e
PW = W 2 = (eV eV " eV )
n
1
2
#
eT
Wn
unde eWT = (00!1!0) (1 este pe poziia W i ). Permutarea V ce apare n
i

formula de mai sus este inversa permutrii W , V = W 1 .


Pentru a obine matricea A1 trebuie sfacem operaia BPW . Nu este
nevoie s se fac o nmulire matricial ci pentru a obine matricea A1
se 'amestec' coloanele matricii B conform cu permutarea V .
A1 = BPW = ( BeV BeV " BeV )
1

unde BeV este coloana V i a matricii B i n acelai timp coloana i a


i

matricii A1 .

42

Descompuneri QR
Definiie
Se numete matrice ortogonal, o matrice Q nxn care satisface
relaia:
QT Q = QQT I n (Q 1 QT ) .

Matricile ortogonale au urmtoarele proprieti:


1) Dac Q este matrice ortogonal atunci

matricea

transpus Q este ortogonal.


QT Q =QT (QT )T  QQT (QT )T  QT I n 
2) Dac Q1iQ2 sunt matrici ortogonale atunci i produsul lor, Q1Q2 ,
este tot matrice ortogonal.
(Q1Q2 )T (Q1Q2 ) =Q2T Q1T Q1Q2  Q2T I Q2  I n 
(Q1Q2 )(Q1Q2 )T  Q1Q2Q2T Q1T Q1T I Q1 I n 
3) Dac Q  u este
|| Qx ||2 =|| x ||2 .
|| Qx ||22

Qx, Qx 

matrice

ortogonal

x  atunci

 x, QT Qx   x, x || x ||22 ,|| ||2 t0|| Qx ||2 || x ||2

Fie A o matrice real ptratic de dimensiune n . Presupunem c


pentru matricea A avem o descompunere de forma:
A QR
unde Q este o matrice ortogonal iar R este o matrice superior
triunghiular. Avnd o asemenea descompunere, rezolvarea sistemului
Ax = b se reduce la rezolvarea sistemului superior triunghiular Rx = QT b
astfel:
Ax = b QRx = b QT QRx = QT b Rx = QT b
Algoritmul lui Givens

n cazul algoritmului Givens, pentru a aduce sistemul Ax = b la forma


Rx = QT b se folosesc matricile de rotaie. O matrice de rotaie
R pq (T ) = (rij )i , j =1,n are urmtoarea form:

43

 pq
10"0"0"0
01"0"0"0

00"c"s"0 p

 
R pq (T ) =
#

00"  s )"c"0 q
#

00"0"0"1
1pentrui = j , i z p,i z q
cpentrui = j , i = p,i = q

rij = spentrui = p, j = q
 spentrui = q, j = p

0nrest
unde p, q {1,!, n} iar c i s sunt dou numere reale care satisfac
relaia c 2  s 2 = 1 . Constantele c i s pot fi alese astfel nct
c = cosT ,s = sin T . Se arat uor, folosind relaia c 2  s 2 = 1 , c matricea
R pq (T ) este ortogonal:
R pq (T )RTpq (T ) RTpq (T ) R pq (T ) I n

Dac nmulim la stnga o matrice oarecare A cu o matrice de


rotaie, B = R pq (T ) A , matricea B se obine din matricea A modificnd
doar liniile piq . Notm cu Ai  eiT A , Bi  eiT B - linia i a matricii A i
respectiv a matricii B . Matricea B are urmatoarele linii:
Bi = Ai i = 1,!, n , i z p , i z q
B p = cAp  sAq 
Bq =  sAp  cAq
bpj ca pj saqj , j 1,!, n
bqj  sa pj caqj , j 1,!, n
bij  aij nrest
Dac nmulim la dreapta o matrice oarecare A cu transpusa unei
matrici de rotaie, D = ARTpq (T ) , matricea D se obine din matricea A
modificnd doar coloanele piq ca n schema de mai sus. Notm cu
Ae j , De j - coloana j a matricii A i respectiv a matricii D . Matricea
44

D are urmatoarele coloane:


D j = Aj  j 1,!, n ,

jz p, jzq

De p = cAe p  sAeq 


Deq =  sAe p  cAeq
dip caip saiq ,i 1,!, n
diq  saip caiq ,i 1,!, n
dij  aij nrest
Algoritmul lui Givens se desfoar n (n  1) pai - la pasul r se
transform coloana r a matricii A n form superior triunghiular fr a
modifica primele (r  1) coloane.
Pasul 1
Intrare: matricea A , vectorul b
Ieire:
matricea A(1) (cu prima coloan n form superior
triunghiular), b(1)
Se efectueaz urmatoarele operaii de nmulire cu matrici de rotaie:
R1n (T1n )"R13 (T13 ) R12 (T12 ) A  A(1)
R1n (T1n )"R13 (T13 ) R12 (T12 )b b (1)
Unghiurile T1i (constantele c1i is1i ) se aleg astfel ca elementul de pe
pozitia (i,1) din matricea rezultat s devin 0.
Pasul r
Intrare: matricea A( r 1) (are primele (r  1) coloane n form
superior triunghiular), b ( r 1)
Ieire: matricea A( r ) (cu primele r coloane n form superior
triunghiular), b ( r )
La acest pas matricea A( r 1) i vectorul b( r 1) se transform astfel:
Rrn (T rn )"Rri (T ri )" Rrr 1 (T rr 1 ) A( r 1)   A( r )
Rrn (T rn )"Rri (T ri )" Rrr 1 (T rr 1 )b( r 1)  b( r )
unde elementele c = cri i s = sri din matricile de rotaie se aleg astfel ca
dup nmulirea cu Rri (T ri ), i = r  1,!, n elementul (i, r ) s devin 0.
Considerm operaia B = Rri (T ri ) A , unde T ri se allege astfel ca bir  0 :
brj carj saij ,bij  sarj caij , j 1,!, n bkl  akl nrest)

bir   sarr cair

45

Cea mai simpl alegere pentru cis astfel ca s obinem bir  0 este:
1
c = D arr s = D air ,D alesastfelcac 2 s 2 1D  
ar2r  ai2r
arr
air
c=
s =
ar2r  ai2r
ar2r  ai2r
Dac arr2  air2 = 0 acest lucru implic faptul c arr = air = 0 , deci
elementul air este deja nul. n acest caz putem lua c = 1, s = 0 , matricea
de rotaie coincide cu matricea unitate I , Rri (T ri ) I , matricea A nu se
schimb.
Cnd se efectueaz operaia B = Rri (T ri ) A , matricea A are primele
(r  1)
coloane
n
form
superior
triunghiular
( akl 0,k  1,!, l  1,l 1,!, r  1 ) i elementele ar 1r " ai 1r 0 .
n matricea B aceste elemente vor continua s fie nule.
brj carj saij  ,bij  sarj caij  , j 1,!, r  1
nmulirea B = Rri (T ri ) A nu schimb dect liniile rii ale matricii B ,
prin urmare vom avea br 1r ar 1r " bi 1r ai 1r 0 . n concluzie,
operaia B = Rri (T ri ) A nu schimb elementele nule deja obinute, ci doar
face ca elementul de pe poziia (i, r ) s devin 0.
Algoritmul lui Givens poate fi descris astfel:
Rn1n (T n1n )" Rrn (T rn )" Rrr 1 (T rr 1 )" R1n (T1n )" R12 (T12 ) A R
_

Rn1n (T n1n )" Rrn (T rn )" Rrr 1 (T rr 1 )" R1n (T1n )" R12 (T12 )b b QT b
i urmtoarea matrice:
Notm cu Q

i R (T )" R (T )" R (T )" R (T )" R (T )


Q
n 1n
n 1n
rn
rn
rr 1
rr 1
1n
1n
12 12
i
Matricea Q este matrice ortogonal ca produs de matrici ortogonale.
Descompunearea QR a matricii A este urmtoarea:
i  A R(Q
i 1 Q
i T ) A Q
i T R QR
Q
iT
Q Q

Rn1n (T n1n )" Rrn (T rn )" Rrr 1 (T rr 1 )" R1n (T1n )" R12 (T12 )

 R12T (T12 )" R1Tn (T1n )" RrTr 1 (T rr 1 )" RrnT (T rn )" RnT1n (T n1n )

46

Pe scurt, algoritmul lui Givens este urmtorul:


i I ;
Q
n
forr 1,", n  1
fori r  1,", n
A Rri (T ri ) * A;

 b Rri (T ri ) * b;
i
i
Q Rri (T ri ) *Q;
Detaliat avem:
i I ;
Q
n
forr 1,!, n  1
fori r  1,!, n
construciamatriciiRri (T ri )constantelecis
xD   arr2  air2 ;
xif (D dH ){c 1;s 0;}//Rri (T ri )

else{c arr / D ;s air / D ;}



 A Rri (T ri ) * A
xfor j

r  1,!, n

arj  c arj s aij ;



vechi
aij   s arj c aij ;
xair  0;arr  D 
b Rri (T ri ) * b
xbr  c br s bi ;
xbi   s brvechi c bi ;
i R (T ) * Q
i
Q
ri
ri
xfor j 1,!, n
q rj  c q rj s q ij ;


vechi
q ij   s q rj c q ij ;
La sfritul acestui algoritm, n matricea A vom avea matricea superior
i T binit ( binit - vectorul termenilor
triunghiular R , n vectorul b vom avea Q

i va conine matricea QT din factorizerea QR


liberi iniial), iar matricea Q
a matricii A .

47

i ) obinem:
Numrnd operaiile efectuate (exceptnd calculul matricii Q
n(n  1)(4n  7) 2 3
n(n  1)
  n O(n 2 ) adunri/scderi i
radicali,
6
3
2
2n(n  1)(2n  5) 4 3
 n O(n 2 ) nmuliri/mpriri.
3
3

Algoritmul lui Householder

Definiie
Se numete matrice de reflexie o matrice P  u de forma:
n

P = I n  2vvT , v  , || v ||2 =

|v

|2 = 1

j =1

2
1

v v1v2 !v1vn
v1


v2
v2v1v22 !v2vn

(v , v ,!, vn ) =
vv =
.
# 1 2
#

v
n
vnv1vn v2 !vn
Matricile de reflexie sunt simetrice ( P = PT ) i ortogonale
( PPT PT P P 2 I n ).
PT = ( I n  2vvT )T = I n  2(vvT )T = I n  2(vT )T vT = I n  2vvT = P
P 2 = ( I n  2vvT )( I n  2vvT ) = I n  2vvT  2vvT  4(vvT )(vvT ) =

 I n  4vvT  4v(vT v)vT = I n  4vvT  4v|| v ||22 vT =


 I n  4vvT  4vvT = I n (|| v ||2 = 1)
Dac lum n consideraie cazul:
1
1 0
1
1 0
2 (1
n = 2, v = , P =

0
0 1
0
0 1
i x  2 , y Px :
x
y 1 0 x1  x1
x= 1 , y = 1 =


x2
y2 0 1 x2 x2
Vectorul y = Px este reflectatul vectorului x n raport cu axa Ox2 .
Algoritmul ce folosete matricile de reflexie pentru a obine o
descompunere QR pentru o matrice A  u a fost descris de Alston S.
48

Householder n articolul "Unitary triangularization of a nonsymmetric


matrix," aprut n Journal of the Association of Computing Machinery 5
(1958), 339-342.
Transformarea matricii A ntr-una superior triunghiular se face n
(n  1) pai, la fiecare pas folosindu-se o matrice de reflexie.
Pas 1: A(1) = P1 A (matricea P1 se alege astfel ca coloana 1 s fie
transformat n form superior triunghiular)
Pas 2: A(2) = P2 A(1) P2 ( P1 A) ( P2 transform coloana 2 n form
superior triunghiular fr s schimbe coloana 1)
Pas r : A( r ) Pr A( r 1) Pr ( Pr 1 ! P1 A) (se transform coloana r n
form superior triunghiular fr s schimbe primele (r  1) coloane)
Descompunerea QR construit cu algoritmul Householder este
urmtoarea:
 =R
Pn1 " Pr " P2 P1 A = QA
unde
Q = Pn1 " Pr " P2 P1
Q este matrice ortogonal ca produs de matrici ortogonale. Avem:

 = R Q T QA = Q T R  A = Q T R = QR
QA
Q = Q T = ( Pn1 " Pr " P2 P1 )T = PP
1 2 " Pr " Pn 1
Pasul r
La intrarea n pasul r matricea A are forma:
a11a12 "a1r "a1n

0a22 "a2 r "a2 n


#

00"arr "arn
A = 00"ar 1r "ar 1n

00"a "a
ir
in

00"anr "ann
Pasul r const n:
A := Pr A

Pr = I n  2v r (v r )T , v r R n , || v r ||2 = 1
unde vectorul v r se aleg astfel ca matricea A s aib i coloana r n
form superior triunghiular:

49

a11

0
#

0
A = 0

#
0

a12 " a1r " a1n

a22 " a2 r " a2 n

0 " arr " arn


0 " 0 " ar +1n

0 " 0 " ain

0 " 0 " ann

Calculul matricii Pr

Pentru simplitate vom nota Pr = P , v r = v .


a1r = a1r
a1r

a
a
a
=
2
r

2r
2r
#

a r 1r = ar 1r
r 1r

a
rr
a
k

rr
( PA)er = Aer =
Aer =

ar +1r
0

air
0

a
nr
0

Aplicnd proprietatea matricilor ortogonale


(Q R , x R , || Qx ||2 =|| x ||2 ) pentru matricea Q = P i vectorul
x = Aer avem:

|| PAer ||22 = a12r + a22r + " + ar21r + k 2 =


|| Aer ||2 = a12r + a22r + " + ar21r + arr2 + ar2+1r + " + air2 + " + anr2
Din relaia de mai sus rezult:
n

k 2 = = arr2 + ar2+1r + " + air2 + " + anr2 = air2 k =


i=r

Determinarea vectorului v ce definete matricea P


( PA)er = ( I n 2vvT )( Aer ) = Aer 2(vvT )( Aer ) = Aer 2v(vT ( Aer )) =
= Aer (2 ) v = Aer u
50

unde cu i u am notat:

a1r v1

a2 r v2
# #
:= vT ( Aer ) = ( ( Aer ), v )R = ( , )R =
air vi
# #

anr vn
= a1r v1 + a2 r v2 + " + air vi + " + anr vn
a1r

a1r 0

a2 r

a2 r 0
#

#
#


0
a
ar 1r
r
1
r

arr k
k
u := (2 ) v = Aer ( PA)er = rr

=
a
a
0
r +1r

r +1r
#

#
#


a
air

0 ir

#
#
#


0 a

nr

nr
Cu aceste notaii matricea P devine:
1
1
1
1
P = I n 2( )u ( ) u T = I n ( 2 )uu T = I n uu T cu := 2 2
2
2
2

Pentru a cunoate matricea P trebuie s mai determinm constanta .


Din condiia:
1
1
|| v ||22 = 1 ||
u ||22 = 1
|| u ||22 = 1 2 =|| u ||22
2
2
4
avem:

51

arr  k
||22 = (arr  k ) 2  ar21r  "  air2  "  anr2 =
|| u ||22 =||
ar 1r
#

air

nr

 arr2  ar21r  "  air2  "  anr2  2karr  k 2 = V  2karr  V = 2(V  karr )
de unde obinem:

E = V  karr
Vom alege semnul constantei k astfel nct E s fie ct mai mare posibil
deoarce constanta E apare n operaia de mprire. Avem:

E "mare"oE = V  karr t V (V t 0)osemnk = semnarr


Ce nseamn E = 0 ?
1
2

E = || u ||22 = 0o|| u ||22 = 0o u= 0oarr = k , ar 1r = 0,!,air = 0,!,anr = 0
k i semnk = semnarr obinem:
air = 0,i = r ,!, n
adic avem coloana r deja n form superior triunghiular, se poate trece
la pasul urmtor. n acest caz matricea A este singular.
Ne intereseaz cum se efectueaz operaia A := Pr A fr a face nmulire
matricial. Vom pune n eviden schimbrile n raport cu coloanele.
1
1
( PA)e j = nouacoloan jamatricii A = ( I n  uuT )( Ae j ) = Ae j  (uu T )( Ae j ) =
Cum arr

  Ae j 

u (u T ( Ae j )) = Ae j 

unde

52

Jj
u
E

a1 j 0

a2 j 0

#
#

J j := u T ( Ae j ) = ( arj , arr  k )  = arj (arr  k )  "  aij air  "  anj anr =

ar 1 j ar 1r
#
#

anj anr

i =1

i=r

 ui aij = ui aij (ui = 0, i = 1,!, r  1ur

arr  k ,ui = air , i = r  1,!, n)

Noua coloan j se obine din vechea coloan j din care scdem vectorul
u nmulit cu constanta J j . Ne intereseaz ca primelor (r  1) coloane s
nu li se schimbe forma superior triunghiular deja obinut. Pentru
j = 1,!, r  1 avem:
a1 j

a2 j

#
0

a jj

0
T
) =
J j := u ( Ae j ) = ( a j 1 j = 0 ,
arr  k 
#

ar 1r
arj = 0

#
anr

anj = 0

 a1 j 0  "  a jj 0  "  0(arr  k )  "  0air  "  0anr = 0


Din faptul c J j = 0 , j = 1,!, r  1 rezul c primele r  1 coloane
ale matricii A nu se schimb cnd facem operaia A := Pr A , rmn n
form superior triunghiular.
Algoritmul de trecere de la matricea A la matricea Pr A este urmtorul:

53


Ae j pentru j = 1,!, r  1

( Pr A)e j = (a1r , a2 r ,!, ar 1r , k ,0,!,0)T pentru j = r

J
Ae j  j upentru j = r  1,!, n
E

cu
n

J j = ( Ae j , u ) = ui aij

i=r

ui = 0, i = 1,!, r  1, ur = arr  k , ui = air , i = r  1,!, n


Operaia de transformare a vectorului termenilor liberi b := Pr b se face
astfel:
1
1
1
J
Pr b = ( I n  (uu T ))b = b  (uu T )b = b  u(u T b) = b  u

unde
n

J = u b = (b, u )  = uibi
T

i=r

Algoritmul lui Householder


i I ;
Q
n
forr 1,", n  1
calculeazmatriceaPr (constantaE ivectorulu )
A P * A;
r



b Pr * b;
i
i
Q
Pr *Q;
La sfritul acestui algoritm, n matricea A vom avea matricea superior
i T binit ( binit - vectorul termenilor
triunghiular R , n vectorul b vom avea Q

i va conine matricea QT din factorizerea QR


liberi iniial), iar matricea Q
a matricii A .

54

Algoritmul QR - Householder detaliat


i
Q

In;

forr 1,!, n  1


construciamatriciiPr constantaE ivectorulu
n

xV = air2 ;
i=r

xif (V dH )break;//r


xk = V ;
xif (arr !0)k

I n ( Amatricesingular)

r  1lPr

k ;

xE  V k arr ;


xur

arr  k ;ui

air ,i r  1,!, n;

 A Pr * A
transformareacoloanelor j
xfor j

r  1,!, n

r  1,!, n
n

 J = (J j / E ) ( Ae j , u ) / E = (ui aij )/E ;


i=r

 fori r ,!, n


aij  aij J ui ;
transformareacoloaneiramatricii A
xarr  k ;air  i r  1,!, n;
b Pr * b
n

xJ = (J / E ) (b, u ) / E = (uibi )/E ;


i=r

xfori r ,!, n
bi  bi J ui ;
i P * Q
i
Q
r

xfor j 1,!, n
n

i , u ) / E = ( u q )/E ;
 J =(Qe
i ij
j
i=r

 fori r ,!, n


q ij  q ij J ui ;

55

Numrul de operaii efectuate:


A (adunri, scderi):
n(n  1)(2n  1) (n  1)(n  1)(2n  3) 2 3
(n  1)  2n(n  1) 
=
 n  O(n 2 )
3
3
3
M (nmuliri, mpriri ):

4(n  1)  3n(n  1) 

n(n  1)(2n  1) 2 3
= n  O(n 2 )
6
3

R (radicali ): ( n  1)

56

Metode iterative pentru rezolvarea sistemelor de ecuaii liniare

Ax = b ,

A  u , b 

se presupune cunoscut c A este nesingular, det A z 0 ;


soluia exact a sistemului (1) se noteaz cu x* :
x* = A1 b
n - dimensiunea sistemului este "mare";
A este matrice rar - cu "puine" elemente aij z 0 ;

(1)

(2)

pentru a aproxima soluia x* matricea A nu se schimb


(transform) ci doar se folosesc elementele nenule ale matricii ;
se construiete un ir de vectori {x ( k ) }  , ir care n
anumite cazuri, converge la x* :
x ( k ) o x* pentru k o f
Schema general de deducere a unei metode iterative

Fie descompunerea:

A = B  C , B, C R nun , B"uor" inversabila
Ce nseamn B "uor" inversabil ? Sistemul liniar, avnd ca matrice a
sistemului matricea B :
Bx = f
se rezolv uor (adic repede) - ca
n cazul sistemelor cu matrici
diagonale sau triunghiulare, de exemplu.
Ax* = b l Bx*  Cx* = b l
Bx* = Cx*  b l x* = B 1Cx*  B 1b = Mx*  d

(3)

(4)

unde
M := B 1C  u , d := B 1b 
irul {x ( k ) } se construiete astfel:
x ( k 1) := Mx ( k )  d , k = 0,1, 2,! x (0)  alesarbitrar
Vectorul x ( k 1) poate fi privit i ca soluia sistemului liniar:
Bx = f cu f := Cx ( k )  b
Cunoscnd vectorul x ( k ) , urmtorul element din ir, x ( k 1) , se poate
construi fie utiliznd relaia (6) (dac putem construi matricea M
explicit), fie rezolvnd sistemul liniar (7).
Matricea M poart numele de matricea iteraiei iar vectorul

57

(5)
(6)
(7)

x (0)  se numete iteraia iniial.


Ne punem problema convergenei irului x ( k ) :
x ( k ) o x* , k o f
Se tie c aceast convergen nu are loc pentru orice matrice B. Avem
urmtorul rezultat general de convergen.
Teorema de convergen
Fie A  u o matrice nesingular i B, C  u ,det B z 0 , astfel
ca A=B-C. Fie x (0)  un vector oarecare i {x ( k ) } irul de vectori dat
de (6) cu M i d dai de (5). Atunci:
x ( k ) o x* , k o f , x (0) U ( M ) < 1
este raza
unde U ( M ) = max ^| O |;O  valoareproprieamatriciiM`
spectral a matricii M . Dac exist o norm matricial natural astfel ca
M 1 atunci irul x k converge la soluia x* a sistemului (1).

^ `

M  1 x k o x , k o f,x 0 .

(9)

Demonstraie: Scznd relaiile (6) i (4) obinem:


x ( k 1)  x* = M ( x ( k )  x* ) , k = 0,1,2,!
Avem:
x ( p )  x* = M ( x ( p 1)  x* ) = M 2 ( x ( p 2)  x* ) = " = M p ( x (0)  x* )
x ( p )  x* = M p ( x (0)  x* ) , p
Prin urmare:
x ( p ) o x* , p o f M p o 0 , p o f
M p o 0 , p o f U (M ) < 1
Dac:
|| M ||< 1 M p o 0 , p o f x ( p ) o x* , p o f x (0)

Evaluarea erorii absolute || x ( k )  x* ||


Presupunem || M ||< 1 ( irul {x ( k ) } converge la x* ). Avem din (6):

x l 1

Mx  d 
l

x l Mx l 1  d
x (l 1)  x (l ) = M ( x (l )  x (l 1) ) l
Pentru orice k,j, avem folosind relatiile de mai sus:
x ( k  j 1)  x ( k  j ) = M ( x ( k  j )  x ( k  j 1) ) = " = M j ( x ( k 1)  x ( k ) ) k , j
Aplicnd succesiv relaia precedent obinem:

58

(8)

x ( k  p )  x ( k ) = x ( k  p )  x ( k  p1)  x ( k  p1)  x( k  p2)  " 


 x( k  2)  x ( k 1)  x( k 1)  x ( k ) =
p 1

( x ( k  j 1)  x( k  j ) )

j =0

=
p 1

p 1

j =0

j =0

x ( k  p )  x ( k ) = ( x ( k  j 1)  x( k  j ) ) = (M j )( x( k 1)  x ( k ) )
Fcnd

p o f obinem:
f

x x

(k )

= (M j ) M ( x ( k )  x ( k 1) )
j =0

|| M ||< 1M j = ( I n  M ) 1
j =0

Mai avem i evaluarea:


1
1
|| M ||< 1
d|| ( I n  M ) 1 ||d
1 || M ||
1 || M ||

Prin urmare:
|| M ||
|| x ( k )  x ( k 1) ||
1 || M ||
Aceast relaie ne spune c din punct de vedere practic putem opri
algoritmul atunci cnd diferena dintre dou iteraii succesive devine
suficient de mic acest lucru asigurnd apropierea de soluie.
n continuare vom particulariza matricea B.
|| x*  x ( k ) ||d

59

Metoda Jacobi pentru rezolvarea sistemelor liniare

Fie sistemul:
Ax = b ,

A  u , b 

cu

det A z 0 , aii z 0 , i = 1,2,!, n


Alegem:
a11 0
0 a
22
B = diag[a11 , a22 ,!, ann ] =
#
#

0
0

"

0
" 0
% #

" ann

Avem:
det B = a11a22 " ann z 0
1

0 " 0
a
11

"
0
0
1
1
1

a22
B 1 = diag[ , ,!, ] =

a11 a22
ann
#
# % #

1
0
0 "

ann

Matricea C este:
a12 a13 "  a1n
0
a
0
 a23 " a2 n
21
C = B  A =  a31  a32
0 "  a3n

#
#
#
%
#

a

"

a

a
0
n2
n3
n1


a daca i z j
C = (cij )  u cij = ij

daca i = j
0
Matricea iteraiei se poate calcula i are forma:

60

 a21
a22

1
M := B C =
a31

a33

#
a
 n1
ann
M = (mij )  u

a12
a11

a13
a11

a23
"
a22

a32
a33

#
a
 n2
ann

"

a1n
a11

a2 n

a22

a
 3n
a33

" 

#
%
a
 n3 "
ann

aij

( ) daca i z j
mij = aii

0
daca i = j

Construim vectorul g:
g : Mx ( k )  , Mx ( k ) = ( gi )in 1
Componentele vectorului g sunt:
n
n a
n
ij ( k )
(k )
gi = mij x j =  x j = (aij x (jk ) )/aii ,i 1,!, n
j =1 aii
j =1
j =1
j zi

j zi

Vectorul d este:

d = B 1b = (di )in 1  , di =

bi
,i 1,!, n
aii

irul {x ( k ) }  se construiete folosind formula:

x ( k 1) = Mx ( k )  d l xi( k 1) = gi  di , i = 1,!, n


n

( k 1)
i

= (bi  aij x (jk ) )/aii

, i = 1,!, n

j =1
j zi

i 1

xi( k 1) = (bi  aij x (jk ) 


j =1

a x
ij

(k )
j

)/aii

, i = 1,!, n

j = i 1

Formula (1) descrie metoda lui Jacobi de aproximare a soluiei unui


sistem liniar.

61

(9)

Condiii suficiente de convergen


Propoziia 1

|| M ||< 1 x ( k ) o x* , k o f .
Demonstraie.Fie x soluia sistemului Din A=B-C rezult
Bx* Cx*  b sau
x* Mx*  d . Procesul iterativ x ( k 1) Mx ( k )  d  conduce la relaia:
x*  x

k 1

M x*  x

dM

x*  x d " d M
k

k 1

x*  x

n continuare vom aplica aceast propoziie pentru diverse norme.


n

Din || M ||F = ( mij2 ) 2 < 1 deducem:


i =1 j =1
n

aij

( a
i =1 j =1
j zi

) 2 < 1 x ( k ) o x* , k o f

(10)

ii

Din || M ||1 = max{ | mij |; j = 1,!, n} < 1 deducem:


i =1

| aij |

( | a

ii |

i =1
iz j

) < 1 j = 1,!, n x ( k ) o x* , k o f

(11)

(Criteriul dominanei diagonalei pe linii)


n

Din || M ||f = max{ | mij |; i = 1,!, n} < 1 deducem:


j =1

(
j =1
j zi

| aij |
| aii |

) < 1 i = 1,!, n x ( k ) o x* , k o f

(k )
*
| aij |<| aii | i = 1,!, n  lim x = x
j =1
j zi

(12)

k of

(Criteriul dominanei diagonalei pe coloane)


n

|a

ij

i =1

|<| a jj | j = 1,!, n M 1  1 lim x ( k ) = x*.


k of

iz j

62

(13)

Metoda Gauss-Seidel pentru rezolvarea sistemelor liniare

Considerm din nou sistemul liniar:


Ax = b , A  u , b 
cu
det A z 0 , aii z 0 , i = 1,2,!, n
Putem deduce metoda Gauss-Seidel din metoda lui Jacobi astfel:
xi( k 1)

i 1

= (bi  aij

x (jk )

 aij x (jk ) )/aii , i = 1,!, nmetodaJacobi


j = i 1

j =1

xi( k 1)

i 1

= (bi  aij
j =1

x (jk 1)

 aij x (jk ) )/aii , i = 1,!, n metodaGauss-Seidel


j = i 1

Cnd calculm xi( k 1) cunoatem deja x1( k 1) ,.., xi(k11) i putem folosi
aceste valori n prima sum.
Deducerea metodei Gauss-Seidel din schema general se face lund:
0 " 0
a11 0
a

21 a22 0 " 0
B = a31 a32 a33 " 0

#
# % #
#
a

n1 an 2 an 3 " ann

aij daca j d i
u
B = (bij ) 
bij =

0 daca j > i
Matricea B este nesingular innd cont de presupunerea aii z 0,i :
det B = a11a22 " ann z 0
Matricea C este:
0 a12 a13 " a1n
0
a23 " a2 n
0

0
0
0 " a3n
C = B A=

#
#
%
#
#
0
0
0 " an1n

0
0 "
0
0

aij daca i < j
u
C = (cij ) 
cij =

daca i t j
0
n cazul metodei Gauss-Seidel, vectorul x ( k 1) se obine din x ( k )
rezolvnd sistemul inferior triunghiular (7) din schema general:
63

Bx = Cx ( k )  b = f
Soluia sistemului (6) este dat de formula:
i 1

i 1

j =1

j =1

(14)

xi = ( f i  bij x j )/bii = ( fi  aij x j )/aii , i = 1, 2,!, n

(15)

fi = (Cx ( k ) )i  bi , i = 1,2,!, n

(16)

Vectorul f este:
unde
n

(Cx )i = cij x
(k )

(k )
j

=  aij x (jk ) , i = 1,!, n

(17)

j = i 1

j =1

Folosind formula de rezolvare a sistemelor inferior triunghiulare (8),


relaiile (16) i (17) avem:
i 1

( k 1)
i

= (bi  aij x

(k )
j

j = i 1

 aij x (jk 1) )/aii , i = 1,2,!, n


j =1

Condiii suficiente de convergen pentru metoda Gauss-Seidel


Propoziia 1
Dac matricea A este astfel nct:
n

aij

( a
i =1 j =1
j zi

)2 < 1

ii

atunci are loc convergena irului construit cu metoda Gauss-Seidel la


soluia sistemului Ax=b:
x ( k ) o x* , k o f x (0) 
Propoziia 2 (Criteriul dominanei diagonalei pe linii)
Dac matricea A este astfel nct:
n

|a

ij

|<| aii | i = 1,!, n

(10)

j =1
j zi

atunci:
x ( k ) o x* , k o f x (0) 
Demonstraie. n procedeul iterativ Gauss-Seidel, notnd soluia cu
x A1b i H ( k ) x  x ( k ) vectorul eroare, scznd relaiile:

64

i 1

 aij x j 

aii xi

j 1

a x
ij

 bi

j i 1

i 1

 aij x (jk 1) 

aii xi( k 1)

j 1

a x
ij

(k )
j

 bi

j i 1

obinem:
i 1

H i( k 1)

j 1
j zi

Notm c max{
j 1
j zi

aij
aii

aij
aii

aij

H (j k 1) 

aH

j i 1

(k )
j

ii

,i 1! n} . n virtutea ipotezei (10) avem c < 1.

Observm c:
n

H1( k 1) d
j 2

a1 j
a11

H (j k ) d c H ( k ) f .

Presupunem c H (j k 1) d c H ( k ) , j 1,", i  1, i considerm:


f

i 1

H i( k 1) d
j 1

aij
aii

aij

H (j k 1) 

j i 1

aii

i 1

H (j k ) d c H ( k )

aij

a
j 1

 H (k )

ii

j i 1

aij
aii

d c H (k )

Rezult c vectorul eroare H ( k ) converge la 0:


H ( k 1) d c H ( k ) d " dc k 1 H (0) o 0pentruk o f .
f

Propoziia 3 (Criteriul dominanei diagonalei pe coloane)


Dac matricea A este astfel nct:
n

|a

ij

|<| a jj | j = 1,!, n

(11)

i =1

iz j

atunci metoda Gauss-Seidel converge:


k

lim x  x x 
k of

Demonstraie. Din sistemul dat considerm sistemul echivalent i


Ay b n
care
a
Ax b AD 1 y b, y Dx, i
A AD 1 aiij ij
aii

Din ipoteza (11) rezult

ai  1,  j
ij

i 1
iz j

i
Ay b avem

65

1,!, n. Pentru soluia sistemului

i 1

 aiij y j 

yi

j 1

ai y
ij

 bi ,i 1,!, n, iar pentru metoda Gauss-Seidel:

j i 1

i 1

 aiij z (jk 1) 

( k 1)
i

j 1

Notnd H ( k )

ai z
ij

(k )
j

 bi ,i 1,!, n

j i 1

y  z ( k ) obinem:
i 1

H i( k 1)   aiijH (j k 1) 


j 1

aiH

(k )
j

ij

j i 1

i 1

H i( k 1) d aiij H (jk 1)  aiij H (jk ) .


i 1

i 1 j i 1

i 1 j 1

Schimbnd ordinea de sumare obinem:


n 1

H i( k 1) d H (jk 1)


i 1

j 1

j 1

i j 1

aiij  H (j k ) aiij .
j 2

(12)

i 1

Introducem notaiile:
n

Dj

aiij ,E j

i j 1

j 1

ai ,D
ij

0,E1

0.

i 1

Din ipoteza (11) rezult c c max ^D j  E j  j 1! n` 1.


Revenind la inegalitatea (12) obinem:
n

i 1

j 1

H (jk 1) (1  D j )d H (jk ) E j .


innd seam c E j d c  D j d c  cD j
n

c(1  D j ) rezult:

( k 1)
j

i 1

(1  D j )d c H

(k )
j

(1  D j ) d " d c

j 1

adic lim H ( k )
k of

k 1

(0)
j

(1  D j ) o 0, k o f

j 1

0, H (0) .

Matricea de iteraie pentru metoda Gauss-Seidel aplicat sistemului


i
j (I  L
i )1U
i n care L
j este dat de M
i LD 1 ,
Ay b , notat M
i UD 1 ( A D  L  U ).
U
jH k ! M
j k 1H 0 i limH k
M

Din H k 1

k of

jk
0rezult lim M
k of

Matricea de iteraie pentru sistemul Ax b este:


( D  L) 1U ( D  LD 1D ) 1U
i ) 1U
i D D 1 M
jD
 D 1 ( I  L

[( I  LD 1 ) D]1UD 1D

astfel c:
Mk

j D o 0pentruk o f.
D 1 M

66

0.

Metode iterative pentru matrici simetrice i pozitiv definite

Considerm cazul sistemelor liniare cu matricea sistemului simetric i


pozitiv definit:

A = AT  matrice simetrica  aij = a ji i, j = 1,2,! n

a11 a12 a13 " a1n


a11 a21
a

a
21 a22 a23 " a2 n
12 a22
A = a31 a32 a33 " a3n = AT = a13 a23

#
# % #
#
#
#
a

a
n1 an 2 an 3 " ann
1n a2 n
Dac matricea A este simetric o putem scrie astfel:
A = AT  A = L  D  LT
unde
a11 0 "
0 a "
22
D = diag[a11 , a22 ,!, ann ] =
#
# %

0 "
0
0
0
0

0
0
0
0
0 LT =

#
#
#
0
0
an 3

0
Matricea A fiind pozitiv definit ( ( Ax, x) n
0
0
a
21 0
L = a31 a32

#
#
a
n1 an 2

"
"
"
%
"

a31
a32
a33
#
a3n

"
"
"
%
"

an1
an 2
an 3

#
ann

0
0
#

ann
a12 a13 " a1n
0 a23 " a2 n
0
0 " a3n

#
# %
#
0
0 " an1n

0
0 "
0
> 0 x R n , x z 0 ) este

nesingular i n plus:

aii
Avem urmtorul rezultat.

Aei , ei ! 0i

1,!, n

Lem
Fie A  u o matrice simetric i B  u o matrice nesingular
astfel nct matricea P = B  BT  A este pozitiv definit. Fie matricea
M = I n  B 1 A . Atunci raza spectral a matricii M este strict subunitar
dac i numai dac matricea A este pozitiv definit:
U (M ) < 1 A > 0

67

Folosind aceast lem deducem urmtorul rezultat de convergen


pentru metoda Gauss-Seidel pentru sisteme cu matrici simetrice i pozitiv
definite.
Teorem
Fie A  u o matrice simetric, nesingular, cu aii > 0 , pentru toi

i = 1,!, n i b  vectorul termenilor liberi. Atunci metoda lui GaussSeidel genereaz iruri convergente la soluia x* = A1b pentru orice
iteraie iniial x (0) dac i numai dac matricea A este pozitiv defnit .
Demonstraie: Din teorema de convergen avem:
x ( k ) o x* , k o fU ( M ) < 1
Dac matricea A se scrie sub forma:
A = L  D  LT
matricile B i C sunt date de:
B = L  D , C = B  A =  LT
Matricea iteraiei M este:
M = B 1C = B 1 ( B  A) = I n  B 1 A
ncercm s aplicm Lema de mai sus. Pentru aceasta verificm dac
matricea P este pozitiv definit:
P = B  BT  A = L  D  ( L  D)T  L  D  LT = D
n

( Px, x)

Rn

= ( Dx, x)

Rn

= ((aii xi )i ,( xi )i )

aii > 0 i ( Px, x)

Rn

= aii xi2
i =1

Rn

> 0 x R , x z 0 P > 0

Putem aplica Lema de unde deducem convergena irului construit cu


metoda Gauss-Seidel doar n cazul n care matricea A este pozitiv
definit:
x ( k ) o x* , k o fU ( M ) < 1 Apozitivdefinit

Metodele relaxrii

Fie A u o matrice real ptratic de dimensiune n , simetric,


A  AT i pozitiv definit, A!0 i b un vector real. Considerm
sistemul de ecuaii liniare:
Ax = b
Deoarece matricea A este pozitiv definit sistemul de mai sus are soluie
unic, x   A1b . Vom considera funcia f :  o  :

68

f ( y )  A( x  y ), x  y , y




Din faptul c matricea A este pozitiv definit avem:


f ( y )t0,y  i f ( y )! f ( x ),yz x
Prin urmare x este i unica soluie a problemei de minimizare:
min^ f ( y ); y  ` 0  f ( x )

Vom cuta soluia sistemului Ax = b , x   A1b ca fiind soluia


problemei de minimizare de mai sus folosind o metod de tip relaxare de
forma:
y (0)  dat, y ( k 1)  y ( k ) ck ei ,i ik k 0,1,!
y (jk 1)   y (jk ) , j zi, yi( k 1)   yi( k ) ck
Constanta ck se determin astfel nct f ( y ( k 1) ) f ( y ( k ) ) n sperana c
irul y ( k ) astfel construit converge la x . Notm cu r ( k ) b Ay ( k )
vectorul reziduu. Avem:
r ( k )  b Ay ( k )   Ax  Ay ( k )  A( x  y ( k ) )
f ( y ( k 1) )  A( x  y ( k )  ck el ), x  y ( k )  ck el

  f ( y ( k ) )ck A( x  y ( k ) ), el ck Ael . , x  y ( k ) ck2 Ael ,el


Avem:
A( x  y (k ) ), el   r (k ) , el  rl(k )

Ae ,x
l

 y ( k )   el , AT ( x  y ( k ) )  el , A( x  y ( k ) )  el , r ( k )  rl ( k )

Ael ,el 

all !0( $!0)

f ( y ( k 1) )  f ( y ( k ) )2ck rl ( k ) ck2 all


Pentru ca f ( y ( k 1) ) f ( y ( k ) ) este necesar i suficient s alegem ck astfel
ca:

r (k )
r (k )
ck2 all 2ck rl( k ) l(all !0)ck 0,2 l sau 2 l ,0
all

all

(k )
r
ck  Zk l ,cuZk 0,2
all
Metoda de relaxare obinut este urmtoarea:
rl ( k )

(0)
( k 1)
(k )
y  dat, y
 y Zk
el k 0,1,!,Zk 0,2
all
Pentru a aproxima x se deduce o clas de metode numite metodele
relaxrii successive. Aceste metode se obin aplicnd metodele de

69

relaxare de mai sus. Vom considera constanta Zk


de la un pas la altul. Vom construi un ir ^ x

l 1 y
l

2 y

(2)

n y

(n)

` 

Z ,k , neschimbat

astfel:

y (0) unvectordin dat

 x (0)
(1)

(k )

r1(0)
 y Z
e1
a11
(0)

r2(1)
 y Z e2
a22
(1)

#
l

y

( n 1)

rn( n1)
Z
en
ann

 x (1)   y ( n )
Trecerea de la iteraia k la iteraia urmtoare se face asrfel:
x ( k )
l 1 y
l

( kn 1)

2 y

( kn  2)

n y

( kn  n )

y ( kn ) 
y

( kn )

r1( kn )
Z
e1
a11
r2( kn1)
Z
e2
a22

y

( kn 1)

y

( kn  n 1)

#
l

rn( knn1)
Z
en
ann

x ( k 1)   y (( k 1) n ) ,k

Componenta xi( l 1) se calculeaz pentru l


xi( k 1)  yi( kni )   yi( kni 1)  Z

ri

0,1,2,!

i n algoritmul de mai sus:

( kn i 1)

aii

ei ,i 1, 2,!, n

Vectorul y ( kni 1) i ri ( kni 1) sunt dai n continuare:

70

y ( kni 1)

ri

( kn i 1)

x1( k 1)
( k 1)
x2
#

n
 xi(k11) ,ri ( kni 1)  b Ay ( kni 1) bi  aij y (jkni1)
i
(k )
j 1
x
i
#

x(k )
n
i 1

 bi  aij x

( k 1)
j

j 1

 aij x (jk )


j i


Acum putem scrie dependena componentelor vectorului
componentele vectorului x ( k ) :
x (0)   Z 0,2 date,

x ( k 1) de

i 1
n

( k 1)
b


a
x

aij x (jk ) ,i 1,2,!, n,k 0,1,2,!
i ij j

aii
j 1
j i

i 1
n

Z
xi( k 1)     Z ) xi( k )  bi  aij x (jk 1)  aij x (jk ) ,i 1,2,!, n,k 0,1,2,!
aii
j 1
j i 1

xi( k 1)   xi( k ) 

Metodele de mai sus poart numele de metodele relaxrii successive. Se


observ c pentru Z 1 obinem metoda Gauss-Seidel.
Rearanjnd formulele de mai sus avem:
i 1
n
aii ( k 1)
(1  Z )
( k 1)
( k 1)
(k )

a
x


x


B

x

a
x



ij j
aij x(jk ) bi   Cx(k )  b i
i
ii i
j 1

j i 1

Matricea A , fiind simetric poate fi scris sub forma:


00"0
a 0"0
21
T
,D diag > a ,a ,!,a @
A L  D  L cuL 
11
22
nn
#

an1an 2 "ann10
Cu aceste notaii, matricile B i C de mai sus pot fi scrise astfel:
1
1 Z
B L D,C 
DLT

Vom verific dac metodele relaxrii succesive se nscriu n clasa


general de metode iterative, adic vom verifica dac A B  C :

71

1
1Z
B  C L D
DLT  LD LT   A

Ne intereseaz n ce condiii irul x ( k ) construit cu o metod de relaxare


succesiv converge la soluia x   A1b cutat. Avem urmtoarea
teorem de convergen:
Teorem
Fie o matrice
A u , simetric,
A  AT cu det Az0 ,
aii ! 0,i 1,!, n , b un vector real i Z 0,2 . Atunci irul x ( k )

construit cu o metoda de relaxrii successive converge la soluia x a


sistemului liniar Ax = b oricare ar fi iteraia iniial x (0) dac i numai
dac matricea A este pozitiv definit.
x ( k ) o x ,k o fx (0)  Ax, x)!0x  U , x z 0
Demonstraie: Vom verifica dac raza spectral a matricii iteraiei este
subunitar folosind Lema. Avem:
M B 1C B 1 B  A  I n B 1 A
1
1
B L  D,detB  n a11a22 " ann z0(aii !0,i )

Matricea A este simetric iar matricea B este nesingular. Pentru a fi


ndeplinite ipotezele Lemei trebuie s verificm c matricea P este
pozitiv definit:
1
1
2 Z
P B  BT  A L  DLT  DLDLT  
D

Px, x 

(2  Z )

(2  Z )

i 1

 aii xi2 !0 xz0

! 0 avemaii ! 0,i )Z 0, 2 

Toate ipotezele lemei sunt ndeplinite, prin urmare avem convergena


dorit.

72

Valori i vectori proprii


Definiie
Fie A nun . O  se numete valoare proprie a matricii A dac exist
un vector x n ,x z 0 astfel ca
Ax O x.
Vectorul x se numete vector propriu corespunztor valorii proprii .

Pentru existena vectorului x z 0 este necesar i suficient ca matricea


A  O I s fie singular , adic det( A  O I ) = 0.
Polinomul de grad n:
p A O det O I n  A
se numete polinom caracteristic al matricii A.
Propoziia 1
Fie rdcinile polinomului caracteristic O1 , O2 ,!, On distincte Oi z O j
pentru 1 d i  j d n i x1 , x2 ,!, xn vectorii proprii corespunztori. Atunci
vectorii x1 , x2 ,!, xn sunt liniar independeni.
Demonstraia se face prin inducie. Pentru n=2 fie combinaia
D1 x1  D 2 x2 0.
(1)
Aplicnd A obinem:
A(D1 x1  D 2 x2 ) D1 Ax1  D 2 Ax2 D1O1 x1  D 2O2 x2 0 .
(2)
Prin ipotez O1 z O2 . Considerm valoarea proprie nenul, fie aceasta O1.
Din (1) nmulit cu O1 sczut din (2) obinem:
D 2 O2  O1 x2 0D 2 0,
iar din (1) rezult D1 0. Deci x1 , x2 sunt liniar independeni.
Considerm propoziia adevarat pentru k > 2, adic
k

D x

0D j

i i

0, j 1,!, k .

(3)

i 1

Pentru k+1 considerm combinaia liniar:


k 1

E x

i i

0.

(4)

i 1

Aplicnd A obinem:
k 1

E O x

i i i

i 1

Din (4),(5) , pentru Ok 1 z 0 , rezult:

73

0.

(5)

O  O E x
i

k 1

i i

i 1

n virtutea ipotezei inductive rezult:


Oi  Ok 1 E i 0,i 1,!, k .
innd seam c Oi z Ok 1,i 1,!, k , rezult E i 0,i 1,!, k , iar din (4)
innd seama c xk 1 z 0 avem i E k 1 0. Deci din (4) rezult
E i 0,i 1,!, k  1, deci vectorii proprii x1 , x2 ,!, xk 1 sunt liniar
independeni.
Propoziia 2
Fie valorile proprii Oi ale matricii A nun distincte. Atunci exist o
matrice nesingular T astfel ca:
T 1 AT diag{O1 , O2 ,!, On } .
Demonstraie. Fie x1 , x2 ,! xn vectorii proprii ai matricii A. Considerm
matricea T ale crei coloane sunt vectorii proprii xi , T > x1 x2 ! xn @ .
Deoarece vectorii proprii sunt liniar independeni conform propoziiei 1
rezult c matricea T este nesingular. Vom avea:
AT > Ax1 Ax2 ! Axn @ > O1 x1O2 x2 !On xn @ T .diag > O1O2 !On @ .

nmulind cu T 1 obinem concluzia propoziiei 2.


Definiie
Matricile A i B sunt asemenea notaie A  B dac i numai dac exist

o matrice nesingular T (det T 0) astfel ca A TBT 1.


Propoziia 3

A  B pA O

pB O .

Demonstraie.
p A O det(O I  A) det O I  TBT 1 det OTT 1  TBT 1
det T O I  B T 1 det(T )det O I  B det T 1

pB O

Propoziia 3 ne spune c matricile asemenea au aceleai valori proprii.


Teorema lui Gershgorin
Fie A  uiO o valoare proprie oarecare a matricii A. Atunci:
i0 ^1,2,!, n`astfelnct O  ai0i0 d ri0 ri0

i0 j

j 1
j z i0

(Valoarea proprie O se afl n cercul din planul complex de centru


ai0i0 irazri0 .)
74

Demonstraie. Fie O o valoare proprie a matricii A i x z 0 un vector


propriu corespunztor valorii proprii O, Ax O x. Avem:
n

O xi

aii xi  aij x j (O  aii ) xi


j 1
j zi

Fie i0 astfel ca xi0

i0 j

j 1
j zi0

a x ,i
ij

1,!, n.

j 1
j zi

max ^ xk ; k 1,! , n` ! 0  x z 0).

Vom avea O  ai0i0

xj
xi0

d ai0 j
j 1
j di0

xj
xi0

d ri0 ,inndseamac

xj
xi0

d 1.

Observaie. Presupunem c matricea A are n vectori proprii liniar


independeni x1 , x 2 ,!, x n asociai valorilor proprii O1 , O2 ,! On . Fie
x1 x 2 ! x n . Datorit independenei vectorilor x k rezult c
matricea U este nesingular i avem:
/ diag > O1 , O2 ,!, On @
U 1 AU /.
U

Considerm matricea perturbat A H


vom avea: U 1 A H U

A  H B. Notnd cu C U 1BU

/  HU 1BU

/  HC .

innd seama c matricile A H iU 1 A H U  sunt asemenea rezult c


vor avea aceleai valori proprii Oi H . Aplicm teorema lui Gershgorin i
obinem:
n

O H  Oi  H cii d H cij  O H  Oi

' H .

j 1
j zi

Metoda lui Jacobi pentru aproximarea valorilor proprii ale unei


matrici simetrice
Propoziie
Fie A  u , A AT . Atunci toate valorile proprii ale matricii A sunt
numere reale.
Demonstraie. Fie O i x n , x z 0 Ax O x. Considerm produsul
2

Ax, x O x, x O x 2 .
Dar Ax, x x, AT x x, Ax Ax, x  Ax, x 
Ax, x   .
O
scalar:

2
2

75

astfel c:

Algoritmul lui Jacobi

Se consider matricea A  u , simetric  A AT . Matricea A are


valorile proprii reale, O1 , O2 ,!, On  . Prin algoritmul lui Jacobi se
construiete un ir de matrici

^ A ` 
k

, simetrice, asemenea cu

matricea A, astfel ca:


T

A k

k
k of
(k )
k
o/ diag > O1 , O2 ,!, On @.
A , A  A A 
k
n construcia matricilor A se vor utiliza matrici de rotaie plan
R pq T astfel:

A,

A k 1

R pk qk T k A k RTpk qk T k ,k

0,1,!!

Matricile A  sunt asemenea cu matricea A. Procedm prin inducie:


1
A R p1q1 (T1 ) ARTp1q1 T1 R p1q1 (T1 ) AR p11q1 T1
k

Presupunem c A k  A V  u ,det V z 0,VAV 1


A
Notnd W

k 1

R pk qk T k A RTpk qk T k

R pk qk T k VAV 1R pk1qk T k .

R pk qk T k V  vom avea A

A k . Atunci:

k 1

WAW 1deci A

k 1

 A.

Vom demonstra de asemenea prin inducie c matricile A sunt


T
0
0
simetrice. Pentru k=0 avem A A AT A conform ipotezei
iniiale.
T
T
RT T T A k T RT T
A k 1
R p q T k A k RTp q T k
pk qk
k
k k

kk

pk qk k

R pk qk T k A RTpk qk T k A .
Deteminarea la fiecare pas a direciilor p,q se face cutnd elementul
nediagonal de modul maxim :
k 1

a pqk

max aij k ;i, j 1,!, n,i z j

sau, innd seama de simetria matricii A :


k

a pqk  max aij k ;i 1,!, n  1, j i  1,!, n .

Determinarea parametrului T k rezult din condiia:


a pq

k 1


aqp

k 1

Notm elementele matricii R pk qk T k 


76

0.

r 
ij

rij

G ij i, j

cos T k i

sin T k i
 sin T i
k

k 1

aij

1,!, n,i z pk , qk ; j z pk , qk .


pk , i

pk , j

qk ,

qk , j

pk .

qk 

 r a r
il

k
lm



jm

l 1 m 1

Pentru
p pk ,q

simplificarea
calculelor
vom
qk ,c cos T k ,s sin T k , i vom obine:

nota

k 1
k
aij aij , i, j 1,!, ni z p, q j z p, q,
k 1
k
k
a pj ca pj  saqj ,j 1,!, n, j z p, q,
k 1
k
k
aqj  sa pj  caqj ,j 1,!, n, j z p, q,
k 1
k
k
a jp ca jp  sa jq ,j 1,!, n, j z p, q,
k 1
k
k
a jq  sa jp  ca jq ,j 1,!, n, j z p, q,
k 1
k
k
k
a pp  c 2a pp  2csa pq  s 2aqq
,
k
k
k 1
k
aqq
 s 2a pp  2csa pq  c 2aqq
,
k 1
a pq

Din condiia a pq

k 1

k
k
k 1
k
aqp
 cs aqq
 a pp  c 2  s 2 a pq .

0 rezult:


a pp  aqq
k

cos2 T  sin 2 T
ctg 2T .
2sin T cos T

2a pq
k

n relaia de mai sus am presupus a pq z 0. Dac aceast ipoteza nu ar fi


ndeplinit, innd seam de definiia lui:
k

a pq  max aij ;i 1,!, n  1, j i  1,!, n


k

ar rezulta c toate elementele nediagonale ale matricii A sunt nule


adic aceast matrice ar fi diagonal i valorile proprii sunt determiante:
k

O j a jj  j 1,!, n,
k

ceeace ncheie algoritmul.


k
k
Dac a pp aqq
atunci T k S / 4,s c

77

2 / 2.

Notm:

a pp  aqq
k

D
c2  s2
2cs

Din ecuaia D

2a pqk

,t

tg T k .

1 t2
t 2  2D t  1 0 avem rdcinile:
2t

t1,2 D r D 2  1.
Dintre cele dou rdcini , cu produsul t1t2 1, o vom alege pe aceea cu
modulul subunitar adic:

D  sign D D 2  1  T k  S / 4.


Calculele pentru obinerea valorilor a pp ,aqq
k 1

k 1
k
a pp  a pp

a pq
k

se pot simplifica:

k
k
k
 1 a pp  s 2aqq
 2csa pq


s 2 aqq
 a pp  2csa pq
k

k 1

s2

k
k
s2  c2
2a pq  2a pq
2cs

k
s3  sc 2  2c 2 s
ta pq .
c

Obinem astfel:
k 1
k
k
k
k 1
k
a pp a pp  ta pq aqq
aqq
 ta pq .

Propoziie
irul de matrici construite cu algoritmul lui Jacobi converge la o
matrice diagonal / diag[O1 , O2 ,! On ].
Demonstraie. Notm:

a k S k
ij

i 1 j

i 1 j
j zi

k 1

a k ,D k
ij

Datorit faptului c matricea A


se obine din matricea A
k 1
k
nmulire cu matrici ortogonale vom avea T T ,k 0,1,!
Din relaiile:

78

a k .
ii

1
k

prin

a k 1  a k 1
pp qq

a k  ta k  a k  ta k
pp
qq
pq
pq

a k  a k  2t 2 a k  2t.a k a k  a k
pp qq
pq
pq pp
qq

a k  a k  2t 2 a k  2. a k 1  t 2
pp qq
pq
pq

a k  a k  2 a k .
pq
pp qq


i
2

a a ,i
k 1
ii

k
ii

1,! n,i z p, q,

rezult:

k 1

Din definiia elementului a pk q k


k

k
D  2 a pk qk .

rezult:

a k t S

pk qk
n(n  1)

iar din relaiile:

k 1

k 1

D

k 1

D

k
 2 a pk qk

k
 2 a pk qk

rezult:
S

k 1

dS

2
2
0
1 
d ! d S 1 

n
n
n
n


1
1



sau
k
k of
S 
o 0.

79

k 1

Algoritmul Jacobi pentru valori proprii:


k=0 , k_max numrul maxim de iteraii admis;

a pq

max aij ;i 1,!, n  1, j i  1,!, n ;

while a pq ! H ik d k_max


a pp  aqq
<D
;
2a pq
<t D  sign D D 2  1;
1
<c
;s c * t;
1 t2
<for j 1, n, j z p, q
u a pj ;

a pj ca pj  saqj ;

aqj  su  caqj ;
a
jp a pj ;a jq aqj ;
<a pp a pp  t a pq ;aqq aqq  t a pq ;
<a pq aqp 0;

< a pq  max aij ;i 1, n  1, j i  1, n ;

80

Forma superioar Hessenberg


Definiie
Spunem c o matrice H   u este n form suprioar Hessenberg dac:
hij 0,i 1,!, n, j 1,!, i  2
O matrice n form Hessenberg arat astfel:
h11h12 h13 "h1n1h1n

h21h22 h23 "h2 n1h2 n


h32 h33 "h3n1h3n
H

0h43 "h4 n1h4 n


#

0"hnn1hnn
Ne intereseaz un algoritm care s transforme o matrice ptratic A
oarecare ntr-o matrice Hessenberg superioar H care s aib aceleai
valori proprii:
i P
i 1,P
i matricenesingular .
AoH a..H$+ PA

Algoritmul este o adaptare a algoritmului lui Housholder i se desfoar


n (n-1) pai, folosind matricile de reflexie pentru a transforma matricea.
Pas 1: se efectueaz operaiile A P1 AP1 (matricea P1 se alege astfel
ca coloana 1 s fie transformat n form superior Hessenberg)
Pas 2: A = P2 AP2 P2 ( P1 Ainit ) P2 ( P2 transform coloana 2 n form
superior Hessenberg fr s schimbe coloana 1)
Pas r : A Pr APr Pr ( Pr 1 " P1 Ainit P1 " Pr 1 ) Pr (se transform
coloana r n form superior Hessenberg fr s schimbe primele
(r  1) coloane)
Pasul r (r=1,2,,n-2)
La intrarea n pasul r matricea A are primele (r-1) coloane n
form superior Hessenberg. La ieirea din pasul r matricea A va avea
primele r coloane n form superior Hessenberg:
Aies  Pr  Aintr Pr , Aies  Aintr

Pr = I n  2v r (v r )T , v r R n , || v r ||2 = 1
Vectorul v r se alege astfel ca matricea Aies s aib coloana r n form
superior Hessenberg i s nu schimbe primele r-1 coloane ale matricii
Aintr .

81

Calculul matricii Pr

Pentru simplitate vom nota Pr = P , v r = v . Coloana r a matricii A i


noua coloan r au urmtoarea form:
a1r a1r

a
1r
a
a
2
r

2r
a
2
r
#

a rr arr

arr

a
k
Aer = ar 1r o ( PA)er Aer = r 1r

ir
0

#
anr

Aplicnd proprietatea matricilor ortogonale


(Q  u ,x  __ Qx ||2 __ x ||2 ) pentru matricea Q = P i vectorul
x = Aer avem:
|| PAer ||22 = a12r  a22r  "  arr2  k 2 =
|| Aer ||2 = a12r  a22r  "  arr2  ar21r  "  air2  "  anr2
Din relaia de mai sus rezult:
n

k 2 = V = ar21r  "  air2  "  anr2 =

2
ir

k =r V

i = r 1

Determinarea vectorului v ce definete matricea P se face astfel:


( PA)er = ( I n  2vvT )( Aer ) = Aer  2(vvT )( Aer ) = Aer  2v(vT ( Aer )) =

 Aer  (2D )v = Aer  u


unde cu D i u am notat:
D := vT ( Aer ) ( Aer ), v  a1r v1  a2 r v2  "  air vi  "  anr vn

82

a1r

a1r 0

#
#
#


arr

arr 0


ar 1r
k arr  k


u := (2D ) v = Aer  ( PA)er =
=
#

# #


a
0
air

ir
#

# #

a
a
0
nr

nr
Cu aceste notaii matricea P devine:
1
1
1
1
P = I n  2( )u( )u T = I n  ( 2 )uu T  I n  uu T cuE : 2D 2
E
2D
2D
2D
Pentru a cunoate matricea P trebuie s mai determinm constanta E .
Din condiia:
1
1
|| v ||22 = 1||
u ||22 = 1 2 || u ||22  12E =|| u ||22
2D
4D
avem:
|| u ||22 (ar 1r  k ) 2  "  air2  "  anr2 =
 ar21r  "  air2  "  anr2  2kar 1r  k 2 =
 V  2kar 1r  V = 2(V  kar 1r )
de unde obinem:
E = V  kar 1r
Vom alege semnul constantei k astfel nct E s fie ct mai mare
posibil deoarce constanta E apare n operaia de mprire. Avem:
E "mare"oE = V  kar 1r t V (V t 0)osemnk = semnar 1r
Ce nseamn E = 0 ?
1
E = || u ||22 = 0o|| u ||22 = 0o u= 0oar 1r k ,!,air 0,!,anr = 0
2

k i semnk = semnar 1r obinem:


air = 0,i = r  1,!, n
adic avem coloana r n form superior triunghiular, caz n care se
trece la pasul urmtor.
Descriem mai jos cum se efectueaz operaia A := Pr A fr a face
nmulire matricial. Vom pune n eviden schimbrile n raport cu
coloanele.
Cum ar 1r

83

( PA)e j

(In 

  Ae j 

uu T )( Ae j )

Ae j 

u (u T ( Ae j )) = Ae j 

(uu T )( Ae j ) 

Jj
u
E

unde
a1 j 0

a2 j 0

#
#

,
J j := u T ( Ae j ) = (
) =
ar 1 j ar 1r  k 

a anr

nj
 ar 1 j (ar 1r  k )  "  aij air  "  anj anr =
n

 ui aij =


i =1

u a

i ij



i = r 1

(ui = 0, i = 1,!, rur 1 ar 1r  k ,ui = air , i = r  2,!, n)


Noua coloan j se obine din vechea coloan j din care scdem vectorul
u nmulit cu constanta J j . Ne intereseaz ca primelor (r  1) coloane s
nu li se schimbe forma superior Hessenberg deja obinut. Pentru
j = 1,!, r  1 avem:
a1 j
0

#
0

a j 1 j
#

a j 2 j = 0 0
T
)
J j : u ( Ae j ) (

,

a
k

#
1
r
r


ar 1 j = 0 ar  2 r

#
#

a = 0 anr

nj

a1 j 0  "  a j 1 j 0  "  0(ar 1r  k )  "  0air  "  0anr = 0
Din faptul c J j = 0 , j = 1,!, r  1 rezul c primele r  1 coloane
ale matricii A nu se schimb ca urmare a n mulirii A := Pr A , rmn n
form superior Hessenberg.
Algoritmul de trecere de la matricea A la matricea Pr A este urmtorul:

84


Ae j pentru j = 1,!, r  1

( Pr A)e j = (a1r , a2 r ,!, arr , k ,0,!,0)T pentru j = r




J
Ae j  j upentru j = r  1,!, n
E

cu
n

J j = ( Ae j , u )  =

u a

i ij

i = r 1

ui = 0, i = 1,!, r , ur 1 = ar 1r  k , ui = air , i = r  2,!, n


Vom descrie n continuare cum se efectueaz operaia A : APr fr a
face nmulire matricial (matricea A este cea obinut mai sus avnd
primele r coloane n form superior Hessenberg). Vom arata c aceast
operaie nu schimb forma superior Hessenberg obinut. Vom pune n
eviden transformrile liniilor matricii A. Pentru i 1,!, n avem:
1
eiT ( AP) noualinieiamatricii AP  eiT A)( I n  uu T )

 eiT A 

(eiT A)u u T eiT A 

Ji T
u
E

unde

J i  (eiT A)u air 1ur 1  "  ainun


Elementele liniei i se schimb astfel:
aij

aij 

Ji
u , j r  1,!, n,i 1,!, n
E j

Din aceast relaie deducem c operaia A : APr nu modific primele r


coloane ale matricii A, ele rmnnd n form superior Hessenberg.

85

Algoritmul de obinere a formei superior Hessenberg


forr 1,!, n  2

construciamatriciiPr constantaE ivectorulu


n

xV =

a

2
ir

i = r 1

xif (V dH )break;//r


xk = V ;
xif (ar 1r !0)k

r  1lPr

In

k ;

xE  V k ar 1r ;


xur 1

ar 1r  k ;ui

air ,i r  2,!, n;

 A Pr A
transformareacoloanelor j
xfor j

r  1,!, n

r  1,!, n

J (J j / E ) ( Ae j , u ) / E = ( ui aij )/E ;


i = r 1

fori r  1,!, n

a  a J u ;
ij
ij
i

transformareacoloaneiramatricii A
xar 1r  k;air  i r  2,!, n;

 A  A Pr
transformarealiniilori 1,!, n
xfori 1,!, n
n

T
J
(
J
/
E
)
((
e
A
)
u
)
/
E
=
(


u j aij )/E ;
i
i

j = r 1

for j r  1,!, n

a  a J u ;
ij
ij
j



86

Algoritmul QR de aproximare a valorilor proprii ale unei matrici


oarecare

Prezentm n continuarecel mai folosit algoritm de aproximare a


valorilor proprii pentru matrici ptratice oarecare.
Spunem c o matrice S   u este n form Schur real dac matricea
S este n form superior Hessenberg i n plus este bloc-diagonal:
S11S12 "S1 p

S22 "S 2 p

#

0"S
pp

blocurile Sii sunt astfel ca:


- Sii  - este valoare proprie real
- Sii  2u2  - este bloc corespunztor valorilor proprii complexe
Valorile proprii corespunztoare blocului:
O -a b
ab
Sii 
 2u2 suntrdcinileecuaiei
 O -a)(O -d)-bc=

-cO -d
cd
Se presupune c aceast ecuaie de gardul 2 are rdcini complexe.
Algoritmul QR de aproximare a valorilor proprii construiete un ir de
matrici A( k )  u , matrici asemenea cu matricea A, A( k )  A,k , ir
care converge la o matrice n form Schur real, A( k ) o S ,k o f .
Matricea limit
S este asemenea cu matricea A, valorile prorii ale matricii S fiind uor de
calculat. irul A( k ) se construiete astfel:
A(0) : A, A(0) Q0 R0 (descompunereaQRcalculatpentrumatricea A(0) )
A(1) : R0Q0 , A(1)

Q1R1(descompunereaQRcalculatpentrumatricea A(1) )

A(2) : R1Q1
#

A( k )

Qk Rk (descompunereaQRcalculatpentrumatricea A( k ) ),

A( k 1) : Rk Qk ,k

0,1,2,!

Matricile Qk sunt matrici ortogonale ( Qk1 QkT ) iar matricile Rk sunt


superior triunghiulare.
Matricile A( k ) i A( k 1) sunt asemenea:

87

QkT | A( k )

Qk Rk Rk

QkT A( k )

A( k 1)  Rk Qk QkT A( k )Qk  A( k 1)  A( k ) ,k


Matricile irului construit sunt toate asemenea prin urmare au aceleai
valori proprii anume cele ale matricii iniiale A A(0) :
A A(0)  A(1)  "  A( k )  "  S
Dac matricea A( k ) este n form superioar Hessenberg, atunci
descompunerea QR realizat cu algoritmul lui Givens se simplific.
Reamintim algoritmul lui Givens:
Rn1n (T n1n )" R pn (T pn )" R pp 1 (T pp 1 )" R1n (T1n )" R12 (T12 ) A R
Dac matricea A este n form Hessenberg n algoritmul lui Givens, din
cele n(n-1)/2 nmuliri cu matrici de rotaie rmn doar (n-1):
Rn1n (T n1n )" R pp 1 (T pp 1 )" R23 (T 23 ) R12 (T12 ) A R .
Problema care se pune este dac pornind cu o matrice n form
Hessenberg, toate matricile irului rmn n form Hessenberg:
A( k ) (nformHessenberg) H QR(cuGivens) ?
A( k 1)
Avem:

RQ QT A( k )Q QT HQestetotnformHessenberg"

QT HQ

RR12T (T12 )" RrrT 1 (T rr 1 )" RnT1n (T n1n )

Notm cu:

RR12T (T12 )

pentru care avem:


ri1 0,i 2,!, n
r i1 cri1  sri 2 ,i
r i1 0,i 3,!, n



r i 2  sri1  cri 2 ,i ri 2 0,i 3,!, n r i 2 0,i 3,!, n


deci coloana 1 se transform n form Hessenberg iar coloana 2 rmne in
form suprior triunghiular. La pasul p avem:
RR12T (T12 )" RTp1 p (T p1 p ) RTpp1 (T pp1 ) RiRTpp1 (T pp1 ) R,

i
R

RR12T (T12 )" RTp1 p (T p 1 p )


i are primele (p-1) coloane n form Hessenberg iar restul
matricea R
coloanelor sunt n form superior triunghiular. Vom arata c la acest pas
matricea R va avea primele p coloane n form Hessenberg iar restul
i RT (T )
coloanelor n form superior triunghiular. Operaia R R
pp 1
pp 1
presupune doar schimbarea elementelor coloanelor p i p+1:

88

r ip cr ip  sr ip 1,i


r ip 0,i p  1,!, n



r ip 1  sr ip  cr ip 1,i r ip 1 0,i p  2,!, n


.
r ip 0,i p  2,!, n

r ip  2 0,i p  2,!, n
Observm din relaia de mai sus c n matricea R coloana p are form
Hessenberg iar coloana p+1 rmne n form superior triunghiular
(celelalte elemente din matrice nu se modific).
Prin urmare dup pasul n-1 matricea H   A( k 1) este n form superioar
Hessenberg. Algoritmul QR de aproximare a valorilor proprii folosind
descompunerea Givens pstreaz forma Hessenberg.
Algoritmul QR pentru valori proprii
seaducematricea AlaformaHessenberg
T

x$ Q AQ ;


xk 0;
xwhile( AzformaSchurreal)
x A QR;//secalculeazcualgoritmulGivens

x A RQsauQT AQ;


xk k  1;


n practic se presupune c matricea A este n form Hessenberg
neredus, adic:
aii 1 z 0i 2,!, n
Dac matricea nu este n form neredus, problema se decupleaz:
A  A12 p
 n  2
A 11
n  p, p n  1sau

A
A
21
22
 pn  p

89

Varianta algoritmului QR cu deplasare (shift) simpl


Algoritmul cu deplasare simpl este urmtorul:
T

x$ Q AQ ;aducerealaformaHessenbergneredus


xk 0;
xwhile( AzformaSchurreal)
x A d k I n QR;//secalculeazcualgoritmulGivens

x A : RQ d k I n ;
xk k  1;


d k  sunt constantele de deplasare. Dac A  d I n QR ( A( k ) ) i

A RQd I n  ( A( k 1) ) se pune problema dac cele dou matrici sunt


asemenea ( A  A ) (irul de matrici construit cu pasul QR cu deplasare
simpl au aceleai valori proprii).
A QT QRQ  d QT Q QT (QR  d I n )Q QT AQ A A
Varianta cu deplasare se efectueaz pentru a accelera convergena
algoritmului. Dac O1 , O2 ,, On sunt valorile proprii ale matricii A
ordonate astfel ca:
O1 d t O2 d t " t On d
Rapiditatea cu care a (pk)1 p o 0,k o f este dat de rata de convergena a
k

O p 1  d
. Dac se alege d |On convergena an( k1) n o 0 este
expresiei
Op  d
rapid. Avem urmtoarul rezultat:
Teorem
Fie d o valoare proprie a unei matrici Hessenberg nereduse H. Dac
H RQ  d I n , unde matricile Q i R sunt provin din descompunerea QR
a matricii H  d I n QR . Atunci:

h nn1 0,h nn d
(algoritmul QR cu deplasare simpl gsete valoarea proprie d ntr-un
singur pas).
Euristic s-a constatat c la fiecare pas, cea mai bun aproximare a unei
(k )
valori proprii este ann
.

90

Algoritmul QR cu deplasare simpl


T

x$ Q AQ ;aducerealaformaHessenbergneredus


xk 0;
xwhile( AzformaSchurreal)
x A ann I n QR;//secalculeazcualgoritmulGivens

x A : RQ ann I n ;
xk k  1;


Varianta algoritmului QR cu deplasare (shift) dubl
n cazul cnd valorile proprii a1, a2 corespunztoare blocului:
amm amn
G
,m n  1
amn ann
sunt complexe, a1 ,a2 , abordarea cu deplasare simpl nu mai asigur
accelerarea convergenei. Avem:
det(OI 2  G ) (O  a1 )(O  a2 ) (O  amm )(O  ann ) amn anm

 O 2  (a1  a2 )Oa1a2


a1  a2

O 2  (amm  ann )Oamm ann  amn anm

amm  ann ,a1a2  amm ann  amn anm 

Algoritmul QR cu deplasare dubl const n trecerea de la matricea


A A( k ) la matricea A2 A( k 1) realiznd doi pai cu deplasare simpl,
A A1 (deplasare simpl a1), A1 A2 (deplasare simpl a2):
A  a1I n  Q1R1
 A1 R1Q1  a1I n
A1  a2 I n

Q2 R2

 A2  R2Q2  a2 I n
Fie matricea:
M : Q1Q2 R2 R1  Q1 Q2 R2 R1 Q1 A1  a2 I n R1 Q1 Q1T AQ1  a2 I n R1 
 Q1Q1T AQ1R1a2Q1R1  $  a2 I n Q1R1  $  a2 I n  $  a1I n
M

Q1Q2 R2 R1   $  a2 I n  $  a1I n

A2  (a1  a2 ) A  a1a2 I n

Avem urmtoarele relaii de asemnare:


A  A1 Q1T AQ1  A2 Q2T A1Q2 Q2T Q1T AQ1Q2
A2

Q1Q2

A Q1Q2  QT AQ,Q : Q1Q2

91

Q1Q2

A Q1Q2

Matricea Q care asigur trecerea de la matricea A la matricea A2 este


matricea
ortogonal
din
descompunerea
QR
a
matricii
M $  a2 I n  $  a1I n . Pasul QR cu deplasare dubl se face urmnd
etapele:
(a) se calculeaz matricea M A2  s$ pI n  cu
s=a1+a2=amm+ann, p=a1a2=amm ann-amnanm ;
(b) se calculeaz descompunerea QR a matricii M;
(c) A2:=QTAQ.
Vectori proprii

Considerm dou matrici asemenea A i B:


A  B A PBP 1,Pmatricenesingular
tim c cele dou matrici au acelai polinom caracteristic,
p A (O ) { pB (O ) , deci au aceleai valori proprii. Ne intereseaz care este
legtura ntre vectorii proprii asociai aceleiai valori proprii. Fie x vector
propriu asociat valorii proprii O pentru matricea A i w vector propriu
asociat valorii proprii O pentru matricea B. Care este relaia ntre x i w?
Ax O x,Bw O w, A PBP 1PBP 1 x O xBP 1 x OP 1 x
w P 1 x, x Pw
Metoda lui Jacobi de aproximare a valorilor proprii ale unei matrici
simetrice poate fi descris astfel:
R pk qk (T pk qk )" R p1q1 (T p1q1 ) ARTp1q1 (T p1q1 )" RTpk qk (T pk qk ) /
(1)
unde indicii ( pk , qk ) sunt alei la pasul k la care s-a atins precizia dorit:
/|diag > O1 , O2 ,!, On @
Notm cu U urmtoarea matrice ortogonal:
U RTp1q1 (T p1q1 ) RTp2q2 (T p2q2 )" RTpk qk (T pk qk ),U TU

(2)
UU T

In

Din relaia (1) avem:


U T AU  /UU T AU U / AU U /
Punem n eviden coloanele matricii U, U x1 , x 2 ,!, x n . Din relaia
AU=/U i relaia (2) obinem:
A x1 , x 2 ,!, x n | x1 , x 2 ,!, x n diag > O1 , O2 ,!, On @ Axi |Oi xi ,i 1,!, n
Prin urmare coloanele matricii U, vectorii xi, sunt aproximri ale
vectorilor proprii pentru matricea A.
Pentru a calcula valorile i vectorii proprii cu metoda Jacobi se
procedeaz astfel:
92

U

In;

k

0;

while( A zmatricediagonal)
 A : R pq (T pq ) ARTpq (T pq );

U : URTpq (T pq );

k k  1;
La sfritul acestui algoritm, n matricea A vom avea matricea / care
aproximeaz valorile proprii ale matricii A, iar n U se va gsi matricea ce
aproximeaz vectorii proprii, RTp1q1 (T p1q1 )" RTpk qk (T pk qk ).

93

Descompunerea dup valori singulare


(Singular Value Decomposition)
Teorem
Fie A  mun . Atunci exist o matrice ortogonal ptratic de dimensiune
m, U  mum , o matrice ortogonal ptratic de dimensiune n, V  nun i
constantele pozitive V1tV2t}tVr>0, rd min{m,n} astfel ca:
Dru( nr )
A U 6V T ,6  mun ,6
,

0
(1)

m  r )u( n  r )
( mr )ur

D  rur ,D diag >V 1 ,},V r @


Constanta r este chiar rangul matricii A, r=rang(A).
Constantele V1,V2,},Vr poart numele de valori singulare ale matricii A.
Folosind relaia (1) avem:

AT
AAT

T T

U 6V

V 6TU T ,

U 6V TV 6TU T  U 66TU T U / m U T ,

/ m

66

D 2 ru( mr )
mum

 
0( mr )ur 0( mr )u( mr )

AT A V 6TU TU 6V T  V 6T 6V T V / n V T ,
D 2 0ru( nr )
nun
/ n 6 6
 
0( nr )ur 0( nr )u( nr )
innd cont de ortogonalitatea matricilor U i V, putem rescrie relaiile
de mai sus astfel:
( AAT )U  U / m ,/ m  diag V 12 ,V 22 ,!,V r2 ,0,!,0  mum
T

( AT A)V  V / n ,/ n  diag V 12 ,V 22 ,!,V r2 ,0,!,0  nun

Din aceste relaii deducem c V 12 ,V 22 ,!,V r2 sunt valorile proprii strict
pozitive ale matricilor AAT i/sau ATA iar matricile U i V sunt matrici ale
cror coloane sunt vectorii proprii asociai. Matricile AAT i ATA sunt
matrici simetrice:
T T

T T

AA A

AT

AAT , AT A

AT AT

AT A

A u, A u,
T

AT u

u, u

i au toate valorile proprii nenegative:


T

AA u
T

Ou AAT u , u

Ou, u  O

2
2

t0

Pentru a gsi matricile U, V i valorile singulare V1,V2,},Vr putem folosi


metoda lui Jacobi de aproximare a valorilor i vectorilor proprii pentru
94

matrici simetrice.
Putem folosi descompunerea dup valori singulare pentru a defini
pseudo-inversa unei matrici oarecare (nzm). Lucrnd formal, avem:

A U 6V T , A1

T 1

U 6V

T 1

6?1U 1 V 6 ?1U T

Rmne de definit matricea 6?1 . Urmnd acest raionament se definete


pseudoinversa Moore-Penrose a unei matrici A  mun astfel:
D 1ru( mr )
I
I T
I
I
Uu m
Uum
A V 6 U , A  ,6
 ,
0( nr )ur  nr )u( mr )
1
1
diag ,}, .
Vr
V1
Pseudoinversa definit mai sus satisface urmtoarele proprieti:
D 1  rur ,D 1
I

A 
I

 A,A  mun ; AT 

I T

,A  mun

Exist o proprietate care nu mai este satisfcut de psudoinvers dei este


respectat de inversa clasic:
I
 A,Ba.. AB zB I AI .
Descompunerea dup valori singulare poate fi utilizat i pentru
rezolvarea sistemelor liniare cu matrici oarecare (numrul liniilor z
numrul coloanelor):
Ax b, A  mun ,b  T , x :  AI b  U .

95

Rezolvarea ecuaiilor neliniare


Fie f : > a, b @ o  o funcie continu pe intervalul > a, b @ astfel ca
f (a) f (b)0 . n aceste condiii tim c exist x  a, b astfel ca
f ( x ) 0 . n cele ce urmeaz ne propunem s aproximm soluia x a
ecuaiei neliniare f ( x) 0 .

Metoda biseciei (a njumtirii intervalului)

Pentru a aproxima soluia x cutat, vom construi un ir de intervale


> ak , bk @ ce satsifac:
x > ak , bk @
> ak 1 , bk 1 @> ak , bk @
bk ak
2
Pentru
primul interval vom considera: a0  a,b0  b,k  0 .
Considerm punctul c din mijloc al intervalului > ak , bk @ :
a  bk
c  k

Avem urmtoarele 3 variante:
1. f (c) 0 - caz n care am gsit soluia cutat, x c , algoritmul de
oprete;
2. f (ak ) f (c)0 ceea ce nseamn c soluia se gsete n intervalul
ak , c i vom continua procedeul cu intervalul ak 1 ak ,bk 1 c ;
bk 1 ak 1 

3. f (bk ) f (c)0 - soluia se gsete n intervalul x c, bk


procedeul continu cu intervalul ak 1 c,bk 1 ak .
Dat H ! 0 exist un interval ak , bk astfel ca x ak , bk i bk  ak H
ba
). Pentru H suficient de mic att ak ct i bk pot fi
( k !log 2

considerate aproximri ale soluiei x ( ak | x prin lips iar bk | x prin


adaos).

96

Metoda tangentei (Newton-Raphson)

Vom presupune c funcia f C1 > a, b @ este difereniabil pe > a, b @ cu


derivata continu n acest interval i c satisface relaia f (a) f (b)0 .
Pentru a aproxima soluia x a ecuaiei f ( x) 0 vom construi un ir
^ xk `  care s convearg la x , xk ox ,pentruk o f . Primul
element din ir, x0 , considerm c este dat. Urmtorul element din ir se
construiete ca fiind intersecia tangentei la graficul funciei f n punctul
x0 , f ( x0 ) cu axa absciselor. Procedeul se repet cu x1 pentru a-l obine
pe x2 , .a.m.d.
x1 Oxtangentalagraficulfunciei f npunctul x0 , f ( x0 )
x2 Oxtangentalagraficulfunciei f npunctul x1 , f ( x1 )
#

xk 1 Oxtangentalagraficulfunciei f npunctul xk , f ( xk ) ,k

0,1, 2,!

Ecuaia tangentei la graficul funciei f ntr-un punct a, f (a ) este


urmtoarea:
y f (a ) f '(a)( x  a)
Pentru a calcula xk 1 din xk vom considera ecuaia tangentei:
y  f ( xk ) f '( xk )( x  xk )
unde lum y 0 . Avem:
f ( xk )
xk 1  xk 
,k 0,1,2,!, x0 dat
f '( xk )
Formula de mai sus poate fi folosit doar dac la fiecare pas f '( xk )z 0 .
Dac la un pas avem f '( xk ) 0 putem calcula cteva iteraii xk ( k t k )
folosind f '( xk 1 ) .

97

Teorem de convergen
Fie f C 2 > a, b @ , cu f (a ) f (b)  0 , f '( x)z0i f ''( x)z0x > a, b @ .
Dac alegem
apentru f (a) f ''(a)! 0
x0  
bpentru f (b) f ''(b)! 0

atunci irul ^ xk ;k t 0` construit cu metoda tangentei este monoton,


mrginit i convergent la unica soluie x a ecuaiei f ( x) 0 . Ordinul de
convergen este mai mare dect 2.
Demonstraie: Din faptul c
f '( x)z0, f ''( x)z0x > a, b @ i
continuitatea funciilor f 'i f '' rezult c cele dou funcii au semn
constant pe intervalul > a, b @ . Prin urmare funcia f nu-i schimb
monotonia i curbura (convexitatea/concavitatea) n intervalul > a, b @ . Din
condiiile f '( x)z0i f (a ) f (b)  0 rezult unicitatea soluiei x . Dac
prin absurd am presupune c mai exist alt soluie x z x . Conform
teoremei lui Rolle, din faptul c f ( x ) f ( x ) 0 rezult c exist un

punct c x , x a, b astfel ca f '(c) 0 (absurd).


Vom presupune c f (a ) f ''(a ) ! 0 ( f (a ) are acelai semn cu funcia f '' ),
x0 a . Vom arta c irul ^ xk ` este monoton cresctor i marginit.
Artm prin inducie c xk d x ,k t 0 . Pentru k 0 avem x0
Presupunem c xk d x i artm c xk 1 d x . Avem:
f ( xk ) f '( zk )
xk 1  xk 
( x  xk )t 0
 
f '( xk ) f '( xk )

a x .

f ( xk ) f '( xk )( xk  x ) f ( xk )
xk 1  x   xk  x 
 
f '( xk )
f '( xk )
Folosind dezvoltarea n serie Taylor avem:
( x  xk ) 2
0 f ( x )  f ( xk ) f '( xk )( x  xk ) f ''( yk )
,cu yk xk , x
2
2

( x  xk )
 f ( xk )  f '( xk )( xk  x )  f ''( yk )
2
nlocuind n relaia de mai sus obinem:
( x  x ) 2 f ''( yk )
xk 1  x   k
2 f '( xk )
Dac mai considerm o nou dezvoltare n serie Taylor:

98

(1.1)

f ( x )  f ( xk ) f '( zk )( x  xk ),cu zk xk , x

(1.2)

obinem:
xk  x

f ( xk )
f '( zk )

(1.3)

Dac nlocuim (1.1) n (1.3) avem:


xk 1  x   xk  x )

f ( xk ) f ''( yk )
t
2 f '( xk ) f '( zk )

Din faptul c x0 a,xk d x rezult c f (a ) i f ( xk ) au acelai semn. Din


f (a) f ''(a )!0 i faptul c f '' nu-i schimb semnul pe > a, b @ rezult c
f (a ) i f '' au acelai semn. Vom avea i c f ( xk ) i f '' au acelai semn:
f ( xk ) f ''( yk )!0
Funcia f ' neschimbndu-i semnul pe > a, b @ rezult c:
f '( xk ) f '( zk )!
Folosind ipoteza inductiv, xk d x obinem:
xk 1  x do xk 1d x
deci irul ^ xk ` este mrginit superior.
Folosind formula (1.2) i relaia xk d x avem:
f ( xk ) f '( zk )
( x  xk )t 0,k 
xk 1  xk 
 
f '( xk ) f '( xk )
deci irul ^ xk ` este monoton cresctor. Din mrginirea i monotonia
irului rezult c irul considerat este convergent:
l a, b a.. xk ol,k o f
Trecnd la limit n relaia de definiie a irului:
f ( xk )
f (l )
xk 1  xk 
,k o fl l 
 f (l ) 0 l x 
f '( xk )
f '(l )
xk ox k o f
Dac f (b) f ''(b) ! 0 , se alege x0

i se arat analog

xk t x i xk 1 d xk ,k .
Dac notm:
M 2 max ^| f ''( x) |; x > a, b @` ,m1 min ^| f '( x) |; x > a, b @`
folosind relaia (1.1) obinem:
0
| xk 1  x _d  | xk  x |2
m1
de unde deducem c ordinul de convergen este cel puin 2.

99

Metoda falsei poziii (a coardei)

Presupunem c funcia f este continu, f C > a, b @ i satisface


relaia f (a ) f (b)0 . Vom construi un ir ^ xk `  care s convearg la
soluia cutat x , xk o x ,pentruk o f . Considerm date primul
element din ir, x i un lat punct x . Procedeul de construire a irului este
0

urmtorul:
x1 Oxdreapta ceunetepunctele x , f ( x )  x0 , f ( x0 )
x2



Oxdreapta ceunetepunctele x , f ( x )  x , f ( x )
1

xk 1 Oxdreapta ceunetepunctele x , f ( x )  xk , f ( xk ) ,k

0,1,2,!

Ecuaia dreptei ce trece prin punctele a, f (a) cu b, f (b) este:
y  f (a)
xa
.
f (a )  f (b) a  b
Pentru a-l obine pe xk 1 din xk avem:
y  f ( xk )
x  xk
cu y 0

f ( xk )  f ( x) xk  x
f ( xk )( xk  x ) x f ( xk )  xk f ( x )
xk 1 xk 
 
,k
f ( x )  f ( x )
f ( x )  f ( x )
k

0,1,2,!,x0 dat

Teorem de convergen
Fie f C 2 > a, b @ , cu f (a ) f (b)  0 , f '( x)z0i f ''( x)z0x > a, b @ .
Dac alegem
x ai x0 bpentru f (a ) f ''(a )! 0

atunci irul ^ xk ;k t 0` construit
x bi x0 apentru f (b) f ''(b)! 0
cu metoda falsei poziii este monoton, mrginit deci convergent la unica
soluie x a ecuaiei f ( x) 0 .

100

Metoda secantei

Presupunem c funcia f este continu, f C > a, b @ i satisface


relaia f (a ) f (b)0 . Vom construi un ir ^ xk `  care s convearg la
soluia cutat x , xk o x ,pentruk o f . Considerm date primele dou
elemente din ir, x0 i x1 . Procedeul de construire a irului este urmtorul:
x2 Oxdreapta ceunetepunctele x0 , f ( x0 ) , x1 , f ( x1 ) 

x3 Oxdreapta ceunetepunctele x1 , f ( x1 ) , x2 , f ( x2 ) 
#
xk 1 Oxdreapta ceunetepunctele xk 1 , f ( xk 1 )  xk , f ( xk ) ,k 1,2,!
Obinem elementul xk 1 din xk i xk 1 astfel:
y  f ( xk )
x  xk
cu y 0
f ( xk )  f ( xk 1 ) xk  xk 1
xk 1

xk 

f ( xk )( xk  xk 1 ) xk 1 f ( xk )  xk f ( xk 1 )
 
,k 1,2,!, x0 , x1dai
f ( xk )  f ( xk 1 )
f ( xk )  f ( xk 1 )

Teorem de convergen
Fie x o soluie a ecuiei
2

f ( x) 0 .

Presupunem

f C x  r , x  r , f '( x)z0i f ''( x)z0x x  r , x  r . Atunci


atunci
exist 0  r0 d r pentru care, dac x0 ,x1 [ x  r0 , x  r0 ]



xk  [ x  r0 , x  r0 ],k t 2 i xk o x ,pentruk o f . Ordinul de
convergen este q

1 5
| 1.61803 .
2

101

Sisteme de ecuaii neliniare

Consider sistemul neliniar:


f1 ( x1 , x2 ,!, xn ) 0
f1
x1


f ( x , x ,!, x ) 0
f2
x
2 1 2
n

F ( X ) 0F
, X 2

#
#
#


fn
xn
f n ( x1 , x2 ,!, xn ) 0
Fie matricea jacobian asociat funciei F (presupunem c funciile f i
sunt difereniabile):
wf1
wf1 wf1



"
wx wx
wxn
2
1

wf 2 wf 2
wf 2
 "
wxn ( x1 , x2 ,!, xn )
F ( X )  wx1 wx2

wf n  wf n " wf n
wx wx
wxn
2
1
Pentru a gsi soluia X a sistemului de ecuaii neliniare F ( X ) 0 se
construiete un ir de vectori X ( k )  astfel:
1
X (0) dat, X ( k 1)  X ( k ) F ( X ( k ) ) F ( X ( k ) )  X ( k )  ' ( k ) ,k 0,1,!
'(k )

1

F ( X ( k ) ) F ( X ( k ) ) 

Vectorul de corecie ' ( k ) poate fi calculat i ca soluie a sistemului liniar:


F ( X ( k ) )' F ( X ( k ) )
unde matricea sistemului este chiar matricea jacobian calculat n
punctul X ( k ) iar vectorul termenilor liberi este F ( X ( k ) ) . Metoda
descris mai sus poart numele de metoda Newton. Pentru n=1 metoda
Newton este chiar metoda tangentei descris anterior.

102

Metoda Bairstow de aproximare a rdcinilor complexe ale


polinoamelor

Fie polinomul cu coeficieni reali:


P( x) a0 x n  a1 x n1  "  ak x nk  "  an1 x  an ,a0 z 0,ai ,i,n t 4
Vom presupune c polinomul P are doar rdcini complexe. Vom
identifica factorii de gradul 2 din P corespunztori perechilor de rdcini
complex conjugate. Avem:
P( x) ( x 2  px  q )(b0 x n2  b1 x n3  "  bn3 x  bn2  r0 x  r1
(1)
Dorim s identificm variabilele p i q pentru care r0 r1 0 . Avem
urmtorul sistem neliniar :
r0 r0 ( p, q ) 0
r0
p
F ( X ) 0cun 2,F , X

q
r1 r1 ( p, q ) 0
r1
Pentru a gsi funciile r0 ( p, q )ir1 ( p, q ) vom gsi coeficienii necunoscui
de ecuaia (1) prin identificarea coeficienilor lui x k din membrul stng i
membrul drept:
x n 
: a0 b0
x n1
: a1 b1  pb0
x ni 
: ai

bi  pbi 1  qbi 2 ,i

x
: an1

2,3,!, n  2

r0  pbn2  qbn3

x 0 
: an r1  qbn2
Rearanjnd relaiile de mai sus avem:
b0 a0 ,b1 a1  pb0
bi

ai  pbi 1  qbi 2 ,i

2,3,!, n  2

bn1 an1  pbn2  qbn3 (i

n  1),bn  an  pbn1  qbn2 (i

n)

(2)

r0  an1  pbn2  qbn3  bn1


r1

an qbn2  an  pbn1  qbn2  pbn1 bn  pbn1

Pentru sistemul neliniar de mai sus jacobianul este:


wbn1
wbn1




wp
wq
r0 bn1 ( p, q )


F

wbn1
wbn
wbn1
wbn
r1 bn ( p, q )  pbn1 ( p, q )
wp  bn1  p wp  wq  p wq 

103

Vom aplica metoda lui Newton:


pk+1 pk  yk
X ( k )  ' ( k ) , X (0) dat
, p0 ,q0 dai
q
q

z
k+1
k
k

yk
Coreciile ' ( k ) se gsesc ca soluie a sistemului:
zk
X ( k 1)

y
F ( pk , qk )   F ( pk , qk ).
(3)
z

wb wb
Pentru a obine derivatele pariale i i i vom deriva n relaiile (2):
wp wq
wb1
wb0
wb0
wp 0, wp  b0  p wp 

wbi b  p wbi 1  q wbi 2 ,i 2,!, n


i 1
wp
wp
wp
wb1
wb0
wb0
wq 0, wq  p wq 

wbi b  p wbi 1  q wbi 2 ,i 2,!, n


i 2
wq
wq
wq
Notm cu:
wbi
wbi
Di :
( pk , qk ),Ei :
( pk , qk ),i 0,!, n
wp
wq
pentru care avem urmtoarele relaii de recuren:
D 0 0,D1 b0  pkD 0 ,D i bi 1  pkD i 1  qkD i 2 
i 2,!, n

E 0 0,E1 0,E i bi 2  pk E i 1  qk E i 2 


Se poate arta c aceste ultime dou recurene se reduc la una singur:
c0 b0 ,c1 b1  pk c0 ,ci bi  pk ci 1  qk ci 2 ,i 2,!, n

D i   ci 1,Ei  ci 2 i
Pentru aceasta se verific: D1 c0 ,D 2

c1 i faptul c D i i(ci 1 )


satisfac aceeai relaie de recuren (analog pentru Ei : E 2 c0,E3 c1 ,
Ei i(ci 2 ) satisfac aceeai relaie de recuren). Cu aceste notaii avem:
 cn2  cn3

F ( pk , qk ) 

cn1  bn1  pk cn2  cn2  pk cn3


Sistemul (3) devine:
cn2  ycn3  z  bn1

(cn1  bn1  pk cn2 ) y(cn2  pk cn3 ) z  bn  pk bn1

104

Acest sistem se simplific prin nmulirea primei ecuaii cu ( pk ) i se


adun cu ecuaia a doua:
cn2  ycn3  z bn1

(cn1  bn1 ) ycn2 z bn


Soluia sistemului este:
bn1cn2  bn cn3
bn cn2  bn1 (cn1  bn1 )
yk
, zk
2
cn2  cn3 (cn1  bn1 )
cn22  cn3 (cn1  bn1 )
Algoritmul se oprete atunci cnd diferena dintre dou iteraii succesive
devine suficient de mic - || X ( k 1)  X ( k ) ||d H - de exemplu, dac folosim
norma euclidian avem:
pk 1 pk 2 2
2
|| X ( k 1)  X ( k ) ||22 ||
 ||2  yk  zk dH
qk 1 qk
Metoda lui Bairstow poate fi descris astfel:
p q 0;k 0;
do
<b0 a0 ;b1 a1  pb0 ;
<bi

ai  pbi 1  qbi 2 ,i

<c0

b0 ;c1 b1  pc0 ;

<ci

bi  pci 1  qci 2 ,i

<det

2,!, n;
2,!, n;

cn22  cn3 (cn1  bn1 );

bn1cn2  bn cn3

det
bn cn2  bn1 (cn1  bn1 )
< z
;
det
< p p  y;
<q q  z;
<k k  1;
< y

while( y 2  z 2 !H ik dkmax )



(H - precizia de calcul dorit, kmax - numr maxim de iteraii ce pot fi
efectuate)

105

Metoda lui Laguerre

Fie polinomul:
P( x) a0 ( x  x1 )( x  x2 )" ( x  xn ),a0 z 0
Metoda lui Laguerre propune construirea unui ir de numere care s
convearg la una din rdcinile polinomului P.
Considerm derivata polinomului P:
1
1
1
P '( x) P ( x)

"

x  xn
x  x1 x  x2
Avem:
ln | P ( x) | ln | a0 |ln| x  x1 |ln| x  x2 | " ln| x  xn |
d
1
1
1
P '( x)
ln | P( x) | 

"
 
G ( x)
dx
x  x1 x  x2
x  xn P ( x)
d2
1
1
1
 2 ln | P( x) |


"

 
dx
( x  x1 ) 2 ( x  x2 ) 2
( x  xn ) 2
2



> P '( x)@  P( x) P ''( x)



2
> P( x) @

H ( x)

Fie x1 rdcina pe care vrem s-o aproximm i yk valoarea aproximativ


curent. Notm cu a yk  x1 i facem presupunerea c yk se afl la
acceeai distan de toate celelalte rdcini, adic, b  yk  xi i 2,!, n .
Prin urmare avem:
P '( yk )  n  1
  
G ( yk ) 
P ( yk ) a
b
2

H ( yk )

> P '( yk )@  P( yk ) P ''( yk )


2
> P ( yk ) @



 n 1
 2
a2
b

Rezolvm acest sistem n raport cu a i obinem:


n
a
max G ( yk )r (n  1) nH ( yk )  G 2 ( yk )

Semnul la numitor este ales astfle ca expresia s aib magnitudine


maxim. Dac inem cont de expresiile pentru G i H obinem pentru a i
urmtoarea expresie:
nP( yk )
a
2
max P '( yk ) r (n  1) 2 > P '( yk )@  n(n  1) P ( yk ) P ''( yk )

Urmtorul element din ir va fi:

106

yk 1

yk a  yk 

yk 1  yk 

n
max G ( yk )r (n  1) nH ( yk )  G 2 ( yk )

nP( yk )


2
2

max P '( yk ) r (n  1) > P '( yk )@  n(n  1) P ( yk ) P ''( yk )

Procedeul se oprete cnd a devine suficient de mic. Metoda lui Laguerre


se poate aplica i pentru gsirea rdcinilor complexe ale polinoamelor i
de asemenea pentru polinoame cu coeficieni compleci.

107

Interpolare numeric
Presupunem c despre o funcie f cunoatem doar valorile ntr-un
numr finit de puncte. Pornind de la aceste date, dorim s aproximm
funcia f ntr-un alt punct.
x0
x1
x2 ... xn-1 xn
x
y0
y1
y2 ... yn-1
yn
f
n tabelul de mai sus f(xi)=yi, i=0,1,,n i xizxj pentru iz j. Dat un punct
xz xi, i=0,1,,n dorim s aproximm f(x) cunoscnd cele (n+1) perechi
(xi,yi),i=0,,n. Punctele xi se numesc noduri de interpolare.

Polinomul de interpolare Lagrange

Notm cu 3n mulimea polinoamelor de grad cel mult n. Dimensiunea


acestui spaiu este n+1, baza uzual fiind dat de polinoamele 1, x, x2,,
xn. Vom considera o alt baz n acest spaiu. Se consider polinoamele
p i:
0pentru j z i
 j 0,!, n,i 0,!, n
pi 3 n astfelca pi ( x j )
pentru j z i
Din relaia pi(xj)=0,  jzi i faptul c pi este polinom de gard n rezult c
x0, x1,,xi-1, xi+1,,xn sunt cele n rdcini ale polinomului pi. Avem:
pi ( x) ci ( x  x0 )"( x  xi 1 )( x  xi 1 )" ( x  xn ),ci ,i 0,!, n
Constanta ci se determin din faptul c pi(xi)=1:
pi ( xi ) 1 ci ( xi  x0 )" ( xi  xi 1 )( xi  xi 1 )" ( xi  xn )

1
( xi  x0 )" ( xi  xi 1 )( xi  xi 1 )" ( xi  xn )
Polinoamele pi au forma:
n
x  xj
( x  x0 )" ( x  xi 1 )( x  xi 1 )" ( x  xn )
  (
pi ( x)
),i 0,!, n
( xi  x0 )" ( xi  xi 1 )( xi  xi 1 )" ( xi  xn ) j 0 xi  x j
ci

j zi

Propoziie
Polinoamele p0, p1,, pn formeaz o baz n 3n.

Demonstraie: Vom arta c cele n+1 polinoame sunt liniar independente:


q ( x) a0 p0 ( x)  a1 p1 ( x)" an pn ( x) 0,xa0 a1 " an 0
Vom face pe rnd x=x0, x=x1,, x=xn n polinomul q:
q ( x0 ) a0 p0 ( x0 )  a1 p1 ( x0 )" an pn ( x0 ) a01  a1 0" an 0 a0 0a0

108

x1q ( x1 a1 0
#
q ( xk ) a0 p0 ( xk ) " ak pk ( xk ) "  an pn ( xk ) 
x

 a0 0  "  ak " an 0 ak 0ak 0


#
x xn q( xn an 0
Toate constantele ai sunt nule deci polinoamele ^ pi ;i 0,!, n` formeaz
o baz n 3n.
Pentru a aproxima funcia f pronind de la tabelul de mai sus, vom
construi un polinom ln3n astfel ca s ndeplineasc condiiile de
interpolare:
ln 3 n ,ln ( xi ) yi ,i 0,!, n
(1)
Odat construit acest polinom, vom aproxima f(x) prin ln(x).
Vom scrie polinomul ln n raport cu noua baz ^ pi ;i 0,!, n` , deci
exist constantele reale a0, a1,,an astfel ca:
n

ln ( x)  ai pi ( x)
i 0

Constantele ak se determin astfel:


yk ln ( xk ) a0 p0 ( xk )  "  ak pk ( xk )  "  an pn ( xk )
 a0 0  "  ak 1  "  an 0 ak ak   yk
Prin urmare un polinom de grad n care ndeplinesc condiiile de
interpolare (1) este:
n
n
( x  x0 )" ( x  xi 1 )( x  xi 1 )" ( x  xn )
ln ( x)  yi pi ( x)  yi

( xi  x0 )" ( xi  xi 1 )( xi  xi 1 )" ( xi  xn )
i 0
i 0
(2)
n
n
x  xj
   yi  (
)
i 0
j 0 xi  x j
j zi

Polinomul din formula (2) se numete polinomul de interpolare


Lagrange.
Propoziie
Polinomul ln dat de formula (2) este unicul polinom de grad n care
ndeplinete condiiile de interpolare (1).

Demonstraie: Presupunem c mai exist un polinom q3n care


ndeplinete condiiile (1):
q 3 n ,q ( xi ) yi ,i 0,!, n
Fie polinomul p(x)=ln(x)-q(x) 3n. Acest polinom are proprietatea c:
p( xk ) ln ( xk )  q( xk ) yk  yk  0,k 0,!, n
109

Polinomul p are ca rdcini toate nodurile de interpolare. Polinomul p


este polinom de grad cel mult n i are (n+1) rdcini distincte (xizxj ,  iz
j). Acest polinom nu poate fi dect polinomul identic nul:
p( x) ln ( x)  q ( x) { 0x,ln ( x) q( x)x
Polinomul ln este unicul care satisface (2).
Fie wn+1 polinomul de grand (n+1) care are ca rdcini nodurile de
interpolare:
wn1 ( x) ( x  x0 )( x  x1 )" ( x  xn )3 n1
Avem:

wn1 ( x) c

i 0

j 0
j zi

j 0
j zk

 ( x  x j ); wn1 ( xk ) c  ( xk  x j )

Putem rescrie polinomul ln i astfel:


n
w ( x)
1
ln ( x)  [ yi n1 
]
x  xi ( wn1 ( xi ))'
i 0
Fie a=min{x0, x1,, xn}, b=max{x0, x1,, xn}.
Teorema restului
Fie f C n1 > a, b @ i x > a, b @ , xz xi ,i 0,!, n. Atunci exist un

punct y > a, b @, y

y ( x0 , x1 ,!, xn , x) (punctul y depinde de nodurile de

interpolare xi i de punctul x ) astfel c eroarea la interpolarea numeric


este dat de:
f ( n1) ( y )
(3)
f ( x)  ln ( x) 
wn1 ( x)
(n  1)!
Demonstraie: Considerm funcia F:
F ( x) :  f ( x)  ln ( x)  cwn1 ( x)
Constanta real c este aleas astfel ca F ( x) 0 adic:
f ( x )  ln ( x )
,  x z xi iwn1 ( x)z0)
(4)
wn1 ( x )
Funcia f fiind de clas Cn+1 pe intervalul [a,b] rezult c i funcia F este
din Cn+1[a,b]. Avem:
F ( xi ) f ( xi )  ln ( xi )cwn1 ( xi )  yi  yi  c0 0,i 0,!, n
c

Funcia F are (n+2) zerouri, x0 , x1 ,!, xn , x . Aplicnd succesiv Teorema


lui Rolle rezult c F are (n+1) zerouri, F are n zerouri,, F(n+1) are 1
zero n intervalul [a,b]. Vom nota aceast rdcin a lui F(n+1) cu y.

110

Punctul y depinde de zerourile iniiale x0 , x1 ,!, xn , x i:

y y ( x0 , x1 ,!, xn , x) > a, b @a..F ( n1) ( y ) 0.


Derivata de ordinul (n+1) a funciei F se calculeaz astfel:
F ( n1) ( x) f ( n1) ( x)ln( n1) ( x)cwn( n11) ( x)

(5)

(6)
 f ( n1) ( x) 0  c(n  1)! f ( n1) ( x)  c(n  1)!
(derivata de ordin (n+1) a polinomului de grad n ln este 0). Din relaiile
(4), (5) i (6) rezult c:
f ( n1) ( y ) f ( x)  ln ( x)
f ( n1) ( y )
c
 f ( x)  ln ( x) 
wn1 ( x)
(n  1)!
(n  1)!
wn1 ( x)
adic am obinut relaia (3).

Forma Newton a polinomului de interpolare Lagrange

Fie lk(x,x0,x1,,xk,f) polinomul de interpolare Lagrange pentru funcia f pe


sistemul de noduri {x0,x1,,xk} (xizxj pentru izj).
Propoziie
Fie lk-1(x,x0,x1,,xk-1,f), lk-1(x,x1,x2,,xk,f)3k-1 polinoamele de
interpolare Lagrange pentru funcia f pe sistemele de noduri {x0,x1,,xk-1}
i respectiv {x1,x2,,xk}. Atunci:
lk ( x, x0 , x1 ,!, xk , f )
(7)
( x  xk )lk 1 ( x, x0 , x1 ,!, xk 1 , f )  ( x  x0 )lk 1 ( x, x1 , x2 ,!, xk , f )
x0  xk
Demonstraie: Exerciiu.
Considerm urmtoarele probleme de interpolare pentru funcia f:
^( x0 , y0 ),( x1 , y1 ),!,( xk 1, yk 1 )`olk 1 ( x, x0 , x1,!, xk 1 , f )

^( x0 , y0 ),( x1 , y1 ),!,( xk , yk )`olk ( x, x0 , x1,!, xk , f )


Ne intereseaz s gsim o formul de trecere rapid de la polinomul de
interpolare pe k noduri la cel care are un nod n plus. Deoarece polinomul
de grad cel mult k:
q( x) lk ( x, x0 , x1 ,!, xk , f )  lk 1 ( x, x0 , x1 ,!, xk 1 , f )3 k
are drept rdcini punctele x0,x1,,xk-1 (q(xi)=yi-yi=0, i=0,,k-1) avem
relaia:
k 1

lk ( x, x0 , x1 ,!, xk , f ) lk 1 ( x, x0 , x1 ,!, xk 1 , f ) A ( x  x j )


j 0

n care A este dat de relaia:

111

(8)

lk ( xk , x0 , x1 ,!, xk , f )  lk 1 ( xk , x0 , x1 ,!, xk 1 , f )

(9)

k 1

(x

 xj )

j 0

k 1

k 1

i 0

j 0
j zi
k 1

 yi  (
A  k 1

yk

(x

j 0


 xj )

xk  x j
)
xi  x j

(x

k 1

(x

 xj )

j 0

 xj)

j 0

k 1

yk

i 0


i 0

i
k 1

( xk  xi ) ( xi  x j )
j 0
j zi

yi

(10)

(x  x )
i

j 0
j zi

Dac considerm i problemele de interpolare pentru funcia f:


^( x1, y1 ),( x2 , y2 ),!,( xk , yk )`olk 1 ( x, x1 , x2 ,!, xk , f )

^( x0 , y0 ),( x1 , y1 ),!,( xk , yk )`olk ( x, x0 , x1 ,!, xk , f )


vom avea, analog ca mai sus:
k

lk ( x, x0 , x1 ,!, xk , f ) lk 1 ( x, x1 , x2 ,!, xk , f )B ( x  x j )

(11)

j 1

Dac nmulim relaia (8) cu (x-xk) iar relaia (11) cu (x-x0) i scdem
aceste relaii obinem:
( x0  xk )lk ( x, x0 , x1 ,!, xk , f ) ( x  xk )lk 1 ( x, x0 , x1 ,!, xk 1 , f ) 
k

 ( x  x0 )lk 1 ( x, x1 , x2 ,!, xk , f ) ( A  B ) ( x  x j )


j 0

innd seama de relaia (7) rezult c:


k

( A  B) ( x  x j ) 0adic A B
j 0

Vom nota n cele ce urmeaz:


A

> x0 , x1,!, xk @ f

numit diferen divizat de ordin k a funciei f pe nodurile


^ x0 , x1 ,!, xk ` .
Vom nlocui n formula (8) lk-1(x,x0,,xk-1,f) cu:
lk 1 ( x, x0 ,!, xk 1 , f ) lk 2 ( x, x1 ,!, xk 1 , f )> x0 , x1 ,!, xk 1 @ f

k 1

(x  x )
j

j 1

iar n formula (11) lk-1(x,x1,,xk,f) cu:

112

lk 1 ( x,x1 ,!, xk , f ) lk 2 ( x, x1 ,!, xk 1 , f )> x1 , x2 ,!, xk @ f

l 1

(x  x )
l

l 1

i apoi scdem membru cu memebru cele dou relaii. Obinem:


k 1

k 1

j 1

j 0

> x0 ,!, xk 1 @ f ( x  x j ) > x0 ,!, xk @ f ( x  x j )


 > x1 ,!, xk @ f

k 1

( x  x ) > x ,!, x @ ( x  x )


l

l 1

0

l 1

Putem scrie:
k 1

( x  x )^> x ,!, x @  > x ,!, x @


j

k 1 f

j 1

> x0 ,!, xk @ f

k 1

( x  x )> x  x
j

`

 x  xn @ 

j 0

relaie din care obinem:

> x0 , x1 ,!, xk @ f

> x0 , x1,!, xk 1 @ f  > x1, x2 ,!, xk @ f

(12)
x0  xk
Relaia (12) justific denumirea de diferen divizat. Se introduce i
noiunea de diferen divizat de ordinul 0:
(13)
> xk @ f yk f ( xk ),k
Diferenele divizate se pot obine folosind definiia direct (10) sau
folosind definiia recursiv (13), (12). Cele dou definiii sunt
echivalente:
Propoziie
k

> x0 , x1 ,!, xk @ f  
i 0

yi

(x  x )
i

yi
n 1 ( xk ) '

w
i 0

(14)

j 0
j zi

pentru orice sistem de noduri ^ x0 , x1 ,!, xk ` i orice k.


Demonstraie: Se face prin inducie. Pentru k=1 avem:
> x0 @ f  > x1 @ f
y0
y1

> x0 , x1 @ f
x0  x1 x1  x0
x0  x1
Presupunem c relaia (14) este valabil pentru orice k i pentru orice
sistem de noduri ^ x0 , x1 ,!, xk ` . Pentru k+1 folosim relaia de recuren i
apoi aplicm ipoteza inductiv:

113

> x0 , x1,!, xk 1 @ f

> x0 , x1 ,!, xk @ f  > x1, x2 ,!, xk 1 @ f


x0  xk 1

k

 
(
x0  xk 1 i 0

k 1

yi
k

(x  x )
i


i 1


^
x0  xk 1

y0


 xj )

j 0
j z0

 [
i 1

yi

(x  x )
i

yk 1



k 1

(x

k 1

 xj)

j 1
j z k 1

(

(x  x )
j 1
j zi

(x

) 

j 0
j zi



yi
k 1

1
1


)]}
xi  xk 1 xi  x0

j 1
j zi



y0
k 1

(x

k 1

 
i 0

k 1

(x

 xj)

k 1

j 0
j z0

yk 1

 xj)

j 0
j z k 1


i 1

yi

k 1

(x  x )
i

j 0
j zi

yi
k 1

(x  x )
i

j 0
j zi

Inducia este complet.


Din aceast Propoziie se observ c diferena divizat > x0 , x1 ,!, xk @ f nu
depinde de ordinea nodurilor ^ x0 , x1 ,!, xk ` .
Vom nota n continuare cu lk(x) polinomul de interpolare Lagrange pe
nodurile ^ x0 , x1 ,!, xk ` pentru funcia f. Avem:
ln ( x) l0 ( x)>l1 ( x)  l0 ( x)]  "  >lk ( x)  lk 1 ( x)]  "  >ln ( x)  ln1 ( x)]
  y0  > x0 , x1 @ f ( x  x0 )  "  > x0 , x1 ,!, xk @ f ( x  x0 )" ( x  xk 1 )  " 
 > x0 , x1 ,!, xn @ f ( x  x0 )" ( x  xn1 )
Am obinut astfel forma Newton a polinomului de interpolare Lagrange:
ln ( x)  y0  > x0 , x1 @ f ( x  x0 )  > x0 , x1 , x2 @ f ( x  x0 )( x  x1 )  " 
> x0 , x1 ,!, xn @ f ( x  x0 )" ( x  xn1 )

114

Schema lui Aitken de calcul a diferenelor divizate

Ne

propunem

calculm

> x0 , x1 , x2 @ f ,, > x0 , x1 ,!, xn @ f

diferenele

necesare

divizate

construirii

> x0 , x1 @ f ,

polinomului

de

interpolare Lagrange n forma Newton. Procedeul folosete definiia


recursiv a diferenelor divizate i se desfoar n n pai. La pasul 1 se
calculeaz numai diferene divizate de ordinul 1: > x0 , x1 @ f , > x1 , x2 @ f ,,

> xn1, xn @ f . n general, la pasul k se calculeaz diferene divizate de ordin


k:

> x0 , x1 ,!, xk @ f , > x1, x2 ,!, xk 1 @ f ,, > xnk , xnk 1,!, xn @ f .


La pasul n se calculeaz o singur diferen divizat de ordin n i anume
> x0 , x1 ,!, xn @ f .
Pas1
 "Pask "Pasn
x0  y0
x1 y1> x0 , x1 @ f 
x2  y2 > x1 , x2 @ f
#

xk  yk > xk 1 , xk @ f > x0 , x1 ,!, xk @ f 


##%

xn1 yn1> xn2 , xn1 @ f > xnk 1 ,!, xn1 @ f


xn  yn > xn1 , xn @ f > xnk ,!, xn1 @ f "> x0 , x1 !, xn @ f
Notm dd[k,i]= > xi , xi 1 ,!, xi  k @ f diferene divizate de ordin k, i=0,,nk, k=1,,n, cu dd[0,i]=yi, i=0,,n. Schema lui Aitken se implementeaz
astfel:

dd [0, i ]

yi ,i 0,!, n;

fork 1,!, n
fori 0,!, n  k
dd [k  1, i ]  dd [k  1, i  1]
dd [k , i ]
xi  xi k
Putem face aceleai calcule folosind un singur vector, de exemplu
rescriind vectorul y astfel:

115

fork 1,!, n
fori n,!, k
yi 1  yi
 yi
xi k  xi
La finalul acestei secvene de program vectorul y va conine elementele:
y0,
> x0 , x1 @ f ,
> x0 , x1, x2 @ f ,, > x0 , x1,!, xn @ f
( yk

> x0 , x1,!, xk @ f ,k

0,!, n.

Polinomul de interpolare Hermite

Presupunem c despre o funcie f cunoatem pe lng valorile


funciei i ale primei derivate ntr-un numr finit de puncte. Pornind de la
aceste date, dorim s aproximm funcia f ntr-un alt punct. Cunoatem:
x
f
F

x0
y0
z0

x1
y1
z1

x2
y2
z2

... xn-1
... yn-1
... zn-1

xn
yn
zn

n tabelul de mai sus f(xi)=yi, f(xi)=zi, i=0,1,,n cu xizxj pentru iz j. Dat


un punct x z xi, i=0,1,,n dorim s aproximm f( x ) cunoscnd valorile
(xi,yi,zi),i=0,,n.
Fie polinoamele:
n
x  xj
) 3 n ,i 0,!, n
qi ( x) (
x

x
j 0
i
j
j zi

ri ( x) >1  2( x  xi )qi '( xi ) @ qi2 ( x) 3 2 n1,i 0,!, n


ri ( x) ( x  xi )qi2 ( x) 3 2 n1,i 0,!, n
Teorem
Fie polinomul de grad cel mult 2n+1:
n

H 2 n1 ( x)

y r ( x) z r ( x)3


i

i 0

2 n 1

(15)

i 0

H2n+1 este unicul polinom de gard cel mult 2n+1 care satisface relaiile de
interpolare:
H 2 n1 ( xi )  yi ,H 2'n1 ( xi ) zi i 0,!, n
(16)
Dac x z xi ,i 0,!, n i fC2n+2[a,b] atunci:
f (2 n 2) ( y ) 2
f ( x)  H 2 n1 ( x) 
wn1 ( x)
(2n  2)!
116

(17)

unde y

y ( x0 ,!, xn , x) > a, b @(a

min{xi }, b max{xi }) .

Polinomul H2n+1 se numete polinomul de interpolare Hermite.


Demonstarie: Se arat c (exerciiu!):
0pentru j z i
ri ( x j )
,i, j 0,!, n
1pentru j i
ri ' x j ri ( x j ) 0i, j 0,!, n
0pentru j z i
,i, j 0,!, n
ri ' ( x j ) 
pentru j i
Folosind aceste relaii rezult (16). Pentru a arta unicitatea polinomului
(15) vom presupune c mai exist un polinom P32n+1 care satisface
relaiile (16):
P ( x j ) y j ,P '( x j ) z j j 0,!, n .
Fie Q(x)=H2n+1(x)-P(x) 32n+1 . Pentru acest polinom avem:
Q( x j ) Q '( x j ) 0 j 0,!, n^ x j ; j 0,!, n}rdcinidublepentruQ
Polinomul Q nu poate fi dect polinomul identic nul (polinom de grad
2n+1 cu 2n+2 rdcini!!!). Pentru a demonstra formula restului (17) se
adapteaz demonstraia de la teorema restului pentru polinomul de
interpolare Lagrange.
Vom considera n continuare un nou tip de abordare a problemei de
interpolare i anume interpolarea polinomial pe poriuni folosind
funciile spline

117

Funcii spline

Fie nodurile xi > a, b @,i 0,1,!, n,a x0  x1  x2  "  xn1  xn


Se consider funcia continu fragmentar polinomial:

b.

P0 ( x),x [ x0 , x1 ],
P ( x), x [ x , x ],
1
2
1
P ( x), x [ x2 , x3 ],
S ( x) 2
#
Pn2 ( x), x [ xn2 , xn1 ],

Pn1 ( x), x [ xn1 , xn ].


n care Pi x i 0,!, nsuntpolinoame. O asemenea funcie poart
numele de funcie spline.
Funcii spline liniare continue
Definiie
Funcia S(x) se numete funcie spline liniar continu dac
polinoamele Pi x ,i 0,!, n  1 sunt polinoame de gradul 1 i
S ( x) C[a, b],adic
lim S ( x) lim S ( x)i 1,!, n  1.
x o xi
x  xi

x o xi
x ! xi

Fie funcia f :[ a, b]o  pentru care se cunosc valorile:


yi f xi ,i 0,!, n .
Funcia spline liniar de interpolare S pentru funcia f ndeplinete
condiiile de interpolare:
S ( xi )  yi ,i 0,!, n.
innd seam c polinoamele Pi(x) sunt polinoame de gradul 1 i S(x)
este continu vom avea condiiile :
Pi ( xi ) yi ,

Pi ( xi 1 ) yi 1i 0,!, n  1,


P ( x)polinom de gradul1.

i

118

Din aceste condiii rezult:


x  xi
x x
Pi ( x)
yi 1  i 1
yi ,i 0,!, n
xi 1  xi
xi 1  xi
i
S ( xk )

Pk 1 xk

S x0

P0 ( x0 )

Pk xk

yk ,k 1,!, n  1,

y0 ,S xn Pn1 xn

yn .

Funcii spline cubice de clas C2

Se consider sistemul de noduri distincte din intervalul [a,b]:


' {a x0  x1  "  xn1  xn b}
Funcia S(x) asociat divizrii ' care ndeplinete condiiile :
S ( x) C 2 [a, b],
polinoamelePi ( x)au graduli 0,!, n  1,
se numete funcie spline cubic.
Dat fiind o funcie f :[ a, b]o  cu valorile yi f xi ,i 0,!, n , se
consider funcia spline cubic S(x) de interpolare
ce satisface
S ( xi ) yi ,i 0,!, n.
Pentru determinarea funciei spline cubice de interpolare observm c
polinoamele:
Pi ( x) ai x3  bi x 2  ci x  di , x [ xi , xi 1 ],i 0,!, n  1,
implic determinarea a 4n necunoscute {ai , bi , ci , di : i 0,!, n  1} pentru
care se impun:
n  1condiii

dinrelaiiledeinterpolareS ( xi ) yi ,i 0,!, n,
3(n  1)condiiidecontinuitatepentruS ( x ), S ' ( x)iS '' ( x)
nnodurile xi ,i 1,!, n  1,
n total 4n-2 condiii.
Se pot avea n vedere pentru adugarea a dou condiii suplimentarea
urmtoarele abordri :
x fixarea pantelor n extremitile intervalului [a,b]. Se presupune c
funcia f este derivabil i se cunosc valorile f ' (a ), f ' (b) Se
impun condiiile:
S ' ( x0 ) P0' ( x0 ) f ' (a ),S ' ( xn ) Pn'1 ( xn ) f ' (b);
x periodicitatea primelor dou derivate:
S ' ( x0 ) P0' ( x0 ) Pn'1 ( xn ) S ' ( xn ),S " ( x0 ) P0" ( x0 ) Pn"1 ( xn ) S " ( xn ) ;

119

x anularea derivatei secunde n capetele intervalului:


S " x0 P0" x0 0,S " xn Pn"1 xn 0.
Funciile spline care ndeplinesc aceste condiii se numesc funcii
spline cubice normale.
x derivata de ordinul al treilea ale funciei S este continu n
punctele x1 i xn-1
Aceasta nseamn c polinoamele
P0 ,P1 respectiv Pn2 , Pn1 coincid. Acest tip de spline se numete
not a knot i este utilizat n MATLAB.
Ne vom ocupa n continuare de determinarea funciei spline de
interpolare n cazul n care sunt cunoscute valorile derivatei funciei
f ( x)naib.
Recapitulnd vom avea urmtoarele condiii :
Pi ( xi ) yi ,i 0,!, n  1,Pn1 ( xn )  yn interpolare,

Pi 1 ( xi ) Pi ( xi ),i 1,!, n  1,continuitatea funcieiS ,


'
'
Pi 1 ( xi ) Pi ( xi ),i 1,!, n  1,continuitateaprimeiderivatei,
"
"
Pi 1 ( xi ) Pi ( xi ),i 1,!, n  1,continuitateaderivateisecunde,
P ' ( x ) f '(a),P ' ( x ) f ' b .
n 1
n
0 0
Vom nota S ''( xi ) Ai ,i 0,! n. innd seama de faptul c funcia
S '' C > a, b @ este o funcie liniar pe fiecare din intervalele > xi , xi 1 @
rezult c, notnd cu hi xi 1  xi ,i 0,! n  1 , vom avea:
x  xi
x x
S " ( x)
Ai 1  i 1
Ai ,x [ xi , xi 1 ],i 1,!, n  1
hi
hi
iar din S ' ( x)

"

S ( x)

x  xi

S ( x)

x  xi

'

'

S ( x)dx,S ( x) S ( x)dx rezult:


2

Ai 1

2hi
3

Ai 1

6hi

x  xi

x  x
 i 1

Ai  D i , x [ xi , xi 1 ],D i , i

2hi

x  x
 i 1

0,! n  1,

Ai  D i x  Ei , x [ xi , xi 1 ],D i , E i , i 0,! n  1,

6hi

x  x
 i 1

Ai 1
Ai  D i x  E i ,D i , E i , i 0,! n  1,
6hi
6hi
Impunnd condiiile de interpolare i de continuitate vom obine:
Pi ( x)

120

hi2
Ai  D i xi  Ei   yi ,
6
h2
Pi ( xi 1 ) i Ai 1  D i xi 1  E i   yi 1i 0,! n  1.
6
Din aceste relaii determinm D i iE i nfunciede Ai , Ai 1 , yi , yi 1 :
yi 1  yi hi
 Ai 1  Ai ,
Di
hi
6
Pi ( xi )

Ei

xi 1 yi  xi yi 1 hi
 xi 1 Ai  xi Ai 1 ,i 0,! n  1.
hi
6

Din condiia:
'
0

P ( x0 )

'

'
0

f (a ),inndseamdeP ( x)

x  x0

x  x
A 1
1

2h0

A0  D 0

2h0

rezult
y  y0

 f ' (a)
6 1
(18)
h0

Din condiia de continuitate a primei derivate a funciei spline cubice


Pi ' 1 ( xi ) Pi ' xi innd seama de:
2h0 A0  h0 A1

'
i 1

P ( x)
'

x  xi1

2hi 1

x  xi

x  x
A i

Ai 1  D i 1 ,

2hi 1

x  x
 i 1

Ai 1
Ai  D i ,
2hi
2hi
rezult, utiliznd valorile pentru D i 1 iD i deduse mai sus:
h
y  yi 1 hi 1
Pi ' 1 ( xi ) i 1 Ai  i

Ai  Ai1
hi 1
2
6
Pi ( x)

Pi ' ( xi ) 

hi
y y h
Ai  i 1 i  i Ai 1  Ai
hi
2
6

sau
hi 1 Ai 1  2(hi 1  hi ) Ai  hi Ai 1

y  y y  yi 1
6 i 1 i  i
,
h
h
i
i 1

(19)

i 1,!, n  1.
n final, din condiia:
'

S (b)

'
n 1

P ( xn )

'

'
n 1

f (b)dinP ( x)

121

x  xn1
2hn1

An

x  x
 n
2hn1

An1  D n1

obinem:
Pn'1 ( xn )

hn1
y  yn1 hn1
An  n

An  An1
hn1
2
6

f ' (b),

sau

y  yn1
6 f ' b  n
(20)

hn1

Sistemul liniar (18), (19), (20) cu necunoscutele ^ A0 , A1 ,", An ` are


forma:
HA f ,cuH  ( n1)u( n1) , f  n1
hn1 An1  2hn1 An


0
2h0 h0 0!!!!!!!!!!!!!!!!!
h 2(h  h )h 0!!!!!!!!!!!!!


0
1
1
0
h1 h1  h2 h2 !!!!!!!!!!

#

!!!!!!!!hn2  hn2 hn1 hn1

!!!!!!!!!!hn1 2hn1

y1  y0

 f ' (a)
6

h0

y y y y

i 1
i
i
i 1


f
6
i 1,!, n  1
hi 1
hi

6 f ' (b)  yn  yn1

hn1

Observnd c matricea H este diagonal dominant att pe linii ct i pe


coloane rezult c putem utiliza metoda Gauss-Seidel pentru rezolvarea
sistemului HA=f.
innd seam c matricea H este simetric i pozitiv definit rezult de
asemenea i convergena metodei relaxrii.
n cazul funciei spline naturale avem A0 An 0 iar pentru determinarea
valorilor A1 ,! An1 intervin numai condiiile (19) . Sistemul liniar pentru
aceste valori are forma:
A1
(
1)
(
1)
1
n

u
n

n

ii
i 
H
A  if ,+
A #
, if  , i
An1
122

i se obine din matricea H din care se suprim prima i


n care matricea H
ultima linie respectiv prima i ultima coloan , iar if se obine din
i are aceleai
vectorul f eliminnd primul i ultimul element. Matricea H
proprieti ca i matricea H.

123

Integrare numeric
Fie f : [a,b]  , integrabil i p : [a,b]   o funcie pondere:
b

p ( x) t0,x > a, b @, p x dx 0, f .


a

p x f x dx.

Ne propunem s aproximm

Relaia
b

p( x) f ( x)dx  c f x R ( f )x > a, b@i


i

1,!, n,

(1)

i 1

se numete formul de cuadratur / integrare numeric.


Punctele xi sunt nodurile formulei de cuadratur, ci  sunt coeficienii
sau ponderile formulei.
Ordinul de exactitate al formulei (1)
Fie 3m mulimea polinoamelor de grad cel mult m. Se numete ordin de
exactitate al formulei de cuadratur (1) numrul natural m N pentru
care:
Rn ( P) 0,P 3 m iQ 3 m1astfel nc tRn (Q) z 0.
Tipuri de formule de cuadratur

Fie  o clas de funcii integrabile pe intervalul [a,b]. Se determin


ci ixi astfel ca:
Rn ( f ) 0,f 
.
Alegerea clasei de referin  conduce la obinerea diverselor tipuri de
formule de cuadratur.
Formule interpolative
Se consider interpolarea Lagrange pe nodurile x1 , x2 ,!, xn :
f ( x) Ln1 ( x)  rn ( x) .
Integrnd de la a la b n ambii membrii obinem:
b

p( x) f ( x)dx

p( x) Ln1 ( x)dx  p( x)rn ( x)dx.

innd seam de:

124

Ln1 ( x)

wn ( x)
f xi ,wn ( x)

'
i 1 ( x  xi ) wn ( xi )

(x  x ) ,
j

j 1

rezult c:
ci

p( x) ( x  x )dx,
j

(x  x )
i

j 1
j zi

j 1
j zi

Rn ( f )

p( x)r ( x)dx
n

Observaie. Dac f

P,P 3 n1, innd seam de restul n interpolarea

P ( n ) ([ )
wn ( x) 0
Lagrange pentru funcii de clas C [a, b] , rn ( x)
n!
rezult Rn ( P) 0. Rezult c pentru formulele de cuadratur de tip
interpolativ ordinul de exactitate este cel puin n-1. n formulele de tip
interpolativ xi ,ci  se aleg asfel nct ordinul de exactitate s fie maxim.
O alt clasificare a formulelor de cuadratur se face n raport cu
dispunerea nodurilor x1i xn nintervalul[a, b].
x formule de tip nchis :
x1 a,xn b,
x formule de tip deschis :
x1 ! a, xn  b,
x formule de tip nchis deschis : x1 a, xn  b,
x formule de tip deschis nchis : x1 ! a, xn b.
n

Formule iterate
Se consider o divizare a
b

X1

f ( x)dx
a

X1  X 2 !  X N

b i descompunerea:
XN

X2

f ( x)dx 

X0

f ( x) dx  " 

X1

f ( x)dx .

X N 1

X k 1

Pentru fiecare integral

f ( x)dx se utilizeaz o formul simpl de

Xk

cuadratur .

125

Formule de cuadratur NEWTON-CTES

Se consider funcia
a d x1  x2  "  xn d b

p ( x) { 1, x [a, b]

pondere

nodurile

f ( x)dx

fixate. Pentru calculul integralei

f :[a, b] o ,

integrabil

pe intervalul [a,b], vom face schimbarea de variabil  x

ab ba

t
2
2

astfel ca:
b

ba
ab ba
ba
a f ( x)dx 2 1 f ( 2  2 t )dt 2 1 g (t )dt.
Construim polinomul de interpolare Lagrange pentru
g (t ) Ln1 (t )  rn (t ) n care:
t  tj
, xi
j 1 i tj
j zi
n

ab ba

ti , g (ti )
2
2

g (t ) t

Ln1 (t )

i 1

funcia

f ( xi ).

In ipoteza f C n [a, b] , restul n interpolarea Lagrange este:


g ( n ) W
wn t ,W > 1,1@, cu wn t
n!

rn t
g

t  t ,
j

j 1

dn a  b b  a
f
t

dt n 2
2 t

b  a n

f [ ,[ > a, b @.


2

Rezult:
b

f x dx
a

n 1 1
1 n
t tj
f n [ t
ba n
ba
wn t dt

dt
f xi

t
t
n
2 i1
2
!


j
1
i
j
1
1

j zi

Notm:
n

Ii

1
1
n t t
w t
1
1
j
 
dt  '
  n dt .

2 1 j 1 ti  t j
2 wn ti 1 t  ti
j zi

Rn f

ba

n 1 1

f n [ t
n!

1

wn t dt

Am obinut formula de cuadratur Newton-Ctes :


b

f x dx

I f x  R ( f )
n

i 1

126

(2)

Observaii
1.Coeficienii I i n nu depind de funcia f, prin urmare pot fi calculai i
tabelai pentru o repartiie dat a nodurilor xi.
2. Dac utilizm formula (2) pentru f { 1, n formula de interpolare vom
b

avea

1dx

rn ( x) 0 Rn (1) 0,astfelc b  a

(b  a ) I i n .1 din
i 1

care rezult :
n

I
n

i 1

3.Pentru restul n formula de cuadratur, n ipoteza f C n [a, b] , se poate


obine majorarea:
n 1
n b  a
Rn f d cn f
,ncare
2
1

1
wn t dt
n! 1

cn
f

sup f n x ; x [a, b] 

4. Presupunem c nodurile xi sunt simetrice dou cte dou fa de


n  1
mijlocul intevalului [a,b]. Aceata implic ti tn1i ,i 1,2,!,
.
2
Avem:
wn t

t  ti

1

i 1

i wn' (t )

1

n 1

t  ti

1

i 1

t  t

n 1i

1

wn (t )

i 1

wn' t .

n integrala prin care se determin I i  facem schimbarea de variabil


t W i obinem:
1
1
wn t
wn W
1
1
n
Ii
dt
dW
2 1 t  ti wn' ti
2 1  W  ti wn' ti
nlocuind n ultima integral ti cu tn1i obinem:
n

1
1
1 wn W

dW I n n1 i
Ii
n 1 '

2 1 (W  tn1i ) 1 wn tn1i


Deci n ipoteza simetriei nodurilor fa de mijlocul intervalului avem:
n  1
I i n I n n1 i i 1, 2,!
.
2

127

Avem urmtorul tabel cu coeficieni:


Gradul
=>

10

14175

89600

299376

3956

25713

80335
531500

8 45

I1

3 14

I2

9 64

375 216 25039

23552 141669

9 24

250

-3712

I4

3 64

250 272 20923

I5

14

I3

288 140 17280

95

375

41

27

9261

9261

I7

41 25039

I8

5257

9720

-242625

41984 174096 1362000

27 20923 -18160

95 216

I6

5257

41984

52002 -1302750
52002 2136840

-3712 174096 -1302750


23552

9720 1362000

I9

3956 141669

-242625

I10

25713

531500
80335

I11

Formula de cuadratur Newton Cotes se obine utiliznd tabelul de mai


sus astfel:
b
(b  a ) n
f
(
x
)
dx
Ii  f ( xi )Rn ( f ),
a
K i1
ba
, xi a  (i  1)h,i 1,!, n
n 1
Remarcm faptul c pentru n=8 i n=10 apar i coeficieni negativi.
Pentru n > 10 vor exista ntotdeauna coeficieni negativi.
h

Observaie Pentru n = 10 printre ponderile metodei NewtonCotes 4


sunt negative. Pentru intervalul [-1,1] nodurile de cuadratur sunt
xk 1  0.2k ,k 0,!,10 iar ponderile:

I 0

10

I10

10

16067 10
, I1
299376

I 9

10

26575 10
I 2
74844

I 8

10

5675 10
- 4825 10 17807
,I 4
I 6 10
,I 5
6237
5544
12474
Considerm funcia f : > 1,1@ o  fragmentar liniar:
I 3 10

I 7 10

128

-16175
99792


sign( I i ),x xi i 0,!,10,
f ( x)
10
10
( x  xi )sign( I i 1 )  x  xi 1 sign( I i ), x > xi , xi 1 @ ,i 0,!,9.
10

cu graficul:
1

0.5

-1

-0.5

0.5

-0.5

-1
1

Avem

f x dx

0,4.

1

Aplicnd metoda Newton Cotes pentru aproximarea integralei


obine:
10

I j10 f x j
j 0

10

10
j

vom

6.1259

j 0

cu eroarea absolut:
1

10

f x dx  I j10 f x j

5.7259.

j 0

1

Din acest exemplu rezult c mrirea ordinului de exactitate polinomial


nu conduce n orice situaie la mbuntirea aproximrii integralei
definite.
Formulele NEWTON CTES pe noduri echidistante de tip nchis

Pentru n = 2 vom avea x1


Din relaiile:

Formula trapezului
a, x2 b,t1 1,t2 1.
2
2
I1  I 2 1,
2
2
I 2
I1

rezult:
I1

I1

129

1
,
2

obinnd formula de cuadratur a trapezului:


b

f x dx
a

ba
f a  f b  R2 f
2

(3)

n care pentru f C 2 > a, b @ avem:


b

R2 f

x  a x  b
a

f '' [ x
2

dx

b  a

12

f '' K ,K a, b .

Interpretarea geometric:

Aria cuprins ntre axa X segmentul [a,b], segmentele AA, BB i


b

graficul curbei y=f(x)

a crei valoare este dat de

f ( x)dx

este

ba
aproximat prin
f a  f b care reprezint aria trapezului
2
AABB.

Formula de cuadratur a lui SIMPSON

n metoda Newton Ctes pentru n=3 pentru nodurile:


ab
x1 a,x2
, x3 b,t1 1,t2 0,t3 1 ,
2
folosind relaiile:

130


I 3  I 3  I 3 1,
2
3
1
3
I 3 3
I1

1
t t  1
I 3 1
dt
1

2 1 1  0 1  1

1
6

I 3 3

2
.
3
n ipoteza f C 4 > a, b @ se obine formula de cuadratur a lui Simpson:
rezult I 2 3

4
ba
b  a f (K )
ab
f a  4 f
 f b 

6
2
2 90
5

f x dx
a

(4)

Formula de cuadratur a lui SIMPSON (3/8)

Pentru n=4 nodurile echidistante sunt:


2a  b
a  2b
1
1
x1 a,x2
, x3
 x4 b,t1 1,t2  , t3
t4 1 ,
3
3
3
3
ba
Notm cu h
i obinem astfel formula lui Simpson (3/8) pentru
3
f C 4 > a, b @ :
b

f x dx
a

3
4
h f a  3 f x2  3 f x3  f b  ' h5 f [ (5)

Formula de cuadratur a lui BOOLE

Pentru n=5 considernd nodurile:


ba
,
4
n ipoteza f C 6 > a, b @ obinem formula de cuadratur a lui Boole :
a  (i  1)h,i 1,!,5cuh

xi

f x dx
a

2h
7 f a  32 f x2  12 f x3  32 f x4  7 f b 
45

 ' h 7 f 6 [

131

Formule iterate

Se consider o divizare a intervalului [a,b] n N subintervale de lungime


ba
H
prin nodurile xi a  iH ,i 0,1,!, N . n relaia:
N
N 1 xi 1

f x dx  f x dx
i 0

xi

xi 1

pentru fiecare din integralele

f x dx aplicm formula trapezului:


xi

N 1
x x
x  x
f x dx i 1 i f xi  f xi 1   i 1 i f " Ki 
2
12
i 0
i 0
N 1

H
2

N 1

H 3 N 1 "
2
f
a

f
x

f
b





 12 f Ki
i 1
i 0

Se obine asfel formula trapezelor sau formula iterat a trapezului:


b

f x dx

H
2

N 1

ba 2 "
f
a

f xi  f b 
H f [
2

i 1

12

Considerm divizarea intervalului [a,b] n 2N subintervale de lungime


ba
H
prin nodurile xi a  iH ,i 0,1,!,2 N . n relaia:
2N
b

N 1 x2 i  2

f x dx f x dx
a

i 0 x2 i

pentru fiecare din integralele din sum aplicm formula lui Simpson
obinnd:
b
N 1
x2i  2  x2i
f
x
dx
f x2i  4 f x2i 1  f x2i  2 

a
6
i 0
5

1 N 1 x  x 4
 2i  2 2i f [i
90 i 0
2

sau
b

N 1
N 1

4
2
f
a
f
x




2i1 f x2i  f (b) 

a
i 0
i 1

(6)
H4

b  a f 4 [ .
180
Formula (6) poart numele de formula lui Simpson iterat.

f x dx

H
3

132

Biblioteci de calcul numeric


ASA Advanced Scientific Applications
Biblioteca de programe SciMath V.7.1 este realizat de ASA, Inc.
SciMath se prezint sub forma de fiier .lib astfel nct pentru utilizare
este necesar legarea aplicaiei scrise n C sau C++ cu fiierul bibliotec
SciMath.
Algebr liniar
mtlsbs: Rezolvarea sistemelor liniare
gjmtxl: Rezolvarea sistemelor liniare utiliznd metoda Gauss-Jordan
mtudec: Factorizarea LU a unei matrici band nesimetrice
mtvmul: Produs matrice vector
lbacks: Rezolvarea sistemelor liniare cu metoda substituiei inverse
mtcond: Estimarea numrului de condiionare pentru factorizarea LDL
lnchol: Factorizarea Cholesky
Rdcinile polinoamelor. Rezolvarea sitemelor de ecuaii neliniare
czerop: Zerourile polinoamelor complexe
rsreal: Determinarea unei rdcini reale
rzernl: Rezolvarea sistemelor neliniare
rzrnlj: Rezolvarea sistemelor neliniare utiliznd Jacobianul
rtller: Calculul rdcinilor reale/complexe ale unei funcii
rterop: Calculul zerourilor polinoamelor cu coeficieni reali.
Cuadraturi
qsjacw: Cuadratura Gauss-Jacobi
qgausq: Coeficienii i nodurile n cuadratura Gauss
qsexaw: Cuadratura Gauss-Hermite
quslog: Cuadratura Gauss

133

Aproximare /Interpolare /Extrapolare


ctsqls: Ecuaii liniare complexe. Soluie n sensul celor mai mici patrate
intplt: Interpolarea polinomial bidimensional
intpol: Interpolarea polinomial
sinteg: Integrare cu funcii spline
csplit: Aproximare cu funcii spline cubice
chbfit: Aproximare Lagrange
chbint: Integrarea unei funcii aproximate Lagrange.
Sistemul autovalorilor
mtigen: Vectori i valori proprii pentru matrici reale
eighes: Valorile proprii ale unei matrici Hessenberg
mtgenc: Rezolvarea problemei generale a valorilor proprii
eigsmt: Calculul valorilor i vectorilor proprii ale unei matrici simetrice

134

NUMERICAL ALGORITHM GROUP(NAG)

Colecie de funcii C (NAGC.DLL)


Din categoria algoritmilor pentru algebra liniar:
f01 Factorizarea Matricilor

Numele
rutinei

Realizeaz

f01bnc

nag_complex_cholesky
Factorizarea UUH a unei matrici complexe Hermitiene
pozitiv definite

f01mcc

nag_real_cholesky_skyline
Factorizarea LDLT a unei matrici reale simetrice pozitiv
definite, band

f01qcc

nag_real_qr
Factorizarea QR a unei matrici reale m n (m n)

f01qdc

nag_real_apply_q
Calculeaz QB sau QT B dup factorizarea realizat cu
f01qcc

f01rcc

nag_complex_qr
Factorizarea QR a unei matrici complexe m n (m n)

f01rdc

nag_complex_apply_q
Calculeaz QB sau QH B dup factorizarea realizat cu
f01rcc

f02 Valori i vectori proprii

Numele
rutinei

Realizeaz

f02aac

nag_real_symm_eigenvalues
Toate valorile proprii ale unei matrici reale simetrice.

f02abc

nag_real_symm_eigensystem
Toate valorile proprii i toi vectorii proprii pentru matrici
reale simetrice.

135

f02afc

nag_real_eigenvalues
Toate valorile proprii ale unei matrici reale.

f02agc

nag_real_eigensystem
Toate valorile proprii i toi vectorii proprii pentru matrici
reale

f02awc

nag_hermitian_eigenvalues
Toate valorile proprii ale unei matrici complexe hermitiene.

f02axc

nag_hermitian_eigensystem
Toate valorile proprii i toi vectorii proprii pentru matrici
complexe hermitiene

f02ecc

nag_real_eigensystem_sel
Calculul unor valori proprii selectate i a vectorilor proprii
pentru o matrice real general .

f02gcc

nag_complex_eigensystem_sel
Calculul unor valori proprii selectate i a vectorilor proprii
pentru o matrice complex general .

f02wec

nag_real_svd
SVD pentru matrici reale (Descompunerea dup valorile
singulare)

f02xec

nag_complex_svd
SVD pentru matrici complexe

f03 Determinani

Numele
rutinei
f03aec

Realizeaz
nag_real_cholesky
Factorizare LLT i determinantul unei matrici
simetrice , pozitiv definite .

reale,

f03afc

nag_real_lu
Factorizare LU i determinantul unei matrici reale

f03ahc

nag_complex_lu
Factorizare LU i determinantul unei matrici complexe

136

f04 Sisteme de ecuaii liniare

Numele
rutinei

Realizeaz

f04adc

nag_complex_lin_eqn_mult_rhs
Soluia aproximativ a sistemelor liniare complexe cu
membri drepi multipli .

f04agc

nag_real_cholesky_solve_mult_rhs
Soluia unui sistem cu matrice real, simetric, pozitiv
definit.

f04ajc

nag_real_lu_solve_mult_rhs
Soluia unui sistem real de ecuaii liniare

f04akc

nag_complex_lu_solve_mult_rhs
Soluia unui sistem complex de ecuaii liniare.

f04arc

nag_real_lin_eqn
Soluia unui sistem real de ecuaii liniare.

f04awc

nag_hermitian_lin_eqn_mult_rhs
Soluia unui sistem de ecuaii liniare cu matrice complex
hermitian, pozitiv definit

f04mcc

nag_real_cholesky_skyline_solve
Soluia unui sistem cu matrice real, simetric, pozitiv
definit. Matricea coeficienilor factorizat n prelabil cu
f01mcc.

f07 Ecuaii Liniare (LAPACK)

Numele
rutinei

Realizeaz

f07adc

nag_dgetrf
Factorizarea LU a unei matrici reale de tip (m,n)

f07aec

nag_dgetrs
Rezolvarea unui sistem liniar de ecuaii reale cu membrii
drepi multipli utiliznd factorizarea f07adc

137

f Algebra Liniar

nag real lu (f03afc)


1.

2.

Obiectiv
nag real lu (f03afc) calculeaz factorizarea LU a unei matrici reale
, cu pivotare parial i evaluarea determinantului
Specicare
#include <nag.h>
#include <nagf03.h>
void nag_real_lu(Integer n, double a[], Integer tda, Integer pivot[],
double *detf, Integer *dete, NagError *fail)

3.

4.

Descriere
Aceast funcie calculeaz factorizarea LU a unei matrici reale A cu
pivotare parial PA = LU, n care P este o matrice de permutare , L
este inferior triunghiular iar U este superior triunghiular cu 1 pe
diagonal . Determinantul lui A este produsul elementelor de pe
diagonala lui P cu semnul determinat de schimbarile de linii.
Parametri
n
Intrare : n, ordinul matricii A.
Restricie: n 1.
a[n][tda]
Intrare matricea A de tip n u n .
Ieire : A conine n partea triunghiular inferior matricea L , n
partea strict triunghiular superior matricea U fr elementele
de pe diagonala acesteia care sunt = 1..
tda

Intrare: dimensiunea dominant a matricii aa cum a fost


declarat n funcia care apeleaz nag real lu
Restricie : tda n.
pivot[n]
Ieire : pivot[i 1] conine indicele de linie al pivotilui i .
detf , dete
Ieire determinantul lui A este dat de detf 2.0dete . Se
utilizeaz aceast form pentru a evita depirile
inferioare/superioare ..

138

5.

fail Parametru de eroare NAG


Mesaje de eroare i avertizare
NE SINGULAR
Matricea A este singular eventual datorit erorilor de rotunjire .
Factorizarea nu poate fi realizat , detf = dete = 0.
NE INT ARG LT <value>
In intrare n nu poate fi mai mic dect 1 : n = value
NE 2 INT ARG LT <value>
In intrare tda trebuie s fie tda n. : n = value
NE ALLOC FAIL Alocarea memoriei euat

Timpul de execuie este aproximativ proporinal cu n3


Referine
Wilkinson J H and Reinsch C (1971) Handbook for Automatic
Computation (Vol II, Linear Algebra) Springer-Verlag pp 93
110..
8. Exemplu
Se consider matricea

6.
7

72
33 16
24 10 57

8 4 17

139

8.1. Textul programului


/* nag_real_lu(f03afc) Exemplu
*
*/
#include <nag.h>
#include <math.h>
#include <stdio.h>
#include <nag_stdlib.h>
#include <nagf03.h>
#define NMAX 8
#define TDA NMAX
main()
{
double detf, two=2.0;
Integer i, dete, j, n;
static NagError fail;
double a[NMAX][TDA];
Integer pivot[NMAX];
Vprintf("f03afc Example Program Results\n");
/* Skip heading in data file */
Vscanf("%*[^\n]");
Vscanf("%ld",&n);
if (n>0 && n<=NMAX)
{
for (i=0; i<n; i++)
for (j=0; j<n; j++)
Vscanf("%lf",&a[i][j]);
fail.print = TRUE;
f03afc(n,(double *)a,(Integer)TDA,pivot,&detf,&dete,&fail);
if (fail.code!=NE_NOERROR)
exit(EXIT_FAILURE);
else
{
Vprintf("Matricea A dupa factorizare\n");
for (i=0; i<n; i++)
for (j=0; j<n; j++)
Vprintf("%9.4f%s",a[i][j],(j%8==7 || j==n-1) ? "\n" : " ");
140

Vprintf("\nPermutare P\n");
for (i=0; i<n; i++)
Vprintf("%3ld%s",pivot[i],(i%8==7 || i==n-1) ? "\n" : " ");
Vprintf("\ndetf = %9.4f dete = %2ld\n", detf, dete);
detf = detf * pow(two, (double)dete);
Vprintf("\nValoarea determinantului = %9.4f\n", detf);
}
}
exit(EXIT_SUCCESS);
}
8.2. Date de intrare
f03afc Example Program Data
3
33 16 72
-24 -10 -57
-8 -4 -17
8.3. Rezultate
f03afc Example Program Results
Matricea A dup factorizare
-8.0000 0.5000 2.1250
-24.0000 2.0000 -3.0000
33.0000 -0.5000 0.3750
Permutare P
323
detf = 0.3750 dete = 4
Valoarea determinantului = 6.0000

141

f Algebra liniar

nag real symm eigenvalues (f02aac)


1.

Obiectiv

nag real symm eigenvalues (f02aac) calculeaz toate valorile


proprii ale unei matrici reale simetrice.
2.

Specicare
#include <nag.h>
#include <nagf02.h>
void
nag_real_symm_eigenvalues(Integer n, double a[], Integer tda,
double r[], NagError *fail)

3.

Descriere
Funcia reduce matricea real simetric A la o matrice real simetric
tridiagonal prin metoda lui Householder. Valorile proprii ale
matricii tridiagonale sunt determinate prin algoritmul QL.

4.

Parametri
n

Intrare : n, ordinul matricii A.


Restricie: n 1.
a[n][tda]
Intrare: partea inferior triunghiular a matricii simetrice A .
Elementele situate deasupra diagonalei nu sunt iniializate .

Ieire : elementele lui A situate sub diagonal sunt modificate


restul matricii rmne neschimbat. .
tda

Intrare: a doua dimensiune a matricii aa cum a fost declarat n


funcia care apeleaz
nag real symm eigenvalues
Restricie : tda n.
r[n]

Ieire : valorile proprii n ordine cresctoare.


142

fail

Parametru de eroare NAG


5.

Mesaje de eroare i avertizare


NE TOO MANY ITERATIONS <value>
Sunt necesare mai mult de value iteraii pentru a izola toate
valorile proprii.
NE INT ARG LT <value>
In intrare n nu poate fi mai mic dect 1 : n = value
NE 2 INT ARG LT <value>
In intrare tda trebuie s fie tda n. : n = value

6.
7

NE ALLOC FAIL Alocarea memoriei euat


Timpul de execuie este aproximativ proporinal cu n3

Referine
Wilkinson J H and Reinsch C (1971) Handbook for Automatic
Computation (Vol II, Linear Algebra) Springer-Verlag pp 212226
and 227240.

8. Exemplu
Se consider matricea simetric
2.3 2.6
0.5 0.0
0.0
0.5 1.4 0.7

2.3 1.4 0.5 0.0

0.5
2.6 0.7 0.0

143

8.1. Program
/* nag_real_symm_eigenvalues(f02aac) Exemplu
*
*/
#include <nag.h>
#include <stdio.h>
#include <nag_stdlib.h>
#include <nagf02.h>
#define NMAX 8
#define TDA NMAX
main()
{
Integer i, j, n;
double a[NMAX][TDA], r[NMAX];
Vprintf("f02aac Resultate \n");
/* Skip heading in data file */
Vscanf("%*[^\n]");
Vscanf("%ld",&n);
if (n<1 || n>NMAX)
{
Vfprintf(stderr, "N este in afara domeniului: N = %5ld\n", n);
exit(EXIT_FAILURE);
}
for (i=0; i<n; i++)
for (j=0; j<n; j++)
Vscanf("%lf",&a[i][j]);
f02aac(n, (double *)a, (Integer)TDA, r,
NAGERR_DEFAULT);
Vprintf("Valori proprii\n");
for (i=0; i<n; i++)
Vprintf("%9.4f%s",r[i],(i%8==7 || i==n-1) ? "\n": " ");
exit(EXIT_SUCCESS);
}

144

8.2. Date de intrare


f02aac Date
4
0.5 0.0 2.3 -2.6
0.0 0.5 -1.4 -0.7
2.3 -1.4 0.5 0.0
-2.6 -0.7 0.0 0.5
8.3. Rezultate
Valori proprii
-3.0000 -1.0000 2.0000 4.0000

c02 Zerourile Polinoamelor


Numele
funciei

Scop

c02afc

nag_zeros_complex_poly
Zerourile unui polinom cu coeficieni compleci

c02agc

nag_zeros_real_poly
Zerourile unui polinom cu coeficieni reali

c02akc

nag_cubic_roots
Zerourile unui polinom de gradul 3 cu coeficieni
reali

c02alc

nag_quartic_roots
Zerourile unui polinom de gradul 4 cu coeficieni
reali

145

IMSL Visual Numerics


International Mathematical and Statistical Library

Conine programe din urmtoarele domenii:


x valori i vectori proprii,
x sisteme algebrice liniare,
x interpolare,
x integrare i derivare numeric,
x ecuaii difereniale ordinare i cu derivate pariale,
x transformri,
x ecuaii neliniare,
x optimizri,
x statistic.
LSARG/DLSARG (Single/Double precision)

Rezolvarea unui sistem de ecuaii algebrice liniare reale.


Utilizare (FORTRAN)
CALL LSARG (N, A, LDA, B, IPATH, X)
Argumente
N Numrul ecuaiilor (Intrare)
A Matrice N u N coninnd coeficienii sistemului liniar (Intrare)
LDA Dimensiunea dominant prevzut n declaraia de dimensiune
din programul apelant (Intrare)
B Vector N-dimensional coninnd termenii liberi (Intrare)
IPATH (Intrare)
IPATH = 1 se rezolv sistemul AX = B .
IPATH = 2 se rezolv sistemul ATX = B.
X Vector N-dimensional coninnd soluia sistemului liniar (Ieire)
Commentarii
1. Utilizarea spaiului de lucru
LSARG N2 + 2N uniti,
DLSARG 2N2 + 3N uniti.

Spaiul de lucru poate fi stabilit explicit prin utilizarea subprogramelor


L2ARG/DL2ARG. Apelul este de forma:
CALL L2ARG (N, A, LDA, B, IPATH, X, FAC, IPVT, WK)
n care argumentele adiionale sunt :

146

FAC vector de lucru de dimensiune N2 coninnd factorizarea LU a


matricii A (Ieire)
IPVT vector de ntregi de dimensiune N coninnd informaii privind
pivotarea n factorizarea LU (Ieire)
WK vector de lucru de dimensiune N.
LFCRG/DLFCRG (Single/Double precision)

Calculeaz factorizarea LU a unei matrici reale i estimeaz numrul de


condiionare
Utilizare
CALL LFCRG (N, A, LDA, FAC, LDFAC, IPVT, RCOND)
LFDRG/DLFDRG (Single/Double precision)

Calculeaz determinantul unei matric dat fiind


matricii.

factorizarea LU a

Utilizare
CALL LFDRG (N, FAC, LDFAC, IPVT, DET1, DET2)
det(A) = DET1 * 10^DET2.
LINRG/DLINRG (Single/Double precision)

Calculeaz inversa unei matrici reale.


Utilizare
CALL LINRG (N, A, LDA, AINV, LDAINV)
AINV inversa
LSLRT/DLSLRT (Single/Double precision)

Rezolvarea unui sistem triunghiular de ecuaii liniare .


Utilizare
CALL LSLRT (N, A, LDA, B, IPATH, X)
LFCDS/DLFCDS (Single/Double precision)

Calculeaz factorizarea Cholesky RTR a unei matrici reale, simetrice i


pozitiv definite
i estimeaz numrul de condiionare.
147

Utilizare
CALL LFCDS (N, A, LDA, FAC, LDFAC, RCOND)

IMSL Aproximare spline


CSCON/DCSCON (Simpla/Dubla precizie)

Calculeaz interpolantul spline cubic consistent cu concavitatea datelor.


Utilizare
CALL CSCON (NDATA, XDATA, FDATA, IBREAK, BREAK,
CSCOEF)
Argumente
NDATA Numrul datelor de intrare . (Intrare) (NDATA este cel puin
3)
XDATA Vector de lungime NDATA coninnd valorile nodurilor .
(Intrare) (Nodurile sunt distincte )
FDATA Vector de lungime NDATA coninnd valorile funciei.
(Intrare)
IBREAK Numrul punctelor de racord pentru funcia fragmentar
cubic. (Iesire) IBREAK < 2 * NDATA.
BREAK Vector de lungime IBREAK coninnd pt. de racord ale
reprezentrii fragmentar cubice (Iesire) (Dimensiunea lui BREAK este
cel puin 2 * NDATA.)
CSCOEF Matrice de dimensiune (4 ,N ) n care N este dimensiunea
lui BREAK. (Iesire) (Conine, pe coloane, coeficienii funciilor cubice
pe subintervale.)
Comentarii
1. Utilizarea automat a spaiului de lucru este
CSCON 11 * NDATA 14 uniti, sau
DCSCON 21 * NDATA 28 uniti.

Spaiul de lucru poate fi precizat explicit prin utilizarea subprogramelor


C2CON/DC2CON.
Apelarea este de forma
CALL
C2CON
(NDATA,
XDATA,
FDATA,
IBREAK,
BREAK,CSCOEF, ITMAX, XSRT, FSRT, A, Y, DIVD,ID, WK)
In care argumentele suplimentarea au urmtoarea semnificaie:
ITMAX - Numrul maxim de iteraii pentru metoda lui Newton (Intrare)
XSRT- Vector de lucru de lungime NDATA n care se pstreaz valorile
XDATA sortate.
148

FSRT Vector de lucru de lungime NDATA n care se pstreaz


valorile FDATA sortate.
A Vector de lucru de lungime NDATA.
Y Vector de lucru de lungime NDATA 2.
DIVD Vector de lucru de lungime NDATA 2.
ID Vector de ntregi de lungime NDATA.
WK Vector de lucru de lungime 5 * (NDATA 2).
CSVAL/DCSVAL (Simpla/Dubla precizie)

Evaluarea unui spline cubic .


Utilizare
CSVAL(X, NINTV, BREAK, CSCOEF)
Argumente
X Punctul n care funcia spline se evalueaz . (Intrare)
NINTV Numrul intervalelor. (Intrare)
BREAK Vector de lungime NINTV + 1 coninnd punctele de racord
n reprezentarea fragmentar cubic a funciei spline . (Intrare) Elementele
din BREAK trebuie s fie n ordine strict cresctoare
CSCOEF Matrice de dimensiune (4 , NINTV + 1 ) care conine , pe
coloane, coeficienii funciilor cubice pe subintervale. (Intrare)
CSVAL Valoarea funciei spline n X. (Iesire)
CSINT/DCSINT (Simpla/Dubla precizie)

Calculeaz interpolantul spline cubic


Utilizare
CALL CSINT (NDATA, XDATA, FDATA, BREAK, CSCOEF)
Argumente
NDATA Numrul datelor de intrare . (Intrare)
NDATA este cel puin 2.
XDATA Vector de lungime NDATA coninnd valorile absciselor .
(Intrare)
Abscisele sunt distincte .
FDATA Vector de lungime NDATA coninnd valorile ordonatele.
(Intrare)
BREAK Vector de lungime NDATA coninnd punctele de racord ale
reprezentrii fragmentar cubice . (Iesire)
Dimensiunea lui BREAK este cel puin 2 * NDATA.
CSCOEF Matrice de dimensiune (4 ,NDATA ). (Iesire) Conine , pe
coloane, coeficienii funciilor cubice pe subintervale .

149

MATLAB
produs al companiei The MathWorks Inc.
Interpolare polinomial
Funcia interp1 utilizeaz tehnici de aproximare polinomial pentru
aproximarea valorilor unei funcii
yi = interp1(x,y,xi,metoda)
x vector coninnd nodurile de interpolare;
y vector coninnd valorile funciei n noduri;
xi vector coninnd punctele n care se interpoleaz funcia
metoda ir de litere prin care se precizeaz metoda de interpolare:
`nearest se atribuie valoarea funciei corespunztoare celui mai
apropiat nod de interpolare
`linear pe nodurile de interpolare se construiete o funcie spline
liniar pentru care se calculeaz valorile yi corespunztor punctelor de
intrare xi (metoda implicit);
`spline se utilizeaz aproximarea spline cubic pe nodurile x , y
Dac un element xi se afl n afara intervalului nodurilor de interpolare x
se aplic metoda specificat pentru extrapolare sau se utilizeaza funcia
interpl sub forma:
yi = interp1(x,Y,xi,method,extrapval)
n care yi pentru xi din afara intervalului de interpolare se atribuie
valoarea extrapval .
Exemplu 1. Metoda implicita : `linear
x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = interp1(x,y,xi);
plot(x,y,'o',xi,yi)

150

Exemplu 2 . Metoda `spline

x = 0:20;
y = cos(x);
xi = 0:.2:20;
yi = interp1(x,y,xi,spline);
plot(x,y,'o',xi,yi)

151

Cuadraturi numerice

Pentru aproximarea integralei definite


b

f ( x ) dx
a

se utilizeaz funcia quad ;


q = quad(fun,a,b)
aproximeaz integrala funciei fun de la a la b cu o eroare de ordinul lui
10-6 utiliznd metoda de cuadratura a lui Simpson adaptiv.
Exemplu
>> P = quad('cos(x)',0,pi/4);
P = 0.7071
Sub forma
q = quad(fun,a,b,tol)
se utilizeaz eroarea de aproximare tol n locul celei implicite care este
1.0e-6.

152

O alt form
q = quad(fun,a,b,tol,trace)
realizeaz afisarea la fiecare pas a valorilor [nr_evaluari_ale_functiei a
, b-a, q]
>>SS = quad('sin(x)',0.0,10.0,0.01,1);
NR_EV
5
7
9
11
13
15
17

a
0.0000000000
0.0000000000
0.0000000000
2.5000000000
5.0000000000
5.0000000000
7.5000000000

b-a
1.00000000e+001
5.00000000e+000
2.50000000e+000
2.50000000e+000
5.00000000e+000
2.50000000e+000
2.50000000e+000

q
3.7613187551
0.6970411903
1.8008605052
-1.0846352873
1.0924896452
-0.0629632340
1.1855204732

SS = 1.8388
>>SS = quad('sin(x)',0.0,10.0,0.001,1);

5
7
9
11
13
15
17
19
21
23
25
27
29
SS =

0.0000000000
0.0000000000
0.0000000000
0.0000000000
1.2500000000
2.5000000000
2.5000000000
3.7500000000
5.0000000000
5.0000000000
7.5000000000
7.5000000000
8.7500000000

1.00000000e+001
5.00000000e+000
2.50000000e+000
1.25000000e+000
1.25000000e+000
2.50000000e+000
1.25000000e+000
1.25000000e+000
5.00000000e+000
2.50000000e+000
2.50000000e+000
1.25000000e+000
1.25000000e+000

3.7613187551
0.6970411903
1.8008605052
0.6846762159
1.1164636596
-1.0846352873
0.0194157015
-1.1042192499
1.0924896452
-0.0629632340
1.1855204732
1.1274786602
0.0582257246

1.8391

Se observ diferenele ntre valorile obinute


funciei corespunztor toleranelor specificate.

153

i numrul evaluarilor

Mathematica
Mathematica este un produs software realizat de WOLFRAM Research
Inc. Informaii se gasesc pe site-ul www.wolfram.com. Prima versiune a
aprut n 1988. Versiunea actuala Mathematica 5.1

Pentru interpolarea polinomiala Mathematica utilizeaza:


InterpolatingPolynomial[ ]
In primul caz valorile X sunt {1,2,3} iar cele ale lui Y {1,4,9}:
In[1]:=InterpolatingPolynomial[{1, 4, 9}, x]
Out[1]=1 + (-1 + x) (1 + x)
In al doilea exemplu se prezinta explicit nodurile de interpolare :
In[2]:=InterpolatingPolynomial[{{1, 7}, {1.5, 3}, {3, 3}, {4, 1}}, x]
Out[2]=7 + (-8. + (4. - 1.6 (-3 + x)) (-1.5 + x)) (-1 + x)
Polinomul de interpolare este prezentat n forma Newton.
Pentru metoda de cuadratur Newton-Cotes Mathematica prezint
funciile
NewtonCotesWeights[Numr_noduri, a, b]
returneaz perechile {xi , Ii}
Se iniializeaz pachetul NumericalMath`NewtonCotes`
In[1]:= <<NumericalMath`NewtonCotes`
In[2]:= NewtonCotesWeights[5,-3,7]
Out[2]= ({{ -3 , 7/ 9}, { - 1 /2 , 32 /9}, {2, 4 /3}, {9 /2, 32 /9}, {7,
7 /9}} )
In[3]:= NewtonCotesError[5,f,-3,7]
Out[3]=

15625 ( 6)
f
3024

Funcia NewtonCotesError[Numr_noduri, f, a, b] n care f este


funcia de integrat de clas (Numr_noduri+1) returneaz o evaluare
pentru eroarea de aproximare a integralei
Pentru integrarea unei functii interpolante se iniializeaz pachetul
NumericalMath`NIntegrateInterpolatingFunct
In[7]:= << NumericalMath`NIntegrateInterpolatingFunct`

Se interpoleaz funcia Sin[x] pe nodurile echidistante din intervalul [0,4]


cu pasul h=0.5;

154

In[10]:= f = Interpolation[Table[{x, Sin[x]}, {x, 0, 4, .5}]]


Out[10]= InterpolatingFunction[{{0., 4.}}, "<>"]

O evaluare a interpolantei f n x=1.25


In[11]:= r = f[1.25]
Out[11]= 0.947623 // Sin[1.25]= 0.948985

Se calculeaz integrala pe intervalul [0,2] a funciei [f(x2)]2


In[12]:= NIntegrateInterpolatingFunction[f[x^2]^2, {x, 0, 2}]
Out[12]= 0.715792
m ={{1,1},{2,2}}
{r,q}=QRDecomposition[m]
Eigenvalues[m]
CholeskyDecomposition[h]
{u,sigma,v} = SingularValues[N[h]]
{l,r}=LUDecomposition[h]
m = {{a,b},{c,d}}
{{a,b},{c,d}}
m . {x,y} == {1,1}
{a x+b y,c x+d y}=={1,1}
Solve[ %,{x,y}]
{{ x -> -

bd
a  c
, y-> }}
bc  ad
bc  ad

LinearSolve[m, {p,q}]
{

dp  bq
cp  aq
,
}
bc  ad bc  ad

n=Inverse[m]
{{

d
b
c
a
,
},{ 
,
}}
bc  ad
bc  ad
bc  ad bc  ad

f=m.n
{{ 

bc
ad
bc
ad
+
, 0},{0, 
+
}}
bc  ad bc  ad
bc  ad bc  ad

Solve[x^2==0.5,x]
{{x ->0.707107},{x->0.707107}}

155

Multe din bibliotecile de mai sus sunt scrise n FORTRAN. Exist un


program f2c care transform fiierele FORTRAN n fiiere C. Prezentm
n continuare un exemplu de utilizare a acestui program. In stnga este
prezentat programul FORTRAN care calculeaz produsul scalar a doi
vectori iar n dreapta avem traducerea lui n C.
Utilizarea programului f2c
FORTRAN
FUNCTION DOT(N,X,Y)
INTEGER N
REAL X(N),Y(N)
DOT = 0
DO 10 I = 1, N
10 DOT = DOT +
X(I)*Y(I)
END

C
/* dot.f -- translated by f2c (version
19950314).
You must link the resulting object file with
the libraries:
-lf2c -lm (in that order)
*/
#include "f2c.h"
doublereal dot_(n, x, y)
integer *n;
real *x, *y;
{
/* System generated locals */
integer i__1;
real ret_val;
/* Local variables */
static integer i;
/* Parameter adjustments */
--y;
--x;
/* Function Body */
ret_val = (float)0.;
i__1 = *n;
for (i = 1; i <= i__1; ++i) {
/* L10: */
ret_val += x[i] * y[i];
}
return ret_val;
} /* dot_ */

http://www.weihenstephan.de/~syring/f2c/f2c.html
http://cm.bell-labs.com/netlib/f2c/mswin/

156

Bibliografie
1. C. Ignat, C. Ilioi, T. Jucan, Elemente de informatic i calcul
numeric, vol. 1, Ed. Universitii Al.I.Cuza, Iai, 1987.
2. C. Ilioi, Analiz numeric, vol. 1i 2, Ed. Universitii
Al.I.Cuza, Iai, 1983.
3. T.A. Beu, Calcul numeric n C, Ed. Albastr, Cluj, 2000.
4. D. Larionescu, Metode numerice, Ed. Tehnic, Bucureti, 1989.
5. C. Berbente, S. Mitran, S. Zancu, Metode numerice, Ed.
Tehnic, Bucureti, 1997.
6. G. Dahlquist, . Bjrk, Numerical Methods, Prentice-Hall, 1974.
7. G. Golub, C.F. Van Loan, Matrix Computation, J. Hopkins Univ.
Press, 1986.
8. V. Ionescu, A. Varga, Teoria sistemelor, Ed. ALL, Bucureti,
1994.
9. I. Dragot, Metode de calcul numeric, Ed. Didactic i
Pedagogic, Bucureti,1998
10. B. Dumitrescu, C. Popeea, B. Jora, Metode de calcul numeric
matriceal. Algoritmi fundamentali, Ed. ALL, Bucureti, 1998.
11. P.G. Ciarlet, Introduction lanalyse numrique matricielle et
loptimisatio, Masson, Paris, 1982.
12. W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery,
Numerical Recipes in C - The art of scientific computing,
Cambridge University Press, 2002, ediia online.

157

Teme de laborator

Laboratorul nr. 1
1. Sa se gaseasca cel mai mic numar pozitiv u > 0, de forma u = 10m ,
astfel ca:
1.0 u 6= 1.0
unde prin am notat operatia de adunare efectuata de calculator.
Numarul u poarta numele de precizia masin
a.
2. Fie numerele a = 1.0, b = u, c = u, unde u este precizia masina
calculata anterior. Sa se verifice ca operatia de adunare efectuata de
calculator nu este asociativa, i.e.:
(a b) c 6= a (b c)
3. Aproximarea functiilor sin si cos cu ajutorul dezvoltarii n serie Taylor:

X
(1)n x2n+1
sin x =
=
sn
n=0 (2n + 1)!
n=0

cos x =

X
(1)n x2n
tn
=
(2n)!
n=0
n=0

(1)n x2n+1
sn =
(2n + 1)!

tn =

(1)n x2n
(2n)!

(1)

(2)

Sumele de mai sus se folosesc doar pentru valori ale lui x [0, 2).
Pentru x 6 [0, 2) se foloseste periodicitatea functiilor sin si cos:
x = 2k + z , k Z , z [0, 2) ,

sin x = sin z ,

cos x = cos z

In continuare vom presupune ca x [0, 2). Functiile sin si cos se


aproximeaza astfel:
sin x SN =

N
X

sn

n=0

158

cos x TN =

N
X

n=0

tn

Termenii sn si tn se calculeaza folosind formulele de recurenta:


x2
=
sn
(2n + 2)(2n + 3)

n = 0, 1, . . . , N 1

x2
tn
(2n + 1)(2n + 2)

n = 0, 1, . . . , N 1

s0 = x ,

sn+1

t0 = 1 ,

tn+1 =

Cum alegem limita superioara de sumare, numarul N ? T


inand cont
de primul exercitiu, vom opri sumarea atunci cand termenul sn / tn
devine suficient de mic:
|sn |  ,

|tn |  ,

 = 10p u

 reprezinta precizia cu care vrem sa aproximam functiile sin si cos si


este un numar citit de la tastatura si/sau este parametru de intarare a
functiilor sin si cos:
double sin(double x, double ), double cos(double x,double ).
4. Proceduri de citire a vectorilor si a matricilor de la tastatura, din fisier
si automat (folosind functia rand) si proceduri de afisare a vectorilor si
a matricilor.

159

Laboratorul nr. 2
Tema
1) Date n dimensiunea sistemului,  - precizia calculelor, matricea A
nn
R
triunghiulara inferior sau superior, vectorul termenilor liberi b Rn :
- sa se rezolve sistemul liniar Ax = b folosind metoda substitutiei (sa se
scrie cele doua proceduri care implementeaza metoda substitutiei directe si
inverse)
- sa se scrie procedurile de calcul a inversei matricilor triunghiulare.
2) Date n dimensiunea matricilor, matricile A, B Rnn sa se scrie
proceduri de adunare, scadere, nmultire a matricilor.
Observatie Precizia calculelor , este un numar pozitiv de forma  =
10m (cu m = 5, 6, ..., 10, ... la alegere) care este data de intrare n program
(se citeste de la tastatura sau din fisier) la fel ca si dimensiunea n a datelor.
Acest numar se foloseste atunci cand testam daca o variabila este 0 sau
nu naintea unei operatii de mpartire. Daca vrem sa efectuam operatia de
mpartire s = 1/v unde v R nu vom scrie:
if(v! = 0) s = 1/v;
else printf( nu se poate face impartirea);
ci vom scrie n program:
if(f abs(v) > eps) s = 1/v;
else printf( nu se poate face impartirea);
Metoda substitutiei
Fie sistemul liniar:
Ax = b

(1)

unde matricea sistemului A este triunghiulara. Pentru a gasi solutia unica a


sistemului (1), trebuie ca matricea sa fie nesingulara. Determinantul matricilor triunghiulare este dat de folrmula:
det A = a11 a22 ann
Prin urmare pentru rezolvarea sistemului (1) vom presupunem ca:
det A 6= 0 aii 6= 0 i = 1, 2, . . . , n
160

Vom considera ntai cazul cand matricea A este inferior triunghiulara.


Sistemul (1) are forma:
a11 x1
a21 x1 + a22 x2
..
.

= b1
= b2

ai1 x1 + ai2 x2 + + aii xi


= bi
..
.
an1 x1 + an2 x2 + + ani xi + + ann xn = bi
Necunoscutele x1 , x2 , ..., xn se deduc folosind ecuatiile sistemului de la
prima catre ultima.
Din prima ecuatie se deduce x1 :
x1 =

b1
a11

(2)

Din a doua ecuatie, folosind (2), obtinem x2 :


x2 =

b2 a21 x1
a22

Cand ajungem la ecuatia i:


ai1 x1 + ai2 x2 + + aii1 xi1 + aii xi = bi
folosind variabilele x1 , x2 ,...,xi1 calculate anterior, avem:
xi =

bi ai1 x1 aii1 xi1


aii

Din ultima ecuatie se deduce xn astfel:


xn =

bn an1 x1 an2 x2 ann1 xn1


ann

Algoritmul de calcul a solutiei sistemelor (1) cu matrice inferior triunghiulara este urmatorul:

xi =

(bi

i1
P

j=1

aii

aij xj )
,
161

i = 1, 2, . . . , n 1, n

(3)

Acest algoritm poarta numele de metoda substitutiei directe.


Vom considera, n continuare sistemul (1) cu matrice superior triunghiulara:
a11 x1 + + a1i xi + + a1n1 xn1
+ a1n xn
..
.
aii xi + + ain1 xn1
+ ain xn
..
.
an1n1 xn1 + an1n xn
ann xn

= b1
= bi
= bn1
= bn

Necunoscutele x1 , x2 ,...,xn se deduc pe rand, folosind ecuatiile sistemului de


la ultima catre prima.
Din ultima ecuatie gasim xn :
bn
ann

xn =

(4)

Folosnd valoarea lui xn dedusa mai sus, din penultima ecuatie obtinem:
xn1 =

bn1 an1n xn
an1n1

Cand ajungem la ecuatia i:


aii xi + aii+1 xi+1 + + ain xn = bi
se cunosc deja xi+1 ,xi+2 ,..., xn si deducem:
xi =

bi aii+1 xi+1 ain xn


aii

Din prima ecuatie gasim valoarea lui x1 :


x1 =

b1 a12 x2 a1n xn
a11

Procedeul descris mai sus poarta numele de metoda substitutiei inverse pentru
rezolvarea sistemelor liniare cu matrice superior triunghiulara:

xi =

(bi

n
P

j=i+1

aii

aij xj )
,
162

i = n, n 1, . . . , 2, 1

(5)

Calculul inversei unei matrici triunghiulare


Pentru orice matrice A nesingulara pentru care avem o metoda de rezolvare a sistemului Ax = b, inversa se calculeaza astfel:
coloana j (1 j n) a matricii A1 se obtine rezolvand sistemul:
Ax = ej

(6)

unde ej este vectorul ej = (0, ...0, 1, 0, ..., 0)T unde 1 este plasat pe pozitia
j din vector. Prin urmare, pentru a gasi inversa unei matrici triunghiulare
vom aplica metoda substitutiei de n ori.
Se va observa ca inversele matricilor triunghiulare sunt de asemenea matrici triunghiulare.

163

Laboratorul nr. 3
Tema
Date: n - dimensiunea sistemului,  - precizia calculelor, matricea sistemului A Rnn ,vectorul termenilor liberi b Rn , sa se decida daca matricea A
este singulara sau nu si n caz ca matricea A este nesingulara sa se aproximeze
solutia sistemului:
Ax = b.

(1)

folosind algoritmul de eliminare Gauss cu pivotare partiala.


Fie xGauss solutia aproximativa calculata. Sa se verifice solutia afisand :
|Ainit xGauss binit |
Ainit si binit sunt datele initiale nu cele modificate pe parcursul algoritmului.
Algoritmul de eliminare Gauss
Ideea de rezolvare este de a transforma succesiv sistemul (1) folosind
operatii elementare (ce nu modifica solutia sistemului) si a aduce matricea A
la o forma superior triunghiulara . Algoritmul se desfasoara in (n 1) pasi.
La un pas l oarecare se transforma coloana l a matricii A n formasuperior
triunghiulara fara a modifica forma triunghiulara a primelor (l 1) coloane.
Pas l: Presupunem ca elementul de pe pozitia (l, l) numit si element
pivot este nenul, all 6= 0. Pentru i = l + 1, ..., n se inmulteste linia l a matricii
A cu (ail /all ) si se aduna la linia i. Schimbare se face si asupra componente
i a vectorului b. Matricea A si vectorul b se modifica astfel:
a0ij = aij
b0i = bi

ail
bl
all

a0il = 0 ,
a0ij = aij

ail
alj
all

,
,

i = l + 1, n , j = l + 1, n
i = l + 1, n ,

i = l + 1, n ,
b0i = bi pentru restul indicilor i, j

164

(2)
(3)
(4)

Alegerea pivotului all 6= 0


Pentru a aduce pe pozitia (l, l) un element nenul avem trei posibilitati:
1. Varianta fara pivotare
Se alege primul indice i0 {l, l + 1, , n} astfel ca ai0 l 6= 0. Se interschimba
liniile i0 si l ale matricii A si componentele i0 si l ale vectorului b.
2. Varianta cu pivotare partiala
Se alege indicele i0 {l, l + 1, , n} astfel ca
|ai0 l | = max{|ail |, i = l, n}.
Se interschimba liniile i0 si l ale matricii A si componentele i0 si l ale vectorului b.
3. Varianta cu pivotare totala
Se aleg indicii i0 , j0 {l, l + 1, , n} astfel ca
|ai0 j0 | = max{|aij |, i = l, n, j = l, n}.
Se interschimba liniile i0 si l , coloanele j0 si l ale matricii A si componentele
i0 si l ale vectorului b.
Daca dupa efectuarea pivotarii (indiferent de varianta ) elementul pivot
este nul (all = 0) atunci matricea A este singulara .
Obesrvatii:
1)In pasul Gauss l (2)+(3)+(4) calculele se pot efectua in matricea a
initiala (a0 = a).
2) Daca pentru memorarea matricii A si a vectorului b se foloseste o
matrice cu n linii si (n + 1) coloane - vectorul b fiind memorat n coloana
(n + 1) a matricii a calculele (3) sunt incluse in (2) pentru j = n + 1 ; se
simplificasi interschimbarea liniilor i0 si l.
3) Daca pivotul se alege folosind varianta 3., n final trebuie sa avem grija
sa restabilim ordinea initiala a componentelor vectorului solutie (tinand cont
de coloana j0 a pivotului de la fiecare pas).

165

Algoritmul :
l = 1;
cauta pivot;
interschimba linii; (daca e cazul)
while (l n 1) and (all ) 6= 0) do
begin
(2)+(3)+(4);
l = l + 1;
cauta pivot;
interschimba linii; (daca e cazul)
end
if all = 0 then matrice singulara
else
begin
rezolva sistem superior triunghiular; (formulele (2))
verifica solutie;
end
Verificarea solutiei
Folosind datele initiale (nu cele modificate pe parcursul algoritmului) se
calculeaza si se afiseaza |Ainit xGauss binit | unde Ainit si binit sunt matricea si
vectorul introduse initial iar xGauss este solutia calculata folosind algoritmul
de mai sus. In general |Ainit xGauss binit | trebuie sa fie de ordinul 10p cu
p > 4 daca s-a lucrat corect (p depinde de n dimensiunea sistemului).
x Rn , A Rnn , y := Ax Rn y = (yi )ni=1 , yi =
z Rn , z = (zi )ni=1 , |z| =

166

n
X

j=1

v
u n
uX
t
|z
i=1

aij xj , i = 1, . . . , n
i|

Laboratorul nr. 4
Tema
Date: n - dimensiunea sistemului,  - precizia calculelor, matricea sistemului A Rnn , vectorul termenilor liberi b Rn , sa se calculeze, cand
este posibil, o descompunere LU a matricii A (A = LU ). Folosind aceasta
descompunere sa se calculeze determinantul matricii A (det A = det L det U )
si xLU o solutie aproximativa a sistemului Ax = b.
Pentru verificarea solutiei sa se afiseze norma:
|Ainit xLU binit |
Ainit si binit sunt datele initiale nu cele modificate pe parcursul algoritmului.
Descompunere LU
Teorem
a
Fie A Rnn o matrice reala patratica de dimensiune n astfel ncat
det Ak 6= 0, k = 1, . . . , n, unde Ak = (aij )i,j=1,...,k . Atunci exista o unica
matrice inferior triunghiulara L = (lij )i,j=1,...,n cu lii = 1, i = 1, . . . , n si o
unica matrice superior triunghiulara U = (uij )i,j=1,...,n astfel ncat
A = LU

(1)

(demonstratia se face prin inductie dupa n dimensiunea matricii A)


Algoritmul Doolittle de calcul al descompunerii LU
Fie A Rnn o matrice reala patratica de dimensiune n care satisface
ipotezele teoremei de mai sus. Algoritmul de calcul al matricilor L si U are
n etape. La fiecare pas se determina cate o linie din matricea U si cate o
coloana din matricea L.
Pasul p (p = 1, 2, . . . , n)
Se determina elementele liniei p ale matricii U , upi , i = p, . . . , n, si elementele coloanei p ale matricii L, lip , i = p + 1, . . . , n lpp = 1.
Sunt cunoscute de la pasii anteriori elementele primelor p 1 linii din U
(elemente ukj cu k = 1, . . . , p 1) si elementele primelor p 1 coloane din L
(elemente lik cu k = 1, . . . , p 1).
167

Calculul elementelor liniei p din matricea U : upi i = p, . . . , n


(upi = 0, i = 1, . . . , p 1)
api =
=

n
P

k=1
p
P

k=1

lpk uki = (lpk = 0, k = p + 1, . . . , n) =


lpk uki = lpp upi +

Pentru i = p, . . . , n avem:
upi = api

p1
X

p1
P

k=1

lpk uki ,

lpk uki

i = p, . . . , n

(2)

k=1

(lpp = 1 , lpk , uki k = 1, . . . , p 1 sunt elemente de pe coloane din L si


linii din U calculate la pasii anteriori)
Calculul elementelor coloanei p din matricea L: lip , i = p + 1, . . . , n
(lip = 0 , i = 1, . . . , p 1 , lpp = 1)
aip =
=

n
P

k=1
p
P

k=1

lik ukp = (ukp = 0, k = p + 1, . . . , n) =


lik ukp = lip upp +

p1
P

k=1

lik ukp

Daca upp 6= 0 putem calcula elementele nenule ale coloanei p a matricii L


astfel:
lip = (aip

p1
X

lik ukp)/upp ,

i = p + 1, . . . , n

(3)

k=1

(elementele lpk , uki k = 1, . . . , p 1 sunt cunoscute deja la pasul p fiind


calculate anterior)
Daca upp = 0, calculele se opresc, descompunerea LU nu poate fi calculata
- matricea A are un minorant Ap cu determinantul 0.
Observatii:
1. Pentru memorarea matricilor L si U se poate folosi matricea A initiala .
Vom folosi partea superior triunghiulara a matricii A pentru a memora
elementele uij ale matricii U pentru i = 1, 2 . . . , n , j = i, i + 1 . . . , n
si partea strict inferior triunghiulara a matricii A pentru a memora
elementele lij ale matricii L , i = 2, 3 . . . , n , j = 1, 2 . . . , i 1. Se
observa ca nu am memorat nicaieri elementele lii = 1 i = 1, . . . , n.
Vom tine cont de acest lucru n calculele ulterioare. Calculele (2) si (3)
se pot face direct n matricea A.
168

2. Daca pentru o matrice A avem descompunerea LU , rezolvarea sistemului Ax = b se reduce la rezolvarea a doua sisteme triunghiulare:
Ax = b LU x = b

Ly = b,
U x = y.

Se rezolva ntai sistemul inferior triunghiular Ly = b. Apoi se rezolva


sistemul superior triunghiular U x = y unde y este solutia obtinuta
din rezolvarea sistemului precedent Ly = b. Vectorul x rezultat din
rezolvarea sistemului U x = y este si solutia sistemului initial Ax = b.

169

Laboratorul nr. 5
Tema
Date: n - dimensiunea sistemului,  - precizia calculelor, matricea sistemului A Rnn ,vectorul termenilor liberi b Rn , sa se calculeze descompunerea QR a matricii A si daca matricea sistemului A este nesingulara sa
se aproximeze solutia sistemului:
Ax = b.

(1)

folosind algoritmul Givens.


Sa se afiseze norma:
||Ainit QR||

unde Ainit este matricea initiala iar Q Rnn este matricea ortogonala si
R Rnn este matricea triunghiulara superior din descompunerea QR a
matricii A calculate cu algoritmul lui Givens.
Fie A o matrice reala patratica de dimensiune n. Presupunem ca pentru
matricea A avem o descompunere de forma:
A=QR

(2)

unde Q este o matrice ortogonala (QT Q = I) iar R este o matrice superior


triunghiulara. Avand o asemenea descompunere rezolvarea sistemului liniar
Ax = b se reduce la rezolvarea sistemului superior triunghiular Rx = QT b
astfel:
Ax = b

QRx = b

QT QRx = QT b

Rx = QT b

Algoritmul lui Givens


Pentru a aduce sistemul Ax = b la forma Rx = QT b se folosesc matricile de

170

rotatie. O matrice de rotatie R(p, q) = (rij )i,j=1,n are urmatoarea forma :

R(p, q) =

rij =

1 0
0 1
..
.

0
0

0 0
..
.

0 0

0 0

s 0

0 0 s c 0
..
.
0 0

1
c
s
s
0

pentru
pentru
pentru
pentru
pentru

0 1

i = j, i 6= p si i 6= q
i = j, i = p si i = q
i = p, j = q
i = q, j = p
restul indicilor i, j

unde p, q {1, . . . , n} iar c si s sunt doua numere reale care satisfac relatia
c2 + s2 = 1 (c si s pot fi alesi astfel incat c = cos t, s = sin t). Dupa cum
se observa , matricea R(p, q) nu depinde doar de p si q ci depinde si de
parametrul t pe care l-am omis pentru a simplifica notatia.
Daca inmultim la dreapta o matrice oarecare A cu o matrice de rotatie
R(p, q), B = R(p, q)A, matricea rezultat se obtine din matricea A astfel:
Notam cu Ai , Bi - linia i a matricii A respectiv a matricii B. Matricea B
are urmatoarele linii:
Bi = A i
Bp = cAp + sAq
Bq = sAp + cAq

liniile i = 1, . . . , n ,
linia p
linia q

i 6= p , i 6= q

Algoritmul se desfasoara n (n 1) pasi - la pasul p se transforma coloana


p a matricii A n forma superior triunghiulara .
Pasul p
La acest pas se transforma matricea A astfel:
A0 = R(p, n) R(p, p + 2)R(p, p + 1)A
b0 = R(p, n) R(p, p + 2)R(p, p + 1)b
171

unde elementele c = ci si s = si din R(p, i), i = p + 1, . . . , n se aleg astfel ca


dupa nmultirea cu R(p, i) elementul aip sa devina 0.
q

c = app / a2pp + a2ip


q

s = aip / a2pp + a2ip


Daca a2pp + a2ip = 0 acest lucru implica faptul ca app = aip = 0 , deci elementul
aip este deja nul. In acest caz putem lua c = 1, s = 0 - matricea de rotatie
coincide cu matricea unitate I - nu se face nici o schimbare in matricea A.
a0 = a; b0 = b;
for i = p + 1, . . . , n
begin q
r = a2pp + a2ip ;
if r = 0 then c = 1, s = 0 (sau next i)
else c = app /r , s = aip /r;
(se efectueaza transformarea R(p, i) A )
(se modifica doar liniile p si i din matricea A)
for j = p + 1, . . . , n
begin
a0pj = c apj + s aij ;
a0ij = s apj + c aij ;
end
aip = 0, app = r;
b0p = c bp + s bi ;
b0i = s bp + c bi ;
a = a 0 ; b = b0 ;
end
Matricea Q din factorizarea QR pentru A este:
Q = RT (1, 2)RT (1, 3) RT (1, n)RT (2, 3) RT (2, n) RT (n 1, n)
In algoritmul Givens se poate calcula transpusa matricii Q:
QT = R(n 1, n) R(2, n) R(2, 3)R(1, n) R(1, 2)
astfel:
172

la nceput se initializeaza QT = I
la fiecare pas p se efectueaza asupra matricii QT aceleasi transformari ca
si
asupra matricii A;
Pasul p se modifica astfel:
a0 = a; b0 = b; q = q T ;
for i = p + 1, . . . , n
begin q
r = a2pp + a2ip ;
if r = 0 then c = 1, s = 0 (sau next i)
else c = app /r , s = aip /r;
for j = p + 1, . . . , n
begin
a0pj = c apj + s aij ;
a0ij = s apj + c aij ;
end
(se efectueaza transformarea R(p, i) QT )
for j = 1, . . . , n
begin
T
qpj = c qpj
+ s qijT ;
T
qij = s qpj
+ c qijT ;
end
a0ip = 0, a0pp = r;
b0p = c bp + s bi ;
b0i = s bp + c bi ;
a = a0 ; b = b0 ; q T = q;
end
Dupa ce s-a adus matricea A la forma superior triunghiulara , se verifica
daca nu este singulara (aii 6= 0, i = 1, . . . , n) si apoi se rezolva sistemul
superior triunghiular.
Verificarea descompunerii se face astfel:
Se aplica algoritmul lui Givens astfel ca sa fie construitasi matricea QT
apoi se calculeaza matricea:
C = Ainit QR
173

si se afiseaza norma matricii C:


CR

nn

, C=

(cij )ni,j=1

, ||C|| = max{

n
X
i=1

|cij | ; j = 1, . . . , n}

A, B Rnn , P := A B Rnn P = (pij )ni,j=1 , pij =

174

n
X

k=1

aik bkj

Laboratorul nr. 6
Tema
Date: n - dimensiunea sistemului,  - precizia calculelor, matricea A
Rnn sa se aproximeze inversa matricii A (daca este nesingulara!!) utilizand
metoda Gauss-Jordan.
Sa se afiseze norma:
||Ainit A1
GJ In ||

1
unde Ainit este matricea initiala iar AGJ
este inversa calculata cu metoda
Gauss-Jordan. Pentru norma matriciala de mai sus se foloseste norma definita
n laboratorul 4.

CR

nn

, C=

(cij )ni,j=1

, ||C|| = max{

n
X
i=1

|cij | ; j = 1, . . . , n}.

Algoritmul Gauss-Jordan de inversare a unei matrici


Fie A o matrice reala patratica de dimensiune n.
Ax = y (Gauss-Jordan) x = A1 y

y1 = a11 x1 + + a1n xn
y2 = a21 x1 + + a2n xn
.

..

(1)
(2)

yn = an1 x1 + + ann xn

(n)

In algoritmul Gauss-Jordan se procedeaza astfel: se scoate x1 dintr-una din


relatiile de la (1) la (n) si se nlocuieste n toate celelalte. Relatia din care
s-a scos x1 se aduce pe prima pozitie. Se scoate x2 din una din relatiile de
la (2) la (n), se aduce aceasta relatie pe pozitia a doua si se nlocuieste x2
n toate celelate relatii. ... Se repeta aceste operatii pana s-au nlocuit toate
variabilele xi . Se ajunge la un sistem de forma:
x = By

unde y = P y

A1 = BP

(P este o matrice de permutari care reflecta schimbarile de linii facute)


Pasul p (p = 1, 2, . . . , n)
175

(1)

Vectorul reflecta schimbarile de linii facute pana la acest pas. Initial


(p = 1) i = i, i = 1, . . . , n. La acest pas sistemul are urmatoarea forma :
xi

p1
P

j=1
p1
P

y p =

j=1
p1
P

y i =

j=1

aij yj + aip xp +

j=p+1
n
P

apj yj + app xp +
aij yj + aip xp +

n
P

aij xj

j=p+1
n
P

j=p+1

, i = 1, . . . , p 1

apj xj

aij xj

, i = p + 1, . . . , n

La acest pas se scoate xp dintr-una din relatii si se nlocuieste n toate celelate.


Pentru stabilitatea algoritmului, se cauta i0 {p, . . . , n} astfel ncat:
|ai0 p | = max{|aip | ; i = p, . . . , n}
Daca ai0 p = 0 (|ai0 p | ) atunci matricea A este singulara, inversa nu poate
fi calculata.
Daca ai0 p 6= 0 (|ai0 p | > ), se interschimba linia p cu linia i0 si se actualizeaza
vectorul (i0 p ). Sistemul ramane n continuare n aceeasi forma ca mai
sus. Avem:
xp = (

p1
X
j=1

apj yj + yp

n
X

apj xj )/app

j=p+1

Inlocuind xp n celelalte (n 1) relatii obtinem:


=

p1
P

xi (i = 1, . . . , p 1) sau yi (i = p + 1, . . . , n) =
aij yj +

j=1
p1
P

j=1

n
P

j=p+1

aij xj + aip (

p1
P
j=1

apj yj + yp

(aij aip apj /app )yj + (aip /app )yp +

n
P

n
P

j=p+1

apj xj )/app =

(aij aip apj /app )xj

j=p+1

Sistemul a devenit :
xi
xp
y i

n
X
aip
aip
aip
(aij
apj )yj +
y p +
apj )xj , i = 1, . . . , p 1
app
app
app
j=1
j=p+1
n
p1
X
1
apj
P apj
=
y j +
y p
xj
app
j=1 app
j=p+1 app
n
p1
X
aip
aip
aip
P
(aij
apj )yj +
y p +
(aij
apj )xj , i = p + 1, . . . , n
=
app
app
app
j=1
j=p+1

p1
P

(aij

176

La pasul p matricea A se transforma n matricea A0 astfel:


Pentru i = 1, . . . , n , i 6= p
a0ij = aij
a0ip =

aip
apj , j = 1, . . . , n , j 6= p
app

aip
app

Pentru i = p
a0pj =

apj
, j = 1, . . . , n , j 6= p
app

1
app

a0pp =

Calculele se pot face la fiecare pas p n matricea A, fara a mai folosi matricea
auxiliara A0 . La final (dupa efectuarea pasului n) n matricea A vom avea
matricea B din formula (1).
Matricea P are forma:

P =

eT1
eT2
..
.
eTn

= (e1 e2 en )

unde eTi = (0, 0, . . . , 1, . . . , 0) (1 este pe pozitia i ). Permutarea este inversa


permutarii , = 1 .
Pentru a obtine matricea A1 trebuie sa facem operatia BP . Nu este
nevoie sa se faca o nmultire matriciala ci pentru a obtine matricea A1 se
amesteca coloanele matricii B conform cu permutarea .
A1 = BP = (Be1 Be2 Ben )
unde Bei este coloana i a matricii B si n acelasi timp coloana i a matricii
A1 .
177

Laboratorul nr. 7
Tema
Date n dimensiunea sistemului, n 500,  - precizia calculelor, vectorul
termenilor liberi b Rn :
- sa se construiasca o matrice rara A Rnn si sa se memoreze folosind
una din cele 2 variante economice de memorare. Presupunem ca matricea A
are 5 elemente nenule pe fiecare linie cu exceptia celui diagonal iar elementul
diagonal este suma acestor elemente nenule de pe fiecare linie:
aii =

n
X

aij

i = 1, . . . , n

j=1
aij 6= 0
- cu aceasta memorare economicaa matricii A, sa se aproximeze solutia
sistemului liniar:
Ax = b
(1)
folosind metodele Jacobi si Gauss-Seidel.
- sa se verifice solutia afisand :
|AxJ binit | sau |AxGS binit |
unde xJ si xGS sunt aproximarile solutiei obtinute cu algoritmul Jacobi respectiv Gauss-Seidel.

x .

Presupunand ca detA 6= 0. Vom nota solutia exacta a sistemului (1) cu


x := A1 b
Metode iterative de rezolvare a sistemelor liniare

Metodele iterative au fost deduse pentru sisteme liniare de dimensiuni


mari (n mare) iar matricea sistemului, A, este matrice rara (are putine
elemente aij nenule). In cazul metodelor iterative matricea A nu se transforma (ca n cazul algoritmului de eliminare Gauss sau descompunerilor LU
sau a factorizarilor QR) ci sunt folosite doar elementele nenule ale matricii
178

pentru aproximarea solutiei x (pentru matricile rare se folosesc scheme de


memorare economice specifice).
Pentru a aproxima solutia x se construieste un sir de vectori {x(k) } Rn
care (n anumite conditii) converge la solutia exacta x a sistemului (1).
x(k) x , pentru k
.
Metode de constructie a sirului x(k)
Vom presupune catoate elementele diagonale ale matricii A sunt nenule:
aii 6= 0 ,

i = 1, . . . , n.

Sirul {x(k) } se construieste pornind de la un vector initial dat x(0) iar apoi
x(k+1) se obtine din vectorul precedent x(k) :
Vectorul x(0) se obisnuieste sa se initializeze cu 0:
(0)

xi = 0 ,

i = 1, . . . , n

Se descompune matricea A astfel:


A = B C, cu B matrice usor inversabila
Sistemul devine:
Ax = b Bx Cx = b Bx = Cx + b x = B 1 Cx + B 1 b
Se considera sirul:
x(k+1) = M x(k) + d,

unde M = B 1 C si d = B 1 b , x(0) ales arbitrar

Sirul x(k) astfel construit converge (atunci cand converge, limita este chiar x
solutia sistemului (1)) daca si numai daca raza spectrala a matricii M este
strict mai mica decat 1. Raza spectrala a unei matrici, (M ), se defineste ca
fiind cea mai mare valoare proprie in modul:
(M ) = max{|i |; i valoare proprie a matricii M, i = 1, . . . , n}
179

Metoda lui Jacobi


Presupunem ca aii 6= 0, i = 1, . . . , n. In acest caz, matricea B este matrice
diagonala, B = diag[a11 , a22 , . . . , ann ], C = B A.
Pentru i = 1, . . . , n

(k+1)

xi

= (bi

n
X

(k)

aij xj )/aii

j=1,j6=i

Metoda Gauss-Seidel
Presupunem ca aii 6= 0, i = 1, . . . , n. Matricea B este matrice inferior
triunghiulara, B = partea inferior triunghiulara a matricii A = (bij ), bij = 0
pentru j > i , bij = aij , pentru j i , C = B A = (cij ), cij = 0 pentru
j i, cij = aij , pentru j > i.
Pentru i = 1, . . . , n

(k+1)

xi

= (bi

i1
X

(k+1)

aij xj

j=1

n
X

(k)

aij xj )/aii

j=i+1

Daca matricea A are diagonala dominanta n raport cu liniile matricii:


|aii | >

n
X

j=1,j6=i

|aij | , pentru toti i = 1, . . . , n

sirul {x(k) } converge la solutia x . Pentru metodele iterative convergenta sau


divergenta sirului x(k) nu depinde de alegerea iteratiei initiale x(0) .
Pentru a aproxima x trebuie sa calculam un x(k) cu k suficient de mare.
Se stie ca, daca diferenta dintre doua iteratii succesive este suficient de mica
atunci ultimul vector calculat este aproape de solutia exacta cautata:
|x(k) x(k1) |  |x(k) x | c ,

cR

(2)

Pentru a aproxima x nu este nevoie sa memoram tot sirul de vectori x(k)


ci doar pe ultimul, cel care satisface relatia (2). Prin urmare nu avem nevoie
n program decat de doi vectori, xc si xp :
xc ; x(k+1)

xp ; x(k)

Pentru metodele de la 1) la 9) se poate folosi un singur vector x = xc = xp .


180

Schema de implementarea a unei metode iterative


xc = x p = 0 ; k = 0 ;
do
{
xp = x c ;
calculeaza noul xc (cu una din formulele de mai sus) ;
calculeaza x = |xc xp | ;
k=k+1;
}
while ( x  si k kmax si x 108 )
if ( x <  ) xc x ;
else divergenta
;
Memorarea/stocarea matricilor rare
Pentru matricile rare se memoreaza doar elementele nenule ale matricii
A si informatii privind indicii de linie si coloana ale respectivelor elemente
astfel ncat sa putem reface matricea n forma clasica.
Vom nota cu N N numarul de elemente nenule ale matricii A. Vom memora
separat diagonala matricii A ntr-un vector diag:
diag i = aii , i = 1, . . . n
Prezentam n continuare doua variante de memorare rara a matricilor cu
putine elemente nenule. In ambele cazuri, elementele nenule se vor memora
n ordinea liniilor.
Varianta 1:
Matricea A se memoreaza folosind 4 vectori:
diag (cu n elemente, memoreaza diagonala matricii A),
valori (cu N N n componente numere reale nenule),
indici coloana (cu N N n componente numere naturale),
inceput linie (cu n + 1 componente numere naturale)
valori - contine valorile nenule ale matricii A n ordinea liniilor (cu exceptia
elementelor diagonale)
indici coloana - contine indicii de coloana ai elementelor corespunzatoare din
valori
181

inceput linie - pozitia (indicele) n vectorul valori a primului element nenul


de pe linia i
(Vom pune inceput linie[n + 1] = N N n + 1)
inceput linie[i + 1] - inceput linie[i] = numarul de elemnte nenule de pe linia
i (cu exceptia celui diagonal)
Varianta 2:
Matricea A se memoreaza folosind 3 vectori:
diag (cu n elemente, continand diagonala matricii A),
valori, indici coloana
valori - contine valorile aij nenule ale matricii A n ordinea liniilor + elemente
false (egale cu 0)care marcheaza sfarsitul/nceputul unei noi linii.
indici coloana - contine indicii de coloana ai elementelor corespunzatoare din
valori + elemente false care marcheaza sfarsitul/ nceputul unei noi linii
valori[k] = 0 marcheaza sfarsitul unei linii si nceputul liniei care ncepe la
pozitia k + 1 n vectorul valori
ind col[k] = indicele liniei care ncepe de la pozitia k + 1
Exemplu
Fie matricea A R5 :

A=

15.3
1.4

3.2

10.2 1.05

0.33

20.3

1.3

2.45

0.73

1.5

25.4

Varianta 1 de memorare:

diag

= {15.3 , 10.2 , 20.3 , 2.45 , 25.4}

valori

= {3.2 , 1.4 , 1.05 , 0.33 , 1.3 , 0.73 , 1.5}

indici coloana = {3 , 1 , 3 , 5 , 2 , 1 , 4}
inceput linie

= {1 , 2 , 5 , 5 , 6 , 8}
182

Varianta 2 de memorare:
diag

= {15.3 , 10.2 , 20.3 , 2.45 , 25.4}

valori

= {0.0 , 3.2 , 0.0 , 1.4 , 1.05 , 0.33 , 0.0 , 0.0 , 1.3 , 0.0 ,
0.73 , 1.5}

indici coloana = {1 , 3 , 2 , 1 , 3 , 5 , 3 , 4 , 2 , 5 , 1 , 4}
Fie:
x(0) =

(1)

(1)

1.0
2.0
3.0
4.0
5.0

b=

5.0
4.0
3.0
2.0
1.0

Vom calcula x1 si x2 cu varianta 1, varianta 2 si varianta clasica pentru


metoda Gauss-Seidel (metoda 9)).
(1)

x1

varianta clasica

= (5.0 0.0 2.0 3.2 3.0 0.0 4.0 0.0 5.0)/15.3


=

varianta 1
(0)

= (b1 valori[1] xindici

coloana[1] )/diag 1

= (5.0 3.2 3.0)/15.3


=

varianta 2
(0)

= (b1 valori[2] xindici

coloana[2] )/diag 1

= (5.0 3.2 3.0)/15.3

183

(1)

x2

varianta clasica
(1)

= (4.0 1.4 x1 1.05 3.0 0.0 4.0 0.33 5.0)/10.2


=

varianta 1
(1)

= (b2 valori[2] xindici


(0)

valori[4] xindici

(0)

coloana[2]

valori[3] xindici

coloana[3]

coloana[4] )/diag 2

(1)

= (4.0 1.4 x1 1.05 3.0 0.33 5.0)/10.2


=

varianta 2
(1)

= (b2 valori[4] xindici


(0)

valori[6] xindici

(0)

coloana[4]

valori[5] xindici

coloana[6] )/diag 2

(1)

= (4.0 1.4 x1 1.05 3.0 0.33 5.0)/10.2

184

coloana[5]

Laboratorul nr. 8
Tema
Date n dimensiunea matricii A,  - precizia calculelor, matricea simetrica
A Rnn , A = AT , sa se aproximeze valorile proprii ale matricii A folosind
metoda Jacobi.
Metoda lui Jacobi pentru aproximarea valorilor proprii ale
matricilor simetrice
Fie A Rnn o matrice reala de dimensiune n. Se numesc valori proprii asociate matricii A, numerele complexe C, radacinile polinomului
caracteristic:
pA () = det(I A) = 0
Pentru a aproxima valorile proprii ale unei matrici se foloseste relatia de
asemanare. Doua matrici A si B se numesc asemenea (A B) daca exista
o matrice nesingulara P astfel ncat A = P BP 1 ( B = P 1 AP ). Se
observa ca daca A B atunci si B A. Relatia de asemanare se foloseste
n algoritmii de aproximare a valorilor proprii deoarece matricile asemenea
au acealasi polinom caracteristic (pA () pB ()) si n consecinta au aceleasi
valori proprii.
Fie A Rnn o matrice simetrica (A = AT ) . Matricile simetrice au
toate valorile proprii reale.
Ideea algoritmului lui Jacobi este de a construi un sir de matrici simetrice,
asemenea cu matricea initiala , sir care convearge la o matrice diagonala.
Matricea diagonala limita va fi asemenea cu matricea initiala A si prin urmare
pe diagonala acestei matricii limita vom gasi valorile proprii cautate.
Constructia sirului de matrici
Sirul de matrici {A(k) } Rnn se construieste stfel:
A(0) = A ,

T
A(k+1) = Rpq ()A(k) Rpq
()

unde Rpq () sunt matrici de rotatie.

185

indicii (p, q) sunt alesi ca fiind indicii celui mai mare element nediagonal luat n valoare absoluta din matrice:
(k)

(k)
|apq
| = max{|aij |; i = 1, . . . , n , j = 1, . . . , n , i 6= j} = (A = AT ) =
(k)

= max{|aij |; i = 2, . . . , n , j = 1, . . . , i 1}

(1)
(din cauza simetriei sirului de matrici, se poate cauta elementul a(k)
pq de
(k)
mai sus doar n partea strict inferior triunghiulara a matricii A )
unghiul (c = cos , s = sin , t = tg) este ales astfel ca elementele
(p, q) si (q, p) ale matricii A(k+1) sa devina zero, i.e.,
(k+1)
(k+1)
apq
= aqp
= 0.

Schema algoritmului
k = 0;
calculeaza indicii p si q (vezi (1)) ;
calculeaza unghiul , adica c, s si t;
while (A 6= matrice diagonala si k kmax )
{

T
A = Rpq () A Rpq
() ;
( a se vedea formulele (5) de mai jos )
calculeaza indicii p si q (vezi (1));
calculeaza unghiul , adica c, s si t ;
( a se vedea formulele (3) si (4) de mai jos )
k = k + 1;
}

186

Pasul k al algoritmului
La acest pas se constrieste matricea B pornind de la matricea A astfel:
T
B = Rpq () A Rpq
()

Trecerea de la matricea A la matricea B se face dupa urmatoarele formule:

bpj
bqj
bpp
bqq
bpq
bij

=
=
=
=
=
=

bjp = c apj + s aqj , j = 1, 2, . . . , n, j 6= p, j 6= q


bjq = s apj + c aqj , j = 1, 2 . . . , n, j 6= p, j 6= q
c2 app + s2 aqq + 2 c s apq
s2 app + c2 aqq 2 c s apq
bqp = (c2 s2 ) apq + c s (aqq app )
aij n rest

(2)

Pentru a deduce unghiul se impune conditia bpq = bqp = 0, adica :


(c2 s2 )apq + c s (aqq app ) = 0
de unde rezulta :
= cotg(2) =

(app aqq )
2apq

Daca notam cu t = tg avem:


cotg(2) =

(1 t2 )
2t

rezulta ca t satisface ecuatia:


t2 + 2 t 1 = 0
deci
t = + (2 + 1)1/2 sau t = (2 + 1)1/2 .
Dintre cele doua valori de mai sus ale lui t se alege radacina de modul
minim ( [0, /4]):

a0
+ + 1 dac

2
t = + semn() + 1 =
(3)

2 + 1 daca < 0
187

Avem
c=

1
1 + t2

s=

t
1 + t2

(4)

Cazul apq = 0
T
inand cont ca apq este cel mai mare element nediagonal n valoare absoluta, cazul apq = 0 nseamna ca matricea A la care s-a ajuns, este matrice
diagonala, algoritmul oprindu-se n aceasta situatie - pe diagonala matricii
A se gasesc aproximarile valorilor proprii cautate. Prin urmare testul:
A 6= matrice diagonala
din schema algoritmlui de mai sus se poate nlocui cu testul:
|apq | > 
unde  este precizia calculelor.
Se observa ca:
bpp app = s2 (aqq app ) + 2c s apq = 2s (c s)apq =
= 2s [c (c2 s2 )s/(2c s)]apq = t apq
La fel se deduce ca :
bqq aqq = t apq

T
La pasul k operatia A = Rpq () A Rpq
() se poate face astfel astfel:

apj = c apj + s aqj ,

j = 1, 2, . . . , n , j 6= p , j 6= q,

aqj = ajq = s ajp + c aqj ,


ajp = apj ,

j = 1, 2 . . . , n , j 6= p , j 6= q,

j = 1, 2 . . . , n , j 6= p , j 6= q,

app = app + t apq


aqq = aqq t apq
apq = aqp = 0

188

(5)

Observatie: Matricea A fiind simetrica se poate memora ntr-un vector


n(n + 1)
. In acest fel se memoreaza doar partea inferior
v de dimensiune
2
triunghiulara a matricii. Vectorul v va contine elementele:
v : a11 , a21 , a22 , . . . , ar1 , ar2 , . . . , arr , . . . , an1 , an2 , . . . , ann
restul elementelor din matricea A se regasesc din relatia de simetrie:
aij = aji
Exemple

0 0 1

A=
0 0 1 are valorile proprii 1 = 1 , 2 = 0 , 3 = 2
1 1 1

1 1 2

A = 1 1 2 are valorile proprii 1 = 0 , 2 = 2(1 2) , 3 = 2(1+ 2)


2 2 2

1
0
1
0

0
1
0
1

1
0
1
0

0
1
0
1

1
2
3
4

2
3
4
5

3
4
5
6

4
5
6
7

A=

A=

are valorile proprii 1 = 2 = 0 , 3 = 4 = 2

are valorile proprii 1 = 2 = 0 , 3,4 = 2(4

189

21)

Laboratorul nr. 9
Tema
Date n - gradul polinomului,  - precizia calculelor, polinomul P de grad n:
P (x) = a0 xn + a1 xn1 + + ak xnk + + an1 x + an , ai R i , a0 6= 0
(pentru polinomul P se dau cei n + 1 coeficienti reali ai , i = 0, . . . , n) sa se
aproximeze toate radacinile reale folosind metoda lui Laguerre. De cate ori
este necesara calcularea valorii unui polinom ntr-un punct oarecare se va
folosi schema lui Horner.
Metoda Laguerre de aproximare a r
ad
acinilor reale ale unui
polinom
Fie P un polinom de grad n:
P (x) = a0 xn + a1 xn1 + + an ,

(a0 6= 0)

(1)

Toate radacinile reale ale polinomului P se afla n intervalul [R, R] unde R


este dat de:
|a0 | + A
R=
(2)
, A = max{|ai | ; i = 1, n}
|a0 |
Schema lui Horner de calcul a valorii P (x0 )
Un mod eficient de a calcula valoarea polinomului P ntr-un punct x0 R
oarecare este dat de metoda lui Horner:
b0 = a 0 ,
bi = ai + bi1 x0 , i = 1, n

(3)

In sirul de mai sus:


P (x0 ) := bn
iar ceilalti termeni bi calculati, sunt coeficientii polinomului cat, Q, din
mpartirea cu rest:
P (x) = (x x0 )Q(x) + r ,
Q(x) = b0 xn1 + b1 xn2 + bn2 x + bn1 ,
r = bn = P (x0 ).
190

(4)

Pentru a calcula P (x0 ) (bn ) cu formulele (3) se poate folosi o singura


valoare reala b R si nu un vector b Rn .
Metoda Laguerre
Pentru a aproxima o radacina reala x (din intervalul [-R, R]) a polinomului
P definit de (1), se construieste un sir de numere reale, {xk }, care converge
la radacina x [R, R] cautata (xk x pentru k ) .
Pornind cu x0 o valoare reala data, sirul {xk } se construieste astfel (xk+1
se calculeaza din xk ):
n P (xk )

xk+1

= xk

xk+1

= xk xk ( xk =

P 0 (xk ) + semn( P 0 (xk ) ) H(xk )

, k = 0, 1, . . .

n P (xk )
P 0 (x

k)

semn( P 0 (x

k) )

H(xk )

(5)

H(xk ) = (n 1)2 [P 0 (xk )]2 n(n 1)P (xk )P 00 (xk )


Prin P 0 si P 00 am notat prima si respectiv a doua derivata a polinomului P .
Pentru x R functia semn(x) se defineste astfel:
semn(x) =

1
1

daca x 0
daca x < 0

Observatie important
a: Alegerea iteratiei initiale, x0 , poate determina
convergenta sau divergenta sirului xk la x . De obicei, o alegere a iteratiei
initiale x0 n vecinatatea lui x asigura convergenta xk x pentru k .

Nu este nevoie de memorat ntreg sirul {xk } ci doar ultimul element xk0
calculat. Se considera ca o valoare xk0 x (este ultimul element calculat)
atunci cand diferenta dintre doua iteratii succesive devine suficient de mica,
i.e.,
|xk0 xk0 1 | < 
191

unde  este precizia cu care vrem sa aproximam solutia x . Prin urmare,


o schema posibila de aproximare a solutiei x cu metoda lui Laguerre este
urmatoarea:

Metoda lui Laguerre


x = (x0) = ales aleator ; k=0 ;
(pentru convergenta sirului {xk } este de preferat de
ales iteratia initiala x0 n vecinatatea solutiei cautate )
do
{
calculeaza x din formula (5) ;
if ( H(x) < 0 ) EXIT;
(se poate ncerca schimbarea iteratiei initiale x0)
if ( numitorul din x este n [-,  ]) EXIT;
(se poate ncerca schimbarea iteratiei initiale x0)
x = x x;
k=k+1;
}
while (| x|  si k kmax si | x| 108)
if ( | x| <  ) xk x ;
else divergenta
; (de ncercat schimbarea lui x0)

G
asirea altor r
ad
acini reale ale polinomului P
Dupa ce a fost gasita o aproximare x (ultimul xk calculat n schema
descrisa mai sus) a unei radacini x a polinomului P , se mparte polinomul
P la (x x) (vezi formula (4)) si se reia procedeul Laguerre cu P := Q
(Q fiind restul mpartirii lui P la (x x)). Coeficientii polinomului Q se
calculeaza folosind formulele (3).
192

Exemple
P (x) = (x 1)(x 2)(x 3) = x3 6x2 + 11x 6 ,
a0 = 1.0 , a1 = 6.0 , a2 = 11.0 , a3 = 6.
1
3
2
P (x) = (x )(x )(x + 1)(x )
3
7
2
=

1
(42x4 55x3 42x2 + 49x 6)
42

1
1
P (x) = (x 1)(x )(x 3)(x )
2
4
=

1
(8x4 38x3 + 49x2 22x + 3)
8

P (x) = (x 1)2 (x 2)2


= x4 6x3 + 13x2 12x + 4

193

Laboratorul nr. 10
Tema
Date n + 1 puncte, x0 , x1 , . . ., xn (xi R i) si cele n + 1 valori ale
unei functii necunoscute f n aceste puncte, y0 = f (x0 ), y1 f (x1 ), . . .,
yn = f (xn ), sa se aproximeze f (
x) pentru un x dat, x 6= xi , i = 0, . . . , n,
folosind polinomul de interpolare Lagrange forma Newton (diferentele divizate se calculeaza folosind schema lui Aitken) si functiile spline cubice de
clasa C 2 (cunostem n plus despre functia f valorile u = f 0 (a) si v = f 0 (b)).
Interpolare numeric
a
Cunoscand valorile unei functii ntr-un numar finit de puncte, x0 , x1 , . . . , xn
sa se aproximeze valoarea functiei respective ntr-un alt punct x 6= xi , i = 0, n.
x
f

x0
y0

x1
y1

xn
yn

Dat x 6= xi sa se aproximeze f (
x). Pentru a aproxima f (
x) se construieste o
functie elementara S(x) care satisface S(xi ) = yi , i = 0, n. Valoarea aproximativa pentru f (
x) este S(
x). Consideram doua moduri de constructie a
functiei S: polinom de grad n (polinomul de interpolare Lagrange) si functie
polinomiala de grad 3 pe portiuni (functie spline cubica).
Polinomul de interpolare Lagrange
Unicul polinom de grad n, Ln , ce satisface relatia de interpolare:
Ln (xi ) = yi

i = 0, n

poate fi scris n mai multe feluri. O prima forma este urmatoarea:


Ln (x) =

n 
X
i=0

n
Y

x xj
yi
j=0,j6=i xi xj

O a doua forma este forma Newton a polinomului de interpolare Lagrange:


Ln (x) = y0 + [x0 , x1 ]f (x x0 ) + [x0 , x1 , x2 ]f (x x0 )(x x1 ) +
+[x0 , . . . , xn ]f (x x0 )(x x1 ) (x xn1 )
194

Aceasta forma are avantajul ca daca se mai adaugam un nod (xn+1 , yn+1 )
valoarea polinomului Lagrange Ln+1 se calculeaza simplu din Ln astfel:
Ln+1 (x) = Ln (x) + [x0 , . . . , xn+1 ]f (x x0 )(x x1 ) (x xn )
Coeficientii:
[x0 , x1 , ..., xk ]f =

k
X
i=0

yi
k
Q

(xi xj )

j=0,j6=i

se numesc diferente divizate de ordin k ale functiei f pe nodurile x0 , . . . , xk .


Calculul diferentelor divizate este mai economic din punct de vedere numeric
daca se foloseste definitia recursiva:
[x0 , x1 ]f =

y1 y 0
x1 x 0

[x0 , ..., xk+1 ]f =

[x0 , x1 , x2 ]f =

[x2 , x1 ]f [x1 , x0 ]f
x2 x 0

[xk+1 , . . . , x1 ]f [xk , . . . , x0 ]f
xk+1 x0

Schema lui Aitken de calcul a diferentelor divizate:


Schema lui Aitken este un procedeu rapid, n n pasi, de calcul a diferentelor
divizate necesare construirii polinomului Lagrange n forma Newton. Modul
de calcul este ilustrat n tabelul de mai jos:
Pas 1
x0
x1
x2
x3
..
.

y0
y1
y2
y3

[x0 , x1 ]f
[x1 , x2 ]f
[x2 , x3 ]f

Pas 2

Pas n

[x0 , x1 , x2 ]f
[x1 , x2 , x3 ]f

xn1 yn1 [xn2 , xn1 ]f [xn3 , xn2 , xn1 ]f


xn
yn
[xn1 , xn ]f
[xn2 , xn1 , xn ]f
[x0 , ..., xn ]f
La pasul k se calculeaza diferentele divizate de ordin k:
[x0 , x1 , . . . , xk ]f , [x1 , x2 , . . . , xk+1 ]f , . . . , [xnk , . . . , xn ]f

195

folosind doar diferentlele divizate de la pasul anterior si nodurile xi . La fiecare


pas, calculele se pot face n acelasi vector y. Dupa calcularea diferentelor
divizate de ordin k (pasul k) vectorul y are urmatoarea structura:
y = (y0 , [x0 , x1 ]f , [x0 , x1 , x2 ]f , . . . , [x0 , x1 , . . . , xk ]f , . . . , [xnk , . . . , xn ]f )
Dupa pasul n vectorul y va contine toate diferemtele divizate de care avem
nevoie pentru a calcula Ln :
y = (y0 , [x0 , x1 ]f , [x0 , x1 , x2 ]f , . . . , [x0 , x1 , . . . , xn1 ]f , [x0 , x1 , . . . , xn ]f )
Valoarea functiei f n punctul x se va aproxima prin Ln (
x).
Functii spline cubice de clas
a C2
Fie a = x0 < x1 < < xn = b. Dat x [a, b] sa se aproximeze f (
x)
cunoscand n afara celor n + 1 valori yi si valorile u,v, ale derivatei functiei
f n a si b:
f 0 (a) = u , f 0 (b) = v.
Se cauta o functie Sf de clasa C 2 pe [a, b] astfel ncat:
Sf (x) = ai x3 + bi x2 + ci x + di , pentru x [xi , xi+1 ], i = 0, n 1
Sf (xi ) = yi , i = 0, n ,

Sf0 (a) = f 0 (a) = u ,

Sf0 (b) = f 0 (b) = v

Functia Sf cu proprietatile de mai sus are urmatoarea forma:


Sf (x) =
unde

(x xi )3 Ai+1 (xi+1 x)3 Ai


+
+i x+i , x [xi , xi+1 ], i = 0, n 1
6hi
6hi
hi = xi+1 xi
i =

yi+1 yi hi (Ai+1 Ai )

hi
6

i =

xi+1 yi xi yi+1 hi (xi+1 Ai xi Ai+1 )

hi
6
196

pentru i = 0, n 1 , iar constantele {Ai , i = 0, n} sunt solutia sistemului


liniar:
2h0 A0 + h0 A1 = 6(

y1 y 0
u)
h0

yi+1 yi yi yi1

),
hi
hi1
i = 1, . . . , n 1

hi1 Ai1 + 2(hi1 + hi )Ai + hi Ai+1 = 6(

hn1 An1 + 2hn1 An = 6(v

(1)

yn yn1
)
hn1

Sistemul de mai sus este un sistem liniar de dimensiune n + 1:


HA = f
unde:

H=

2h0
h0
0
0 ...
h0 2(h0 + h1 )
h1
0 ...
0
h1
2(h1 + h2 ) h2 . . .
..
.
0
0

0
0

0
0

f=

6(
6(

0
0

y2 y 1 y1 y 0

)
h1
h0

y3 y 2 y2 y 1

)
h2
h1
..
.
yn yn1 yn1 yn2
6(

)
hn1
hn2
6(v

yn yn1
)
hn1
197

0
0
0

0
0
0

. . . hn2 2(hn2 + hn1 ) hn1


...
0
hn1
2hn1

y1 y 0
u)
h0

6(

0
0
0

A=

A0
A1
A2
..
.
An1
An

Sistemul de mai sus se rezolva folosind una din metodele de rezolvare a


sistemelor liniare.
Valoarea functiei f n x, f (
x), se aproximeaza prin Sf (
x) (
x trebuie sa
fie din [a, b]). Se cauta i0 astfel ca x [xi0 , xi0 +1 ]. Avem:
f (
x) Sf (
x) =

(
x xi0 )3 Ai0 +1 (xi0 +1 x)3 Ai0
+
+ i0 x + i0
6hi0
6hi0

198

Laboratorul nr. 11
Tema
Date f o functie continua, f C[a, b] si a, b, < a < b < , doua
constante reale finite. Sa se aproximeze integrala functiei f pe intervalul
[a, b]:
Z

b
a

f (x) dx

Functia f se declara clasic n program (double f(double x)). De asemenea,


se declara n program si primitiva F a functiei f (F 0 = f ), daca aceasta este
cunoscuta.
Exemple:
f (x) = 3.0 x3 5.0 x2 + cos(x) ,
f (x) = ex 2.0 cos(x) sin(x) ,
f (x) = cos(ex ) ex ,

F (x) =

3.0 4 5.0 3
x
x + sin(x) ;
4.0
3.0

F (x) = ex + 0.5 cos(2 x) ;

F (x) = sin(ex ) ;

Aproximarea integralelor
Cu ajutorul metodei de aproximare a integralelor se va calcula o valoare
aproximativa pentru integrala cautata Iaprox . Folosind F , primitiva functiei
f , se calculeaza valoarea exacta a integralei, Iexact si se verifica cat de buna
este aproximarea facuta comparand cele doua valori.
Z
Z

b
a
b
a

f (x) dx = Iexact = F (b) F (a) ;


f (x) dx Iaprox = se calculeaza cu metodele de mai jos

Se afiseaza:
Iaprox

Iexact

199

|Iaprox Iexact |

Metode de aproximare a integralelor


Se mparte intervalul [a, b] n N subintervale de lungime h:
a = x1 < x2 < < xN 1 < xN = b
xi = a + (i 1)h , fi = f (xi ) , i = 1, N

O prima metoda de aproximare a integralelor este:


Z

b
a

f (x) dx Iaprox = h[

h=

ba
N 1

5
13
f1 + f2 + f 3 + f 4 + +
12
12
+fN 3 + fN 2 +

13
5
fN 1 + fN ]
12
12

ba
Ordinul de aproximare al metodei (eroarea) este
.
N3
O a doua metoda este data de formula:
Z

b
a

f (x) dx Iaprox = h[

7
23
3
f1 + f2 + f3 + f 4 + f 5 + +
8
6
24
+fN 4 + fN 3 +

iar eroarea este n acest caz de ordinul

ba
.
N4

200

7
3
23
fN 2 + fN 1 + fN ]
24
6
8