UNIVERSITATEA “AL.I.CUZA” IAŞI FACULTATEA de INFORMATICĂ CALCUL NUMERIC Anca Ignat
UNIVERSITATEA “AL.I.CUZA” IAŞI FACULTATEA de INFORMATICĂ
CALCUL NUMERIC
Anca Ignat
1
CUPRINS
Preliminarii 3
Calcul matricial 5
Tipuri de matrici 8
Norme 9
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 ecuaţii 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 relaxării 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
2
Descompunerea după valori singulare 94
Rezolvarea ecuaţiilor neliniare 96
Metoda bisecţiei (a înjumătăţirii intervalului) 96
Metoda tangentei (Newton-Raphson) 97
Metoda falsei poziţii (a coardei) 100
Metoda secantei 101
Metoda Bairstow de aproximare a rădăcinilor 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 diferenţelor divizate 115
Polinomul de interpolare Hermite 116
Funcţii spline liniare continue 118
Funcţii spline cubice de clasă C2 119
Integrare numerică 124
Formule de cuadratură NEWTON-CÔTES 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
3
Preliminarii
Fie K un corp ( - corpul numerelor reale sau - corpul numerelor
complexe).
Defini ie
X se nume te spa iu vectorial peste corpul K dac sunt definite dou
opera ii
+ : X X X i : K X X,
astfel încât ( 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 încât a + 0 = 0 + a = a , a X - existen a
elementului neutru ,
a X, -a X astfel ca a + (-a) = (-a) + a = 0 - existen a
elementului opus.
iar pentru opera ia de înmul ire cu scalari au loc rela iile:
(a+b) = a + b , K , a,b X ,
( + ) a = a + a , , K , a X,
( a ) = ( )a , , K , a X,
1 K astfel încât 1.a = a , a X.
Exemple: este spa iu vectorial peste .
Fie xi , yi , . Se definesc vectorii ,x y i opera iile de adunare
i înmul ire cu scalari astfel:
1 1 1 1 1
2 2 2 2 2, , ,
n n n n n
x y x y xx y x y x
x y x y x
x y x y x
.
4
Similar se define te spa iu vectorial peste corpul .Fie vectorul z :
1
21 2cu , ,..., .n
n
zz
z z z z
z
Pentru z utiliz m nota iile:
z = a + ib , Re z = a, Im z = b , 2 2,z a ib z a b
Not m cu m n spa iul matricilor cu elemente reale cu m linii i ncoloane
11 1
1
1, ,, , , 1, ,n
ij
m mn
i m j
a aA a n
a a
este spa iul matricilor cu elemente numere complexe cu m linii i ncoloane:
11 1
1
, , 1, , , 1, ,n
ij
m mn
a aA a i m j n
a a
Defini ieFie X un spa iu vectorial peste corpul K. Vectorii x1 , x2 , …,xp X
spunem c sunt liniar independen i dac :
1 1 2 2 1 2.. 0 ... 0p p p ix x x K
Spa iul vectorial X este finit dimensional dac exist vectorii x1 , x2 , …,xp
X, liniar independen i i orice mul ime de q elemente din X cu q > p
este liniar dependent . În acest caz dimensiunea spa iului X este p (dimX
= p).
5
Fie spa iul vectorial X finit dimensional cu dim X = p.
Orice sistem de p vectori liniar independen i din X se nume te baz a
spa iului X.
Fie x1 , x2 , …,xp X o baz pentru spa iul X . Atunci pentru x X ,
unice constantele 1, 2,…, p K astfel încât
1 1 2 2 .. p px x x x
este un spa iu vectorial finit dimensional, dim = n cu baza
canonic :
1 2pozi ia
01 0 0 00 1 0
, , , , ,1 -
0 0 10
k nk
e e e e
Calcul matricial
Fie matricea patratic A :
11 1
, 1
1
,n
ij i j n
n nn
a aA A a
a a
Se define te matricea transpus :
11 1
, 1
1
,n
T Tji i j n
n nn
a aA A a
a a
Pentru matricea:
11
, i mijj n
A A a
se define te matricea adjunct AH:
6
11
11 1 11 1
1 1
,
H Tji j n
i m
n mH
m mn n mn
A A a
a a a aA A
a a a a
Pentru m nA matricea adjunct coincide cu transpusa, AH = AT.
Fie vectorul x , acesta este considerat vector coloan , 1nx :1
21 2
Tn
n
xx
x x x x x
x
Dac facem înmul irea matricial Aej ob inem coloana j a matricii A:
1
11 12
pozi ia
1
0
1
0
jn
jj j
m mnmj
aa a
aAe
a aa
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 i :
1 1
2 2
1
21 2
1
,
,
n n
n n
nH
i i ni
n
x yx y
x y
x y
xx
x y x y y x y y y
x
7
1 1
2 2
1
21 2
1
,
,
n n
n n
nT
i i ni
n
x yx y
x y
x y
xx
x y x y y x y y y
x
Propriet ile matricii AH Propriet i ale matricii AT
1. (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
Propozi ie
Fie , ,m n n mA x yx atunci: , , .m n
HAx y x A y
Pentru cazul real avem:
, , ,m nm n n m TA x y Ax y x A yx
Demonstra ie.
(Ax , y) = yH (Ax) = yH A x = yH (AH)H x = (AH y)H x = (x , AH y).
8
Tipuri de matrici
Defini ii
O matrice n nA se nume te simetric dac A = AT .
O matrice A se nume te autoadjunct dac A = AH.
O matrice A se nume te unitar dac AHA = A AH = In.
O matrice A se nume te ortogonal dac ATA = A AT = In.
O matrice A , A=(ai j ) se nume te matrice triunghiular inferior
(sau inferior triunghiular dac ai j = 0 pentru j > i.
11
21 22
1 2
0 .....................0..................0
n n nn
aa a
A
a a a
O matrice A , A=(ai j ) se nume te matrice triunghiular superior
(sau superior triunghiular dac ai j = 0 pentru j < i.
11 12 13 1
22 23 2
33 3
. . . . . . . . . .00 0
0 0 0 ...........
n
n
n
nn
a a a aa a a
A a a
a
Not m cu In matricea unitate:
1 0 0 0 00 1 0 0 0
,0 0 00 0 0
n nn nI I
9
Norme
Defini ieFie X un spa iu vectorial peste corpul K. Se nume te norm aplica ia:
. : Xcare îndepline te condi iile
(1) 0; 0 0;
(2) , , ;
(3) , , .
x x x
x y x y x y X
x x x X KVom numi norme vectoriale normele definite pe spa iile sauX
Exemple Fie spa iile vectoriale sau . Pe aceste spa ii urm toarele aplica iisunt norme vectoriale:
11
2
21
;
;
max{ 1.. }.
n
ii
n
ii
i
x x
x x
x x i n
Defini ieSe nume te produs scalar în spa iul vectorial X aplica ia:
, : X X Kcare satisface condi iile :
( ) , 0 , , , 0 0;
( ) ( , ) , , , ,
( ) , , , , ,
( ) , , , , , .
a x x x X x x x
b x y y x x y X
c x y x y x y X K
d x y z x z y z x y z X
Este adev rat urm toarea inegalitate, numit inegalitatea lui Cauchy-Buniakovski-Schwarz:
, , , ,x y x x y y x y X
10
Demonstra ie. Fie 2
2
,, 0 , 0 , :n x y
x X x y X y Ky
. Observ m
c,
, , , 0,
0 , , ,
,, , , , ,
,
x yx y y x y y y
y y
x y x y x y x x y y
x yx x y x x x y x
y y
i inând seama de faptul c2
( , ) , ( , ) , ,x y y x x y x y x y rezult2
, , ,0
,x x y y x y
y y deci avem inegalitatea Cauchy-Buniakovski-
Schwartz.
Într-un spa iu vectorial dotat cu produs scalar se poate induce o normnumit euclidian :
2: ,x x x .
Reaminitm defini ia produselor scalare pe i pe introduse anterior:
1 1
, , ,n n
i i i ii i
x y x y x y x y
Ob inem norma euclidian (valabil în ambele spa ii i ):2
21
n
ii
x x .
Norme matriciale
Defini ie
Aplica ia : n n se nume te norm matricial dac :
(1) 0 ; 0 0.
(2) .
(3) , , .
(4) * , , .
n n
n n
n n
n n
A A A A
A A A
A B A B A B
A B A B A B
11
Exemple
Norma Frobenius definit de rela ia2
1 1
n n
i jFi j
A a este o norm
matricial .
Vom ar ta c aceast norm satisface condi iile din defini ia normei matriciale.Introducem nota iile:
1
21 2
1
2i 1 2
în care
( ) , 1, , ; , 1, , .
n
m
j
jn mi i in j
mj
LL
A C C C
L
aa
L a a a i m C j n
aCu aceste nota ii vom avea:
2 22
2 21 1 1 1
.m n m n
ij i jFi j i j
A a L C
Din defini ie rezult c :(1) 0 ,
0 1, , , 1, , , 0 0.
m nF
ijF
A A
A i m j n a A
1 2 1 22
2 22
2 21 1 12
2 2 2 2 2 2
2 2 2 2 2 2 21 1
(2) Fie ( , , ) i ( , , )
, 2Re( , )
2 ( , ) 2 2
A A A m n B B B m nm m
m m mA B A B A B A A B Bi i i i i i i i i iF
i i i
m mA A B B A A B B Ai i i i i i i i iF F
i i
A L L L B L L L
A B L L L L L L L L L L
L L L L L L L L A B L1
mBi
iL
Consider m vectorii:1 2 1 2, , , , ,A A A m B B B m
m ma L L L b L L L . Atunci produsul scalar
în
(a , b) =2 2
1
( , )m
A Bi i F F
iL L a b A B . Din aceste rela ii rezult :
2 2 2 22 ( )F F F F F F FA B A A B B A B .
12
Deci .F F FA B A B
2 2
1 1 1 1
(3) Fie i . Avem:m n
m n m n
ij ijF Fi j i j
A
A a a A
(4) Fie matricile A , n pB1
211
1 1 21
, , - linia a matricii
, , coloana a matricii
A
AA n
i mij ij n
Am
B B B B ni nij p jj p
LL
A a L i A
L
B b C C C C j B
Matricea produs * pM A B are elementele
1
,n
A Bij ik kj i j
km a b L C .
2 2 2 2 22
2 2 2 21 1 1 1 1 1
2 2
,
.
p p pm m mA B A B A Bi j i j i jF
i j i j i j
F F
M L C L C L C
A BAm ar tat c aplica ia Frobenius este o norm matricial .
Aplica iamax
, ,max{ ; 1, , 1, }ijA a i n j n nu este o norm
matricial .
Pentru n = 2 fie:
2 max max
max max max
1 1 1 12 2 2 2,
1 1 1 12 2 2 2
1* , .2
1* 1 .2
TA B A
A B I A B
A B A B
13
Norme matriciale naturale
Fiev
: o norm vectorial . Pornind de la aceast norm
vectorial definim o norm matricial , numit norm matricial natural
sau indus .
vi
v
v v
v v
max{ ; , 0}
max{ ; , 1}
max{ ; , 1}
AxA x x
x
Ax x x
Ax x x
iA se nume te norm matricial natural sau norm indus de norma
vectorialv
Avem urm toarea rela ie:
v i v, ,n nAx A x A x .
Norma Frobenius F nu este o norm natural . În adev r, pentru orice
norm vectorialv, norma matricial indus a matricii unitate este 1:
vi
v
max{ ; 0} 1nn
I xI x
x,
iar în cazul normei Frobenius avem: 1
2(1 1 1) 1 pentru 2.n FI n n
Pentru1
1
n
ii
x x norma matricial indus este:
11
max{ ; 1,2, , }n
iji
A a j n
Pentru max{ 1, , }ix x i n norma matricial indus este:
1max{ ; 1,2, , }
n
ijj
A a i n .
14
Dacv este o norm vectorial i n nP este o matrice nesingular
atunci aplica iaP P v
: , x Px este de asemenea o norm
vectorial . Consider m normele matriciale induse de v
iP
- i
i respectiv i,P
. Leg tura dintre cele dou norme matriciale este dat de
rela ia 1i,P i
.A PAP
Valori i vectori proprii
Defini ii
Fie n nA . Se nume te valoare proprie (autovaloare) a matricii A un
num r complex pentru care exist un vector nenul , 0x x
pentru care:
Ax x .
Vectorul x se nume te vector propriu (autovector) asociat valorii proprii
.
Observ m c :
( ) 0, 0 det( ) 0n nAx x I A x x I A
adic matricea I A este singular . Polinomul: 1 2
1 1( ) det( ) ...n n nA n n np I A a a a a
se nume te polinom caracteristic asociat matricii A. Polinomul pA de
grad n are n r d cini care sunt valorile proprii ale matricii A.
Se nume te raz spectral a matricii A num rul ( )A :
max{ , 1, , , valorile proprii ale matriciii iA i n
Norma matricial indus de norma vectorial euclidian
22
1
n
ii
x x este 2 ( )TA A A i se nume te norma spectral .
Fie norma matricial indus de norma euclidian :
15
2 2sup{ ; , 1}A Ax x X x
Consider m un vector oarecare x cu norma euclidian egal cu 1:2
21 1 1 1 1 1
, ( ) .n n n n n n
i j j i k k j i j i k ki j k j i k
Ax Ax Ax a x a x x a a x
Tinând seama de defini ia matricii AH:
1
, .n
H Hjiij lp lqpq
lA a A a A A a a
2
2, ) ( , ).HAx Ax Ax A Ax x
Se observ c (AHA)H =AHA. Fie 1 , 2 , ….. n valorile proprii i x1, x2 ,…,xn vectorii proprii corespunz tori pentru matricea AHA. Din:
0 (Axi , Axi ) = (AHAxi ,xei) =( i xi , xi ) = i ( xi , xi )rezult c i 0. Fie raza spectral a matricii AHA,
(AHA) = max{ I , i=1..n } 0.Sa observ m ca vectorii proprii ai matricii AHA corespunz tori unor valori proprii distincte sunt ortogonali:
(Axi , Axj) = (AHA xi ,xj ) = i ( xi , xj );
, , , , , ,Hi j j i j i j j i j j i j i jAx Ax Ax Ax A Ax x x x x x x x
din aceste rela ii rezult :( i - j ) ( xi , xj )=0 ( xi , xj )=0.
Presupunem c vectorii proprii xi ai matricii AHA au norma egal cu 1. Fie:
2
1 1
1 1 1 1
2
1
, ; 1;
, , ,
n n
i i ii i
n n n nH H
i i j j i i i j ji j i j
nH
i ii
x X x x
A Ax x A Ax x x x
A A
deciHA A A
Fie x1 vectorul propriu al matricii AHA corespunz tor valorii proprii 1 ( )HA A . Atunci ( Ax 1 , Ax 1) = (AHA x 1 , x 1) = 1 rezultând:
HA A A
16
Propozi ie
Fie o norm matricial natural . Atunci ( ) , n nA A A .
Demonstra ie. Fie max ( )A i maxx vectorul propriu corespunz tor
lui max . Avem:
max max maxAx x .
Atunci:
max max max max max( ) ( )A x x A x A x A A
Fie ,{ } un ir de matrici.n n kA A Spunem c irul Ak converge la
matricea 0 dac i numai dac irul de numere pozitive {|| Ak ||} converge
la 0.
0 , 0 ,k kA k A k .
Propozi ia 1
Fie n nA . Atunci:
0 , ( )kA k A
Dac exist o norm matricial natural pentru care ||A|| < 1 atunci:
0 pentru .kA k
Observa ie. În cazul n = 1 , avem
0 pentru 1.ka a k a
Demonstra ie. Vom demonstra doar implica ia . Avem:
0 , 0 , .
0 , .
lim 0 1.
k k
kk k
k
k
A k A k
A A A k
A A
17
Fie n nA . Spunem c seria 0
k
kA este convergent dac irul de
matrici al sumelor par iale {Sn},0
nk
nk
S A converge la o matrice S,
numit suma seriei.
Propozi ia 2
Fie n nA . Seria 0
k
kA converge dac i numai dac raza spectrala a
matricii A este subunitar :
1.n
k
kA S A
Dac exista o norm a matricii A astfel încât ||A|| < 1 atunci seria
converge. În cazul convergen ei avem 1
0
( ) .k
kA S I A
Demonstra ie. Presupunem c seria este convergent . Deducem c :Pr.1
1 10 0 1.n n
n nn n n n nS S S S S S A A A
Presupunem c ( ) 1.A Atunci 1 nu este valoare proprie pentru matricea
A deci: 1det( ) 0 ( ) .n nI A I A
Avem:2 1( ) ( )( .. )n n
n n n n nI A S I A I A A A I A1 1( ) ( ).n
n n nS I A I A
Tinând seama c am presupus ( ) 1A din Propozi ia 1 rezult :1 1 10 pentru pentru ( ) .n n
n n n nA n I A I n S I A
Avem implica iile: 1
0
1 1 ( ) .kn
kA A A A I A
18
Propozi ia 3
Fie n nA pentru care exist o norm matricial natural astfel ca
1A . Atunci exist matricile 1( )nI A i avem evalu rile:
11 1( ) .1 1
I AA A
Demonstra ie. Din condi ia ||A|| < 1 rezult c ( ) 1A . Deci 1 nu sunt
valori proprii ale matricii A, det( In-A) 0 adic exist matricile 1( )nI A . Din rela iile:
1 1 1( ) 1 ( ) ( ) (1 )n n n n n n nI A I A I I I A I A I A A
ob inem:
11 ( )1 nI A
A.
Folosind rela ia:1 1 1( ) ( ) ( ) ( )n n n n nI A I A I A I A A I
deducem: 1 1 1 1
1
( ) ( ) ( ) 1 ( )
(1 ) ( ) 1
n n n n n
n
I A I I A A I A I A A
A I A
deci:
1 1( ) .1nI A
A
19
Surse de erori în calculule numerice
1. Erori în datele de intrare:
- m sur tori afectate de erori sistematice sau perturba ii
temporare,
- erori de rotunjire: 1/3 , , 1/7,..
2. Erori de rotunjire în timpul calculelor:
- datorate capacit ii limitate de memorare a datelor,
- opera iile nu sunt efectuate exact.
3. Erori de trunchiere:
- limita unui ir , suma unei serii , func ii neliniare aproximate
de func ii liniare, aproximarea derivatei unei func ii
4. Simplific ri în modelul matematic
- idealiz ri , ignorarea unor parametri.
5. Erori umane i erori ale ma inii.
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 sau saua ã a ãa ã
a a a
a
a ãa
a se exprim de regul în %.
În aproxim rile 1kg 5g, 50g 5g erorile absolute sunt egale dar pentru
prima eroarea relativ este 0,5% iar pentru a doua eroarea relativ este
10%.
20
Fie
1 2
1 2
1 2 1 2
1 1 2 2
1 2 1 2
, ,
( )
.
a a
a a
a a a a
a ã a ã
a a ã ã
Fie a1 cu eroare relativ2a i a2 cu eroare relativ
2a , pentru
a = a1 * a2 sau 1
2
aa
rezult1 2a a a
21
Rezolvarea sistemelor liniare
Evalaurea erorii în rezolvarea sistemelor liniare
Fie , ,A b x i sistemul de ecua ii algebrice liniare: Ax b
Dac matricea A este nesingular exist i este unic solu ia exact :1x A b
Pentru erorile în datele de intrare facem nota iile:
- eroarea absolut pentruA A ;
- eroarea absolut pentrub bÎn realitate se rezolv sistemul:
A A x b bsolu ia fiind x :
x x xÎn mod natural se ridic urmatoarele probleme :
1. În ipoteza c matricea A este nesingular ce condi ii trebuie sîndeplineasc A pentru ca matricea A+ A s fie nesingular ?
2. Presupunând c matricile A i A+ A sunt nesingulare care sunt
rela iile între erorile relative ale datelor de intrare ,A b
A bi
ale datelor de ie irex
x?
Pentru prima problem în cele ce urmeaz presupunem c matricea Aeste nesingular . Din egalitatea:
1nA A A I A A
rezult c A+ A este nesingular dac i numai dac In+A-1 A este nesingular .
Propozi ie
Fie A nesingular i 1
1AA
. Atunci I+A-1 A este nesingular i
avem:11
1
11nI A A
A A
Demonstra ie. Avem:
22
Pr.3 11 1 11
1 1A A A A A I A AA
de unde ob inem: 11
1 1
1 11 1
I A AA A A A
.
Pentru a doua problem presupunem c A este nesingular i
1
1AA
. Au loc urm toarele implica ii:
11 1 1
11 1
1
1 (1)1
A A x x b b A A x Ax A x b b
A I A A x b A x x I A A A b A x
x I A A A b A x
Ax bA
x xA A
Din Ax =b ob inem 1 Ab A x
x bi inând seam de acest
rezultat, din (1) deducem: 1
1 .1
A Ax b Ax b AA A
Not m cu k(A)=||A-1|| ||A|| num rul de condi ionare al matricii A.
Propozi ie
Dac matricea A este nesingular i 1
1AA
atunci:
1
x b Ak AAx b Ak A
A
.
inând seama c I =A A-1 rezult 11 .I A A k AAsfel num rul de condi ionare al matricii A, k(A) 1, depinde de norma matricial natural utilizat .O matrice A pentru care num rul de condi ionare este mare se nume tematrice prost condi ionat . Pentru matricile prost conditionate eroarea
23
relativ a solu iei sistemului Ax=b , x
xpoate fi mare chiar dac erorile
relative ib A
b A sunt mici.
Fie A o matrice simetric TA A , nesingular . Utilizând norma matricialsubordonat normei vectoriale euclidiene:
22
12 2
TA A A A
k A A AObserv m c matricea simetric A are valorile proprii reale
1 2, n , A2 are valorile proprii 2 2 21 2, n iar A-1 are valorile
proprii1 2
1 1 1, , ....,n
. Presupunând c :
11 2
1
1.... in nA A
ob inem pentru matricea simetric A:1 1
2 21
1,nA A A A ,1
nk A se nume te num r
de condi ionare spectral.Pentru o matrice ortogonal A 1T T TA A A A I A A num rul de
condi ionare spectral 2 2
1,Tk A A A deoarece:
2 21T TA A A I A
.
24
Metode numerice de rezolvarea sistemelor liniare
Fie matricea nesingular A i b . Rezolvarea sistemului de ecua ii liniare Ax b se poate face folosind regula lui Cramer:
det ( ) , 1, ,det
ii
A bx i nA
,
în care Ai(b) se ob ine din matricea A prin înlocuirea coloanei i cuvectorul b. Acest algoritm este foarte costisitor din punct de vedere al resurselor i este instabil numeric (perturb ri mici în datele de intrare pot conduce la perturb ri mari în datele de ie ire). Din aceste motive s-au c utat alte metode de aproximare a solu iei x. Unul din cele mai folosi ialgoritmi este algoritmul de eliminare Gauss. Algoritmul const în transformarea sistemului Ax b într-un sistem echivalent cuAx b A matrice triunghiular superior:
1 1 (not m )x A b A b Ax b Ax bVom considera mai întâi rezolvarea sistemelor liniare cu matrici triunghiulare.
Metoda substitu iei
Fie sistemul liniar Ax = b unde matricea sistemului A este triunghiular .Pentru a g si solu ia unic a sistemului, trebuie ca matricea s fie nesingular . Determinantul matricilor triunghiulare este dat de formula:
11 22det = nnA a a a Prin urmare pentru rezolvarea sistemului vom presupunem c : det 0 , 0 = 1,2, ,iiA a i nVom considera întâi cazul când matricea A este inferior triunghiular .Sistemul are forma:
11 1 1
21 1 22 2 2
1 1 2 2
1 1 2 2
==
=
=
i i ii i i
n n ni i nn n i
a x ba x a x b
a x a x a x b
a x a x a x a x b
(1)
Necunoscutele 1x , 2x , ..., nx se deduc folosind ecua iile sistemului de la prima c tre ultima. Din prima ecua ie se deduce 1x :
25
11
11
bxa
(2)
Din a doua ecua ie , utilizând valoarea x1 din (2) , ob inem 2x :2 21 1
222
= b a xxa
Când ajungem la ecua ia i :1 1 2 2 1 1 =i i ii i ii i ia x a x a x a x b
folosind variabilele 1x , 2x ,..., 1ix calculate anterior, avem: 1 1 1 1= i i ii i
iii
b a x a xxa
Din ultima ecua ie se deduce nx astfel:1 1 2 2 1 1= n n n nn n
nnn
b a x a x a xxa
Algoritmul de calcul a solu iei sistemelor (1) cu matrice inferior triunghiular este urm torul:
1
1 , 1,2, , 1,
i
i ij jj
iii
b a xx i n n
a Acest algoritm poart numele de metoda substitu iei directe. Vom considera, în continuare sistemul (1) cu matrice superior triunghiular :
11 1 1 1 1 1 1 1
1 1
1 1 1 1 1
=
=
=
i i n n n n
ii i in n in n i
n n n n n n n
a x a x a x a x b
a x a x a x b
a x a x b=nn n na x b
Necunoscutele 1x , 2x ,..., nx se deduc pe rând, folosind ecua iilesistemului, de la ultima c tre prima. Din ultima ecua ie g sim nx :
nn
nn
bxa
(4)
Folosind valoarea lui nx dedus mai sus, din penultima ecua ieob inem:
1 11
1 1
= n n n nn
n n
b a xxa
26
Când ajungem la ecua ia i :1 1 =ii i ii i in n ia x a x a x b
se cunosc deja 1ix , 2ix ,..., nx i deducem:1 1= i ii i in n
iii
b a x a xxa
Din prima ecua ie g sim valoarea lui 1x :1 12 2 1
111
= n nb a x a xxa
Procedeul descris mai sus poart numele de metoda substitu iei inversepentru rezolvarea sistemelor liniare cu matrice superior triunghiular :
1 , , 1, ,2,1.
n
i ij jj i
iii
b a xx i n n
a (5)
Pentru a evalua efortul de calcul pentru metoda substitu iei inverse vom nota cu M – num rul de opera ii *, / (înmul iri/împ r iri) efectuate i A num rul opera iilor (adun ri/sc deri) efectuate.Atunci pentru calculul componentei xi se efectueaz M=n-i+1, A=n-i iîn total:
1 1 1
1 1
1 11 ,
2 2
n n
i n k i n k
n n n nM n i k A n i k
Efortul de calcul pentru metoda substitu iei directe este deasemenea M=n(n+1)/2, A=n(n-1)/2.
27
Algoritmul de eliminare Gauss
Algoritmul se realizeaz în n-1 pa i prin transformarea sistemului dat într-un sistem echivalent cu matrice triunghiular superior. Pas 1: la acest pas se ob ine sistemul : 1 1 1, undeA x b Ax b A areprima coloan în form superior triunghiular .Pas 2: se construie te sistemul 2 2 2, undeA x b Ax b A areprimele dou coloane în form superior triunghiular .
Pasul r: se ob ine sistemul , under r rA x b Ax b A are primele rcoloane în form superior triunghiular .
Pasul n-1 : se ob ine sistemul 1 1 1, unden n nA x b Ax b A are primele n-1 coloane în form superior triunghiular .Dac la un anumit pas matricea rA nu poate fi construit aceasta ne va ar ta c matricea A este singular .În realizarea acestor pa i se utilizeaz urm toarele opera ii elementare: înmul irea unei ecua ii cu un factor i adunarea la alt ecua ie;interschimbarea a dou linii i/sau dou coloane în matricea A;Pas 1: Intrare : sistemul Ax b Ie ire : sistemul 1 1 1, unde matriceaA x b Ax b A are prima coloan în form superior triunghiular .Fie ecua ia i, cu i=1,…,n
1 1 2 2:i i i in n iE a x a x a x b .Presupunem 11 0a . Opera iile efectuate au ca obiectiv anularea coeficien ilor lui x1 din ecua iile de la 2 la n i sunt descrise în continuare:
1 1211 2 2 21
11
1 111 1
11
1 111 1
11
0
0
0
ii i i
nn n n
aE E E aa
aE E E aa
aE E E aa
28
Sistemul ob inut prin aceste opera ii are forma:
1 1 1 111 1 12 2 1 1
1 1 122 2 2 2
1 1 12 2
1 1 12 2
n n
n n
i in n i
n nn n n
a x a x a x b
a x a x b
a x a x b
a x a x bsau
1 11 1 1 1
1 11
11
11
1 11
11
, 1, , , .
, 2, , ; 2, , .
0, 2, , .
, 2, , .
j j
iij ij j
i
ii i
a a j n b b
aa a a i n j na
a i nab b b i na
Pas 2: Intrare : 1 1A x b Ie ire : 2 2 2,A x b Ax b A are primele dou coloane în form superior triunghiular .Se presupune 1
22 0a i se urm re te anularea elementelor 2 2 2
32 42 2, , , na a a (transformarea coloanei 2 în form superior triunghiular ). Opera iile efectuate asupra ecua iilor 1 , 3, ,iE i n sunt urm toarele :
11 1 2 232
2 3 3 32122
11 1 2 22
2 2122
11 1 2 22
2 2122
0;
0;
0;
ii i i
nn n n
aE E E aa
aE E E aa
aE E E aa
29
Ob inem pentru matricea A(2) i vectorul b(2) rela iile:2
1 1
2 12 2
12 1 12
2122
21
22
2 2 11 1 2 2
12 1 (1)2
2122
, 1, ,
, 2, ,
, 3, , ; 3, ,
0, 2, ,
0, 3, ,
,
, 3, , .
j j
j j
iij ij j
i
i
ii i
a a j n
a a j n
aa a a i n j na
a i n
a i n
b b b b
ab b b i na
Se observ c nu se schimb forma superior triunghiular a primei coloane.Pas r: Intrare : 1 1r rA x b Ie ire : ,r r rA x b Ax b A are primele r coloane în formsuperior triunghiular .Sistemul are forma urm toare:
1 1 1 111 1 1 1 1
1 1 1
1 1 11 1 1
r r r rr r n n
r r rrr r rn n r
r r rr r r r n n r
rir
a x a x a x b
a x a x b
a x a x b
a 1 1 1
1 1 1
r rr in n i
r r rnr r nn n n
x a x b
a x a x b
Presupunem 1 0.rrra Vom urm ri anularea elementelor
1 2, , , .r r rr r r r nra a a Opera iile efectuate sunt:
30
11 11
1 1 11
11 1
1
11 1
1
0;
0;
0;
rr r r rr r
r r r r rrrr
rr r r rir
r i i irrrr
rr r r rnr
r n n nrrrr
aE E E aa
aE E E aa
aE E E aa
Ob inem pentru matricea A(r) i vectorul b(r) formulele:
1 1
1
11 1
1
1 1
1
11 ( 1
21
, 1, , ,
, 2, , , , ,
, 1, , ; 1, , .
0, 1, , , 1, , .
,
, 2, , ,
rj j
r kkj kj
rr r rir
ij ij rjrrr
rij
r
r jj j
rr r rir
i i rrr
a a j n
a a k r j k n
aa a a i r n j r na
a j r i j n
b b
b b j r
ab b ba
) , 1, , .i r n
Se observ c nu se schimb forma superior triunghiular a primelor r-1coloane. La fiecare pas s-a f cut ipoteza 1 0r
rra . Elementul 1rrra poart
numele de pivot. În cazul în care elementul pivot este nul se pot aplica urm toarele strategii numite de pivotare:
10.F r pivotare Se caut primul indice
0
10 , 1, , astfel încât 0r
i ri r r n a . Se interschimb liniile i0 i r.
S observ m c în procesul de calcul la pasul r intervine factorul 1
1r
rra
astfel c valori mici ale lui 1rrra conduc la amplificarea erorilor de
31
calcul. Pentru a asigura stabilitatea numeric a procesului de calcul este de dorit ca 1r
rra s fie ‘mare’.
20. Pivotare par ial : Se determin indicele i0:
0
1 1max ; , ,r ri r ira a i r n
i se interschimb liniile 0 0, daci r i r .
30.Pivotare total : Se determin indicii i0 i j0:
00
1 1max ; , , , , ,r ri j ija a i r n j r n
i se interschimb liniile 0 0, daci r i r i coloanele 0 0, dac .j r j rSchimbarea coloanelor implic schimbarea ordinii variabilelor astfel încât în final va trebui ref cut ordinea ini ial a variabilelor. Dac dup pivotare elementul pivot r mâne nul, 1 0 ,r
rra atunci putem deduce c matricea A(r-1) este singular . În adev r, dac în procesul de pivotare par ial 1 0 ,r
rra atunci
11 12 1
1 1 1 1( 1)11 22 1 1
00
det det 0
0
n
rn
r r r rrr rnrr r
nn
nn
a a aa
a aA A a a a
aa
Deoarece opera iile efectuate (cele de inetrschimbare de linii i/suacoloane) nu au schimbat decât semnul determinantului avem:
1det det 0 det 0rA A Aprin urmare matricea A ini ial este singular .
i în cazul procesului de pivotare total dac 1 0 ,rrra atunci:
11 12 1
1 1 1 1( 1)11 22 1 1
0 00 00
det det 0
0 00
n
r r r rrrrr r
a a a
aA A a a a
Avem 1det det 0rA A A este matrice singular .
32
Putem suma algoritmul descris mai sus astfel: 1;
pivotare( );while ( -1 i | | > )
// Pas rfor 1, ,
- ;
for 1, , * ;
rr
ir
rr
ij ij rj
rr
r n a
i r nafa
j r na a f a
( 1) ( 1)
0; * ; 1;
pivotare( );if (| | ) 'MATRICE SINGULARA'
else { ,se rezolv sistemul triunghiular superior
ir
i i r
rrn n
ab b f b
r rr
aA A b b
Ax }b
Num rul de opera ii efectuate la pasul r i în total este:
1 12
1 1
1 12
1 13 3
2 2
( ) 1 1 1
1 2 5M : 2 ,
61 1
A : ,3
M : ; :3 3
n n
r r
n n
r r
n r M n r A n r A A M
n n nn r n r
n n nn r n r
n nn n
33
Descompuneri LU
Dac avem pentru matricea A o descompunere de tipul A=LU, cu Lmatrice triunghiular inferior i U matrice triunghiular superior atunci rezolvarea sistemul liniar Ax=b se reduce la rezolvarea a dou sisteme liniare cu matrici triunghiulare:
1= solu ia y= = ,
= solu ia xLy b
Ax b LUx b x A bUx y
Se rezolv întâi sistemul inferior triunghiular =Ly b . Apoi se rezolvsistemul superior triunghiular =Ux y unde y este solu ia ob inut din rezolvarea sistemului precedent =Ly b . Vectorul x rezultat din rezolvarea sistemului =Ux y este i solu ia sistemului ini ial =Ax b . Fie minorul principal principal al matricii A:
11 12 1
21 22 2
1 2
, 1, ,
p
p pp
p p pp
a a aa a a
A p n
a a a
Teorem (descompunere LU)Fie A o matrice real p tratic de dimensiune n astfel încât det 0pA , = 1, ,p n . Atunci exist o unic matrice inferior triunghiular , =1,...,= ( )ij i j nL l cu = 1, = 1, ,iil i n i o unic matrice superior triunghiular , =1,...,= ( )ij i j nU u astfel încât A = L U (1) Demonstra ie. Existen a. Algoritmul Doolittle de calcul al descompunerii LU (demonstra ia se face prin induc ie dup n dimensiunea matricii A )Fie A o matrice real p tratic de dimensiune n care satisface ipotezele teoremei de mai sus. Algoritmul de calcul al matricilor L i Uare n etape. La fiecare pas se determin câte o linie din matricea U icâte o coloan din matricea L . Descriem în continuare, un pas oarecare. Pasul p ( =1,2, ,p n )Se determin elementele liniei p ale matricii U , , = , ,piu i p n , ielementele coloanei p ale matricii L ,
, = 1, ,ipl i p n = 1ppl (upi= lip =0, i=1,…,p-1).
34
Sunt cunoscute din pa ii anteriori elementele primelor 1p linii din U(elemente kju cu = 1, , 1,k p j ) i elementele primelor 1p coloane din L (elemente ikl cu = 1, , 1,k p j ).Calculul elementelor liniei p din matricea U , = , ,piu i p n se face folosind elementul api i (LU)pi. Avem:
1
=1 =1 =1
= ( ) ( = 0, = 1, , ) = =p pn
pi pi pk ki pk pk ki pp pi pk kik k k
a LU l u l k p n l u l u l u
Pentru = , ,i p n avem:1
1
, , ,p
pi pi pk kik
u a l u i p n (2)
( = 1ppl , pkl , kiu = 1, , 1k p sunt elemente de pe coloane din L ilinii din U calculate la pa ii anteriori) Calculul elementelor coloanei p din matricea L : , = 1, ,ipl i p n( = 0 , =1, , 1, = 1ip ppl i p l ) se face analog:
1
=1 =1 =1
= ( ) ( = 0, = 1, , ) = =p pn
ip ip ik kp kp ik kp ip pp ik kpk k k
a LU l u u k p n l u l u l u
Dac 0ppu putem calcula elementele nenule ale coloanei p din matricea L astfel:
1
1
( ) / , 1, ,p
ip ip pk ki ppk
l a l u u i p n (3)
(elementele pkl , kiu =1, , 1k p sunt cunoscute deja la pasul p fiind calculate anterior) Dac = 0ppu , calculele se opresc, descompunerea LU nu poate fi calculat - matricea A are un minor pA cu determinantul 0. Unicitatea. Demonstra ie prin reducere la absurd. Facem observa ia c inversa unei matrici nesingulare triunghiularinferior (superior) este o matrice de acela i tip. Presupunem c
1 1A LU LU (4) Din ipoteza A nesingular rezult existen a inverselor matricilor
1 1, , ,L L U U . Înmul ind egalitatea (4) la stânga cu 1 1 1 1
1 1 1i cu la dreapta ob inem .L U UU L L1 1
1 11 1
1 1 1 1
Matricea este triunghiular superior iar matricea este triunghiular inferior
cu elementele diagonale egale cu 1. Rezult , deci , .
UU L LUU L L I L L U U
35
Observa ii: Pentru memorarea matricilor L i U se poate folosi matricea A ini ial . Vom folosi partea superior triunghiular a matricii A pentru a memora elementele iju ale matricii U pentru = 1,2 ,i n ,
= , 1 ,j i i n i partea strict inferior triunghiular a matricii A pentru a memora elementele ijl ale matricii L , = 2,3 ,i n , = 1,2 , 1j i . Se observ c nu am memorat nic ieri elementele =1 =1, ,iil i 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 f r schimbare de linii descompunere LU
Presupunem c la fiecare pas al algoritmului de eliminare Gauss pivotul este nenul ( ( 1) 0r
rra ), deci nu e nevoie de schimbare de linii. Algoritmul se poate scrie astfel:
for 1, , 1for 1, ,
;
//for 1, ,
;
0;;
ir
rr
i i r
ij ij rj
ir
i i r
r ni r n
afa
E E f Ej r na a f a
ab b f b
Fie:
( ) ( )( )
1
( )
0
0, :r r T
r n rrr
rn
t T I t et
t
36
col r
( )( )
( )11
( )( )
0 0 0 0 0
0 0 0 0 00 1 0 00 0 0 lin 1)
0 0 0
r Tr r
rrr
rrn
n
t et t r
t t
Matricea Tr este matrice triunghiular inferior cu 1 pe diagonala principal :
( )1
( )
col
1 0 0 00 1 0 0
0 0 1rr
r
rn
r
Tt
tInversa matricii Tr este 1 ( )r T
r n rT I t e . În adev r:1 ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( )( )
(0 )
r T r T r T r T r T r Tr r n r n r n r r r r
r r T r T rn r r n r r
T T I t e I t e I t e t e t e t e
I t t e I t e tDac A este o matrice oarecare, vrem s vedem cum se poate construi matricea B=TrA f r a face înmul ire matricial . Vom studia leg tura între liniile matricilor A i B.
( ) ( ) ( )( ) ( ) ( )T T T r T T T r T T r Ti i r i n r i i r i i re B e T A e I t e A e A e t e A e A t e A
Linia i a noii matrici B se ob ine din linia i a matricii A la care se adauglinia r a matricii A înmul it cu factorul ( )r
it .( )
( )
1, , ( 0)
( ) 1, ,
T ri iT
i T r Ti i r
e A i r te B
e A t e A i r n.
Opera ia TrA descrie Pasul r al algoritmului de eliminare Gauss dac :( ) ( ) ( )
( ) ( ) ( )11 ( ) ( ) ( ), , , ,
r r rr r rr r ir nr
r i nr r rrr rr rr
a a at t ta a a
.
Algoritmul de eliminare Gauss f r schimbare de linii poate fi descris astfel:
( )1 2 1 cu r T
n r n rT T T A U T I t e ,
37
( ) ( ) ( )( ) 1
( ) ( ) ( )0 0 ( ) ( ) ( )Tr r r
r r r ir nrr r r
rr rr rr
a a ata a a
.
Avem:1 1 1 1 1 1
1 2 1 1 2 1, :n nA T T T U LU L T T T1 1 (1) (2) (1) (2) (1) (2)
1 2 1 2 1 2 1 2(1) (2) (1) (2) (1) (2) (2)
1 2 1 2 1 2 1
( )( )
( 0)
T T T T T Tn n n
T T T T Tn n
T T I t e I t e I t e t e t e t e
I t e t e t t e I t e t e tPrin induc ie se arat c :
1 1 1 (1) (2) ( 1)1 2 1 1 2 1
T T n Tn n nL T T T I t e t e t e
21
11(1)
31 32(1)
11 22
1
11
1 0 0 0
1 0 0
0 0
r
aaa aa a
L aa
(1)2
(1)22
(1) ( 1)11 12 1
(1) ( 1)11 22
(1) ( 1)1 2
(1) ( 1)11 22
0
0
r
rr r r r
rrr
rn n nr
rrr
aa
a a aa a a
a a aa a a
Am ar tat c algoritmul de eliminare Gauss f r schimbare de linii produce o descompunere LU pentru matricea A.
Factorizarea Choleski
Defini ie Matricea A se nume te pozitiv semidefinit dac :
, 0Ax x x . Matricea A se nume te pozitiv definit dac :
, 0 , 0Ax x x x .
Propozi ie Dac matricea A este pozitiv definit atunci matricea A este nesingular .
38
Demonstra ie: Presupunem prin reducere la absurd c matricea A este pozitiv definit i singular . Atunci, sistemul de ecua ii liniare Ax=0 are pe lâng solu ia banal x=0 i o solu ie x0 0. Avem:
0 0 0 00 0 , 0, 0 contradic ie!x Ax x xDac matricea A este pozitiv definit rezult c i minorii principali Ap
sunt pozitivi defini i în p p i deci det Ap 0. Avem urm torul rezultat:
Propozi ie Presupunem c matricea A este simetric (A=AT) i pozitiv definit . Atunci exist o matrice triunghiular inferior L astfel ca:
(factorizarea Choleski a matricii )TA LL A
Algoritmul de determinare a matricii L se desf oar în n etape, la fiecare etap se determin câte o coloan a matricii L.La pasul p se cunosc din pa ii anteriori coloanele 1,2,...,p-1 ale matricii L:
, 1,2, , 1, 1, , cunoscuteirl r p i nLa acest pas se determin elementele coloanei p ale matricii L:
1
0
0, ? , , ,pp ip
p p
np
l l i p nl
l
.
Se determin întâi elementul diagonal lpp:1
2
1 2(
p
p
Tpp p p pp pppp
ll
a LL l l l l
39
12 2 2 21 2
1
p
pp p p pp pp pp pjj
a l l l l a l
Se arat c din faptul c matricea A este simetric i pozitiv definitexpresia de sub radical este nenegativ i în plus lpp 0.Se determin în continuare celelalte elemente ale coloanei p, lip,i=p+1,...,n:
1
2
1(
p
p
Tip i ip ii ppip
ll
a LL l l l l
1
1 1 2 2 1 11
, 1, ,p
ip i p i p ip pp ip pp ij pj ip ppj
a l l l l l l l l l l l l i p n
Elementele lij, lpj , j=1,...,p-1 sunt determinate la pa ii anteriori deci sunt cunoscute.Avem:
1
1 , 1, , , 0 , 1, , 1
p
ip ij pjj
ip ippp
a l ll i p n l i p
l.
40
Algoritmul Gauss-Jordan de inversare a unei matrici
Fie A o matrice real p tratic de dimensiune n .1= =Gauss JordanAx y x A y
1 11 1 1
2 21 1 2
1 1
= (E1)= (E2)
= (E )
n n
n n
n n nn n
y a x a xy a x a x
y a x a x nÎn algoritmul Gauss-Jordan se procedeaz astfel: se scoate 1x dintr-una din rela iile de la (E1) la (En) i se înlocuie te în toate celelalte. Rela iadin care s-a scos 1x se aduce pe prima pozi ie. Se scoate 2x din una din rela iile de la (E2) la (En), se aduce aceast rela ie pe pozi ia a doua i seînlocuie te 2x în toate celelate rela ii. ... Se repet aceste opera ii pân s-au înlocuit toate variabilele ix . Se ajunge la un sistem de forma:
1undex By y Py A BP (1) ( P este o matrice de permut ri care reflect schimb rile de linii efectuate) Pasul p ( = 1,2, ,p n )Vectorul reflect schimb rile de linii f cute pân la acest pas.Ini ial ( = 1p ) = , = 1, ,i i i n . La acest pas sistemul are urm toarea form :
1
=1 = 1
1
=1 = 1
1
=1 = 1
= , = 1, , 1
=
= , = 1, ,
p n
i ij ip p ij jjj j p
p n
pj pp p pj jp jj j p
p n
ij ip p ij ji jj j p
x a y a x a x i p
y a y a x a x
y a y a x a x i p n
La acest pas se scoate px dintr-una din rela ii i se înlocuie te în toate celelate. Pentru stabilitatea algoritmului, se caut 0 { , , }i p n astfelîncât:
0| |= max{| | ; = , , }i p ipa a i p n
Dac0
= 0i pa (0
| |i pa ) atunci matricea A este singular , inversa nu poate fi calculat . Dac
00i pa (
0| |>i pa ), se interschimb linia p cu linia 0i i se
41
actualizeaz vectorul (0i p ). Sistemul r mâne în continuare în
aceea i form ca mai sus. Avem: 1
=1 = 1= ( )/
p n
p pj pj j ppj pj j p
x a y y a x a
Înlocuind px în celelalte (n-1) rela ii ob inem:
1 1
=1 = 1 =1 = 1
1
=1 = 1
( =1, , 1) sau ( = 1, , )
= ( )/ =
= ( / ) ( / ) ( / )
i ip pn n
ij ij j ip pj pj j ppj j pj j p j j p
p n
ij ip pj pp ip pp ij ip pj pp jj pj j p
x i p y i p n
a y a x a a y y a x a
a a a a y a a y a a a a x
Sistemul a devenit : 1
=1 = 1
1
=1 = 1
1
=1 = 1
= ( ) ( ) , =1, , 1
1=
= ( ) ( ) , = 1, ,
p nip ip ip
i ij pj ij pj jj pj j ppp pp pp
p npj pj
p jj pj j ppp pp pp
p nip ip ip
ij pj ij pj ji j pj j ppp pp pp
a a ax a a y y a a x i p
a a aa a
x y y xa a a
a a ay a a y y a a x i p n
a a a
La pasul p matricea A se transform în matricea A astfel: Pentru =1, , ,i n i p
= , =1, , ,
=
ipij ij pj
pp
ipip
pp
aa a a j n j p
aa
aa
Pentru =i p
= , =1, , ,
1=
pjpj
pp
pppp
aa j n j p
a
aa
Calculele se pot face la fiecare pas p în matricea A , f r a mai folosi matricea auxiliar A . În final (dup efectuarea pasului n ) în matricea A vom avea matricea B din formula (1). Matricea P are forma:
42
1
2
1 2= = ( )
n
T
T
n
T
e
eP e e e
e
unde = (0 0 1 0)T
ie (1 este pe pozi ia i ). Permutarea ce apare în
formula de mai sus este inversa permut rii , 1= . Pentru a ob ine matricea 1A trebuie s facem opera ia BP . Nu este nevoie s se fac o înmul ire matricial ci pentru a ob ine matricea 1Ase 'amestec ' coloanele matricii B conform cu permutarea .
1
1 2= = ( )
nA BP Be Be Be
undei
Be este coloana i a matricii B i în acela i timp coloana i a
matricii 1A .
43
Descompuneri QR
Defini ie Se nume te matrice ortogonal , o matrice n x nQ care satisface
rela ia:1= ( )T T T
nQ Q QQ I Q Q .
Matricile ortogonale au urm toarele propriet i:1) Dac Q este matrice ortogonal atunci i matricea
transpus TQ este ortogonal .= ( ) ( )T T T T T T T T
nQ Q Q Q QQ Q Q I2) Dac 1 2iQ Q sunt matrici ortogonale atunci i produsul lor, 1 2Q Q ,
este tot matrice ortogonal .1 2 1 2 2 1 1 2 2 2
1 2 1 2 1 2 2 1 1 1
( ) ( ) =
( ) ( )
T T T Tn
T T T Tn
Q Q Q Q Q Q Q Q Q I Q I
Q Q Q Q Q Q Q Q Q I Q I3) Dac Q este matrice ortogonal i x atunci
2 2|| || =|| ||Qx x .2 22 2 2 2 2|| || , , , || || , || || 0 || || || ||TQx Qx Qx x Q Qx x x x Qx x
Fie A o matrice real p tratic de dimensiune n . Presupunem cpentru matricea A avem o descompunere de forma:
A QRunde Q este o matrice ortogonal iar R este o matrice superior triunghiular . Având o asemenea descompunere, rezolvarea sistemului
=Ax b se reduce la rezolvarea sistemului superior triunghiular = TRx Q bastfel:
= = = =T T TAx b QRx b Q QRx Q b Rx Q b
Algoritmul lui Givens
În cazul algoritmului Givens, pentru a aduce sistemul =Ax b la forma = TRx Q b se folosesc matricile de rota ie. O matrice de rota ie
, =1,( ) = ( )pq ij i j nR r are urm toarea form :
44
1 0 0 0 00 1 0 0 0
0 0 0( ) =
0 0 ) 0
0 0 0 0 1
pq
p q
c s pR
s c q
1 pentru = , ,pentru = , = , =
= pentru = , =pentru = , =
0 în rest
ij
i j i p i qc i j i p i q
r s i p j qs i q j p
unde , {1, , }p q n iar c i s sunt dou numere reale care satisfac rela ia 2 2 = 1c s . Constantele c i s pot fi alese astfel încât
= cos , = sinc s . Se arat u or, folosind rela ia 2 2 = 1c s , c matricea ( )pqR este ortogonal :
( ) ( ) ( ) ( )T Tpq pq pq pq nR R R R I
Dac înmul im la stânga o matrice oarecare A cu o matrice de rota ie, = ( )pqB R A , matricea B se ob ine din matricea A modificând doar liniile ip q . Not m cu T
i iA e A , Ti iB e B - linia i a matricii A i
respectiv a matricii B . Matricea B are urmatoarele linii:= = 1, , , ,=
=
, 1, ,
, 1, ,
în rest
i i
p p q
q p q
pj pj qj
qj pj qj
ij ij
B A i n i p i qB cA sAB sA cAb c a s a j nb s a c a j nb a
Dac înmul im la dreapta o matrice oarecare A cu transpusa unei matrici de rota ie, = ( )T
pqD A R , matricea D se ob ine din matricea Amodificând doar coloanele ip q ca în schema de mai sus. Not m cu
jAe , jD e - coloana j a matricii A i respectiv a matricii D . Matricea
45
D are urmatoarele coloane: = 1, , , ,
=
=
, 1, ,
, 1, ,
în rest
j j
p p q
q p q
ip ip iq
iq ip iq
ij ij
D A j n j p j qDe cAe sAeDe sAe cAed c a s a i nd s a c a i nd a
Algoritmul lui Givens se desf oar în ( 1)n pa i - la pasul r se transform coloana r a matricii A în form superior triunghiular f r a modifica primele ( 1)r coloane.
Pasul 1Intrare: matricea A , vectorul bIe ire: matricea (1)A (cu prima coloan în form superior
triunghiular ), (1)bSe efectueaz urmatoarele opera ii de înmul ire cu matrici de rota ie:
(1)1 1 13 13 12 12
(1)1 1 13 13 12 12
( ) ( ) ( )
( ) ( ) ( )n n
n n
R R R A A
R R R b bUnghiurile 1i (constantele 1 1ii ic s ) se aleg astfel ca elementul de pe
pozitia ( ,1)i din matricea rezultat s devin 0. Pasul r
Intrare: matricea ( 1)rA (are primele ( 1)r coloane în formsuperior triunghiular ), ( 1)rbIe ire: matricea ( )rA (cu primele r coloane în form superior triunghiular ), ( )rb
La acest pas matricea ( 1)rA i vectorul ( 1)rb se transform astfel:( 1) ( )
1 1
( 1) ( )1 1
( ) ( ) ( )
( ) ( ) ( )
r rr n r n r i r i r r r r
r rr n r n r i r i r r r r
R R R A A
R R R b bunde elementele = r ic c i = r is s din matricile de rota ie se aleg astfel ca dup înmul irea cu ( ) , = 1, ,r i r iR i r n elementul ( , )i r s devin 0. Consider m opera ia = ( )r i r iB R A , unde r i se allege astfel ca 0i rb :
, , 1, , în rest)rj rj ij ij rj ij kl kl
ir rr ir
b c a s a b s a c a j n b ab s a c a
46
Cea mai simpl alegere pentru ic s astfel ca s ob inem 0i rb este: 2 2
2 2
1= = , ales astfel ca 1r r i r
r r i r
c a s a c sa a
2 2 2 2= =r r i r
r r i r r r i r
a ac sa a a a
Dac 2 2 = 0rr ira a acest lucru implic faptul c = = 0rr ira a , deci elementul ira este deja nul. În acest caz putem lua = 1, = 0c s , matricea de rota ie coincide cu matricea unitate I , ( )ri riR I , matricea A nu se schimb .
Când se efectueaz opera ia = ( )r i r iB R A , matricea A are primele ( 1)r coloane în form superior triunghiular( 0 , 1, , 1 , 1, , 1kla k l l r ) i elementele 1 1 0r r i ra a .În matricea B aceste elemente vor continua s fie nule.
, , 1, , 1rj rj ij ij rj ijb c a s a b s a c a j rÎnmul irea = ( )r i r iB R A nu schimb decât liniile ir i ale matricii B ,prin urmare vom avea 1 1 1 1 0r r r r i r i rb a b a . În concluzie, opera ia = ( )r i r iB R A nu schimb elementele nule deja ob inute, ci doar face ca elementul de pe pozi ia ( , )i r s devin 0. Algoritmul lui Givens poate fi descris astfel:
1 1 1 1 1 1 12 12
_
1 1 1 1 1 1 12 12
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
n n n n rn rn r r r r n n
Tn n n n rn rn r r r r n n
R R R R R A R
R R R R R b b Q b Not m cu Q urm toarea matrice:
1 1 1 1 1 1 12 12( ) ( ) ( ) ( ) ( )n n n n rn rn r r r r n nQ R R R R RMatricea Q este matrice ortogonal ca produs de matrici ortogonale. Descompunearea QR a matricii A este urm toarea:
1
1 1 1 1 1 1 12 12
12 12 1 1 1 1 1 1
( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
T T
T Tn n n n rn rn r r r r n n
T T T T Tn n r r r r rn rn n n n n
Q A R Q Q A Q R QR
Q Q R R R R R
R R R R R
47
Pe scurt, algoritmul lui Givens este urm torul:;
for 1, , 1for 1, ,
( ) * ;( ) * ;
( ) * ;
n
ri ri
ri ri
ri ri
Q Ir n
i r n
A R Ab R b
Q R QDetaliat avem:
2 2
;for 1, , 1
for 1, ,construc ia matricii ( ) constantele i
;if (
n
ri ri
rr ir
Q Ir n
i r nR c s
a a){ 1; 0;} // ( )
else{ / ; / ;}( ) *
for 1, ,;
ri ri
rr ir
ri ri
rj rj ij
c s R Ic a s a
A R Aj r n
a c a s a
a ;
0 ;( ) *
;
;
vechiij rj ij
ir rr
ri ri
r r ivechi
i r i
s a c a
a ab R bb c b s b
b s b c b
Q ( ) *for 1, ,
;
;
ri ri
rj rj ij
vechi
ij rj ij
R Qj n
q c q s q
q s q c qLa sfâr itul acestui algoritm, în matricea A vom avea matricea superior triunghiular R , în vectorul b vom avea initT
Q b ( initb - vectorul termenilor liberi ini ial), iar matricea Q va con ine matricea TQ din factorizerea QRa matricii A .
48
Num rând opera iile efectuate (exceptând calculul matricii Q ) ob inem: ( 1)
2n n radicali, 3 2( 1)(4 7) 2 ( )
6 3n n n n O n adun ri/sc deri i
3 22 ( 1)(2 5) 4 ( )3 3
n n n n O n înmul iri/împ r iri.
Algoritmul lui Householder
Defini ieSe nume te matrice de reflexie o matrice P de forma:
22
=1
= 2 , , || || = | | = 1n
Tn j
jP I vv v v v
21 1 2 11
22 2 1 2 2
1 2
21 2
= ( , , , ) =
n
T nn
n n n n
v v v v vvv v v v v v
vv v v v
v v v v v v
.
Matricile de reflexie sunt simetrice ( = TP P ) i ortogonale ( 2T T
nPP P P P I ). = ( 2 ) = 2( ) = 2( ) = 2 =T T T T T T T T T
n n n nP I vv I vv I v v I vv P2
22
2
= ( 2 )( 2 ) = 2 2 4( )( ) =
4 4 ( ) = 4 4 || || =
4 4 = (|| || = 1)
T T T T T Tn n n
T T T T Tn n
T Tn n
P I vv I vv I vv vv vv vv
I vv v v v v I vv v v v
I vv vv I v Dac lu m în considera ie cazul:
1 1 0 1 1 0= 2, = , = 2 (1
0 0 1 0 0 1n v P
i 2 ,x y Px :
1 1 1 1
2 2 2 2
1 0= , = =
0 1x y x x
x yx y x x
Vectorul =y Px este reflectatul vectorului x în raport cu axa 2Ox .
Algoritmul ce folose te matricile de reflexie pentru a ob ine o descompunere QR pentru o matrice A a fost descris de Alston S.
49
Householder în articolul "Unitary triangularization of a nonsymmetric matrix," ap rut în Journal of the Association of Computing Machinery 5 (1958), 339-342.
Transformarea matricii A într-una superior triunghiular se face în ( 1)n pa i, la fiecare pas folosindu-se o matrice de reflexie.
Pas 1: (1)1=A P A (matricea 1P se alege astfel ca coloana 1 s fie
transformat în form superior triunghiular )Pas 2: (2) (1)
2 2 1= ( )A P A P P A ( 2P transform coloana 2 în formsuperior triunghiular f r s schimbe coloana 1)
Pas r : ( ) ( 1)1 1( )r r
r r rA P A P P P A (se transform coloana r înform superior triunghiular f r s schimbe primele ( 1)r coloane)
Descompunerea QR construit cu algoritmul Householder este urm toarea:
1 2 1 = =n rP P P P A QA Runde
1 2 1= n rQ P P P PQ este matrice ortogonal ca produs de matrici ortogonale. Avem:
= = = =T T TQA R Q QA Q R A Q R QR
1 2 1 1 2 1= = ( ) =T Tn r r nQ Q P P P P PP P P
Pasul rLa intrarea în pasul r matricea A are forma:
11 12 1 1
22 2 2
1 1
0
0 0= 0 0
0 0
0 0
r n
r n
rr rn
r r r n
ir in
nr nn
a a a aa a a
a aA a a
a a
a aPasul r const în:
2
:=
= 2 ( ) , , || || = 1r
r r T r n rr n
A P AP I v v v R v
unde vectorul rv se aleg astfel ca matricea A s aib i coloana r în form superior triunghiular :
50
11 12 1 1
22 2 2
1
0
0 0= 0 0 0
0 0 0
0 0 0
r n
r n
rr rn
r n
in
nn
a a a aa a a
a aA a
a
a
+
⎛ ⎞⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟
⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎝ ⎠
Calculul matricii rP Pentru simplitate vom nota = , =r
rP P v v .
1 11
22 2
1 1 1
1
= ( ) =0
0
0
r rr
rr r
r r r r r r
rr rrr r r
r r
ir
nr
a aaa a a
a a aa a kAe PA e Aea
a
a
− − −
+
⎛ ⎞=⎛ ⎞⎜ ⎟⎜ ⎟ =⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟=⎜ ⎟⎜ ⎟⎜ ⎟
=⎜ ⎟⎜ ⎟ → =⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠
Aplicând proprietatea matricilor ortogonale 2 2( , || || )Q x Qx x×∈ ∈ , || =|| R Rç ç ç pentru matricea =Q P şi vectorul
= rx Ae avem: 2 2 2 2 22 1 2 1
2 2 2 2 2 2 2 21 2 1 1
|| || = =
|| || =r r r r r
r r r r r rr r r ir nr
PAe a a a k
Ae a a a a a a a−
− +
+ + + +
+ + + + + + + + +
Din relaţia de mai sus rezultă: 2 2 2 2 2 2
1=
= = = =n
rr r r ir nr iri r
k a a a a a kσ σ++ + + + + ⇒ ±∑
Determinarea vectorului v ce defineşte matricea P ( ) = ( 2 )( ) = 2( )( ) = 2 ( ( )) = (2 ) =
T T Tr n r r r r r
r r
PA e I vv Ae Ae vv Ae Ae v v AeAe v Ae uα
− − −
= − −
51
unde cu α şi u am notat:
( )
1 1
2 2
1 1 2 2
:= ( ) = ( ), = ( , )
r
r
Tr r
ir i
nr n
r r ir i nr n
a va v
v Ae Ae va v
a va v a v a v a v
α
⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟
= ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠
= + + + + +
R Rç ç
1 1
2 2
1 1
11
00
0
:= (2 ) = ( ) = =0
0
0
r r
r r
r r r r
rrrrr r
r rr r
irir
nrnr
a aa a
a aa ka k
u v Ae PA eaa
aa
aa
α
− −
++
⎛ ⎞ ⎛ ⎞⎛ ⎞⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ −⎜ ⎟ − − ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎝ ⎠ ⎝ ⎠⎝ ⎠
Cu aceste notaţii matricea P devine:
22
1 1 1 1= 2( ) ( ) = ( ) cu : 22 2 2
T T Tn n nP I u u I uu I uu β α
α α α β− − = − =
Pentru a cunoaşte matricea P trebuie să mai determinăm constanta β . Din condiţia:
2 2 2 22 2 2 22
1 1|| || = 1 || || = 1 || || 1 2 =|| ||2 4
v u u uβα α
⇒ ⇒ = ⇒
avem:
52
2 2 2 2 2 22 2 1
1
2 2 2 2 21
00
0
|| || =|| || = ( ) =
2 = 2 = 2( )
rrrr r r ir nr
r r
ir
nr
rr r r ir nr rr rr rr
a ku a k a a a
a
a
a
a a a a ka k ka ka
de unde ob inem: = rrka
Vom alege semnul constantei k astfel încât s fie cât mai mare posibil deoarce constanta apare în opera ia de împ r ire. Avem:
" " = ( 0) semn = semnrr rrmare ka k a Ce înseamn = 0 ?
2 22 2 1
1= || || = 0 || || = 0 = 0 = , = 0, , = 0, , = 02 rr r r ir nru u u a k a a a
Cum rra k i semn = semn rrk a ob inem: = 0, = , ,ira i r n
adic avem coloana r deja în form superior triunghiular , se poate trece la pasul urm tor. În acest caz matricea A este singular .Ne intereseaz cum se efectueaz opera ia := rA P A f r a face înmul irematricial . Vom pune în eviden schimb rile în raport cu coloanele.
1 1( ) = noua coloan a matricii = ( )( ) = ( )( ) =
1 ( ( )) =
T Tj n j j j
jTj j j
PA e j A I uu Ae Ae uu Ae
Ae u u Ae Ae u
unde
53
1
2
11
=1 =
00
:= ( ) = ( , ) = ( ) =
= ( = 0, =1, , 1 , = , =
j
j
Tj j rj rr rj rr ij ir nj nr
r rr j
nrnj
n n
i ij i ij i r rr i iri i r
aa
u Ae a a k a a k a a a aaa
aa
u a u a u i r u a k u a i 1, , )r n
Noua coloan j se ob ine din vechea coloan j din care sc dem vectorul u înmul it cu constanta j . Ne intereseaz ca primelor ( 1)r coloane snu li se schimbe forma superior triunghiular deja ob inut . Pentru
= 1, , 1j r avem:
1
2
1
1
1
00
0:= ( ) = ( = 0 , ) =
= 0
= 0
0 0 0( ) 0 0 = 0
j
j
jjT
j j j jrr
r rrj
nr
nj
j jj rr ir nr
aa
au Ae a
a ka
a
aa
a a a k a a
Din faptul c = 0 , = 1, , 1j j r rezul c primele 1r coloane ale matricii A nu se schimb când facem opera ia := rA P A , r mân în form superior triunghiular .Algoritmul de trecere de la matricea A la matricea rP A este urm torul:
54
1 2 1
pentru =1, , 1
( ) = ( , , , , ,0, ,0) pentru =
pentru = 1, ,
j
Tr j r r r r
jj
Ae j r
P A e a a a k j r
Ae u j r n
cu
=
= ( , ) =n
j j i iji r
Ae u u a
= 0, =1, , 1, = , = , = 1, ,i r rr i iru i r u a k u a i r n
Opera ia de transformare a vectorului termenilor liberi := rb Pb se face astfel:
1 1 1= ( ( )) = ( ) = ( ) =T T Tr nPb I uu b b uu b b u u b b u
unde
=
= = ( , ) =n
Ti i
i ru b b u u b
Algoritmul lui Householder;
for 1, , 1calculeaz matricea (constanta i vectorul )
* ;* ;
* ;
n
r
r
r
r
Q Ir n
P uA P Ab P b
Q P QLa sfâr itul acestui algoritm, în matricea A vom avea matricea superior triunghiular R , în vectorul b vom avea initT
Q b ( initb - vectorul termenilor liberi ini ial), iar matricea Q va con ine matricea TQ din factorizerea QRa matricii A .
55
Algoritmul QR - Householder detaliat
2
=
;for 1, , 1
construc ia matricii constanta i vectorul
= ;
if ( ) break ; // 1 ( ma
n
rn
iri r
r n
Q Ir n
P u
a
r r P I A trice singular )
= ;if ( 0 ) ;
;; , 1, , ;
*
rr
rr
r rr i ir
r
ka k k
k au a k u a i r nA P A
=
transformarea coloanelor 1, ,for 1, ,
= ( / ) ( , ) / = ( )/ ;
for , ,
n
j j i iji r
j r nj r n
Ae u u a
i r n;
transformarea coloanei a matricii; 1, , ;
*
= ( / )
ij ij i
rr ir
r
a a ur A
a k a i r nb P b
=
=
( , ) / = ( )/ ;
for , ,;
*for 1, ,
= ( , ) / = (
n
i ii r
i i i
r
n
ji r
b u u b
i r nb b u
Q P Qj n
Qe u )/ ;
for , ,
;
i ij
iij ij
u q
i r n
q q u
56
Num rul de opera ii efectuate: A (adun ri, sc deri):
3 2( 1)(2 1) ( 1)( 1)(2 3) 2( 1) 2 ( 1) = ( )3 3 3
n n n n n nn n n n O n
M (înmul iri, împ r iri ):3 2( 1)(2 1) 24( 1) 3 ( 1) = ( )
6 3n n nn n n n O n
R (radicali ): ( 1)n
57
Metode iterative pentru rezolvarea sistemelor de ecua ii liniare
= , ,Ax b A b (1)
• se presupune cunoscut c A este nesingular , det 0A ; • solu ia exact a sistemului (1) se noteaz cu *x :
* 1=x A b (2) • n - dimensiunea sistemului este "mare"; • A este matrice rar - cu "pu ine" elemente 0ija ; • pentru a aproxima solu ia *x matricea A nu se schimb
(transform ) ci doar se folosesc elementele nenule ale matricii ; • se construie te un ir de vectori ( ){ }kx , ir care în
anumite cazuri, converge la *x :( ) * pentrukx x k
Schema general de deducere a unei metode iterative
Fie descompunerea: = , , , "u or" inversabilan nA B C B C R B (3)
Ce înseamn B "u or" inversabil ? Sistemul liniar, având ca matrice a sistemului matricea B :
=Bx fse rezolv u or (adic repede) - ca în cazul sistemelor cu matrici diagonale sau triunghiulare, de exemplu.
* * *
* * * 1 * 1 *
= == = =
Ax b Bx Cx bBx Cx b x B Cx B b Mx d (4)
unde1 1:= , :=M B C d B b (5)
irul ( ){ }kx se construie te astfel: ( 1) ( ) (0):= , = 0,1,2, ales arbitrark kx Mx d k x (6)
Vectorul ( 1)kx poate fi privit i ca solu ia sistemului liniar: ( )= cu := kBx f f Cx b (7)
Cunoscând vectorul ( )kx , urm torul element din ir, ( 1)kx , se poate construi fie utilizând rela ia (6) (dac putem construi matricea Mexplicit), fie rezolvând sistemul liniar (7).
Matricea M poart numele de matricea itera iei iar vectorul
58
(0)x se nume te itera ia ini ial .Ne punem problema convergen ei irului ( )kx :
( ) * ,kx x kSe tie c aceast convergen nu are loc pentru orice matrice B. Avem urm torul rezultat general de convergen .
Teorema de convergenFie A o matrice nesingular i , ,det 0B C B , astfel
ca A=B-C. Fie (0)x un vector oarecare i ( ){ }kx irul de vectori dat de (6) cu M i d da i de (5). Atunci:
( ) * (0), , ( ) < 1kx x k x M (8) unde = | |;( ) max valoare proprie a matricii MM este raza spectral a matricii M . Dac exist o norm matricial natural astfel ca
1M atunci irul kx converge la solu ia *x a sistemului (1). 01 , , .kM x x k x (9)
Demonstra ie: Sc zând rela iile (6) i (4) ob inem: ( 1) * ( ) *= ( ) , = 0,1,2,k kx x M x x k
Avem:( ) * ( 1) * 2 ( 2) * (0) *= ( ) = ( ) = = ( )p p p px x M x x M x x M x x
( ) * (0) *= ( ) ,p px x M x x pPrin urmare:
( ) * , 0 ,p px x p M p 0 , ( ) < 1pM p M
Dac :( ) * (0)|| ||< 1 0 , ,p pM M p x x p x
Evaluarea erorii absolute ( ) *|| ||kx xPresupunem || ||< 1M ( irul ( ){ }kx converge la *x ). Avem din (6):
1
1
l l
l l
Mx d
Mx d
xx
( 1) ( ) ( ) ( 1)= ( )l l l lx x M x x l Pentru orice k,j, avem folosind relatiile de mai sus:
( 1) ( ) ( ) ( 1) ( 1) ( )= ( ) = = ( ) ,k j k j k j k j j k kx x M x x M x x k j Aplicând succesiv rela ia precedent ob inem:
59
( ) ( ) ( ) ( 1) ( 1) ( 2)
( 2) ( 1) ( 1) ( )
1( 1) ( )
=0
=
=
= ( )
k p k k p k p k p k p
k k k k
pk j k j
j
x x x x x x
x x x x
x x
1 1( ) ( ) ( 1) ( ) ( 1) ( )
=0 =0= ( ) = ( )( )
p pk p k k j k j j k k
j jx x x x M x x
F când p ob inem: * ( ) ( ) ( 1)
=0= ( ) ( )k j k k
jx x M M x x
1
=0|| ||< 1 = ( )j
nj
M M I M
Mai avem i evaluarea: 11 1|| ||< 1 || ( ) ||
1 || || 1 || ||nM I MM M
Prin urmare: * ( ) ( ) ( 1)|| |||| || || ||
1 || ||k k kMx x x x
MAceast rela ie ne spune c din punct de vedere practic putem opri
algoritmul atunci când diferen a dintre dou itera ii succesive devine suficient de mic acest lucru asigurând apropierea de solu ie.
În continuare vom particulariza matricea B.
60
Metoda Jacobi pentru rezolvarea sistemelor liniare
Fie sistemul: = , ,Ax b A b
cudet 0 , 0 , =1,2, ,iiA a i n
Alegem:
11
2211 22
0 00 0
= diag[ , , , ] =
0 0
nn
nn
aa
B a a a
a Avem:
11 22det = 0nnB a a a
11
122
11 22
1 0 0
10 01 1 1= diag[ , , , ] =
10 0
nn
nn
a
aBa a a
a Matricea C este:
12 13 1
21 23 2
31 32 3
1 2 3
00
= = 0
0
n
n
n
n n n
a a aa a a
C B A a a a
a a adaca
= ( ) =0 daca =
ijij ij
a i jC c c
i j Matricea itera iei se poate calcula i are forma:
61
12 13 1
11 11 11
21 23 2
22 22 22
1
31 32 3
33 33 33
1 2 3
0
0
:= =0
0
n
n
n
n n n
nn nn nn
a a aa a a
a a aa a a
M B Ca a aa a a
a a aa a a
( ) daca= ( ) =
0 daca =
ij
ij ij ii
ai j
M m m ai j
Construim vectorul g:( ) ( )
1: , = ( )k k ni ig Mx Mx g
Componentele vectorului g sunt:( ) ( ) ( )
=1 =1=1= = = ( ) / , 1, ,
n n nijk k k
i ij j j ij j iij jj iij i j i
ag m x x a x a i n
a
Vectorul d este: 1
1= = ( ) , = , 1, ,n ii i i
ii
bd B b d d i na
irul ( ){ }kx se construie te folosind formula: ( 1) ( ) ( 1)= = , = 1, ,k k k
i i ix Mx d x g d i n( 1) ( )
=1= ( ) / , = 1, ,
nk k
i i ij j iijj i
x b a x a i n
1( 1) ( ) ( )
=1 = 1= ( ) / , = 1, ,
i nk k k
i i ij j ij j iij j i
x b a x a x a i n (9)
Formula (1) descrie metoda lui Jacobi de aproximare a solu iei unui sistem liniar.
62
Condi ii suficiente de convergen
Propozi ia 1( ) *|| ||< 1 ,kM x x k .
Demonstra ie.Fie x solu ia sistemului Din A=B-C rezult* *Bx Cx b sau
* * .x Mx d Procesul iterativ ( 1) ( )k kx Mx d conduce la rela ia:11 0* * * *kk k kx x M x x M x x M x x
În continuare vom aplica aceast propozi ie pentru diverse norme.
• Din 1
2 2
=1 =1|| || = ( ) < 1
n n
F iji j
M m deducem:
2 ( ) *
=1=1( ) < 1 ,
n nij k
ji iij i
ax x k
a (10)
• Din 1=1
|| || = max{ | |; = 1, , } < 1n
iji
M m j n deducem:
( ) *
=1
| |( ) < 1 = 1, , ,| |
nij k
i iii j
aj n x x k
a (11)
• (Criteriul dominan ei diagonalei pe linii)
Din =1
|| || = max{ | |; = 1, , } < 1n
ijj
M m i n deducem:
( ) *
=1
| |( ) <1 =1, , ,| |
nij k
j iij i
ai n x x k
a
( ) *
=1lim| |<| | = 1, , =
n kij iij k
j i
a a i n x x (12)
• (Criteriul dominan ei diagonalei pe coloane)( ) *
1=1
| |<| | = 1, , 1 = .limn
kij jj
kii j
a a j n M x x (13)
63
Metoda Gauss-Seidel pentru rezolvarea sistemelor liniare
Consider m din nou sistemul liniar: = , ,Ax b A b
cudet 0 , 0 , = 1,2, ,iiA a i n
Putem deduce metoda Gauss-Seidel din metoda lui Jacobi astfel:1
( 1) ( ) ( )
=1 = 1
1( 1) ( 1) ( )
=1 = 1
= ( ) / , =1, , metoda Jacobi
= ( ) / , =1, , metoda Gauss-Seidel
i nk k k
i i ij j ij j iij j i
i nk k k
i i ij j ij j iij j i
x b a x a x a i n
x b a x a x a i n
Când calcul m ( 1)kix cunoa tem deja ( 1)
1kx ,.…., ( 1)
1k
ix i putem folosi aceste valori în prima sum . Deducerea metodei Gauss-Seidel din schema general se face luând:
11
21 22
31 32 33
1 2 3
0 0 00 0
= 0
n n n nn
aa a
B a a a
a a a adaca
= ( ) =0 daca >
ijij ij
a j iB b b
j i Matricea B este nesingular inând cont de presupunerea 0,iia i :
11 22det = 0nnB a a a Matricea C este:
12 13 1
23 2
3
1
00 00 0 0
= =
0 0 00 0 0 0
n
n
n
n n
a a aa a
aC B A
a
daca <= ( ) =
0 dacaij
ij ij
a i jC c c
i jÎn cazul metodei Gauss-Seidel, vectorul ( 1)kx se ob ine din ( )kxrezolvând sistemul inferior triunghiular (7) din schema general :
64
( )= =kBx Cx b f (14) Solu ia sistemului (6) este dat de formula:
1 1
=1 =1= ( ) / = ( ) / , = 1,2, ,
i i
i i ij j ii i ij j iij j
x f b x b f a x a i n (15)
Vectorul f este:( )= ( ) , = 1,2, ,k
i i if Cx b i n (16) unde
( ) ( ) ( )
=1 = 1( ) = = , = 1, ,
n nk k k
i ij j ij jj j i
Cx c x a x i n (17)
Folosind formula de rezolvare a sistemelor inferior triunghiulare (8),rela iile (16) i (17) avem:
1( 1) ( ) ( 1)
= 1 =1= ( ) / , =1,2, ,
n ik k k
i i ij j ij j iij i j
x b a x a x a i n
Condi ii suficiente de convergen pentru metoda Gauss-Seidel
Propozi ia 1Dac matricea A este astfel încât:
2
=1=1( ) < 1
n nij
ji iij i
aa
atunci are loc convergen a irului construit cu metoda Gauss-Seidel la solu ia sistemului Ax=b:
( ) * (0),kx x k x
Propozi ia 2 (Criteriul dominan ei diagonalei pe linii) Dac matricea A este astfel încât:
=1| |<| | = 1, ,
n
ij iijj i
a a i n (10)
atunci:( ) * (0),kx x k x
Demonstra ie. În procedeul iterativ Gauss-Seidel, notând solu ia cu 1x A b i ( ) ( )k kx x vectorul eroare, sc zând rela iile:
65
1
1 1
1( 1) ( 1) ( )
1 1
i n
ii i ij j ij j ij j i
i nk k k
ii i ij j ij j ij j i
a x a x a x b
a x a x a x b
ob inem: 1
( 1) ( 1) ( )
1 1
i nij ijk k k
i j jj j iii iij i
a aa a
Not m1
max{ , 1 }n
ij
j iij i
ac i n
a. În virtutea ipotezei (10) avem c < 1.
Observ m c :1( 1) ( ) ( )
12 11
.n
jk k kj
j
ac
aPresupunem c ( 1) ( ) , 1, , 1,k k
j c j i i consider m: 1 1
( 1) ( 1) ( ) ( ) ( ) ( )
1 1 1 1
i n i nij ij ij ijk k k k k k
i j jj j i j j iii ii ii ii
a a a ac c
a a a a
Rezult c vectorul eroare ( )k converge la 0: ( 1) ( ) 1 (0) 0 pentru kk k kc c .
Propozi ia 3 (Criteriul dominan ei diagonalei pe coloane) Dac matricea A este astfel încât:
=1| |<| | = 1, ,
n
ij jjii j
a a j n (11)
atunci metoda Gauss-Seidel converge:0
limk
kx x x
Demonstra ie. Din sistemul dat consider m sistemul echivalent Ay b în care
1 1, , ijij
ii
aAx b AD y b y Dx A AD a
a
Din ipoteza (11) rezult1
1, 1, , .n
ijii j
a j n Pentru solu ia sistemului
Ay b avem
66
1
1 1, 1, , ,
i n
i ij j ij j ij j i
y a y a y b i n iar pentru metoda Gauss-Seidel:
1( 1) ( 1) ( )
1 1, 1, ,
i nk k k
i ij j ij j ij j i
z a z a z b i n
Notând ( ) ( )k ky z ob inem: 1
( 1) ( 1) ( )
1 1
1( 1) ( 1) ( )
1 1 1 1 1
.
i nk k k
i ij j ij jj j i
n n i n mk k k
i ij j ij ji i j i j i
a a
a a
Schimbând ordinea de sumare ob inem: 11
( 1) ( 1) ( )
1 1 1 2 1.
jn n n nk k k
i j ij j iji j i j j i
a a (12)
Introducem nota iile:1
11 1
, , 0, 0.jn
j ij j ij ni j i
a a
Din ipoteza (11) rezult c max 1 1.j jc j nRevenind la inegalitatea (12) ob inem:
( 1) ( )
1 1(1 )
n nk k
j j j ji j
.
inând seam c j (1 )j j jc c c c rezult :
( 1) ( ) 1 (0)
1 1 1(1 ) (1 ) (1 ) 0,
n n nk k k
j j j j j ji j j
c c k
adic ( ) (0)lim 0 ,k
k.
Matricea de itera ie pentru metoda Gauss-Seidel aplicat sistemului Ay b , notat M este dat de 1( )M I L U în care 1L LD ,
1U UD ( A D L U ).Din
11 0kk kM M i lim lim0 rezult 0.kk
k kM
Matricea de itera ie pentru sistemul Ax b este:1 1 1 1 1 1
1 1 1
( ) ( ) [( ) ]
( )
M D L U D LD D U I LD D UD D
D I L UD D M Dastfel c :
1 0 pentru .kkM D M D k
67
Metode iterative pentru matrici simetrice i pozitiv definite
Consider m cazul sistemelor liniare cu matricea sistemului simetric ipozitiv definit :
= matrice simetrica = , = 1,2,Tij jiA A a a i j n
11 12 13 1 11 21 31 1
21 22 23 2 12 22 32 2
31 32 33 3 13 23 33 3
1 2 3 1 2 3
= = =
n n
n nT
n n
n n n nn n n n nn
a a a a a a a aa a a a a a a a
A a a a a A a a a a
a a a a a a a aDac matricea A este simetric o putem scrie astfel:
= =T TA A A L D Lunde
11
2211 22
0 00 0
= diag[ , , , ] =
0 0
nn
nn
aa
D a a a
a
12 13 1
23 221
331 32
11 2 3
00 0 0 0
0 00 0 0
0 0 0= 0 0 =
0 0 00
0 0 0 0
n
n
nT
n nn n n
a a aa a
aa
L a a L
aa a a
Matricea A fiind pozitiv definit ( ( , ) > 0 , 0nnR
Ax x x R x ) este nesingular i în plus:
, 0 1, ,ii i ia Ae e i n Avem urm torul rezultat.
Lem Fie A o matrice simetric i B o matrice nesingularastfel încât matricea = TP B B A este pozitiv definit . Fie matricea
1= nM I B A . Atunci raza spectral a matricii M este strict subunitardac i numai dac matricea A este pozitiv definit :
( ) < 1 > 0M A
68
Folosind aceast lem deducem urm torul rezultat de convergenpentru metoda Gauss-Seidel pentru sisteme cu matrici simetrice i pozitiv definite.
TeoremFie A o matrice simetric , nesingular , cu > 0iia , pentru to i
= 1, ,i n i b vectorul termenilor liberi. Atunci metoda lui Gauss-Seidel genereaz iruri convergente la solu ia * 1=x A b pentru orice itera ie ini ial (0)x dac i numai dac matricea A este pozitiv defnit .Demonstra ie: Din teorema de convergen avem:
( ) * , ( ) < 1kx x k MDac matricea A se scrie sub forma:
= TA L D Lmatricile B i C sunt date de:
= , = = TB L D C B A LMatricea itera iei M este:
1 1 1= = ( ) = nM B C B B A I B AÎncerc m s aplic m Lema de mai sus. Pentru aceasta verific m dacmatricea P este pozitiv definit :
= = ( ) =T T TP B B A L D L D L D L D2
=1
( , ) = ( , ) = (( ) ,( ) ) =n
n n ii i i i i n ii iR R Ri
Px x Dx x a x x a x
> 0 ( , ) > 0 , 0 > 0nii nR
a i Px x x R x PPutem aplica Lema de unde deducem convergen a irului construit cu metoda Gauss-Seidel doar în cazul în care matricea A este pozitiv definit :
( ) * , ( ) < 1 pozitiv definitkx x k M A
Metodele relax rii
Fie A o matrice real p tratic de dimensiune n , simetric ,TA A i pozitiv definit , 0A i b un vector real. Consider m
sistemul de ecua ii liniare: =Ax b
Deoarece matricea A este pozitiv definit sistemul de mai sus are solu ieunic , 1x A b . Vom considera func ia :f :
69
( ) ( ), ,f y A x y x y yDin faptul c matricea A este pozitiv definit avem:
( ) 0 , i ( ) ( ) ,f y y f y f x y xPrin urmare x este i unica solu ie a problemei de minimizare:
min ( ) ; 0 ( )f y y f x
Vom c uta solu ia sistemului =Ax b , 1x A b ca fiind solu iaproblemei de minimizare de mai sus folosind o metod de tip relaxare de forma:
(0) ( 1) ( )
( 1) ( ) ( 1) ( )
dat, , 0,1,
, ,
k kk i k
k k k kj j i i k
y y y c e i i ky y j i y y c
Constanta kc se determin astfel încât ( 1) ( )( ) ( )k kf y f y în speran a cirul ( )ky astfel construit converge la x . Not m cu ( ) ( )k kr b Ay
vectorul reziduu. Avem: ( ) ( ) ( ) ( )( )k k k kr b Ay Ax Ay A x y
( 1) ( ) ( )
( ) ( ) ( ) 2.
( ) ( ),
( ) ( ), , ,
k k kk l k l
k k kk l k l k l l
f y A x y c e x y c e
f y c A x y e c Ae x y c Ae eAvem:
( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( 1) ( ) ( ) 2
( ), ,
, , ( ) , ( ) ,
, 0 ( 0)
( ) ( ) 2
k k kl l l
k T k k k kl l l l l
l l ll
k k kk l k ll
A x y e r e r
Ae x y e A x y e A x y e r r
Ae e a
f y f y c r c aPentru ca ( 1) ( )( ) ( )k kf y f y este necesar i suficient s alegem kc astfel ca:
( ) ( )2 ( )
( )
2 ( 0) 0, 2 sau 2 , 0
, cu 0,2
k kk l l
k ll k l ll kll ll
kl
k k kll
r rc a c r a ca a
rca
Metoda de relaxare ob inut este urm toarea:( )
(0) ( 1) ( )dat, 0,1, , 0,2k
k k lk l k
ll
ry y y e ka
Pentru a aproxima x se deduce o clas de metode numite metodelerelax rii successive. Aceste metode se ob in aplicând metodele de
70
relaxare de mai sus. Vom considera constanta ,k k , neschimbatde la un pas la altul. Vom construi un ir ( )kx astfel:
(0) (0)
(0)(1) (0) 1
111(1)
(2) (1) 22
22
( 1)( ) ( 1)
(1) ( )
un vector din dat
1
2
nn n n
nnn
n
x yrl y y earl y y ea
rl n y y ea
x yTrecerea de la itera ia k la itera ia urm toare se face asrfel:
( ) ( )
( )( 1) ( ) 1
111
( 1)( 2) ( 1) 2
222
( 1)( ) ( 1)
( 1) (( 1) )
1
2
, 0,1,2,
k kn
knkn kn
knkn kn
kn nkn n kn n n
nnn
k k n
x yrl y y ea
rl y y ea
rl n y y ea
x y k
Componenta ( 1)lix se calculeaz pentru l i în algoritmul de mai sus:
( 1)( 1) ( ) ( 1) , 1,2, ,
kn ik kn i kn i i
i i i iii
rx y y e i na
Vectorul ( 1)kn iy i ( 1)kn iir sunt da i în continuare:
71
( 1)1( 1)2
( 1) ( 1) ( 1) ( 1) ( 1)1
1( )
( )
1( 1) ( 1) ( )
1
,
k
k
nkn i k kn i kn i kn i
i i i ij jijk
i
kn
i nkn i k k
i i ij j ij jj j i
xx
y x r b Ay b a y
x
x
r b a x a x
Acum putem scrie dependen a componentelor vectorului ( 1)kx de componentele vectorului ( )kx :
(0)
1( 1) ( ) ( 1) ( )
1
1( 1) ( ) ( 1) ( )
1 1
0,2 date,
, 1,2, , , 0,1,2,
) ,
i nk k k k
i i i ij j ij jj j iii
i nk k k k
i i i ij j ij jj j iii
x
x x b a x a x i n ka
x x b a x a x ia
1,2, , , 0,1,2,n k
Metodele de mai sus poart numele de metodele relax rii successive. Se observ c pentru 1 ob inem metoda Gauss-Seidel.Rearanjând formulele de mai sus avem:
1( 1) ( 1) ( 1) ( ) ( ) ( )
1 1
(1 )i nk k k k k kii
ij j i ii i ij j i ii ij j i
aa x x B x a x a x b C x b
Matricea A , fiind simetric poate fi scris sub forma:
2111 22
1 2 1
0 0 00 0
cu , diag , , ,
0
Tnn
n n n n
aA L D L L D a a a
a a a
Cu aceste nota ii, matricile B i C de mai sus pot fi scrise astfel: 1 1, TB L D C D L
Vom verific dac metodele relax rii succesive se înscriu în clasa general de metode iterative, adic vom verifica dac A B C :
72
1 1 T TB C L D D L L D L A
Ne intereseaz în ce condi ii irul ( )kx construit cu o metod de relaxare succesiv converge la solu ia 1x A b c utat . Avem urm toarea teorem de convergen :
Teorem Fie o matrice A , simetric , TA A cu det 0A ,
0, 1, ,iia i n , b un vector real i 0,2 . Atunci irul ( )kxconstruit cu o metoda de relax rii successive converge la solu ia x a sistemului liniar =Ax b oricare ar fi itera ia ini ial (0)x dac i numai dac matricea A este pozitiv definit .
( ) (0), , ) 0 , 0kx x k x Ax x x x
Demonstra ie: Vom verifica dac raza spectral a matricii itera iei este subunitar folosind Lema. Avem:
1 1 1nM B C B B A I B A
11 221 1, det 0 ( 0 , )nn iinB L D B a a a a i
Matricea A este simetric iar matricea B este nesingular . Pentru a fi îndeplinite ipotezele Lemei trebuie s verific m c matricea P este pozitiv definit :
1 1 2T T TP B B A L D L D L D L D
2
1
(2 ) (2 ), 0 0 0 avem 0, ) 0,2n
ii i iii
Px x a x x a i
Toate ipotezele lemei sunt îndeplinite, prin urmare avem convergen adorit .
73
Valori i vectori proprii
Defini ie Fie .n nA se nume te valoare proprie a matricii A dac existun vector , 0nx x astfel ca
.Ax xVectorul x se nume te vector propriu corespunz tor valorii proprii .
Pentru existen a vectorului 0x este necesar i suficient ca matricea A I s fie singular , adic det( A I ) = 0. Polinomul de grad n:
detA np I Ase nume te polinom caracteristic al matricii A.
Propozi ia 1Fie r d cinile polinomului caracteristic 1 2, , , n distincte i j
pentru 1 i j n 1 2i , , , nx x x vectorii proprii corespunz tori. Atunci vectorii 1 2, , , nx x x sunt liniar independen i.Demonstra ia se face prin induc ie. Pentru n=2 fie combina ia
1 1 2 2 0.x x(1)Aplicând A ob inem:
1 1 2 2 1 1 2 2 1 1 1 2 2 2( ) 0A x x Ax Ax x x . (2) Prin ipotez 1 2 . Consider m valoarea proprie nenul , fie aceasta 1.Din (1) înmul it cu 1 sc zut din (2) ob inem:
2 2 1 2 20 0,xiar din (1) rezult 1 0. Deci 1 2,x x sunt liniar independen i.Consider m propozi ia adevarat pentru k > 2, adic
1
0 0 , 1, , .k
i i ji
x j k (3)
Pentru k+1 consider m combina ia liniar :1
1
0k
i ii
x . (4)
Aplicând A ob inem: 1
1
0.k
i i ii
x (5)
Din (4),(5) , pentru 1 0k , rezult :
74
11
0k
i k i ii
x
În virtutea ipotezei inductive rezult :1 0 , 1, , .i k i i k
inând seam c 1 , 1, , ,i k i k rezult 0, 1, , ,i i k iar din (4) inând seama c 1 0kx avem i 1 0.k Deci din (4) rezult
0, 1, , 1,i i k deci vectorii proprii 1 2 1, , , kx x x sunt liniar independen i.
Propozi ia 2 Fie valorile proprii i ale matricii n nA distincte. Atunci exist o matrice nesingular T astfel ca:
11 2diag{ , , , }nT AT .
Demonstra ie. Fie 1 2, , nx x x vectorii proprii ai matricii A. Consider mmatricea T ale c rei coloane sunt vectorii proprii ix , 1 2 nT x x x .Deoarece vectorii proprii sunt liniar independen i conform propozi iei 1 rezult c matricea T este nesingular . Vom avea:
1 2 1 1 2 2 1 2.diagn n n nAT Ax Ax Ax x x x T .Înmul ind cu 1T ob inem concluzia propozi iei 2.
Defini ieMatricile A i B sunt asemenea nota ie A B dac i numai dac existo matrice nesingular T (det T 0) astfel ca 1.A TBT
Propozi ia 3 .A BA B p p
Demonstra ie.1 1 1
1 1
det( ) det det
det det( )det det
A
B
p I A I TBT TT TBT
T I B T T I B T pPropozi ia 3 ne spune c matricile asemenea au acelea i valori proprii.
Teorema lui GershgorinFie iA o valoare proprie oarecare a matricii A. Atunci:
0 0 0 0 0
0
01
1,2, , astfel încât .n
i i i i i jjj i
i n a r r a
(Valoarea proprie se afl în cercul din planul complex de centru 0 0 0
i razi i ia r .)
75
Demonstra ie. Fie o valoare proprie a matricii A i 0x un vector propriu corespunz tor valorii proprii , .Ax x Avem:
1 1( ) , 1, , .
n n
i ii i ij j ii i ij jj jj i j i
x a x a x a x a x i n
Fie 0i astfel ca 0
max ; 1, , 0 0).i kx x x k n x
Vom avea 0 0 0 0 0
0 0 00 0
1 1, inând seama c 1.
n nj jj
i i i j i j ij ji i ij i j i
x xxa a a r
x x x
Observa ie. Presupunem c matricea A are n vectori proprii liniar independen i 1 2, , , nx x x asocia i valorilor proprii 1 2, , .n Fie
1 2 nU x x x . Datorit independen ei vectorilor kx rezult cmatricea U este nesingular i avem:
1 2diag , , , n1 .U AU
Consider m matricea perturbat .A A B Notând cu 1C U BUvom avea: 1 1U A U U BU C .
inând seama c matricile 1iA U A U sunt asemenea rezult cvor avea acelea i valori proprii .i Aplic m teorema lui Gershgorin iob inem:
1.
n
i ii ij ijj i
c c
Metoda lui Jacobi pentru aproximarea valorilor proprii ale unei matrici simetrice
Propozi ieFie , .TA A A Atunci toate valorile proprii ale matricii A sunt numere reale. Demonstra ie. Fie i , 0 .nx x Ax x Consider m produsul scalar: 2
2, , .Ax x x x x
Dar , , , , ,TAx x x A x x Ax Ax x Ax x astfel c :
2
2
,Ax xx
.
76
Algoritmul lui Jacobi
Se consider matricea ,A simetric TA A . Matricea A arevalorile proprii reale, 1 2, , , n . Prin algoritmul lui Jacobi se
construie te un ir de matrici ,kA simetrice, asemenea cu matricea A, astfel ca:
( )1 2, diag , , , .
Tk k k kknA A A A A
În construc ia matricilor kA se vor utiliza matrici de rota ie planpqR astfel:
0
1
,
, 0,1,k k k k
k k Tp q k p q k
A A
A R A R k
Matricile kA sunt asemenea cu matricea A. Proced m prin induc ie:
1 1 1 1 1 1 1 1
1 11 1 1 1( ) ( )T
p q p q p q p qA R A R R A R
Presupunem c 1, det 0 ,k kA A V V VAV A . Atunci: 1 1 1
k k k k k k k k
k k Tp q k p q k p q k p q kA R A R R VAV R .
Notândk kp q kW R V vom avea 1 11 deci .k kA WAW A A
Vom demonstra de asemenea prin induc ie c matricile kA sunt simetrice. Pentru k=0 avem 0 0 TTA A A A conform ipotezei ini iale.
1k k k k k k k k
TT T Tk k kT T Tp q k p q k p q k p q kA R A R R A R
1k k k k
k kTp q k p q kR A R A .
Deteminarea la fiecare pas a direc iilor p,q se face c utând elementul nediagonal de modul maxim :
max ; , 1, , ,k kpq ija a i j n i j
sau, inând seama de simetria matricii kA :max ; 1, , 1, 1, , .k k
pq ija a i n j i n
Determinarea parametrului k rezult din condi ia:1 1 0.k k
pq qpa a
Not m elementele matricii k kp q k ijR r
77
, 1, , , , ; , .
cos ,
sin , ,
sin , .
ij k k k k
k k kij
k k k
k k k
i j n i p q j p q
i j p i j qr
i p j q
i q j p
1
1 1
n nk k
ij il lm jml m
a r a r
Pentru simplificarea calculelor vom nota , , cos , sin ,k k k kp p q q c s i vom ob ine:
1 , , 1, , , , ,k kij ija a i j n i p q j p q
1
1
1
1
, 1, , , , ,
, 1, , , , ,
, 1, , , , ,
, 1, , , , ,
k k kpj pj qj
k k kqj pj qj
k k kjp jp jq
k k kjq jp jq
a ca sa j n j p q
a sa ca j n j p q
a ca sa j n j p q
a sa ca j n j p q1 2 2
1 2 2
1 1 2 2
2 ,
2 ,
.
k k k kpp pp pq qq
k k k kqq pp pq qq
k k k k kpq qp qq pp pq
a c a csa s a
a s a csa c a
a a cs a a c s a
Din condi ia 1 0kpqa rezult :
2 2cos sin2
2sin cos2
k kpp qq
kpq
a actg
a.
În rela ia de mai sus am presupus 0.kpqa Dac aceast ipoteza nu ar fi
îndeplinit , inând seam de defini ia lui: max ; 1, , 1, 1, ,k k
pq ija a i n j i n
ar rezulta c toate elementele nediagonale ale matricii kA sunt nule adic aceast matrice ar fi diagonal i valorile proprii sunt determiante:
1, , ,kj jja j n
ceeace încheie algoritmul. Dac k k
pp qqa a atunci / 4, 2 / 2.k s c
78
Not m:
, .2
k kpp qq
kkpq
a at tg
a
Din ecua ia2 2 2
21 2 1 02 2
c s t t tcs t
avem r d cinile:
21,2 1.t
Dintre cele dou r d cini , cu produsul 1 2 1,t t o vom alege pe aceea cu modulul subunitar adic :
2sign 1 / 4.ktCalculele pentru ob inerea valorilor 1 1,k k
pp qqa a se pot simplifica: 1 2 2
2 22 2
3 2 2.
1 2
2 2 22
2
k k k k kpp pp pp qq pq
k k k k kqq pp pq pq pq
k kpq pq
a a c a s a csa
s cs a a csa s a acs
s sc c sa tac
Ob inem astfel: 1 1 .k k k k k k
pp pp pq qq qq pqa a ta a a ta
Propozi ieirul de matrici construite cu algoritmul lui Jacobi converge la o
matrice diagonal 1 2diag[ , , ].n
Demonstra ie. Not m: 2 2 2
1 1 1 1 1, .
n n n n nk k k k k kij ij ii
i j i j ij i
T a S a D a
Datorit faptului c matricea 1kA se ob ine din matricea kA prin înmul ire cu matrici ortogonale vom avea 1 , 0,1,k kT T kDin rela iile:
79
2 2 2 21 1
2 2 22
2 2 2 22 2
2
2 2 .
2 2. 1
k k k k k kpp qq pp pq qq pq
k k k k k kpp qq pq pq pp qq
k k k kpp qq pq pq
k kpp qq
a a a ta a ta
a a t a t a a a
a a t a a t
a a2 2
2 .kpqa
i2 21 , 1, , , ,k k
ii iia a i n i p qrezult :
21 2
k k
k k kp qD D a .
Din defini ia elementului k k
kp qa rezult :
2
( 1)k k
kk
p qSa
n niar din rela iile:
2 21 1 1 2 2
k k k k
k k k k k k k kp q p qS T D T D a S a
rezult :1
1 02 21 11 1
kk kS S S
n n n nsau
0.k kS
80
Algoritmul Jacobi pentru valori proprii:
k=0 , k_max – num rul maxim de itera ii admis; max ; 1, , 1, 1, ,pq ija a i n j i n ;
while pqa i k k_max
2
2
;
;
2
sign 11 ; * ;
1
pp qq
pq
a aa
t
c s c tt
;
;
;
;
for 1, , ,
;
pj
pj pj qj
qj qj
jp pj jq qj
j n j p qu aa ca saa su caa a a a
;
;
;0;
max ; 1, 1, 1,
pp pp pq qq qq pq
pq qp
pq ij
a a t a a a t aa a
a a i n j i n
81
Forma superioar Hessenberg
Defini ieSpunem c o matrice H este în form suprioar Hessenberg dac :
0 , 1, , , 1, , 2ijh i n j iO matrice în form Hessenberg arat astfel:
11 12 13 1 1 1
21 22 23 2 1 2
32 33 3 1 3
43 4 1 4
1
0
0
n n
n n
n n
n n
nn nn
h h h h hh h h h h
h h h hH
h h h
h hNe intereseaz un algoritm care s transforme o matrice p tratic Aoarecare într-o matrice Hessenberg superioar H care s aib acelea ivalori proprii:
1a.î. H , matrice nesingularA H PA P P .
Algoritmul este o adaptare a algoritmului lui Housholder i se desf oarîn (n-1) pa i, folosind matricile de reflexie pentru a transforma matricea.
Pas 1: se efectueaz opera iile 1 1A P AP (matricea 1P se alege astfel ca coloana 1 s fie transformat în form superior Hessenberg)
Pas 2: 2 2 2 1 2= ( )initA P AP P P A P ( 2P transform coloana 2 în formsuperior Hessenberg f r s schimbe coloana 1)
Pas r : 1 1 1 1( )initr r r r r rA P AP P P P A P P P (se transform
coloana r în form superior Hessenberg f r s schimbe primele ( 1)r 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 ie irea din pasul r matricea A va avea primele r coloane în form superior Hessenberg:
2
,
= 2 ( ) , , || || = 1ies r intr r ies intr
r r T r n rr n
A P A P A AP I v v v R v
Vectorul rv se alege astfel ca matricea iesA s aib coloana r în formsuperior Hessenberg i s nu schimbe primele r-1 coloane ale matricii
intrA .
82
Calculul matricii rP Pentru simplitate vom nota = , =r
rP P v v . Coloana r a matricii A inoua coloan r au urm toarea form :
1 11
2 22
11= ( ) =
0
0
0
r rr
r rr
rr rrrr
r rr r r r r
ir
nr
a aa
a aa
a aaa kAe a PA e Ae
a
a
Aplicând proprietatea matricilor ortogonale 2 2( , || || )Q x Qx x pentru matricea =Q P i vectorul
= rx Ae avem:
2 2 2 2 22 1 2
2 2 2 2 2 2 21 2 1
|| || = =
|| || =r r r rr
r r r rr r r ir nr
PAe a a a kAe a a a a a a
Din rela ia de mai sus rezult :2 2 2 2 2
1= 1
= = = =n
r r ir nr iri r
k a a a a k
Determinarea vectorului v ce define te matricea P se face astfel: ( ) = ( 2 )( ) = 2( )( ) = 2 ( ( )) =
(2 ) =
T T Tr n r r r r r
r r
PA e I vv Ae Ae vv Ae Ae v v AeAe v Ae u
unde cu i u am notat: 1 1 2 2:= ( ) ( ),T
r r r r ir i nr nv Ae Ae v a v a v a v a v
83
1 1
1
0
0
:= (2 ) = ( ) = =
0
0
r r
rr rr
rrr rr r
irir
nrnr
a a
a aa ka k
u v Ae PA e
aa
aa Cu aceste nota ii matricea P devine:
22
1 1 1 1= 2( ) ( ) = ( ) cu : 22 2 2
T T Tn n nP I u u I uu I uu
Pentru a cunoa te matricea P trebuie s mai determin m constanta .Din condi ia:
2 2 2 22 2 2 22
1 1|| || = 1 || || = 1 || || 1 2 =|| ||2 4
v u u u
avem:2 2 2 22 1
2 2 2 21 1
1 1
|| || ( ) =
2 =2 = 2( )
r r ir nr
r r ir nr r r
r r r r
u a k a a
a a a ka kka ka
de unde ob inem: 1= r rka
Vom alege semnul constantei k astfel încât s fie cât mai mare posibil deoarce constanta apare în opera ia de împ r ire. Avem:
1 1" " = ( 0) semn = semnr r r rmare ka k a Ce înseamn = 0 ?
2 22 2 1
1= || || = 0 || || = 0 = 0 , , 0, , = 02 r r ir nru u u a k a a
Cum 1r ra k i 1semn = semn r rk a ob inem: = 0, = 1, ,ira i r n
adic avem coloana r în form superior triunghiular , caz în care se trece la pasul urm tor. Descriem mai jos cum se efectueaz opera ia := rA P A f r a face înmul ire matricial . Vom pune în eviden schimb rile în raport cu coloanele.
84
1 1( ) ( )( ) ( )( )
1 ( ( )) =
T Tj n j j j
jTj j j
PA e I uu Ae Ae uu Ae
Ae u u Ae Ae u
unde1
2
11
1 1
=1 = 1
1 1
00
:= ( ) = ( , ) =
( ) =
=
( = 0, = 1, , , =
j
j
Tj j
r rr j
nrnj
r j r r ij ir nj nr
n n
i ij i iji i r
i r r r i i
aa
u Aea ka
aa
a a k a a a a
u a u a
u i r u a k u a , = 2, , )r i r nNoua coloan j se ob ine din vechea coloan j din care sc dem vectorul u înmul it cu constanta j . Ne intereseaz ca primelor ( 1)r coloane snu li se schimbe forma superior Hessenberg deja ob inut . Pentru
= 1, , 1j r avem:
1
1
2
1
21
1 1 1
00
= 0 0: ( ) ( , )
= 0
= 0
0 0 0( ) 0 0 = 0
j
j j
j jTj j
r r
r rr j
nrnj
j j j r r ir nr
a
aa
u Aea kaa
aa
a a a k a a
Din faptul c = 0 , = 1, , 1j j r rezul c primele 1r coloane ale matricii A nu se schimb ca urmare a în mul irii := rA P A , r mân în form superior Hessenberg. Algoritmul de trecere de la matricea A la matricea rP A este urm torul:
85
1 2
pentru = 1, , 1
( ) = ( , , , , ,0, ,0) pentru =
pentru = 1, ,
j
Tr j r r rr
jj
Ae j r
P A e a a a k j r
Ae u j r n
cu
= 1
= ( , ) =n
j j i iji r
Ae u u a
1 1= 0, = 1, , , = , = , = 2, ,i r r r i iru i r u a k u a i r nVom descrie în continuare cum se efectueaz opera ia : rA AP f r a face înmul ire matricial (matricea A este cea ob inut mai sus având primele r coloane în form superior Hessenberg). Vom arata c aceastopera ie nu schimb forma superior Hessenberg ob inut . Vom pune în eviden transform rile liniilor matricii A. Pentru 1, ,i n avem:
1( ) noua linie a matricii )( )
1 ( )
T T Ti i n
T T T T Tii i i
e AP i AP e A I uu
e A e A u u e A u
unde1 1( )T
i i ir r in ne A u a u a uElementele liniei i se schimb astfel:
, 1, , , 1, ,iij ij ja a u j r n i n
Din aceast rela ie deducem c opera ia : rA AP nu modific primele rcoloane ale matricii A, ele r mânând în form superior Hessenberg.
86
Algoritmul de ob inere a formei superior Hessenberg
2
= 1
for 1, , 2construc ia matricii constanta i vectorul
= ;
if ( ) break ; // 1
rn
iri r
r n
r nP u
a
r r P I
1
1
1 1
= ;if ( 0 ) ;
;; , 2, , ;
transformarea coloanelor
r r
r r
r r r i ir
r
ka k k
k au a k u a i r nA P A
= 1
1, ,for 1, ,
( / ) ( , ) / = ( )/ ;
for 1, ,;
transformare
n
j j i iji r
ij ij i
j r nj r n
Ae u u a
i r na a u
1
a coloanei a matricii; 2, , ;
transformarea liniilor 1, ,for 1, ,
r r ir
r
r Aa k a i r nA A P
i ni n
= 1
( / ) (( ) ) / = ( )/ ;
for 1, ,;
nT
i i j ijj r
ij ij j
e A u u a
j r na a u
87
Algoritmul QR de aproximare a valorilor proprii ale unei matrici oarecare
Prezent m în continuarecel mai folosit algoritm de aproximare a valorilor proprii pentru matrici p tratice oarecare. Spunem c o matrice S este în form Schur real dac matricea S este în form superior Hessenberg i în plus este bloc-diagonal :
11 12 1
22 2
0
p
p
pp
S S SS S
S
Sblocurile iiS sunt astfel ca: - iiS - este valoare proprie real - 2 2
iiS - este bloc corespunz tor valorilor proprii complexe Valorile proprii corespunz toare blocului:
2 2 -a bsunt r d cinile ecua iei -a)( -d)-bc=
-c -dii
a bS
c d
Se presupune c aceast ecua ie de gardul 2 are r d cini complexe. Algoritmul QR de aproximare a valorilor proprii construie te un ir de matrici ( )kA , matrici asemenea cu matricea A, ( ) ,kA A k , ircare converge la o matrice în form Schur real , ( ) ,kA S k .Matricea limitS este asemenea cu matricea A, valorile prorii ale matricii S fiind u or de calculat. irul ( )kA se construie te astfel:
(0) (0) (0)0 0
(1) (1) (1)0 0 1 1
(2)1 1
( )
: , (descompunerea calculat pentru matricea )
: , (descompunerea calculat pentru matricea )
:
(descompunerea calculat pentrukk k
A A A Q R QR A
A R Q A Q R QR A
A R Q
A Q R QR ( )
( 1)
matricea ) ,
: , 0,1,2,
k
kk k
A
A R Q kMatricile kQ sunt matrici ortogonale ( 1 T
k kQ Q ) iar matricile kR sunt superior triunghiulare. Matricile ( )kA i ( 1)kA sunt asemenea:
88
( ) ( )
( 1) ( ) ( 1) ( )
|
,
T k T kk k k k kk T k k k
k k k k
Q A Q R R Q A
A R Q Q A Q A A kMatricile irului construit sunt toate asemenea prin urmare au acelea ivalori proprii anume cele ale matricii ini iale (0)A A :
(0) (1) ( )kA A A A SDac matricea ( )kA este în form superioar Hessenberg, atunci descompunerea QR realizat cu algoritmul lui Givens se simplific .Reamintim algoritmul lui Givens:
1 1 1 1 1 1 12 12( ) ( ) ( ) ( ) ( )n n n n pn pn pp pp n nR R R R R A RDac matricea A este în form Hessenberg în algoritmul lui Givens, din cele n(n-1)/2 înmul iri cu matrici de rota ie r mân doar (n-1):
1 1 1 1 23 23 12 12( ) ( ) ( ) ( )n n n n pp ppR R R R A R .Problema care se pune este dac pornind cu o matrice în formHessenberg, toate matricile irului r mân în form Hessenberg:
( )
( 1) ( )
(în form Hessenberg) (cu Givens) ?
este tot în form Hessenberg
k
k T k T
A H QR
A H RQ Q A Q Q HQAvem:
12 12 1 1 1 1( ) ( ) ( )T T T Trr rr n n n nH Q HQ R R R R
Not m cu: 12 12( )TR R R
pentru care avem: 1 11 2 1
2 221 2
, 0, 2, , 0, 3, ,0, 3, ,, 0, 3, ,
i ii i i
i iii i
r cr sr i r i n r i nr i nr sr cr i r i n
deci coloana 1 se transform în form Hessenberg iar coloana 2 r mâne in form suprior triunghiular . La pasul p avem:
12 12 1 1 1 1 1 1
12 12 1 1
( ) ( ) ( ) ( ) ,
( ) ( )
T T T Tp p p p pp pp pp pp
T Tp p p p
R R R R R R R
R R R R
matricea R are primele (p-1) coloane în form Hessenberg iar restul coloanelor sunt în form superior triunghiular . Vom arata c la acest pas matricea R va avea primele p coloane în form Hessenberg iar restul coloanelor în form superior triunghiular . Opera ia 1 1( )T
pp ppR R Rpresupune doar schimbarea elementelor coloanelor p i p+1:
89
1
1 1 1
2
, 0, 1, ,
, 0, 2, ,
0, 2, ,
0, 2, ,
ip ip ip ip
ip ip ip ip
ip
ip
r cr sr i r i p n
r sr cr i r i p n
r i p n
r i p n
.
Observ m din rela ia de mai sus c în matricea R coloana p are formHessenberg iar coloana p+1 r mâne în form superior triunghiular(celelalte elemente din matrice nu se modific ). Prin urmare dup pasul n-1 matricea ( 1)kH A este în form superioarHessenberg. Algoritmul QR de aproximare a valorilor proprii folosind descompunerea Givens p streaz forma Hessenberg.
Algoritmul QR pentru valori propriise aduce matricea la forma Hessenberg
;0;
while ( forma Schur real ); // se ca
T
A
Q A Qk
AA QR lculeaz cu algoritmul Givens
sau AQ;1;
TA RQ Qk k
În practic se presupune c matricea A este în form Hessenberg neredus , adic :
1 0 2, ,iia i nDac matricea nu este în form neredus , problema se decupleaz :
11 12
21 22
, 1sau 2A A p
A p n nA A n pp n p
90
Varianta algoritmului QR cu deplasare (“shift”) simplAlgoritmul cu deplasare simpl este urm torul:
; aducerea la forma Hessenberg neredus0;
while ( forma Schur real ); // se calculeaz cu
T
k n
Q A Qk
AA d I QR algoritmul Givens
: ;1;
k nA RQ d Ik k
kd sunt constantele de deplasare. Dac nA d I QR ( ( )kA ) i
nA RQ d I ( ( 1)kA ) se pune problema dac cele dou matrici sunt asemenea ( A A) ( irul de matrici construit cu pasul QR cu deplasare simpl au acelea i valori proprii).
( )T T T TnA Q QRQ d Q Q Q QR d I Q Q AQ A A
Varianta cu deplasare se efectueaz pentru a accelera convergen aalgoritmului. Dac 1 , 2 ,…, n sunt valorile proprii ale matricii Aordonate astfel ca:
1 2 nd d dRapiditatea cu care ( )
1 0 ,kp pa k este dat de rata de convergen a a
expresiei 1
k
p
p
dd
. Dac se alege nd convergen a ( )1 0k
n na este
rapid . Avem urm toarul rezultat:
TeoremFie d o valoare proprie a unei matrici Hessenberg nereduse H. Dac
nH RQ d I , unde matricile Q i R sunt provin din descompunerea QRa matricii nH d I QR . Atunci:
1 0 ,nn nnh h d(algoritmul QR cu deplasare simpl g se te valoarea proprie d într-un singur pas).
Euristic s-a constatat c la fiecare pas, cea mai bun aproximare a unei valori proprii este ( )k
nna .
91
Algoritmul QR cu deplasare simpl; aducerea la forma Hessenberg neredus
0;while ( forma Schur real )
; // se calculeaz cu
T
nn n
Q A Qk
AA a I QR algoritmul Givens
: ;1;
nn nA RQ a Ik k
Varianta algoritmului QR cu deplasare (“shift”) dubl În cazul când valorile proprii a1, a2 corespunz toare blocului:
, 1mm mn
mn nn
a aG m n
a asunt complexe, 1 2,a a , abordarea cu deplasare simpl nu mai asiguraccelerarea convergen ei. Avem:
2 1 2
2 21 2 1 2
1 2 1 2
det( ) ( )( ) ( )( )
( ) ( ),
mm nn mn nm
mm nn mm nn mn nm
mm nn mm nn mn nm
I G a a a a a a
a a a a a a a a a aa a a a a a a a a a
Algoritmul QR cu deplasare dubl const în trecerea de la matricea ( )kA A la matricea ( 1)
2kA A realizând doi pa i cu deplasare simpl ,
A A1 (deplasare simpl a1), A1 A2 (deplasare simpl a2):1 1 1
1 1 1 1
1 2 2 2
2 2 2 2
n
n
n
n
A a I Q RA R Q a I
A a I Q RA R Q a I
Fie matricea: 1 2 2 1 1 2 2 1 1 1 2 1 1 1 1 2 1
1 1 1 1 2 1 1 2 1 1 2 1
21 2 2 1 2 1 1 2 1 2
:
( )
Tn n
Tn n n
n n n
M Q Q R R Q Q R R Q A a I R Q Q AQ a I R
Q Q AQ R a Q R a I Q R a I a I
M Q Q R R a I a I A a a A a a I
Avem urm toarele rela ii de asem nare:
1 1 1 2 2 1 2 2 1 1 2 1 2 1 2
2 1 2 1 2 1 2, :
TT T T T
T T
A A Q AQ A Q AQ Q Q AQ Q Q Q A Q Q
A Q Q A Q Q Q AQ Q Q Q
92
Matricea Q care asigur trecerea de la matricea A la matricea A2 este matricea ortogonal din descompunerea QR a matricii
2 1n nM a I a I . Pasul QR cu deplasare dubl se face urmând etapele:
(a) se calculeaz matricea 2nM A s pI cu
s=a1+a2=amm+ann, p=a1a2=amm ann-amnanm ; (b) se calculeaz descompunerea QR a matricii M;(c) A2:=QTAQ.
Vectori proprii
Consider m dou matrici asemenea A i B:1 , matrice nesingularA B A PBP P
tim c cele dou matrici au acela i polinom caracteristic, ( ) ( )A Bp p , deci au acelea i valori proprii. Ne intereseaz care este
leg tura între vectorii proprii asocia i aceleia i valori proprii. Fie x vector propriu asociat valorii proprii pentru matricea A i w vector propriu asociat valorii proprii pentru matricea B. Care este rela ia între x i w?
1 1 1 1
1
, ,,
Ax x Bw w A PBP PBP x x BP x P xw P x x Pw
Metoda lui Jacobi de aproximare a valorilor proprii ale unei matrici simetrice poate fi descris astfel:
1 1 1 1 1 1 1 1( ) ( ) ( ) ( )
k k k k k k k k
T Tp q p q p q p q p q p q p q p qR R AR R (1)
unde indicii ( ,k kp q ) sunt ale i la pasul k la care s-a atins precizia dorit :
1 2diag , , , n (2) Not m cu U urm toarea matrice ortogonal :
1 1 1 1 2 2 2 2( ) ( ) ( ) ,
k k k k
T T T T Tp q p q p q p q p q p q nU R R R U U UU I
Din rela ia (1) avem: T TU AU UU AU U AU U
Punem în eviden coloanele matricii U, 1 2, , , nU x x x . Din rela iaAU= U i rela ia (2) ob inem:
1 2 1 21 2, , , , , , diag , , , , 1, ,n n i i
n iA x x x x x x Ax x i n
Prin urmare coloanele matricii U, vectorii xi, sunt aproxim ri ale vectorilor proprii pentru matricea A. Pentru a calcula valorile i vectorii proprii cu metoda Jacobi se procedeaz astfel:
93
;0;
while ( matrice diagonal )
• : ( ) ( );
• : ( );
• 1;
n
Tpq pq pq pq
Tpq pq
U Ik
A
A R AR
U URk k
La sfâr itul acestui algoritm, în matricea A vom avea matricea care aproximeaz valorile proprii ale matricii A, iar în U se va g si matricea ce aproximeaz vectorii proprii,
1 1 1 1( ) ( ).
k k k k
T Tp q p q p q p qR R
94
Descompunerea dup valori singulare (Singular Value Decomposition)
TeoremFie m nA . Atunci exist o matrice ortogonal p tratic de dimensiune m, m mU , o matrice ortogonal p tratic de dimensiune n, n nV iconstantele pozitive 1 2 r>0, r min{m,n} astfel ca:
( )
( ) ) ( )
1
, , ,0
, diag , ,
r n rT m n
m r r m r n r
r rr
DA U V
D D
(1)
Constanta r este chiar rangul matricii A, r=rang(A).Constantele 1, 2, , r poart numele de valori singulare ale matricii A.Folosind rela ia (1) avem:
2( )
( ) ( ) ( )
2( )
( )
,
,
0 0
,
0
0
TT T T T
T T T T T T Tm
r m rT m mm
m r r m r m r
T T T T T T Tn
r n rTn
n r r
A U V V U
AA U V V U U U U U
D
A A V U U V V V V V
D
( ) ( )0n n
n r n r
inând cont de ortogonalitatea matricilor U i V, putem rescrie rela iilede mai sus astfel:
2 2 21 2
2 2 21 2
( ) , diag , , , ,0, ,0
( ) , diag , , , ,0, ,0
T m mm m r
T n nn n r
AA U U
A A V V
Din aceste rela ii deducem c 2 2 21 2, , , r sunt valorile proprii strict
pozitive ale matricilor AAT i/sau ATA iar matricile U i V sunt matrici ale c ror coloane sunt vectorii proprii asocia i. Matricile AAT i ATA sunt matrici simetrice:
,T T T TT T T T T T T TAA A A AA A A A A A A
i au toate valorile proprii nenegative: 2
22
2
, ,, , 0
,
TT TT T
A uA u A uAA u u AA u u u u
u u uPentru a g si matricile U, V i valorile singulare 1, 2, , r putem folosi metoda lui Jacobi de aproximare a valorilor i vectorilor proprii pentru
95
matrici simetrice. Putem folosi descompunerea dup valori singulare pentru a defini pseudo-inversa unei matrici oarecare (n m). Lucrând formal, avem:
1 11 1 1 1? ? ?,T T T TA U V A U V V U V U
R mâne de definit matricea 1? . Urmând acest ra ionament se define te
pseudoinversa Moore-Penrose a unei matrici m nA astfel: 1
( )
( ) ) ( )
1 1
1
, , ,0
1 1, diag , , .
r m rI I T I m I m
n r r n r m r
r r
r
DA V U A
D D
Pseudoinversa definit mai sus satisface urm toarele propriet i:, ; ,
I I TI m n T I m nA A A A A AExist o proprietate care nu mai este satisf cut de psudoinvers de i este respectat de inversa clasic :
, a.î. I I IA B AB B A . Descompunerea dup valori singulare poate fi utilizat i pentru rezolvarea sistemelor liniare cu matrici oarecare (num rul liniilor num rul coloanelor):
, , , :m n IAx b A b x A b .
96
Rezolvarea ecua iilor neliniare
Fie : ,f a b o func ie continu pe intervalul ,a b astfel ca ( ) ( ) 0f a f b . În aceste condi ii tim c exist ,x a b astfel ca ( ) 0f x . În cele ce urmeaz ne propunem s aproxim m solu ia x a
ecua iei neliniare ( ) 0f x .
Metoda bisec iei (a înjum t irii intervalului)
Pentru a aproxima solu ia x c utat , vom construi un ir de intervale ,k ka b ce satsifac:
1 1
1 1
,
, ,
2
k k
k k k k
k kk k
x a b
a b a bb ab a
Pentru primul interval vom considera: 0 0, , 0a a b b k .Consider m punctul c din mijloc al intervalului ,k ka b :
k ka bc
Avem urm toarele 3 variante: 1. ( ) 0f c - caz în care am g sit solu ia c utat , x c , algoritmul de
opre te;2. ( ) ( ) 0kf a f c ceea ce înseamn c solu ia se g se te în intervalul
,ka c i vom continua procedeul cu intervalul 1 1,k k ka a b c ;3. ( ) ( ) 0kf b f c - solu ia se g se te în intervalul , kx c b
procedeul continu cu intervalul 1 1,k k ka c b a .Dat 0 exist un interval ,k ka b astfel ca ,k kx a b i k kb a
( 2log b ak ). Pentru suficient de mic atât ka cât i kb pot fi
considerate aproxim ri ale solu iei x ( ka x prin lips iar kb x prinadaos).
97
Metoda tangentei (Newton-Raphson)
Vom presupune c func ia 1 ,f C a b este diferen iabil pe ,a b cu derivata continu în acest interval i c satisface rela ia ( ) ( ) 0f a f b .Pentru a aproxima solu ia x a ecua iei ( ) 0f x vom construi un ir
kx care s convearg la x , , pentrukx x k . Primul element din ir, 0x , consider m c este dat. Urm torul element din ir se construie te ca fiind intersec ia tangentei la graficul func iei f în punctul
0 0, ( )x f x cu axa absciselor. Procedeul se repet cu 1x pentru a-l ob inepe 2x , .a.m.d.
1 0 0
2 1 1
1
O tangenta la graficul func iei în punctul , ( )
O tangenta la graficul func iei în punctul , ( )
O tangenta la graficul func iei în punctul , ( ) , 0,1,2,k k k
x x f x f x
x x f x f x
x x f x f x k
Ecua ia tangentei la graficul func iei f într-un punct , ( )a f a esteurm toarea:
( ) '( )( )y f a f a x aPentru a calcula 1kx din kx vom considera ecua ia tangentei:
( ) '( )( )k k ky f x f x x xunde lu m 0y . Avem:
1 0( ) , 0,1,2, , dat'( )
kk k
k
f xx x k xf x
Formula de mai sus poate fi folosit doar dac la fiecare pas '( ) 0kf x .Dac la un pas avem '( ) 0kf x putem calcula câteva itera ii kx ( k k )folosind 1'( )kf x .
98
Teorem de convergen Fie 2 ,f C a b , cu ( ) ( ) 0f a f b , '( ) 0 i ''( ) 0 ,f x f x x a b .Dac alegem
0
pentru ( ) ''( ) 0pentru ( ) ''( ) 0
a f a f ax
b f b f batunci irul ; 0kx k construit cu metoda tangentei este monoton, m rginit i convergent la unica solu ie x a ecua iei ( ) 0f x . Ordinul de convergen este mai mare decât 2.
Demonstra ie: Din faptul c '( ) 0, ''( ) 0 ,f x f x x a b icontinuitatea func iilor ' i ''f f rezult c cele dou func ii au semn constant pe intervalul ,a b . Prin urmare func ia f nu- i schimbmonotonia i curbura (convexitatea/concavitatea) în intervalul ,a b . Din condi iile '( ) 0 i ( ) ( ) 0f x f a f b rezult unicitatea solu iei x . Dacprin absurd am presupune c mai exist alt solu ie x x . Conform teoremei lui Rolle, din faptul c ( ) ( ) 0f x f x rezult c exist un punct , ,c x x a b astfel ca '( ) 0f c (absurd).
Vom presupune c ( ) ''( ) 0f a f a ( ( )f a are acela i semn cu func ia ''f ),
0x a . Vom ar ta c irul kx este monoton cresc tor i marginit.Ar t m prin induc ie c , 0kx x k . Pentru 0k avem 0x a x .Presupunem c kx x i ar t m c 1kx x . Avem:
1( ) '( ) ( ) 0'( ) '( )
k kk k k
k k
f x f zx x x xf x f x
1( ) '( )( ) ( )'( ) '( )
k k k kk k
k k
f x f x x x f xx x x xf x f x
Folosind dezvoltarea în serie Taylor avem: 2
2
( )0 ( ) ( ) '( )( ) ''( ) , cu ,2
( )( ) '( )( ) ''( )2
kk k k k k k
kk k k k
x xf x f x f x x x f y y x x
x xf x f x x x f y
Înlocuind în rela ia de mai sus ob inem: 2
1( ) ''( )
2 '( )k k
kk
x x f yx xf x
(1.1)
Dac mai consider m o nou dezvoltare în serie Taylor:
99
0 ( ) ( ) '( )( ) , cu ,k k k k kf x f x f z x x z x x (1.2) ob inem:
( )'( )
kk
k
f xx xf z
(1.3)
Dac înlocuim (1.1) în (1.3) avem:
1( ) ''( ))
2 '( ) '( )k k
k kk k
f x f yx x x xf x f z
Din faptul c 0 , kx a x x rezult c ( )f a i ( )kf x au acela i semn. Din ( ) ''( ) 0f a f a i faptul c ''f nu- i schimb semnul pe ,a b rezult c( )f a i ''f au acela i semn. Vom avea i c ( )kf x i ''f au acela i semn:
( ) ''( ) 0k kf x f yFunc ia 'f neschimbându- i semnul pe ,a b rezult c :
'( ) '( )k kf x f zFolosind ipoteza inductiv , kx x ob inem:
1 1k kx x x xdeci irul kx este m rginit superior. Folosind formula (1.2) i rela ia kx x avem:
1( ) '( ) ( ) 0 ,'( ) '( )
k kk k k
k k
f x f zx x x x kf x f x
deci irul kx este monoton cresc tor. Din m rginirea i monotonia irului rezult c irul considerat este convergent:
, a.î. ,kl a b x l kTrecând la limit în rela ia de defini ie a irului:
1( ) ( ), ( ) 0'( ) '( )
kk k
k
k
f x f lx x k l l f l l xf x f l
x x kDac ( ) ''( ) 0f b f b , se alege 0x b i se arat analog c
1i ,k k kx x x x k .Dac not m:
2 1max | ''( ) | ; , , min | '( ) | ; ,M f x x a b m f x x a bfolosind rela ia (1.1) ob inem:
21
1
| | |k kx x x xm
de unde deducem c ordinul de convergen este cel pu in 2.
100
Metoda falsei pozi ii (a coardei)
Presupunem c func ia f este continu , ,f C a b i satisface rela ia ( ) ( ) 0f a f b . Vom construi un ir kx care s convearg la solu ia c utat x , , pentrukx x k . Consider m date primul element din ir, 0x i un lat punct x . Procedeul de construire a irului este urm torul:
1 0 0
2 1 1
1
O dreapta ce une te punctele , ( ) , ( )
O dreapta ce une te punctele , ( ) , ( )
O dreapta ce une te punctele , ( ) , ( ) , 0,1,2,k k k
x x x f x x f x
x x x f x x f x
x x x f x x f x k
Ecua ia dreptei ce trece prin punctele , ( )a f a cu , ( )b f b este: ( )
( ) ( )y f a x a
f a f b a b.
Pentru a-l ob ine pe 1kx din kx avem:
1 0
( ) cu 0( ) ( )
( )( ) ( ) ( ) , 0,1,2, , dat( ) ( ) ( ) ( )
k k
k k
k k k kk k
k k
y f x x x yf x f x x x
f x x x x f x x f xx x k xf x f x f x f x
Teorem de convergen Fie 2 ,f C a b , cu ( ) ( ) 0f a f b , '( ) 0 i ''( ) 0 ,f x f x x a b .Dac alegem
0
0
i pentru ( ) ''( ) 0
i pentru ( ) ''( ) 0
x a x b f a f a
x b x a f b f b atunci irul ; 0kx k construit
cu metoda falsei pozi ii este monoton, m rginit deci convergent la unica solu ie x a ecua iei ( ) 0f x .
101
Metoda secantei
Presupunem c func ia f este continu , ,f C a b i satisface rela ia ( ) ( ) 0f a f b . Vom construi un ir kx care s convearg la solu ia c utat x , , pentrukx x k . Consider m date primele douelemente din ir, 0x i 1x . Procedeul de construire a irului este urm torul:
2 0 0 1 1
3 1 1 2 2
1 1 1
O dreapta ce une te punctele , ( ) , , ( )
O dreapta ce une te punctele , ( ) , , ( )
O dreapta ce une te punctele , ( ) , ( ) , 1,2,k k k k k
x x x f x x f x
x x x f x x f x
x x x f x x f x k
Ob inem elementul 1kx din kx i 1kx astfel:
1 1
1 1 11 0 1
1 1
( ) cu 0( ) ( )
( )( ) ( ) ( ) , 1,2, , , da i( ) ( ) ( ) ( )
k k
k k k k
k k k k k k kk k
k k k k
y f x x x yf x f x x x
f x x x x f x x f xx x k x xf x f x f x f x
Teorem de convergen Fie x o solu ie a ecu iei ( ) 0f x . Presupunem c
2 ,f C x r x r , '( ) 0 i ''( ) 0 ,f x f x x x r x r . Atunci
exist 00 r r pentru care, dac 0 1 0 0, [ , ]x x x r x r atunci
0 0[ , ], 2kx x r x r k i , pentrukx x k . Ordinul de
convergen este 1 5 1.618032
q .
102
Sisteme de ecua ii neliniare
Consider sistemul neliniar: 1 1 2 1 1
2 1 2 2 2
1 2
( , , , ) 0( , , , ) 0
( ) 0 ,
( , , , ) 0
n
n
n nn n
f x x x f xf x x x f x
F X F X
f xf x x xFie matricea jacobian asociat func iei F (presupunem c func iile ifsunt diferen iabile):
1 1 1
1 2
2 2 2
1 2 1 2
1 2
( ) ( , , , )
n
n n
n n n
n
f f fx x xf f fx x xF X x x x
f f fx x x
Pentru a g si solu ia X a sistemului de ecua ii neliniare ( ) 0F X se construie te un ir de vectori ( )kX astfel:
1(0) ( 1) ( ) ( ) ( ) ( ) ( )
1( ) ( ) ( )
dat , ( ) ( ) , 0,1,
( ) ( )
k k k k k k
k k k
X X X F X F X X k
F X F X
Vectorul de corec ie ( )k poate fi calculat i ca solu ie a sistemului liniar: ( ) ( )( ) ( )k kF X F X
unde matricea sistemului este chiar matricea jacobian calculat în punctul ( )kX iar vectorul termenilor liberi este ( )( )kF X . Metoda descris mai sus poart numele de metoda Newton. Pentru n=1 metoda Newton este chiar metoda tangentei descris anterior.
103
Metoda Bairstow de aproximare a r d cinilor complexe ale polinoamelor
Fie polinomul cu coeficien i reali: 1
0 1 1 0( ) , 0, , , 4n n n kk n n iP x a x a x a x a x a a a i n
Vom presupune c polinomul P are doar r d cini complexe. Vom identifica factorii de gradul 2 din P corespunz tori perechilor de r d cini complex conjugate. Avem:
2 2 30 1 3 2 0 1( ) ( )( n n
n nP x x px q b x b x b x b r x r (1) Dorim s identific m variabilele p i q pentru care 0 1 0r r . Avem urm torul sistem neliniar :
0 0 0
1 1 1
( , ) 0( ) 0 cu 2, ,
( , ) 0r r p q r p
F X n F Xqr r p q r
Pentru a g si func iile 0 1( , ) i ( , )r p q r p q vom g si coeficien ii necunoscu ide ecua ia (1) prin identificarea coeficien ilor lui kx din membrul stâng imembrul drept:
0 0
11 1 0
1 2
1 0 2 3
01 2
:
:
: , 2,3, , 2:
:
n
n
n ii i i i
n n n
n n
x a bx a b pbx a b pb qb i nx a r pb qbx a r qb
Rearanjând rela iile de mai sus avem: 0 0 1 1 0
1 2
1 1 2 3 1 2
0 1 2 3 1
1 2 1 2 1 1
,, 2,3, , 2
( 1), ( )i i i i
n n n n n n n n
n n n n
n n n n n n n n
b a b a pbb a pb qb i nb a pb qb i n b a pb qb i nr a pb qb br a qb a pb qb pb b pb
(2)
Pentru sistemul neliniar de mai sus jacobianul este: 1 1
0 1
1 1 1 11
( , )( , ) ( , )
n n
n
n n n n n nn
b br b p q p q
Fr b p q pb p q b b b bb p p
p p q q
104
Vom aplica metoda lui Newton: k+1( 1) ( ) ( ) (0)
0 0k+1
, dat , , da ik kk k k
k k
p p yX X X p q
q q z
Corec iile ( ) kk
k
yz
se g sesc ca solu ie a sistemului:
( , ) ( , ).k k k k
yF p q F p q
z (3)
Pentru a ob ine derivatele par iale ii ib bp q
vom deriva în rela iile (2):
0 1 00
1 21
0 ,
, 2, ,i i ii
b b bb pp p pb b bb p q i np p p
0 1 0
1 22
0 ,
, 2, ,i i ii
b b bpq q qb b bb p q i nq q q
Not m cu:
: ( , ) , : ( , ) , 0, ,i ii k k i k k
b bp q p q i np q
pentru care avem urm toarele rela ii de recuren :0 1 0 0 1 1 2
0 1 2 1 2
0 , ,2, ,
0 , 0 ,k i i k i k i
i i k i k i
b p b p qi n
b p qSe poate ar ta c aceste ultime dou recuren e se reduc la una singur :
0 0 1 1 0 1 2
1 2
, , , 2, ,,
k i i k i k i
i i i i
c b c b p c c b p c q c i nc c i
Pentru aceasta se verific : 1 0 2 1,c c i faptul c 1i ( )i icsatisfac aceea i rela ie de recuren (analog pentru i : 2 0 3 1,c c ,
2i ( )i ic satisfac aceea i rela ie de recuren ). Cu aceste nota ii avem:
2 3
1 1 2 2 3
( , ) n nk k
n n k n n k n
c cF p q
c b p c c p cSistemul (3) devine:
2 3 1
1 1 2 2 3 1( ) ( )n n n
n n k n n k n n k n
c y c z bc b p c y c p c z b p b
105
Acest sistem se simplific prin înmul irea primei ecua ii cu ( )kp i se adun cu ecua ia a doua:
2 3 1
1 1 2( )n n n
n n n n
c y c z bc b y c z b
Solu ia sistemului este: 1 2 3 2 1 1 1
2 22 3 1 1 2 3 1 1
( ),( ) ( )
n n n n n n n n nk k
n n n n n n n n
b c b c b c b c by zc c c b c c c b
Algoritmul se opre te atunci când diferen a dintre dou itera ii succesive devine suficient de mic - ( 1) ( )|| ||k kX X - de exemplu, dac folosim norma euclidian avem:
1( 1) ( ) 2 2 2 22 2
1
|| || || ||k kk kk k
k k
p pX X y z
q qMetoda lui Bairstow poate fi descris astfel:
0 0 1 1 0
1 2
0 0 1 1 0
1 2
22 3 1 1
1 2
0; 0;do
; ;, 2, , ;
; ;, 2, , ;
det ( ) ;
i i i i
i i i i
n n n n
n n
p q k
b a b a pbb a p b qb i nc b c b pcc b p c qc i n
c c c bb cy 3
2 1 1 1
2 2max
det( ) ;
det;
;1;
while ( i )
n n
n n n n n
b c
b c b c bz
p p yq q zk k
y z k k
( - precizia de calcul dorit , maxk - num r maxim de itera ii ce pot fi efectuate)
106
Metoda lui Laguerre
Fie polinomul: 0 1 2 0( ) ( )( ) ( ) , 0nP x a x x x x x x a
Metoda lui Laguerre propune construirea unui ir de numere care sconvearg la una din r d cinile polinomului P.Consider m derivata polinomului P:
1 2
1 1 1'( ) ( )n
P x P xx x x x x x
Avem:0 1 2ln | ( ) | ln | | ln | | ln | | ln | |nP x a x x x x x x
1 2
1 1 1 '( )ln | ( ) | ( )( )n
d P xP x G xdx x x x x x x P x
2
2 2 2 21 2
2
2
1 1 1ln | ( ) |( ) ( ) ( )
'( ) ( ) ''( )( )
( )
n
d P xdx x x x x x x
P x P x P xH x
P xFie 1x r d cina pe care vrem s-o aproxim m i ky valoarea aproximativcurent . Not m cu 1ka y x i facem presupunerea c ky se afl la acceea i distan de toate celelalte r d cini, adic , 2, ,k ib y x i n .Prin urmare avem:
2
2 2 2
'( ) 1( )( )
'( ) ( ) ''( ) 1( )( )
kk
k
k k kk
k
P y nG yP y a b
P y P y P y nH ya bP y
Rezolv m acest sistem în raport cu a i ob inem:
2max ( ) ( 1) ( ) ( )k k k
naG y n nH y G y
Semnul la numitor este ales astfle ca expresia s aib magnitudine maxim . Dac inem cont de expresiile pentru G i H ob inem pentru a iurm toarea expresie:
22
( )
max '( ) ( 1) '( ) ( 1) ( ) ''( )k
k k k k
n P yaP y n P y n n P y P y
Urm torul element din ir va fi:
107
12
1 22
max ( ) ( 1) ( ) ( )
( )
max '( ) ( 1) '( ) ( 1) ( ) ''( )
k k k
k k k
kk k
k k k k
ny y a yG y n nH y G y
n P yy yP y n P y n n P y P y
Procedeul se opre te când a devine suficient de mic. Metoda lui Laguerre se poate aplica i pentru g sirea r d cinilor complexe ale polinoamelor ide asemenea pentru polinoame cu coeficien i complec i.
108
Interpolare numeric
Presupunem c despre o func ie f cunoa tem doar valorile într-un num r finit de puncte. Pornind de la aceste date, dorim s aproxim mfunc ia f într-un alt punct.
x x0 x1 x2 ... xn-1 xnf y0 y1 y2 ... yn-1 yn
În tabelul de mai sus f(xi)=yi, i=0,1,…,n i xi xj pentru i j. Dat un punct x xi, i=0,1,…,n dorim s aproxim m f(x) cunoscând cele (n+1) perechi(xi,yi),i=0,…,n. Punctele xi se numesc noduri de interpolare.
Polinomul de interpolare Lagrange
Not m cu n mul imea polinoamelor de grad cel mult n. Dimensiunea acestui spa iu este n+1, baza uzual fiind dat de polinoamele 1, x, x2,…,xn. Vom considera o alt baz în acest spa iu. Se consider polinoamele pi:
0 pentruastfel ca ( ) 0, , , 0, ,
pentrui n i j
j ip p x j n i n
j iDin rela ia pi(xj)=0, j i i faptul c pi este polinom de gard n rezult cx0, x1,…,xi-1, xi+1,…,xn sunt cele n r d cini ale polinomului pi. Avem:
0 1 1( ) ( ) ( )( ) ( ), , 0, ,i i i i n ip x c x x x x x x x x c i nConstanta ci se determin din faptul c pi(xi)=1:
0 1 1
0 1 1
( ) 1 ( ) ( )( ) ( )1
( ) ( )( ) ( )
i i i i i i i i i n
ii i i i i i n
p x c x x x x x x x x
cx x x x x x x x
Polinoamele pi au forma: 0 1 1
00 1 1
( ) ( )( ) ( )( ) ( ) , 0, ,( ) ( )( ) ( )
nji i n
iji i i i i i n i jj i
x xx x x x x x x xp x i nx x x x x x x x x x
Propozi ie Polinoamele p0, p1,…, pn formeaz o baz în n.
Demonstra ie: Vom ar ta c cele n+1 polinoame sunt liniar independente: 0 0 1 1 0 1( ) ( ) ( ) ( ) 0 , 0n n nq x a p x a p x a p x x a a a
Vom face pe rând x=x0, x=x1,…, x=xn în polinomul q:0 0 0 0 1 1 0 0 0 1 0 0( ) ( ) ( ) ( ) 1 0 0 0 0n n nq x a p x a p x a p x a a a a a
109
1 1 1( 0x x q x a
0 0
0
( ) ( ) ( ) ( )0 0 0 0
k k k k k n n k
k n k k
q x a p x a p x a p xa a a a a
( 0n n nx x q x aToate constantele ai sunt nule deci polinoamele ; 0, ,ip i n formeazo baz în n. Pentru a aproxima func ia f pronind de la tabelul de mai sus, vom construi un polinom ln n astfel ca s îndeplineasc condi iile de interpolare:
, ( ) , 0, ,n n n i il l x y i n (1) Odat construit acest polinom, vom aproxima f(x) prin ln(x).Vom scrie polinomul ln în raport cu noua baz ; 0, ,ip i n , deci exist constantele reale a0, a1,…,an astfel ca:
0
( ) ( )n
n i ii
l x a p x
Constantele ak se determin astfel: 0 0
0
( ) ( ) ( ) ( )0 1 0
k n k k k k k n n k
k n k k k
y l x a p x a p x a p xa a a a a y
Prin urmare un polinom de grad n care îndeplinesc condi iile de interpolare (1) este:
0 1 1
0 0 0 1 1
0 0
( ) ( )( ) ( )( ) ( )( ) ( )( ) ( )
( )
n ni i n
n i i ii i i i i i i i n
nnj
ii j i j
j i
x x x x x x x xl x y p x yx x x x x x x x
x xy
x x
(2)
Polinomul din formula (2) se nume te polinomul de interpolare Lagrange.
Propozi ie Polinomul ln dat de formula (2) este unicul polinom de grad n care îndepline te condi iile de interpolare (1).
Demonstra ie: Presupunem c mai exist un polinom q n care îndepline te condi iile (1):
, ( ) , 0, ,n i iq q x y i nFie polinomul p(x)=ln(x)-q(x) n. Acest polinom are proprietatea c :
( ) ( ) ( ) 0 , 0, ,k n k k k kp x l x q x y y k n
110
Polinomul p are ca r d cini toate nodurile de interpolare. Polinomul peste polinom de grad cel mult n i are (n+1) r d cini distincte (xi xj , ij). Acest polinom nu poate fi decât polinomul identic nul:
( ) ( ) ( ) 0 , ( ) ( )n np x l x q x x l x q x xPolinomul ln este unicul care satisface (2).
Fie wn+1 polinomul de grand (n+1) care are ca r d cini nodurile de interpolare:
1 0 1 1( ) ( )( ) ( )n n nw x x x x x x xAvem:
1 10 0 0
( ) ( ) ; ( ) ( )n nn
n j n k k ji j j
j i j k
w x x x w x x x
Putem rescrie polinomul ln i astfel: 1
0 1
( ) 1( ) [ ]( ( )) '
nn
n ii i n i
w xl x yx x w x
Fie a=min{x0, x1,…, xn}, b=max{x0, x1,…, xn}.
Teorema restului Fie 1 ,nf C a b i , , , 0, , .ix a b x x i n Atunci exist un punct 0 1, , ( , , , , )ny a b y y x x x x (punctul y depinde de nodurile de interpolare xi i de punctul x ) astfel c eroarea la interpolarea numericeste dat de:
( 1)
1( )( ) ( ) ( )
( 1)!
n
n nf yf x l x w x
n (3)
Demonstra ie: Consider m func ia F:1( ) : ( ) ( ) ( )n nF x f x l x cw x
Constanta real c este aleas astfel ca ( ) 0F x adic :
11
( ) ( ) , ( ) 0 )( )
ni n
n
f x l xc x x i w xw x
(4)
Func ia f fiind de clas Cn+1 pe intervalul [a,b] rezult c i func ia F este din Cn+1[a,b]. Avem:
1( ) ( ) ( ) ( ) 0 0 , 0, ,i i n i n i i iF x f x l x cw x y y c i nFunc ia F are (n+2) zerouri, 0 1, , , ,nx x x x . Aplicând 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 r d cin a lui F(n+1) cu y.
111
Punctul y depinde de zerourile ini iale 0 1, , , ,nx x x x i:( 1)
0 1( , , , , ) , a.î. ( ) 0.nny y x x x x a b F y (5)
Derivata de ordinul (n+1) a func iei F se calculeaz astfel: ( 1) ( 1) ( 1) ( 1)
1
( 1) ( 1)
( ) ( ) ( ) ( )
( ) 0 ( 1)! ( ) ( 1)!
n n n nn n
n n
F x f x l x c w x
f x c n f x c n (6)
(derivata de ordin (n+1) a polinomului de grad n ln este 0). Din rela iile(4), (5) i (6) rezult c :
( 1) ( 1)
11
( ) ( ) ( ) ( )( ) ( ) ( )( 1)! ( 1)!( )
n nn
n nn
f y f x l x f yc f x l x w xn nw x
adic am ob inut rela ia (3).
Forma Newton a polinomului de interpolare Lagrange
Fie lk(x,x0,x1,…,xk,f) polinomul de interpolare Lagrange pentru func ia f pe sistemul de noduri {x0,x1,…,xk} (xi xj pentru i j).
Propozi ie Fie lk-1(x,x0,x1,…,xk-1,f), lk-1(x,x1,x2,…,xk,f) k-1 polinoamele de interpolare Lagrange pentru func ia f pe sistemele de noduri {x0,x1,…,xk-1}i respectiv {x1,x2,…,xk}. Atunci:
0 1
1 0 1 1 0 1 1 2
0
( , , , , , )( ) ( , , , , , ) ( ) ( , , , , , )
k k
k k k k k
k
l x x x x fx x l x x x x f x x l x x x x f
x x (7)
Demonstra ie: Exerci iu.Consider m urm toarele probleme de interpolare pentru func ia f:
0 0 1 1 1 1 1 0 1 1
0 0 1 1 0 1
( , ),( , ), ,( , ) ( , , , , , )
( , ),( , ), ,( , ) ( , , , , , )k k k k
k k k k
x y x y x y l x x x x f
x y x y x y l x x x x fNe intereseaz s g sim 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:
0 1 1 0 1 1( ) ( , , , , , ) ( , , , , , )k k k k kq x l x x x x f l x x x x fare drept r d cini punctele x0,x1,…,xk-1 (q(xi)=yi-yi=0, i=0,…,k-1) avem rela ia:
1
0 1 1 0 1 10
( , , , , , ) ( , , , , , ) ( )k
k k k k jj
l x x x x f l x x x x f A x x (8)
în care A este dat de rela ia:
112
0 1 1 0 1 11
0
( , , , , , ) ( , , , , , )
( )
k k k k k kk
k jj
l x x x x f l x x x x fAx x
(9)
11
0 0 1
1 1 1 10
0 0 0 0
( )
( ) ( ) ( ) ( ) ( )
kkk j
ii j ki j
j ik k ik k k k
ik j k j k j k i i j
j j j jj i
x xy
x xy y yAx x x x x x x x x x
0
0
( )
ki
ki
i jjj i
yAx x
(10)
Dac consider m i problemele de interpolare pentru func ia f:1 1 2 2 1 1 2
0 0 1 1 0 1
( , ),( , ), ,( , ) ( , , , , , )
( , ),( , ), ,( , ) ( , , , , , )k k k k
k k k k
x y x y x y l x x x x f
x y x y x y l x x x x fvom avea, analog ca mai sus:
0 1 1 1 21
( , , , , , ) ( , , , , , ) ( )k
k k k k jj
l x x x x f l x x x x f B x x (11)
Dac înmul im rela ia (8) cu (x-xk) iar rela ia (11) cu (x-x0) i sc demaceste rela ii ob inem:
0 0 1 1 0 1 1
0 1 1 20
( ) ( , , , , , ) ( ) ( , , , , , )
( ) ( , , , , , ) ( ) ( )
k k k k k kk
k k jj
x x l x x x x f x x l x x x x f
x x l x x x x f A B x x
inând seama de rela ia (7) rezult c :
0
( ) ( ) 0 adick
jj
A B x x A B
Vom nota în cele ce urmeaz :0 1, , , k f
A x x xnumit diferen divizat de ordin k a func iei f pe nodurile
0 1, , , kx x x .Vom înlocui în formula (8) lk-1(x,x0,…,xk-1,f) cu:
1
1 0 1 2 1 1 0 1 11
( , , , , ) ( , , , , ) , , , ( )k
k k k k k jfj
l x x x f l x x x f x x x x x
iar în formula (11) lk-1(x,x1,…,xk,f) cu:
113
1
1 1 2 1 1 1 21
( , , , , ) ( , , , , ) , , , ( )l
k k k k k lfl
l x x x f l x x x f x x x x x
i apoi sc dem membru cu memebru cele dou rela ii. Ob inem: 1 1
0 1 01 0
1
1 01 1
, , ( ) , , ( )
, , ( ) , , ( ) 0
k k
k j k jf fj j
k k
k l k lf fl l
x x x x x x x x
x x x x x x x x
Putem scrie: 1
0 1 11
1
0 00
( ) , , , ,
, , ( )
k
j k kf fj
k
k j nfj
x x x x x x
x x x x x x x x
rela ie din care ob inem: 0 1 1 1 2
0 10
, , , , , ,, , , k kf f
k fk
x x x x x xx x x
x x (12)
Rela ia (12) justific denumirea de diferen divizat . Se introduce ino iunea de diferen divizat de ordinul 0:
( ) ,k k kfx y f x k (13)
Diferen ele divizate se pot ob ine folosind defini ia direct (10) sau folosind defini ia recursiv (13), (12). Cele dou defini ii sunt echivalente:
Propozi ie
0 10 0 1
0
, , ,( ) '( )
k ki i
k kfi i n k
i jjj i
y yx x xw xx x
(14)
pentru orice sistem de noduri 0 1, , , kx x x i orice k.Demonstra ie: Se face prin induc ie. Pentru k=1 avem:
0 10 10 1
0 1 1 0 0 1
, fff
x xy yx xx x x x x x
Presupunem c rela ia (14) este valabil pentru orice k i pentru orice sistem de noduri 0 1, , , kx x x . Pentru k+1 folosim rela ia de recuren iapoi aplic m ipoteza inductiv :
114
0 1 1 2 10 1 1
0 1
1
10 10 1
0 1
, , , , , ,, , ,
( )( ) ( )
k kf fk f
kk k
i ik k
i iki j i j
j jj i j i
x x x x x xx x x
x xy y
x x x x x x
0 11
0 10 1
0 10 1
1 1 0
1
( ) ( )
1 1[ ( )]}( )
kk k
kj k j
j jj j k
ki
ki i k i
i jjj i
y yx x x x x x
yx x x xx x
0 11 1 1
10 1
0 0 00 1
1
10
0
( ) ( ) ( )
( )
kk i
k k ki
j k j i jj j jj j k j i
ki
ki
i jjj i
y y y
x x x x x x
y
x x
Induc ia este complet .
Din aceast Propozi ie se observ c diferen a divizat 0 1, , , k fx x x nu
depinde de ordinea nodurilor 0 1, , , kx x x .Vom nota în continuare cu lk(x) polinomul de interpolare Lagrange pe nodurile 0 1, , , kx x x pentru func ia f. Avem:
0 1 0 1 1
0 0 1 0 0 1 0 1
0 1 0 1
( ) ( ) ( ) ( )] ( ) ( )] ( ) ( )], ( ) , , , ( ) ( )
, , , ( ) ( )
n k k n n
k kf f
n nf
l x l x l x l x l x l x l x l xy x x x x x x x x x x x
x x x x x x xAm ob inut astfel forma Newton a polinomului de interpolare Lagrange:
0 0 1 0 0 1 2 0 1
0 1 0 1
( ) , ( ) , , ( )( )
, , , ( ) ( )n f f
n nf
l x y x x x x x x x x x x x
x x x x x x x
115
Schema lui Aitken de calcul a diferen elor divizate
Ne propunem s calcul m diferen ele divizate 0 1,f
x x ,
0 1 2, ,f
x x x ,…, 0 1, , , n fx x x necesare construirii polinomului de
interpolare Lagrange în forma Newton. Procedeul folose te defini iarecursiv a diferen elor divizate i se desf oar în n pa i. La pasul 1 se calculeaz numai diferen e divizate de ordinul 1: 0 1,
fx x , 1 2,
fx x ,…,
1,n n fx x . În general, la pasul k se calculeaz diferen e divizate de ordin
k:0 1, , , k f
x x x , 1 2 1, , , k fx x x ,…, 1, , ,n k n k n f
x x x .La pasul n se calculeaz o singur diferen divizat de ordin n i anume
0 1, , , n fx x x .
0 0
1 1 0 1
2 2 1 2
1
Pas1 Pas Pas
,
,
,
f
f
k k k k f
k nx yx y x x
x y x x
x y x x 0 1
1 1 2 1 1 1
1
, , ,
, , ,
,
k f
n n n n n k nf f
n n n n f
x x x
x y x x x x
x y x x 1 0 1, , , ,n k n nf fx x x x x
Not m dd[k,i]= 1, , ,i i i k fx x x diferen e divizate de ordin k, i=0,…,n-
k, k=1,…,n, cu dd[0,i]=yi, i=0,…,n. Schema lui Aitken se implementeazastfel:
[0, ] , 0, , ;for 1, ,
for 0, ,[ 1, ] [ 1, 1][ , ]
i
i i k
dd i y i nk n
i n kdd k i dd k idd k i
x xPutem face acelea i calcule folosind un singur vector, de exemplu rescriind vectorul y astfel:
116
1
for 1, ,for , ,
i ii
i k i
k ni n k
y yyx x
La finalul acestei secven e de program vectorul y va con ine elementele: y0, 0 1,
fx x , 0 1 2, ,
fx x x ,…, 0 1, , , n f
x x x
( 0 1, , , , 0, , .k k fy x x x k n
Polinomul de interpolare Hermite
Presupunem c despre o func ie f cunoa tem pe lâng valorile func iei i ale primei derivate într-un num r finit de puncte. Pornind de la aceste date, dorim s aproxim m func ia f într-un alt punct. Cunoa tem:
x x0 x1 x2 ... xn-1 xnf y0 y1 y2 ... yn-1 yn
F’ z0 z1 z2 ... zn-1 zn
În tabelul de mai sus f(xi)=yi, f’(xi)=zi, i=0,1,…,n cu xi xj pentru i j. Dat un punct x xi, i=0,1,…,n dorim s aproxim m f( x ) cunoscând valorile (xi,yi,zi),i=0,…,n.Fie polinoamele:
0
22 1
22 1
( ) ( ) , 0, ,
( ) 1 2( ) '( ) ( ) , 0, ,
( ) ( ) ( ) , 0, ,
nj
i nj i jj i
i i i i i n
i i i n
x xq x i n
x x
r x x x q x q x i n
r x x x q x i nTeorem
Fie polinomul de grad cel mult 2n+1:
2 1 2 10 0
( ) ( ) ( )n n
n i i i i ni i
H x y r x z r x . (15)
H2n+1 este unicul polinom de gard cel mult 2n+1 care satisface rela iile de interpolare:
'2 1 2 1( ) , ( ) 0, ,n i i n i iH x y H x z i n (16)
Dac , 0, ,ix x i n i f C2n+2[a,b] atunci: (2 2)
22 1 1
( )( ) ( ) ( )(2 2)!
n
n nf yf x H x w x
n (17)
117
unde 0( , , , ) , ( min{ }, max{ })n i iy y x x x a b a x b x .
Polinomul H2n+1 se nume te polinomul de interpolare Hermite.
Demonstar ie: Se arat c (exerci iu!):0 pentru
( ) , , 0, ,1 pentrui j
j ir x i j n
j i' ( ) 0 , 0, ,i j i jr x r x i j n
' 0 pentru( ) , , 0, ,
pentrui j
j ir x i j n
j iFolosind aceste rela ii rezult (16). Pentru a ar ta unicitatea polinomului (15) vom presupune c mai exist un polinom P 2n+1 care satisface rela iile (16):
( ) , '( ) 0, ,j j j jP x y P x z j n .Fie Q(x)=H2n+1(x)-P(x) 2n+1 . Pentru acest polinom avem:
( ) '( ) 0 0, , ; 0, , } r d cini duble pentruj j jQ x Q x j n x j n QPolinomul Q nu poate fi decât polinomul identic nul (polinom de grad 2n+1 cu 2n+2 r d cini!!!). Pentru a demonstra formula restului (17) se adapteaz demonstra ia 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 por iuni folosind func iile spline
118
Func ii spline
Fie nodurile 0 1 2 1, , 0,1, , ,i n nx a b i n a x x x x x b .Se consider func ia continu fragmentar polinomial :
0 0 1
1 1 2
2 2 3
2 2 1
1 1
( ) , [ , ],( ) , [ , ],( ) , [ , ],
( )
( ) , [ , ],( ) , [ , ] .
n n n
n n n
P x x x xP x x x xP x x x x
S x
P x x x xP x x x x
în care 0, , sunt polinoame.iP x i n O asemenea func ie poartnumele de func ie spline.
Func ii spline liniare continue
Defini ie Func ia S(x) se nume te func ie spline liniar continu dacpolinoamele , 0, , 1iP x i n sunt polinoame de gradul 1 i
( ) [ , ] , adicS x C a blim lim( ) ( ) 1, , 1.
i ii i
x x x xx x x x
S x S x i n
Fie func ia :[ , ]f a b pentru care se cunosc valorile:, 0, ,i iy f x i n .
Func ia spline liniar de interpolare S pentru func ia f îndepline tecondi iile de interpolare:
( ) , 0, , .i iS x y i ninând seam c polinoamele Pi(x) sunt polinoame de gradul 1 i S(x)
este continu vom avea condi iile :
1 1
( ) ,( ) 0, , 1,( ) polinom de gradul1.
i i i
i i i
i
P x yP x y i nP x
119
Din aceste condi ii rezult :1
11 1
( ) , 0, ,i ii i i
i i i i
x x x xP x y y i nx x x x
i1
0 0 0 0 1
( ) , 1, , 1,
( ) , .k k k k k k
n n n n
S x P x P x y k n
S x P x y S x P x y
Func ii spline cubice de clas C2
Se consider sistemul de noduri distincte din intervalul [a,b]:0 1 1{ }n na x x x x b
Func ia S(x) asociat diviz rii care îndepline te condi iile : 2( ) [ , ] ,
polinoamele ( ) au gradul 0, , 1,i
S x C a bP x i n
se nume te func ie spline cubic .Dat fiind o func ie :[ , ]f a b cu valorile , 0, ,i iy f x i n , se consider func ia spline cubic S(x) de interpolare ce satisface
( ) , 0, , .i iS x y i nPentru determinarea func iei spline cubice de interpolare observ m cpolinoamele:
3 21( ) , [ , ] , 0, , 1,i i i i i i iP x a x b x c x d x x x i n
implic determinarea a 4n necunoscute { , , , : 0, , 1}i i i ia b c d i n pentru care se impun:
' ''
1condi ii din rela iile de interpolare ( ) , 0, , ,
3( 1) condi ii de continuitate pentru ( ), ( ) i ( )în nodurile , 1, , 1,
i i
i
n S x y i nn S x S x S x
x i nîn total 4n-2 condi ii.Se pot avea în vedere pentru ad ugarea a dou condi ii suplimentarea urm toarele abord ri :
fixarea pantelor în extremit ile intervalului [a,b]. Se presupune cfunc ia f este derivabil i se cunosc valorile ' '( ) , ( )f a f b Se impun condi iile:
' ' ' ' ' '0 0 0 1( ) ( ) ( ) , ( ) ( ) ( );n n nS x P x f a S x P x f b
periodicitatea primelor dou derivate:' ' ' ' " " " "
0 0 0 1 0 0 0 1( ) ( ) ( ) ( ) , ( ) ( ) ( ) ( )n n n n n nS x P x P x S x S x P x P x S x ;
120
anularea derivatei secunde în capetele intervalului: " " " "
0 0 0 10 , 0.n n nS x P x S x P xFunc iile spline care îndeplinesc aceste condi ii se numesc func iispline cubice normale. derivata de ordinul al treilea ale func iei S este continu în punctele x1 i xn-1 Aceasta înseamn c polinoamele
0 1,P P respectiv 2 1,n nP P coincid. Acest tip de spline se nume te„not – a – knot” i este utilizat în MATLAB.
Ne vom ocupa în continuare de determinarea func iei spline de interpolare în cazul în care sunt cunoscute valorile derivatei func iei
( ) în i .f x a bRecapitulând vom avea urm toarele condi ii :
1
1
' '1
" "1
( ) , 0, , 1, ( ) interpolare ,( ) ( ) , 1, , 1, continuitatea func iei ,
( ) ( ) , 1, , 1, continuitatea primei derivatei,
( ) ( ) , 1, ,
i i i n n n
i i i i
i i i i
i i i i
P x y i n P x yP x P x i n SP x P x i nP x P x i n
' '0 0 1
1, continuitatea derivatei secunde,
( ) '( ), ( ) ' .n nP x f a P x f bVom nota ''( ) , 0, .i iS x A i n inând seama de faptul c func ia
'' ,S C a b este o func ie liniar pe fiecare din intervalele 1,i ix xrezult c , notând cu 1 , 0, 1i i ih x x i n , vom avea:
" 11 1( ) , [ , ] , 1, , 1i i
i i i ii i
x x x xS x A A x x x i nh h
iar din ' " '( ) ( ) , ( ) ( )S x S x dx S x S x dx rezult :2 2
' 11 1( ) , [ , ] , , 0, 1,
2 2i i
i i i i i ii i
x x x xS x A A x x x i n
h h
3 31
1 1( ) , [ , ] , , , 0, 1,6 6
i ii i i i i i i i
i i
x x x xS x A A x x x x i n
h h
3 31
1( ) , , , 0, 1,6 6
i ii i i i i i i
i i
x x x xP x A A x i n
h hImpunând condi iile de interpolare i de continuitate vom ob ine:
121
2
2
1 1 1 1
( ) ,6
( ) 0, 1.6
ii i i i i i i
ii i i i i i i
hP x A x y
hP x A x y i n
Din aceste rela ii determin m 1 1i în func ie de , , ,i i i i i iA A y y :
11
1 11 1
,6
, 0, 1.6
i i ii i i
i
i i i i ii i i i i
i
y y h A Ah
x y x y h x A x A i nh
Din condi ia:2 2
' ' ' 0 10 0 0 1 0 0
0 0
( ) ( ) , inând seam de ( )2 2
x x x xP x f a P x A A
h hrezult
'1 00 0 0 1
0
2 6 ( )y yh A h A f ah
(18)
Din condi ia de continuitate a primei derivate a func iei spline cubice ' '1( )i i i iP x P x inând seama de:
2 2' 11 1 1
1 1
( ) ,2 2
i ii i i i
i i
x x x xP x A A
h h2 2
' 11( ) ,
2 2i i
i i i ii i
x x x xP x A A
h hrezult , utilizând valorile pentru 1 ii i deduse mai sus:
' 1 1 11 1
1
' 11
( )2 6
( )2 6
i i i ii i i i i
i
i i i ii i i i i
i
h y y hP x A A Ah
h y y hP x A A Ah
sau
1 11 1 1 1
1
2( ) 6 ,
1, , 1.
i i i ii i i i i i i
i i
y y y yh A h h A h Ah h
i n (19)
În final, din condi ia:2 2
' ' ' ' 11 1 1 1
1 1
( ) ( ) ( ) din ( )2 2
n nn n n n n n
n n
x x x xS b P x f b P x A A
h h
122
ob inem: ' '1 1 1
1 11
( ) ( ) ,2 6n n n n
n n n n nn
h y y hP x A A A f bh
sau
' 11 1 1
1
2 6 n nn n n n
n
y yh A h A f bh
(20)
Sistemul liniar (18), (19), (20) cu necunoscutele 0 1, , , nA A A are forma:
( 1) ( 1) 1, cu ,n n nHA f H f
0 0
0 0 1 1
1 1 2 2
2 2 1 1
2 0 02( ) 0
n n n n
h hh h h h
h h h hH
h h h h
1 12n nh h
'1 0
0
1 1
1
' 1
1
6 ( )
6 1, , 1
6 ( )
i i i i
i i
n n
n
y y f ah
y y y yf i nh h
y yf bh
Observând c matricea H este diagonal dominant atât pe linii cât i pe coloane rezult c putem utiliza metoda Gauss-Seidel pentru rezolvarea sistemului HA=f.
inând seam c matricea H este simetric i pozitiv definit rezult de asemenea i convergen a metodei relax rii.
În cazul func iei spline naturale avem 0 0nA A iar pentru determinarea valorilor 1 1, nA A intervin numai condi iile (19) . Sistemul liniar pentru aceste valori are forma:
1( 1) ( 1) 1
1
, , ,n n n
n
AH A f f A
A
123
în care matricea H se ob ine din matricea H din care se suprim prima iultima linie respectiv prima i ultima coloan , iar f se ob ine din vectorul f eliminând primul i ultimul element. Matricea H are acelea ipropriet i ca i matricea H.
124
Integrare numeric
Fie f : [a,b] , integrabil i p : [a,b] o func ie pondere:
( ) 0 , , , 0,b
a
p x x a b p x dx .
Ne propunem s aproxim m .b
a
p x f x dx
Rela ia
1( ) ( ) ( ) , 1, , ,
b n
i i n iia
p x f x dx c f x R f x a b i n (1)
se nume te formul de cuadratur / integrare numeric .Punctele ix sunt nodurile formulei de cuadratur , ic sunt coeficien iisau ponderile formulei.
Ordinul de exactitate al formulei (1)Fie m mul imea polinoamelor de grad cel mult m. Se nume te ordin de exactitate al formulei de cuadratur (1) num rul natural m N pentru care:
1( ) 0 , i astfel î ncâ t ( ) 0.n m m nR P P Q R Q
Tipuri de formule de cuadratur
Fie o clas de func ii integrabile pe intervalul [a,b]. Se determinii ic x astfel ca:
( ) 0 , .nR f fAlegerea clasei de referin conduce la ob inerea diverselor tipuri de formule de cuadratur .
Formule interpolative Se consider interpolarea Lagrange pe nodurile 1 2, , , nx x x :
1( ) ( ) ( )n nf x L x r x .Integrând de la a la b în ambii membrii ob inem:
1( ) ( ) ( ) ( ) ( ) ( ) .b b b
n na a a
p x f x dx p x L x dx p x r x dx
inând seam de:
125
1 '1 1
( )( ) , ( ) ( )( ) ( )
nnn
n i n ji ji n i
w xL x f x w x x xx x w x
,
rezult c :
1
1
1 ( ) ( ) ,( )
( ) ( ) ( )
b n
i jnjaj ii j
jj i
b
n na
c p x x x dxx x
R f p x r x dx
Observa ie. Dac 1, ,nf P P inând seam de restul în interpolarea
Lagrange pentru func ii de clas [ , ]nC a b ,( ) ( )( ) ( ) 0
!
n
n nPr x w x
nrezult ( ) 0.nR P Rezult c pentru formulele de cuadratur de tip interpolativ ordinul de exactitate este cel pu in n-1. În formulele de tip interpolativ ,i ix c se aleg asfel încât ordinul de exactitate s fie maxim. O alt clasificare a formulelor de cuadratur se face în raport cu dispunerea nodurilor 1 i în intervalul [ , ].nx x a b
formule de tip închis : 1 , ,nx a x bformule de tip deschis : 1 , ,nx a x bformule de tip închis – deschis : 1 , ,nx a x bformule de tip deschis – închis : 1 , .nx a x b
Formule iterateSe consider o divizare 1 2 Na X X X b i descompunerea:
1 2
0 1 1
( ) ( ) ( ) ( )N
N
XX Xb
a X X X
f x dx f x dx f x dx f x dx .
Pentru fiecare integral1
( )k
k
X
X
f x dx se utilizeaz o formul simpl de
cuadratur .
126
Formule de cuadratur NEWTON-CÔTES
Se consider func ia pondere ( ) 1, [ , ]p x x a b i nodurile 1 2 na x x x b
fixate. Pentru calculul integralei ( )b
a
f x dx , :[ , ] ,f a b integrabil
pe intervalul [a,b], vom face schimbarea de variabil2 2
a b b ax t
astfel ca: 1 1
1 1
( ) ( ) ( ) .2 2 2 2
b
a
b a a b b a b af x dx f t dt g t dt
Construim polinomul de interpolare Lagrange pentru func ia1( ) ( ) ( )n ng t L t r t în care:
11 1
( ) ( ) , , ( ) ( ).2 2
nnj
n i i i i ii j i j
j i
t t a b b aL t g t x t g t f xt t
In ipoteza [ , ]nf C a b , restul în interpolarea Lagrange este:( )
, 1,1 ,!
n
n ng
r t w tn
cu 1
,n
n jj
w t t t
, , .2 2 2
nnn n
nt
d a b b a b ag f t f a bdt
Rezult :11 1
1 11 12 2 !
nnb nnj
i ni j i ja
j i
f tt tb a b af x dx f x dt w t dtt t n
Not m: 1 1
'11 1
1 12 2
nn j n
ij i j n i ij i
t t w tI dt dt
t t w t t t .
1 1
12 !
nn
n n
f tb aR f w t dtn
Am ob inut formula de cuadratur Newton-Côtes :
1( )
b nn
i i nia
f x dx I f x R f (2)
127
Observa ii1.Coeficien ii n
iI nu depind de func ia f, prin urmare pot fi calcula i itabela i pentru o reparti ie dat a nodurilor xi.2. Dac utiliz m formula (2) pentru 1f , în formula de interpolare vom
avea1
( ) 0 (1) 0 , astfel c 1 ( ) .1b n
nn n i
ia
r x R b a dx b a I din
care rezult :
1
1n
ni
iI
3.Pentru restul în formula de cuadratur , în ipoteza [ , ]nf C a b , se poate ob ine majorarea:
1
1
1
, în care2
1!
sup ; [ , ]
nn
n n
n n
n n
b aR f c f
c w t dtn
f f x x a b
4. Presupunem c nodurile xi sunt simetrice dou câte dou fa de
mijlocul intevalului [a,b]. Aceata implic 11, 1,2, , .
2i n int t i
Avem:
11 1 1
1 1 1 ( )n n n
n n nn i i n i n
i i i
w t t t t t t t w t
i 1' '( ) 1 .nn nw t w t
În integrala prin care se determin niI facem schimbarea de variabil
t i ob inem: 1 1
' '1 1
1 12 2
n n ni
i n i i n i
w t wI dt d
t t w t t w tînlocuind în ultima integral 1cui n it t ob inem:
1
11 '1 1 1
112 ( ) 1
nn nn
i n inn i n n i
wI d I
t w tDeci în ipoteza simetriei nodurilor fa de mijlocul intervalului avem:
111,2, .
2n n
i n inI I i
128
Avem urm torul tabel cu coeficien i:
Gradul=> 1 2 3 4 5 6 7 8 9 10
K 2 3 8 45 288 140 17280 14175 89600 299376
I1 1 1 3 14 95 41 5257 3956 25713 80335
I2 1 4 9 64 375 216 25039 23552 141669 531500
I3 1 9 24 250 27 9261 -3712 9720 -242625
I4 3 64 250 272 20923 41984 174096 1362000
I5 14 375 27 20923 -18160 52002 -1302750
I6 95 216 9261 41984 52002 2136840
I7 41 25039 -3712 174096 -1302750
I8 5257 23552 9720 1362000
I9 3956 141669 -242625
I10 25713 531500
I11 80335
Formula de cuadratur Newton Cotes se ob ine utilizând tabelul de mai sus astfel:
1
( )( ) ( ) ( ) ,
, ( 1) , 1, ,1
b n
i i nia
i
b af x dx I f x R fK
b ah x a i h i nn
Remarc m faptul c pentru n=8 i n=10 apar i coeficien i negativi. Pentru n > 10 vor exista întotdeauna coeficien i negativi.
Observa ie Pentru n = 10 printre ponderile metodei Newton–Cotes 4 sunt negative. Pentru intervalul [-1,1] nodurile de cuadratur sunt
1 0.2 , 0, ,10kx k k iar ponderile:
10 10 10 10 10 100 10 1 9 2 8
10 10 10 10 103 7 4 6 5
16067 26575 -16175,299376 74844 99792
5675 - 4825 17807, ,6237 5544 12474
I I I I I I
I I I I I
Consider m func ia : 1,1f fragmentar liniar :
129
10
10 101 1 1
sign( ) , 0, ,10 ,( )
( )sign( ) sign( ), , , 0, ,9.i i
i i i i i i
I x x if x
x x I x x I x x x i
cu graficul:
-1 -0.5 0.5 1
-1
-0.5
0.5
1
Avem1
1
0,4.f x dx
Aplicând metoda Newton Cotes pentru aproximarea integralei vom ob ine:
10 1010 10
0 0j j j
j jI f x I 6.1259
cu eroarea absolut :1 10
10
01j j
jf x dx I f x 5.7259.
Din acest exemplu rezult c m rirea ordinului de exactitate polinomialnu conduce în orice situa ie la îmbun t irea aproxim rii integralei definite.
Formulele NEWTON – CÔTES pe noduri echidistante de tip închis
Formula trapezului Pentru n = 2 vom avea 1 2 1 2, , 1, 1.x a x b t tDin rela iile:
2 21 2
2 21 2
1,I I
I Irezult :
2 21 1
1 ,2
I I
130
ob inând formula de cuadratur a trapezului:
22
b
a
b af x dx f a f b R f (3)
în care pentru 2 ,f C a b avem: 3
2
'''' , , .
2 12
b
a
f x b aR f x a x b dx f a b
Interpretarea geometric :
Aria cuprins între axa X –segmentul [a,b], segmentele AA’, BB’ i
graficul curbei y=f(x) a c rei valoare este dat de ( )b
a
f x dx este
aproximat prin 2
b a f a f b care reprezint aria trapezului
AA’B’B.
Formula de cuadratur a lui SIMPSON
În metoda Newton – Côtes pentru n=3 pentru nodurile:
1 2 3 1 2 3, , , 1, 0, 12
a bx a x x b t t t ,
folosind rela iile:
131
3 3 31 2 3
3 31 3
13 3
1 31
1,
11 12 1 0 1 1 6
I I I
I I
t tI dt I
rezult 32
2 .3
I
În ipoteza 4 ,f C a b se ob ine formula de cuadratur a lui Simpson: 5 4 ( )4
6 2 2 90
b
a
b a a b b a ff x dx f a f f b (4)
Formula de cuadratur a lui SIMPSON (3/8)
Pentru n=4 nodurile echidistante sunt:
1 2 3 4 1 2 3 42 2 1 1, , , 1, , 1
3 3 3 3a b a bx a x x x b t t t t ,
Not m cu 3
b ah i ob inem astfel formula lui Simpson (3/8) pentru 4 ,f C a b :
452 3
3 3 38
b
a
f x dx h f a f x f x f b h f (5)
Formula de cuadratur a lui BOOLE
Pentru n=5 considerând nodurile:
( 1) , 1, ,5 cu4i
b ax a i h i h ,
în ipoteza 6 ,f C a b ob inem formula de cuadratur a lui Boole :
2 3 4
67
2 7 32 12 32 745
b
a
hf x dx f a f x f x f x f b
h f
132
Formule iterate
Se consider o divizare a intervalului [a,b] în N subintervale de lungime b aH
Nprin nodurile , 0,1, , .ix a iH i N În rela ia:
11
0
i
i
xb N
ia x
f x dx f x dx
pentru fiecare din integralele 1i
i
x
x
f x dx aplic m formula trapezului:
31 1"11
10 0
31 1"
1 0
2 12
22 12
b N Ni ii i
i i ii ia
N N
i ii i
x xx xf x dx f x f x f
H Hf a f x f b f
Se ob ine asfel formula trapezelor sau formula iterat a trapezului: 1
2 "
12
2 12
b N
iia
H b af x dx f a f x f b H f
Consider m divizarea intervalului [a,b] în 2N subintervale de lungime
2b aH
N prin nodurile , 0,1, ,2 .ix a iH i N În rela ia:
2 2
2
1
0
i
i
xb N
ia x
f x dx f x dx
pentru fiecare din integralele din sum aplic m formula lui Simpson ob inând:
12 2 2
2 2 1 2 20
5142 2 2
0
46
190 2
b Ni i
i i iia
Ni i
ii
x xf x dx f x f x f x
x x f
sau1 1
2 1 20 1
44
4 2 ( )3
.180
b N N
i ii ia
Hf x dx f a f x f x f b
H b a f
(6)
Formula (6) poart numele de formula lui Simpson iterat .
133
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 fişier .lib astfel încât pentru utilizare este necesară legarea aplicaţiei scrise în C sau C++ cu fişierul bibliotecă SciMath.
Algebră liniară
mtlsbs: Rezolvarea sistemelor liniare gjmtxl: Rezolvarea sistemelor liniare utilizând metoda Gauss-Jordan mtudec: Factorizarea LU a unei matrici bandă nesimetrice mtvmul: Produs matrice vector lbacks: Rezolvarea sistemelor liniare cu metoda substituţiei inverse mtcond: Estimarea numărului de condiţionare pentru factorizarea LDL lnchol: Factorizarea Cholesky
Rădăcinile polinoamelor. Rezolvarea sitemelor de ecuaţii neliniare
czerop: Zerourile polinoamelor complexe rsreal: Determinarea unei rădăcini reale rzernl: Rezolvarea sistemelor neliniare rzrnlj: Rezolvarea sistemelor neliniare utilizând Jacobianul rtller: Calculul rădăcinilor reale/complexe ale unei funcţii rterop: Calculul zerourilor polinoamelor cu coeficienţi reali.
Cuadraturi
qsjacw: Cuadratura Gauss-Jacobi qgausq: Coeficienţii şi nodurile în cuadratura Gauss qsexaw: Cuadratura Gauss-Hermite quslog: Cuadratura Gauss
134
Aproximare /Interpolare /Extrapolare ctsqls: Ecuaţii liniare complexe. Soluţie în sensul celor mai mici patrate intplt: Interpolarea polinomială bidimensională intpol: Interpolarea polinomială sinteg: Integrare cu funcţii spline csplit: Aproximare cu funcţii spline cubice chbfit: Aproximare Lagrange chbint: Integrarea unei funcţii 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
135
NUMERICAL ALGORITHM GROUP(NAG)
Colec ie de func ii C (NAGC.DLL) Din categoria algoritmilor pentru algebra liniar :f01 – Factorizarea Matricilor
Numele rutinei
Realizeaz
f01bnc nag_complex_choleskyFactorizarea UUH a unei matrici complexe Hermitiene pozitiv definite
f01mcc nag_real_cholesky_skylineFactorizarea LDLT a unei matrici reale simetrice pozitiv definite, band
f01qcc nag_real_qrFactorizarea QR a unei matrici reale m n (m n)
f01qdc nag_real_apply_qCalculeaz QB sau QT B dup factorizarea realizat cu f01qcc
f01rcc nag_complex_qrFactorizarea QR a unei matrici complexe m n (m n)
f01rdc nag_complex_apply_qCalculeaz QB sau QH B dup factorizarea realizat cu f01rcc
f02 – Valori i vectori proprii
Numele rutinei
Realizeaz
f02aac nag_real_symm_eigenvaluesToate valorile proprii ale unei matrici reale simetrice.
f02abc nag_real_symm_eigensystemToate valorile proprii i to i vectorii proprii pentru matrici reale simetrice.
136
f02afc nag_real_eigenvaluesToate valorile proprii ale unei matrici reale.
f02agc nag_real_eigensystemToate valorile proprii i to i vectorii proprii pentru matrici reale
f02awc nag_hermitian_eigenvaluesToate valorile proprii ale unei matrici complexe hermitiene.
f02axc nag_hermitian_eigensystemToate valorile proprii i to i vectorii proprii pentru matrici complexe hermitiene
f02ecc nag_real_eigensystem_selCalculul unor valori proprii selectate i a vectorilor proprii pentru o matrice real general .
f02gcc nag_complex_eigensystem_selCalculul unor valori proprii selectate i a vectorilor proprii pentru o matrice complex general .
f02wec nag_real_svdSVD pentru matrici reale (Descompunerea dup valorile singulare)
f02xec nag_complex_svdSVD pentru matrici complexe
f03 – Determinan i
Numele rutinei
Realizeaz
f03aec nag_real_choleskyFactorizare LLT i determinantul unei matrici reale, simetrice , pozitiv definite .
f03afc nag_real_luFactorizare LU i determinantul unei matrici reale
f03ahc nag_complex_luFactorizare LU i determinantul unei matrici complexe
137
f04 – Sisteme de ecua ii liniare
Numele rutinei
Realizeaz
f04adc nag_complex_lin_eqn_mult_rhsSolu ia aproximativ a sistemelor liniare complexe cu membri drep i multipli .
f04agc nag_real_cholesky_solve_mult_rhsSolu ia unui sistem cu matrice real , simetric , pozitiv definit .
f04ajc nag_real_lu_solve_mult_rhsSolu ia unui sistem real de ecua ii liniare
f04akc nag_complex_lu_solve_mult_rhsSolu ia unui sistem complex de ecua ii liniare.
f04arc nag_real_lin_eqnSolu ia unui sistem real de ecua ii liniare.
f04awc nag_hermitian_lin_eqn_mult_rhsSolu ia unui sistem de ecua ii liniare cu matrice complexhermitian , pozitiv definit
f04mcc nag_real_cholesky_skyline_solveSolu ia unui sistem cu matrice real , simetric , pozitiv definit . Matricea coeficien ilor factorizat în prelabil cu f01mcc.
f07 – Ecua ii Liniare (LAPACK)
Numele rutinei
Realizeaz
f07adc nag_dgetrfFactorizarea LU a unei matrici reale de tip (m,n)
f07aec nag_dgetrsRezolvarea unui sistem liniar de ecua ii reale cu membrii drep i multipli utilizând factorizarea f07adc
138
f – Algebra Liniar
nag real lu (f03afc)
1. Obiectiv nag real lu (f03afc) calculeaz factorizarea LU a unei matrici reale , cu pivotare par ial i evaluarea determinantului
2. Specificare #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. Descriere Aceast func ie calculeaz factorizarea LU a unei matrici reale A cu pivotare par ial 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.
4. Parametri n
Intrare : n, ordinul matricii A.Restric ie: n 1.
a[n][tda]Intrare matricea A de tip n n . Ie ire : A con ine în partea triunghiular inferior matricea L , în partea strict triunghiular superior matricea U f r elementele de pe diagonala acesteia care sunt = 1..
tda Intrare: dimensiunea dominant a matricii a a cum a fost declarat în func ia care apeleaz nag real lu Restric ie : tda n.
pivot[n]Ie ire : pivot[i 1] con ine indicele de linie al pivotilui i .
detf , dete Ie ire determinantul lui A este dat de detf × 2.0dete . Se utilizeaz aceast form pentru a evita dep irileinferioare/superioare ..
139
fail Parametru de eroare NAG5. Mesaje de eroare i avertizare
NE SINGULARMatricea 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 dec t 1 : n = value NE 2 INT ARG LT <value> In intrare tda trebuie s fie tda n. : n = value NE ALLOC FAIL Alocarea memoriei e uat
6. Timpul de execu ie este aproximativ propor inal cu n3
7 Referin eWilkinson J H and Reinsch C (1971) Handbook for Automatic
Computation (Vol II, Linear Algebra) Springer-Verlag pp 93 – 110..
8. Exemplu Se consider matricea
33 16 7224 10 578 4 17
140
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" : " ");
141
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 intraref03afc Example Program Data
3
33 16 72 -24 -10 -57 -8 -4 -17
8.3. Rezultatef03afc 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 = 4Valoarea determinantului = 6.0000
142
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. Specificare #include <nag.h> #include <nagf02.h> void nag_real_symm_eigenvalues(Integer n, double a[], Integer tda, double r[], NagError *fail)
3. Descriere Func ia reduce matricea real simetric A la o matrice real simetrictridiagonal prin metoda lui Householder. Valorile proprii ale matricii tridiagonale sunt determinate prin algoritmul QL.
4. Parametri
nIntrare : n, ordinul matricii A.Restric ie: n 1.
a[n][tda]Intrare: partea inferior triunghiular a matricii simetrice A . Elementele situate deasupra diagonalei nu sunt ini ializate . Ie ire : elementele lui A situate sub diagonal sunt modificate restul matricii r mâne neschimbat. .
tda Intrare: a doua dimensiune a matricii a a cum a fost declarat în func ia care apeleaznag real symm eigenvaluesRestric ie : tda n.
r[n]Ie ire : valorile proprii în ordine cresc toare.
143
fail Parametru de eroare NAG
5. Mesaje de eroare i avertizareNE TOO MANY ITERATIONS <value>
Sunt necesare mai mult de value itera ii pentru a izola toate valorile proprii.
NE INT ARG LT <value> In intrare n nu poate fi mai mic dec t 1 : n = value
NE 2 INT ARG LT <value> In intrare tda trebuie s fie tda n. : n = value NE ALLOC FAIL Alocarea memoriei e uat
6. Timpul de execu ie este aproximativ propor inal cu n3
7 Referin eWilkinson J H and Reinsch C (1971) Handbook for Automatic
Computation (Vol II, Linear Algebra) Springer-Verlag pp 212–226 and 227–240.
8. Exemplu Se consider matricea simetric
0.5 0.0 2.3 2.60.0 0.5 1.4 0.72.3 1.4 0.5 0.02.6 0.7 0.0 0.5
144
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);}
145
8.2. Date de intraref02aac Date
4
0.5 0.0 2.3 -2.60.0 0.5 -1.4 -0.72.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 func iei
Scop
c02afc nag_zeros_complex_polyZerourile unui polinom cu coeficien i complec i
c02agc nag_zeros_real_polyZerourile unui polinom cu coeficien i reali
c02akc nag_cubic_rootsZerourile unui polinom de gradul 3 cu coeficien ireali
c02alc nag_quartic_rootsZerourile unui polinom de gradul 4 cu coeficien ireali
146
IMSL – Visual Numerics International Mathematical and Statistical Library
Con ine programe din urm toarele domenii: valori i vectori proprii, sisteme algebrice liniare, interpolare,integrare i derivare numeric ,ecua ii diferen iale ordinare i cu derivate par iale,transform ri,ecua ii neliniare, optimiz ri,statistic .
LSARG/DLSARG (Single/Double precision)
Rezolvarea unui sistem de ecua ii algebrice liniare reale.
Utilizare (FORTRAN) CALL LSARG (N, A, LDA, B, IPATH, X) Argumente N — Num rul ecua iilor (Intrare)A — Matrice N N con inând coeficien ii sistemului liniar (Intrare) LDA — Dimensiunea dominant prev zut în declara ia de dimensiune din programul apelant (Intrare) B — Vector N-dimensional con inând termenii liberi (Intrare)
IPATH (Intrare)IPATH = 1 se rezolv sistemul AX = B .IPATH = 2 se rezolv sistemul ATX = B.X — Vector N-dimensional con inând solu ia sistemului liniar (Ie ire)
Commentarii 1. Utilizarea spa iului de lucruLSARG N2 + 2N unit i,DLSARG 2N2 + 3N unit i.
Spa iul de lucru poate fi stabilit explicit prin utilizarea subprogramelorL2ARG/DL2ARG. Apelul este de forma: CALL L2ARG (N, A, LDA, B, IPATH, X, FAC, IPVT, WK) În care argumentele adi ionale sunt :
147
FAC — vector de lucru de dimensiune N2 con inând factorizarea LU amatricii A (Ie ire)IPVT —vector de întregi de dimensiune N con inând informa ii privind pivotarea în factorizarea LU (Ie ire)WK — vector de lucru de dimensiune N.
LFCRG/DLFCRG (Single/Double precision)
Calculeaz factorizarea LU a unei matrici reale i estimeaz num rul de condi ionare
Utilizare CALL LFCRG (N, A, LDA, FAC, LDFAC, IPVT, RCOND)
LFDRG/DLFDRG (Single/Double precision)
Calculeaz determinantul unei matric dat fiind factorizarea LU a matricii.
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 ecua ii liniare .
Utilizare CALL LSLRT (N, A, LDA, B, IPATH, X)
LFCDS/DLFCDS (Single/Double precision)
Calculeaz factorizarea Cholesky RTR a unei matrici reale, simetrice ipozitiv definite i estimeaz num rul de condi ionare.
148
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 — Num rul datelor de intrare . (Intrare) (NDATA este cel pu in3)XDATA — Vector de lungime NDATA con inând valorile nodurilor . (Intrare) (Nodurile sunt distincte ) FDATA — Vector de lungime NDATA con inând valorile func iei.(Intrare)IBREAK — Num rul punctelor de racord pentru func ia fragmentar cubic . (Iesire) IBREAK < 2 * NDATA. BREAK — Vector de lungime IBREAK con inând pt. de racord ale reprezent rii fragmentar cubice (Iesire) (Dimensiunea lui BREAK este cel pu in 2 * NDATA.) CSCOEF — Matrice de dimensiune (4 ,N ) în care N este dimensiunea lui BREAK. (Iesire) (Con ine, pe coloane, coeficien ii func iilor cubice pe subintervale.) Comentarii1. Utilizarea automat a spa iului de lucru esteCSCON 11 * NDATA 14 unit i, sau DCSCON 21 * NDATA 28 unit i.
Spa iul de lucru poate fi precizat explicit prin utilizarea subprogramelor C2CON/DC2CON.Apelarea este de formaCALL C2CON (NDATA, XDATA, FDATA, IBREAK, BREAK,CSCOEF, ITMAX, XSRT, FSRT, A, Y, DIVD,ID, WK) In care argumentele suplimentarea au urm toarea semnifica ie:ITMAX - Num rul maxim de itera ii pentru metoda lui Newton (Intrare) XSRT- Vector de lucru de lungime NDATA în care se p streaz valorile XDATA sortate.
149
FSRT —Vector de lucru de lungime NDATA în care se p streazvalorile 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 func ia spline se evalueaz . (Intrare) NINTV —Num rul intervalelor. (Intrare) BREAK — Vector de lungime NINTV + 1 con inând punctele de racord în reprezentarea fragmentar cubic a func iei spline . (Intrare) Elementele din BREAK trebuie s fie în ordine strict cresc toareCSCOEF — Matrice de dimensiune (4 , NINTV + 1 ) care con ine , pe coloane, coeficien ii func iilor cubice pe subintervale. (Intrare) CSVAL — Valoarea func iei spline în X. (Iesire)
CSINT/DCSINT (Simpla/Dubla precizie)
Calculeaz interpolantul spline cubic
Utilizare CALL CSINT (NDATA, XDATA, FDATA, BREAK, CSCOEF) Argumente NDATA — Num rul datelor de intrare . (Intrare) NDATA este cel pu in 2. XDATA — Vector de lungime NDATA con inând valorile absciselor . (Intrare)Abscisele sunt distincte . FDATA — Vector de lungime NDATA con inând valorile ordonatele. (Intrare)BREAK — Vector de lungime NDATA con inând punctele de racord ale reprezent rii fragmentar cubice . (Iesire) Dimensiunea lui BREAK este cel pu in 2 * NDATA. CSCOEF — Matrice de dimensiune (4 ,NDATA ). (Iesire) Con ine , pe coloane, coeficien ii func iilor cubice pe subintervale .
150
MATLABprodus al companiei The MathWorks Inc.
Interpolare polinomialFunc ia interp1 utilizeaz tehnici de aproximare polinomial pentru aproximarea valorilor unei func ii
yi = interp1(x,y,xi,metoda)
x – vector con inând nodurile de interpolare; y – vector con inând valorile func iei în noduri; xi – vector con inând punctele în care se interpoleaz func iametoda – ir de litere prin care se precizeaz metoda de interpolare: `nearest’ – se atribuie valoarea func iei corespunz toare celui mai apropiat nod de interpolare `linear’ – pe nodurile de interpolare se construie te o func ie spline liniar pentru care se calculeaz valorile yi corespunz tor 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 xse aplic metoda specificat pentru extrapolare sau se utilizeaza func iainterpl 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)
151
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)
152
Cuadraturi numerice
Pentru aproximarea integralei definite
( )b
a
f x dx
se utilizeaz func ia quad ; q = quad(fun,a,b)
aproximeaz integrala func iei fun de la a la b cu o eroare de ordinul lui10-6 utilizând 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.
153
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 a b-a q 5 0.0000000000 1.00000000e+001 3.7613187551 7 0.0000000000 5.00000000e+000 0.6970411903 9 0.0000000000 2.50000000e+000 1.8008605052
11 2.5000000000 2.50000000e+000 -1.0846352873 13 5.0000000000 5.00000000e+000 1.0924896452 15 5.0000000000 2.50000000e+000 -0.0629632340 17 7.5000000000 2.50000000e+000 1.1855204732
SS = 1.8388
>>SS = quad('sin(x)',0.0,10.0,0.001,1);
5 0.0000000000 1.00000000e+001 3.7613187551 7 0.0000000000 5.00000000e+000 0.6970411903 9 0.0000000000 2.50000000e+000 1.8008605052
11 0.0000000000 1.25000000e+000 0.6846762159 13 1.2500000000 1.25000000e+000 1.1164636596 15 2.5000000000 2.50000000e+000 -1.0846352873 17 2.5000000000 1.25000000e+000 0.0194157015 19 3.7500000000 1.25000000e+000 -1.1042192499 21 5.0000000000 5.00000000e+000 1.0924896452 23 5.0000000000 2.50000000e+000 -0.0629632340 25 7.5000000000 2.50000000e+000 1.1855204732 27 7.5000000000 1.25000000e+000 1.1274786602 29 8.7500000000 1.25000000e+000 0.0582257246
SS = 1.8391
Se observ diferen ele între valorile ob inute i num rul evaluarilor func iei corespunz tor toleran elor specificate.
154
Mathematica
Mathematica este un produs software realizat de WOLFRAM Research Inc. Informa ii se gasesc pe site-ul www.wolfram.com. Prima versiune a ap rut î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 prezintfunc iile NewtonCotesWeights[Num r_noduri, a, b]returneaz perechile {xi , Ii}Se ini ializeaz 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]= (6)156253024
f
Func ia NewtonCotesError[Num r_noduri, f, a, b] – în care f este func ia de integrat de clas (Num r_noduri+1) returneaz o evaluare pentru eroarea de aproximare a integralei
Pentru integrarea unei functii interpolante se ini ializeaz pachetul NumericalMath`NIntegrateInterpolatingFunct
In[7]:= << NumericalMath`NIntegrateInterpolatingFunct`
Se interpoleaz func ia Sin[x] pe nodurile echidistante din intervalul [0,4] cu pasul h=0.5;
155
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 func iei [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 -> - b d
bc ad, y-> - a c
bc ad}}
LinearSolve[m, {p,q}] { dp bq
bc ad, cp aq
bc ad}
n=Inverse[m] {{ d
bc ad, b
bc ad},{ c
bc ad, a
bc ad}}
f=m.n {{ bc
bc ad+ ad
bc ad, 0},{0, bc
bc ad+ ad
bc ad}}
Solve[x^2==0.5,x] {{x ->0.707107},{x->0.707107}}
156
Multe din bibliotecile de mai sus sunt scrise în FORTRAN. Exist un program f2c care transform fi ierele FORTRAN în fi iere C. Prezent mîn continuare un exemplu de utilizare a acestui program. In stânga este prezentat programul FORTRAN care calculeaz produsul scalar a doi vectori iar în dreapta avem ‘traducerea’ lui în C.
Utilizarea programului f2c
FORTRAN C 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
/* 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.htmlhttp://cm.bell-labs.com/netlib/f2c/mswin/
157
Bibliografie
1. C. Ignat, C. Ilioi, T. Jucan, Elemente de informatic i calcul numeric, vol. 1, Ed. Universit ii “Al.I.Cuza”, Ia i, 1987.
2. C. Ilioi, Analiz numeric , vol. 1 i 2, Ed. Universit ii“Al.I.Cuza”, Ia i, 1983.
3. T.A. Beu, Calcul numeric în C, Ed. Albastr , Cluj, 2000. 4. D. Larionescu, Metode numerice, Ed. Tehnic , Bucure ti, 1989. 5. C. Berbente, S. Mitran, S. Zancu, Metode numerice, Ed.
Tehnic , Bucure ti, 1997. 6. G. Dahlquist, Å. Björk, 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, Bucure ti,
1994.9. I. Dragot , Metode de calcul numeric, Ed. Didactic i
Pedagogic , Bucure ti,199810. B. Dumitrescu, C. Popeea, B. Jora, Metode de calcul numeric
matriceal. Algoritmi fundamentali, Ed. ALL, Bucure ti, 1998. 11. P.G. Ciarlet, Introduction á l’analyse numérique matricielle et á
l’optimisatio, 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, edi ia online.
Teme de laborator
Laboratorul nr. 1
1. Sa se gaseasca cel mai mic numar pozitiv u > 0, de forma u = 10−m,astfel ca:
1.0⊕ u 6= 1.0
unde prin ⊕ am notat operatia de adunare efectuata de calculator.Numarul u poarta numele de precizia masina.
2. Fie numerele a = 1.0, b = u, c = u, unde u este precizia masinacalculata anterior. Sa se verifice ca operatia de adunare efectuata decalculator nu este asociativa, i.e.:
(a⊕ b)⊕ c 6= a⊕ (b⊕ c)
3. Aproximarea functiilor sin si cos cu ajutorul dezvoltarii ın serie Taylor:
sin x =∞∑
n=0
(−1)nx2n+1
(2n + 1)!=
∞∑
n=0
sn , sn =(−1)nx2n+1
(2n + 1)!(1)
cos x =∞∑
n=0
(−1)nx2n
(2n)!=
∞∑
n=0
tn , tn =(−1)nx2n
(2n)!(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 seaproximeaza astfel:
sin x ≈ SN =N
∑
n=0
sn , cos x ≈ TN =N
∑
n=0
tn
158
Termenii sn si tn se calculeaza folosind formulele de recurenta:
s0 = x , sn+1 = − x2
(2n + 2)(2n + 3)sn n = 0, 1, . . . , N − 1
t0 = 1 , tn+1 = − x2
(2n + 1)(2n + 2)tn n = 0, 1, . . . , N − 1
Cum alegem limita superioara de sumare, numarul N? Tinand contde primul exercitiu, vom opri sumarea atunci cand termenul sn / tndevine suficient de mic:
|sn| ≤ ε , |tn| ≤ ε , ε = 10−p ≥ u
ε reprezinta precizia cu care vrem sa aproximam functiile sin si cos sieste un numar citit de la tastatura si/sau este parametru de intarare afunctiilor 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 fisiersi automat (folosind functia rand) si proceduri de afisare a vectorilor sia matricilor.
159
Laboratorul nr. 2
Tema1) Date n dimensiunea sistemului, ε - precizia calculelor, matricea A ∈
Rn×n 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 siinverse)
- sa se scrie procedurile de calcul a inversei matricilor triunghiulare.2) Date n dimensiunea matricilor, matricile A, B ∈ Rn×n sa se scrie
proceduri de adunare, scadere, ınmultire a matricilor.
Observatie Precizia calculelor ε, este un numar pozitiv de forma ε =10−m (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 saunu ı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(fabs(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 asistemului (1), trebuie ca matricea sa fie nesingulara. Determinantul matri-cilor triunghiulare este dat de folrmula:
det A = a11a22 · · ·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:
a11x1 = b1
a21x1 + a22x2 = b2...ai1x1 + ai2x2 + · · · + aiixi = bi...an1x1 + an2x2 + · · · + anixi + · · · + annxn = bi
Necunoscutele x1, x2, ..., xn se deduc folosind ecuatiile sistemului de laprima catre ultima.
Din prima ecuatie se deduce x1:
x1 =b1
a11(2)
Din a doua ecuatie, folosind (2), obtinem x2:
x2 =b2 − a21x1
a22
Cand ajungem la ecuatia i:
ai1x1 + ai2x2 + · · ·+ aii−1xi−1 + aiixi = bi
folosind variabilele x1, x2,...,xi−1 calculate anterior, avem:
xi =bi − ai1x1 − · · · − aii−1xi−1
aii
Din ultima ecuatie se deduce xn astfel:
xn =bn − an1x1 − an2x2 − · · · − ann−1xn−1
ann
Algoritmul de calcul a solutiei sistemelor (1) cu matrice inferior triunghi-ulara este urmatorul:
xi =
(bi −i−1∑
j=1aijxj)
aii, i = 1, 2, . . . , n− 1, n (3)
161
Acest algoritm poarta numele de metoda substitutiei directe.Vom considera, ın continuare sistemul (1) cu matrice superior triunghiu-
lara:
a11x1 + · · · + a1ixi + · · · + a1n−1xn−1 + a1nxn = b1
. . .
aiixi + · · · + ain−1xn−1 + ainxn = bi
. . .
an−1n−1xn−1 + an−1nxn = bn−1
annxn = bn
Necunoscutele x1, x2,...,xn se deduc pe rand, folosind ecuatiile sistemului dela ultima catre prima.
Din ultima ecuatie gasim xn:
xn =bn
ann(4)
Folosnd valoarea lui xn dedusa mai sus, din penultima ecuatie obtinem:
xn−1 =bn−1 − an−1nxn
an−1n−1
Cand ajungem la ecuatia i:
aiixi + aii+1xi+1 + · · ·+ ainxn = bi
se cunosc deja xi+1,xi+2,..., xn si deducem:
xi =bi − aii+1xi+1 − · · · − ainxn
aii
Din prima ecuatie gasim valoarea lui x1:
x1 =b1 − a12x2 − · · · − a1nxn
a11
Procedeul descris mai sus poarta numele de metoda substitutiei inverse pentrurezolvarea sistemelor liniare cu matrice superior triunghiulara:
xi =
(bi −n∑
j=i+1aijxj)
aii, i = n, n− 1, . . . , 2, 1 (5)
162
Calculul inversei unei matrici triunghiulare
Pentru orice matrice A nesingulara pentru care avem o metoda de re-zolvare a sistemului Ax = b, inversa se calculeaza astfel:
coloana j (1 ≤ j ≤ n) a matricii A−1 se obtine rezolvand sistemul:
Ax = ej (6)
unde ej este vectorul ej = (0, ...0, 1, 0, ..., 0)T unde 1 este plasat pe pozitiaj din vector. Prin urmare, pentru a gasi inversa unei matrici triunghiularevom aplica metoda substitutiei de n ori.
Se va observa ca inversele matricilor triunghiulare sunt de asemenea ma-trici triunghiulare.
163
Laboratorul nr. 3
TemaDate: n - dimensiunea sistemului, ε - precizia calculelor, matricea sistemu-
lui A ∈ Rn×n,vectorul termenilor liberi b ∈ Rn, sa se decida daca matricea Aeste singulara sau nu si ın caz ca matricea A este nesingulara sa se aproximezesolutia sistemului:
Ax = b. (1)
folosind algoritmul de eliminare Gauss cu pivotare partiala.Fie xGauss solutia aproximativa calculata. Sa se verifice solutia afisand :
|AinitxGauss − 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) folosindoperatii elementare (ce nu modifica solutia sistemului) si a aduce matricea Ala o forma superior triunghiulara . Algoritmul se desfasoara in (n− 1) pasi.La un pas l oarecare se transforma coloana l a matricii A ın formasuperiortriunghiulara fara a modifica forma triunghiulara a primelor (l− 1) coloane.
Pas l: Presupunem ca elementul de pe pozitia (l, l) numit si elementpivot este nenul, all 6= 0. Pentru i = l+1, ..., n se inmulteste linia l a matriciiA cu (−ail/all) si se aduna la linia i. Schimbare se face si asupra componentei a vectorului b. Matricea A si vectorul b se modifica astfel:
a′ij = aij −
ail
all
alj , i = l + 1, n , j = l + 1, n (2)
b′i = bi −ail
allbl , i = l + 1, n , (3)
a′il = 0 , i = l + 1, n , (4)
a′ij = aij , b′i = bi pentru restul indicilor i, j
164
Alegerea pivotului all 6= 0Pentru a aduce pe pozitia (l, l) un element nenul avem trei posibilitati:
1. Varianta fara pivotareSe alege primul indice i0 ∈ {l, l+1, · · · , n} astfel ca ai0l 6= 0. Se interschimbaliniile i0 si l ale matricii A si componentele i0 si l ale vectorului b.
2. Varianta cu pivotare partialaSe alege indicele i0 ∈ {l, l + 1, · · · , n} astfel ca
|ai0l| = max{|ail|, i = l, n}.
Se interschimba liniile i0 si l ale matricii A si componentele i0 si l ale vec-torului b.
3. Varianta cu pivotare totalaSe aleg indicii i0, j0 ∈ {l, l + 1, · · · , n} astfel ca
|ai0j0| = max{|aij|, i = l, n, j = l, n}.
Se interschimba liniile i0 si l , coloanele j0 si l ale matricii A si componentelei0 si l ale vectorului b.
Daca dupa efectuarea pivotarii (indiferent de varianta ) elementul pivoteste 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 (a′ = 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 ; sesimplificasi interschimbarea liniilor i0 si l.
3) Daca pivotul se alege folosind varianta 3., ın final trebuie sa avem grijasa restabilim ordinea initiala a componentelor vectorului solutie (tinand contde 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)
endif all = 0 then ’matrice singulara’else
beginrezolva sistem superior triunghiular; (formulele (2))verifica solutie;
endVerificarea solutieiFolosind datele initiale (nu cele modificate pe parcursul algoritmului) se
calculeaza si se afiseaza |AinitxGauss− binit| unde Ainit si binit sunt matricea sivectorul introduse initial iar xGauss este solutia calculata folosind algoritmulde mai sus. In general |AinitxGauss − binit| trebuie sa fie de ordinul 10−p cup > 4 daca s-a lucrat corect (p depinde de n dimensiunea sistemului).
x ∈ Rn, A ∈ Rn×n, y := Ax ∈ Rny = (yi)ni=1, yi =
n∑
j=1
aijxj , ∀i = 1, . . . , n
z ∈ Rn , z = (zi)ni=1 , |z| =
√
√
√
√
n∑
i=1
|zi|2
166
Laboratorul nr. 4
TemaDate: n - dimensiunea sistemului, ε - precizia calculelor, matricea sis-
temului A ∈ Rn×n, vectorul termenilor liberi b ∈ Rn, sa se calculeze, candeste posibil, o descompunere LU a matricii A (A = LU). Folosind aceastadescompunere 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:
|AinitxLU − binit|
Ainit si binit sunt datele initiale nu cele modificate pe parcursul algoritmului.
Descompunere LU
TeoremaFie A ∈ Rn×n 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 unicamatrice inferior triunghiulara L = (lij)i,j=1,...,n cu lii = 1, i = 1, . . . , n si ounica 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 ∈ Rn×n o matrice reala patratica de dimensiune n care satisfaceipotezele teoremei de mai sus. Algoritmul de calcul al matricilor L si U aren etape. La fiecare pas se determina cate o linie din matricea U si cate ocoloana din matricea L.
Pasul p (p = 1, 2, . . . , n)Se determina elementele liniei p ale matricii U , upi, i = p, . . . , n, si ele-
mentele 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∑
k=1lpkuki = (lpk = 0, k = p + 1, . . . , n) =
=p∑
k=1lpkuki = lppupi +
p−1∑
k=1lpkuki
Pentru i = p, . . . , n avem:
upi = api −p−1∑
k=1
lpkuki , i = p, . . . , n (2)
(lpp = 1 , lpk, uki k = 1, . . . , p − 1 sunt elemente de pe coloane din L silinii 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∑
k=1likukp = (ukp = 0, k = p + 1, . . . , n) =
=p∑
k=1likukp = lipupp +
p−1∑
k=1likukp
Daca upp 6= 0 putem calcula elementele nenule ale coloanei p a matricii Lastfel:
lip = (aip −p−1∑
k=1
likukp)/upp , i = p + 1, . . . , n (3)
(elementele lpk, uki k = 1, . . . , p − 1 sunt cunoscute deja la pasul p fiindcalculate 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 memoraelementele uij ale matricii U pentru i = 1, 2 . . . , n , j = i, i + 1 . . . , nsi partea strict inferior triunghiulara a matricii A pentru a memoraelementele lij ale matricii L , i = 2, 3 . . . , n , j = 1, 2 . . . , i − 1. Seobserva 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 sistemu-lui Ax = b se reduce la rezolvarea a doua sisteme triunghiulare:
Ax = b←→ LUx = b←→{
Ly = b,Ux = y.
Se rezolva ıntai sistemul inferior triunghiular Ly = b. Apoi se rezolvasistemul superior triunghiular Ux = y unde y este solutia obtinutadin rezolvarea sistemului precedent Ly = b. Vectorul x rezultat dinrezolvarea sistemului Ux = y este si solutia sistemului initial Ax = b.
169
Laboratorul nr. 5
TemaDate: n - dimensiunea sistemului, ε - precizia calculelor, matricea sis-
temului A ∈ Rn×n,vectorul termenilor liberi b ∈ Rn, sa se calculeze descom-punerea QR a matricii A si daca matricea sistemului A este nesingulara sase aproximeze solutia sistemului:
Ax = b. (1)
folosind algoritmul Givens.Sa se afiseze norma:
||Ainit −QR||unde Ainit este matricea initiala iar Q ∈ Rn×n este matricea ortogonala siR ∈ Rn×n este matricea triunghiulara superior din descompunerea QR amatricii A calculate cu algoritmul lui Givens.
Fie A o matrice reala patratica de dimensiune n. Presupunem ca pentrumatricea A avem o descompunere de forma:
A = Q ∗R (2)
unde Q este o matrice ortogonala (QT ∗Q = I) iar R este o matrice superiortriunghiulara. Avand o asemenea descompunere rezolvarea sistemului liniarAx = b se reduce la rezolvarea sistemului superior triunghiular Rx = QT bastfel:
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) =
1 0 · · · 0 · · · 0 · · · 00 1 · · · 0 · · · 0 · · · 0...0 0 · · · c · · · s · · · 0...0 0 · · · −s · · · c · · · 0...0 0 · · · 0 · · · 0 · · · 1
rij =
1 pentru i = j, i 6= p si i 6= qc pentru i = j, i = p si i = qs pentru i = p, j = q−s pentru i = q, j = p0 pentru restul indicilor i, j
unde p, q ∈ {1, . . . , n} iar c si s sunt doua numere reale care satisfac relatiac2 + s2 = 1 (c si s pot fi alesi astfel incat c = cos t, s = sin t). Dupa cumse observa , matricea R(p, q) nu depinde doar de p si q ci depinde si deparametrul t pe care l-am omis pentru a simplifica notatia.
Daca inmultim la dreapta o matrice oarecare A cu o matrice de rotatieR(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 Bare urmatoarele linii:
Bi = Ai liniile i = 1, . . . , n , i 6= p , i 6= qBp = cAp + sAq linia pBq = −sAp + cAq linia q
Algoritmul se desfasoara ın (n−1) pasi - la pasul p se transforma coloanap a matricii A ın forma superior triunghiulara .
Pasul pLa acest pas se transforma matricea A astfel:
A′ = R(p, n) · · ·R(p, p + 2)R(p, p + 1)Ab′ = 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 cadupa ınmultirea cu R(p, i) elementul aip sa devina 0.
c = app/√
a2pp + a2
ip
s = aip/√
a2pp + a2
ip
Daca a2pp+a2
ip = 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 rotatiecoincide cu matricea unitate I - nu se face nici o schimbare in matricea A.
a′ = a; b′ = b;for i = p + 1, . . . , n
begin
r =√
a2pp + a2
ip;
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
begina′
pj = c apj + s aij;a′
ij = −s apj + c aij;end
aip = 0, app = r;b′p = c bp + s bi;b′i = −s bp + c bi;a = a′; b = b′;
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 = Ila fiecare pas p se efectueaza asupra matricii QT aceleasi transformari ca
siasupra matricii A;
Pasul p se modifica astfel:
a′ = a; b′ = b; q = qT ;for i = p + 1, . . . , n
begin
r =√
a2pp + a2
ip;
if r = 0 then c = 1, s = 0 (sau next i)else c = app/r , s = aip/r;for j = p + 1, . . . , n
begina′
pj = c apj + s aij;a′
ij = −s apj + c aij;end
(se efectueaza transformarea R(p, i) ∗QT )for j = 1, . . . , n
beginqpj = c qT
pj + s qTij;
qij = −s qTpj + c qT
ij;end
a′ip = 0, a′
pp = r;b′p = c bp + s bi;b′i = −s bp + c bi;a = a′; b = b′; qT = q;
end
Dupa ce s-a adus matricea A la forma superior triunghiulara , se verificadaca nu este singulara (aii 6= 0, i = 1, . . . , n) si apoi se rezolva sistemulsuperior 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:
C ∈ Rn×n , C = (cij)ni,j=1 , ||C|| = max{
n∑
i=1
|cij| ; j = 1, . . . , n}
A, B ∈ Rn×n , P := A ∗B ∈ Rn×n P = (pij)ni,j=1 , pij =
n∑
k=1
aikbkj
174
Laboratorul nr. 6
TemaDate: n - dimensiunea sistemului, ε - precizia calculelor, matricea A ∈
Rn×n sa se aproximeze inversa matricii A (daca este nesingulara!!) utilizandmetoda Gauss-Jordan.
Sa se afiseze norma:||AinitA−1
GJ − In||unde Ainit este matricea initiala iar A−1
GJ este inversa calculata cu metodaGauss-Jordan. Pentru norma matriciala de mai sus se foloseste norma definitaın laboratorul 4.
C ∈ Rn×n , C = (cij)ni,j=1 , ||C|| = max{
n∑
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 = A−1y
y1 = a11x1 + · · ·+ a1nxn (1)y2 = a21x1 + · · ·+ a2nxn (2)...
yn = an1x1 + · · ·+ annxn (n)
In algoritmul Gauss-Jordan se procedeaza astfel: se scoate x1 dintr-una dinrelatiile de la (1) la (n) si se ınlocuieste ın toate celelalte. Relatia din cares-a scos x1 se aduce pe prima pozitie. Se scoate x2 din una din relatiile dela (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 toatevariabilele xi. Se ajunge la un sistem de forma:
x = Byτ unde yτ = Pτy =⇒ A−1 = BPτ (1)
(Pτ este o matrice de permutari care reflecta schimbarile de linii facute)Pasul p (p = 1, 2, . . . , n)
175
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 =p−1∑
j=1aijyτj
+ aipxp +n∑
j=p+1aijxj , i = 1, . . . , p− 1
yτp=
p−1∑
j=1apjyτj
+ appxp +n∑
j=p+1apjxj
yτi=
p−1∑
j=1aijyτj
+ aipxp +n∑
j=p+1aijxj , 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:
|ai0p| = max{|aip| ; i = p, . . . , n}
Daca ai0p = 0 (|ai0p| ≤ ε) atunci matricea A este singulara, inversa nu poatefi calculata.Daca ai0p 6= 0 (|ai0p| > ε), se interschimba linia p cu linia i0 si se actualizeazavectorul τ (τi0 ↔ τp). Sistemul ramane ın continuare ın aceeasi forma ca maisus. Avem:
xp = (−p−1∑
j=1
apjyτj+ yτp
−n
∑
j=p+1
apjxj)/app
Inlocuind xp ın celelalte (n− 1) relatii obtinem:
xi(i = 1, . . . , p− 1) sau yτi(i = p + 1, . . . , n) =
=p−1∑
j=1aijyτj
+n∑
j=p+1aijxj + aip(−
p−1∑
j=1apjyτj
+ yτp−
n∑
j=p+1apjxj)/app =
=p−1∑
j=1(aij − aipapj/app)yτj
+ (aip/app)yτp+
n∑
j=p+1(aij − aipapj/app)xj
Sistemul a devenit :
xi =p−1∑
j=1(aij −
aip
appapj)yτj
+aip
appyτp
+n
∑
j=p+1
(aij −aip
appapj)xj , i = 1, . . . , p− 1
xp = −p−1∑
j=1
apj
appyτj
+1
appyτp−
n∑
j=p+1
apj
appxj
yτi=
p−1∑
j=1(aij −
aip
app
apj)yτj+
aip
app
yτp+
n∑
j=p+1
(aij −aip
app
apj)xj , i = p + 1, . . . , n
176
La pasul p matricea A se transforma ın matricea A′ astfel:Pentru i = 1, . . . , n , i 6= p
a′ij = aij −
aip
appapj , j = 1, . . . , n , j 6= p
a′ip =
aip
app
Pentru i = p
a′pj = −apj
app, j = 1, . . . , n , j 6= p
a′pp =
1
app
Calculele se pot face la fiecare pas p ın matricea A, fara a mai folosi matriceaauxiliara A′. La final (dupa efectuarea pasului n) ın matricea A vom aveamatricea B din formula (1).Matricea Pτ are forma:
Pτ =
eTτ1
eTτ2
...
eTτn
= (eσ1eσ2· · · eσn
)
unde eTτi
= (0, 0, . . . , 1, . . . , 0) (1 este pe pozitia τi). Permutarea σ este inversapermutarii τ , σ = τ−1.
Pentru a obtine matricea A−1 trebuie sa facem operatia BPτ . Nu estenevoie sa se faca o ınmultire matriciala ci pentru a obtine matricea A−1 se’amesteca’ coloanele matricii B conform cu permutarea σ.
A−1 = BPτ = (Beσ1Beσ2
· · · Beσn)
unde Beσieste coloana σi a matricii B si ın acelasi timp coloana i a matricii
A−1.
177
Laboratorul nr. 7
TemaDate n dimensiunea sistemului, n ≥ 500, ε - precizia calculelor, vectorul
termenilor liberi b ∈ Rn:- sa se construiasca o matrice rara A ∈ Rn×n si sa se memoreze folosind
una din cele 2 variante economice de memorare. Presupunem ca matricea Aare 5 elemente nenule pe fiecare linie cu exceptia celui diagonal iar elementuldiagonal este suma acestor elemente nenule de pe fiecare linie:
aii =n
∑
j = 1aij 6= 0
aij , i = 1, . . . , n
- cu aceasta memorare economicaa matricii A, sa se aproximeze solutiasistemului 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 re-spectiv Gauss-Seidel.
Presupunand ca detA 6= 0. Vom nota solutia exacta a sistemului (1) cux∗.
x∗ := A−1b
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 putineelemente aij nenule). In cazul metodelor iterative matricea A nu se trans-forma (ca ın cazul algoritmului de eliminare Gauss sau descompunerilor LUsau a factorizarilor QR) ci sunt folosite doar elementele nenule ale matricii
178
pentru aproximarea solutiei x∗ (pentru matricile rare se folosesc scheme dememorare 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 apoix(k+1) se obtine din vectorul precedent x(k):
Vectorul x(0) se obisnuieste sa se initializeze cu 0:
x(0)i = 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−1Cx + B−1b
Se considera sirul:
x(k+1) = Mx(k) + d, unde M = B−1C si d = B−1b , 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 estestrict mai mica decat 1. Raza spectrala a unei matrici, ρ(M), se defineste cafiind 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 matricediagonala, B = diag[a11, a22, . . . , ann], C = B − A.
Pentru i = 1, . . . , n
x(k+1)i = (bi −
n∑
j=1,j 6=i
aijx(k)j )/aii
Metoda Gauss-Seidel
Presupunem ca aii 6= 0, i = 1, . . . , n. Matricea B este matrice inferiortriunghiulara, B = partea inferior triunghiulara a matricii A = (bij), bij = 0pentru j > i , bij = aij, pentru j ≤ i , C = B − A = (cij), cij = 0 pentruj ≤ i, cij = −aij, pentru j > i.
Pentru i = 1, . . . , n
x(k+1)i = (bi −
i−1∑
j=1
aijx(k+1)j −
n∑
j=i+1
aijx(k)j )/aii
Daca matricea A are diagonala dominanta ın raport cu liniile matricii:
|aii| >n
∑
j=1,j 6=i
|aij| , pentru toti i = 1, . . . , n
sirul {x(k)} converge la solutia x∗. Pentru metodele iterative convergenta saudivergenta 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(k−1)| ≤ ε −→ |x(k) − x∗| ≤ cε , c ∈ R (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 = xp = 0 ; k = 0 ;do{xp = xc ;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 matriciiA si informatii privind indicii de linie si coloana ale respectivelor elementeastfel ıncat sa putem reface matricea ın forma clasica.Vom nota cu NN numarul de elemente nenule ale matricii A. Vom memoraseparat diagonala matricii A ıntr-un vector diag:
diag i = aii , i = 1, . . . n
Prezentam ın continuare doua variante de memorare rara a matricilor cuputine 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 NN − n componente numere reale nenule),indici coloana (cu NN − n componente numere naturale),inceput linie (cu n + 1 componente numere naturale)
valori - contine valorile nenule ale matricii A ın ordinea liniilor (cu exceptiaelementelor diagonale)indici coloana - contine indicii de coloana ai elementelor corespunzatoare dinvalori
181
inceput linie - pozitia (indicele) ın vectorul valori a primului element nenulde pe linia i(Vom pune inceput linie[n + 1] = NN − n + 1)inceput linie[i+1] - inceput linie[i] = numarul de elemnte nenule de pe liniai (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 + elementefalse (egale cu 0)care marcheaza sfarsitul/ınceputul unei noi linii.indici coloana - contine indicii de coloana ai elementelor corespunzatoare dinvalori + elemente false care marcheaza sfarsitul/ ınceputul unei noi liniivalori[k] = 0 marcheaza sfarsitul unei linii si ınceputul liniei care ıncepe lapozitia k + 1 ın vectorul valoriind col[k] = indicele liniei care ıncepe de la pozitia k + 1
ExempluFie matricea A ∈ R5:
A =
15.3 0 3.2 0 0
1.4 10.2 1.05 0 0.33
0 0 20.3 0 0
0 1.3 0 2.45 0
0.73 0 0 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.02.03.04.05.0
, b =
5.04.03.02.01.0
Vom calcula x(1)1 si x
(1)2 cu varianta 1, varianta 2 si varianta clasica pentru
metoda Gauss-Seidel (metoda 9)).
x(1)1 = varianta clasica
= (5.0− 0.0 ∗ 2.0− 3.2 ∗ 3.0− 0.0 ∗ 4.0− 0.0 ∗ 5.0)/15.3
= varianta 1
= (b1 − valori[1] ∗ x(0)indici coloana[1])/diag 1
= (5.0− 3.2 ∗ 3.0)/15.3
= varianta 2
= (b1 − valori[2] ∗ x(0)indici coloana[2])/diag 1
= (5.0− 3.2 ∗ 3.0)/15.3
183
x(1)2 = varianta clasica
= (4.0− 1.4 ∗ x(1)1 − 1.05 ∗ 3.0− 0.0 ∗ 4.0− 0.33 ∗ 5.0)/10.2
= varianta 1
= (b2 − valori[2] ∗ x(1)indici coloana[2] − valori[3] ∗ x
(0)indici coloana[3]−
−valori[4] ∗ x(0)indici coloana[4])/diag 2
= (4.0− 1.4 ∗ x(1)1 − 1.05 ∗ 3.0− 0.33 ∗ 5.0)/10.2
= varianta 2
= (b2 − valori[4] ∗ x(1)indici coloana[4] − valori[5] ∗ x
(0)indici coloana[5]−
−valori[6] ∗ x(0)indici coloana[6])/diag 2
= (4.0− 1.4 ∗ x(1)1 − 1.05 ∗ 3.0− 0.33 ∗ 5.0)/10.2
184
Laboratorul nr. 8
TemaDate n dimensiunea matricii A, ε - precizia calculelor, matricea simetrica
A ∈ Rn×n, A = AT , sa se aproximeze valorile proprii ale matricii A folosindmetoda Jacobi.
Metoda lui Jacobi pentru aproximarea valorilor proprii alematricilor simetrice
Fie A ∈ Rn×n o matrice reala de dimensiune n. Se numesc valori pro-prii asociate matricii A, numerele complexe λ ∈ C, radacinile polinomuluicaracteristic:
pA(λ) = det(λI − A) = 0
Pentru a aproxima valorile proprii ale unei matrici se foloseste relatia deasemanare. Doua matrici A si B se numesc asemenea (A ∼ B) daca existao matrice nesingulara P astfel ıncat A = PBP−1 (←→ B = P−1AP ). Seobserva ca daca A ∼ B atunci si B ∼ A. Relatia de asemanare se folosesteın algoritmii de aproximare a valorilor proprii deoarece matricile asemeneaau acealasi polinom caracteristic (pA(λ) ≡ pB(λ)) si ın consecinta au aceleasivalori proprii.
Fie A ∈ Rn×n o matrice simetrica (A = AT ) . Matricile simetrice autoate 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 urmarepe diagonala acestei matricii limita vom gasi valorile proprii cautate.
Constructia sirului de matrici
Sirul de matrici {A(k)} ⊆ Rn×n se construieste stfel:
A(0) = A , A(k+1) = Rpq(θ)A(k)RT
pq(θ)
unde Rpq(θ) sunt matrici de rotatie.
185
• indicii (p, q) sunt alesi ca fiind indicii celui mai mare element nediag-onal luat ın valoare absoluta din matrice:
|a(k)pq | = max{|a(k)
ij |; i = 1, . . . , n , j = 1, . . . , n , i 6= j} = (A = AT ) =
= max{|a(k)ij |; i = 2, . . . , n , j = 1, . . . , i− 1}
(1)(din cauza simetriei sirului de matrici, se poate cauta elementul a(k)
pq de
mai sus doar ın partea strict inferior triunghiulara a matricii A(k))
• 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.,
a(k+1)pq = a(k+1)
qp = 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)
{A = Rpq(θ) A RT
pq(θ) ;( 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:
B = Rpq(θ) A RTpq(θ)
Trecerea de la matricea A la matricea B se face dupa urmatoarele formule:
bpj = bjp = c apj + s aqj , j = 1, 2, . . . , n, j 6= p, j 6= qbqj = bjq = −s apj + c aqj , j = 1, 2 . . . , n, j 6= p, j 6= qbpp = c2 app + s2 aqq + 2 c s apq
bqq = s2 app + c2 aqq − 2 c s apq
bpq = bqp = (c2 − s2) apq + c s (aqq − app)bij = 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
decit = −α + (α2 + 1)1/2 sau t = −α − (α2 + 1)1/2.
Dintre cele doua valori de mai sus ale lui t se alege radacina de modulminim (θ ∈ [0, π/4]):
t = −α + semn(α)√
α2 + 1 =
−α +√
α2 + 1 daca α ≥ 0
−α−√
α2 + 1 daca α < 0
(3)
187
Avem
c =1√
1 + t2, s =
t√1 + t2
(4)
Cazul apq = 0
Tinand cont ca apq este cel mai mare element nediagonal ın valoare ab-soluta, cazul apq = 0 ınseamna ca matricea A la care s-a ajuns, este matricediagonala, algoritmul oprindu-se ın aceasta situatie - pe diagonala matriciiA 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
La pasul k operatia A = Rpq(θ) A RTpq(θ) 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 , j = 1, 2 . . . , n , j 6= p , j 6= q,
ajp = apj , j = 1, 2 . . . , n , j 6= p , j 6= q,
app = app + t apq
aqq = aqq − t apq
apq = aqp = 0
(5)
188
Observatie: Matricea A fiind simetrica se poate memora ıntr-un vector
v de dimensiunen(n + 1)
2. In acest fel se memoreaza doar partea inferior
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
A =
0 0 10 0 11 1 1
are valorile proprii λ1 = −1 , λ2 = 0 , λ3 = 2
A =
1 1 21 1 22 2 2
are valorile proprii λ1 = 0 , λ2 = 2(1−√
2) , λ3 = 2(1+√
2)
A =
1 0 1 00 1 0 11 0 1 00 1 0 1
are valorile proprii λ1 = λ2 = 0 , λ3 = λ4 = 2
A =
1 2 3 42 3 4 53 4 5 64 5 6 7
are valorile proprii λ1 = λ2 = 0 , λ3,4 = 2(4±√
21)
189
Laboratorul nr. 9
TemaDate n - gradul polinomului, ε - precizia calculelor, polinomul P de grad n:
P (x) = a0xn + a1x
n−1 + · · ·+ akxn−k + · · ·+ an−1x+ an , ai ∈ R ∀i , a0 6= 0
(pentru polinomul P se dau cei n + 1 coeficienti reali ai, i = 0, . . . , n) sa seaproximeze toate radacinile reale folosind metoda lui Laguerre. De cate orieste necesara calcularea valorii unui polinom ıntr-un punct oarecare se vafolosi schema lui Horner.
Metoda Laguerre de aproximare a radacinilor reale ale unuipolinom
Fie P un polinom de grad n:
P (x) = a0xn + a1x
n−1 + · · ·+ an , (a0 6= 0) (1)
Toate radacinile reale ale polinomului P se afla ın intervalul [−R, R] unde Reste dat de:
R =|a0|+ A
|a0|, A = max{|ai| ; i = 1, n} (2)
Schema lui Horner de calcul a valorii P (x0)
Un mod eficient de a calcula valoarea polinomului P ıntr-un punct x0 ∈ Roarecare este dat de metoda lui Horner:
b0 = a0 ,bi = ai + bi−1x0 , 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) = b0x
n−1 + b1xn−2 · · ·+ bn−2x + bn−1 ,
r = bn = P (x0).(4)
190
Pentru a calcula P (x0) (bn) cu formulele (3) se poate folosi o singuravaloare reala b ∈ R si nu un vector b ∈ Rn.
Metoda Laguerre
Pentru a aproxima o radacina reala x∗ (din intervalul [-R, R]) a polinomuluiP definit de (1), se construieste un sir de numere reale, {xk}, care convergela 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):
xk+1 = xk −n P (xk)
P ′(xk) + semn( P ′(xk) )√
H(xk), k = 0, 1, . . .
xk+1 = xk −∆ xk (∆ xk =n P (xk)
P ′(xk) + semn( P ′(xk) )√
H(xk))
H(xk) = (n− 1)2 [P ′(xk)]2 − n(n− 1)P (xk)P
′′(xk)
(5)
Prin P ′ si P ′′ am notat prima si respectiv a doua derivata a polinomului P .Pentru x ∈ R functia semn(x) se defineste astfel:
semn(x) =
{
1 daca x ≥ 0−1 daca x < 0
Observatie importanta: Alegerea iteratiei initiale, x0, poate determinaconvergenta sau divergenta sirului xk la x∗. De obicei, o alegere a iteratieiinitiale 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 esteurmatoarea:
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)
Gasirea altor radacini reale ale polinomului P
Dupa ce a fost gasita o aproximare x (ultimul xk calculat ın schemadescrisa mai sus) a unei radacini x∗ a polinomului P , se ımparte polinomulP 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 secalculeaza 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.
P (x) = (x− 2
3)(x− 1
7)(x + 1)(x− 3
2)
=1
42(42x4 − 55x3 − 42x2 + 49x− 6)
P (x) = (x− 1)(x− 1
2)(x− 3)(x− 1
4)
=1
8(8x4 − 38x3 + 49x2 − 22x + 3)
P (x) = (x− 1)2(x− 2)2
= x4 − 6x3 + 13x2 − 12x + 4
193
Laboratorul nr. 10
TemaDate 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 di-vizate se calculeaza folosind schema lui Aitken) si functiile spline cubice declasa C2 (cunostem ın plus despre functia f valorile u = f ′(a) si v = f ′(b)).
Interpolare numerica
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 x0 x1 · · · xn
f y0 y1 · · · yn
Dat x 6= xi sa se aproximeze f(x). Pentru a aproxima f(x) se construieste ofunctie elementara S(x) care satisface S(xi) = yi, i = 0, n. Valoarea aprox-imativa pentru f(x) este S(x). Consideram doua moduri de constructie afunctiei S: polinom de grad n (polinomul de interpolare Lagrange) si functiepolinomiala 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
∑
i=0
(
yi
n∏
j=0,j 6=i
x− xj
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− xn−1)
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
∑
i=0
yi
k∏
j=0,j 6=i(xi − xj)
se numesc diferente divizate de ordin k ale functiei f pe nodurile x0, . . . , xk.Calculul diferentelor divizate este mai economic din punct de vedere numericdaca se foloseste definitia recursiva:
[x0, x1]f =y1 − y0
x1 − x0, [x0, x1, x2]f =
[x2, x1]f − [x1, x0]fx2 − x0
[x0, ..., xk+1]f =[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. Modulde calcul este ilustrat ın tabelul de mai jos:
Pas 1 Pas 2 Pas n
x0 y0
x1 y1 [x0, x1]fx2 y2 [x1, x2]f [x0, x1, x2]fx3 y3 [x2, x3]f [x1, x2, x3]f...xn−1 yn−1 [xn−2, xn−1]f [xn−3, xn−2, xn−1]fxn yn [xn−1, xn]f [xn−2, xn−1, xn]f · · · [x0, ..., xn]f
La pasul k se calculeaza diferentele divizate de ordin k:
[x0, x1, . . . , xk]f , [x1, x2, . . . , xk+1]f , . . . , [xn−k, . . . , xn]f
195
folosind doar diferentlele divizate de la pasul anterior si nodurile xi. La fiecarepas, calculele se pot face ın acelasi vector y. Dupa calcularea diferentelordivizate de ordin k (pasul k) vectorul y are urmatoarea structura:
y = (y0, [x0, x1]f , [x0, x1, x2]f , . . . , [x0, x1, . . . , xk]f , . . . , [xn−k, . . . , xn]f)
Dupa pasul n vectorul y va contine toate diferemtele divizate de care avemnevoie pentru a calcula Ln:
y = (y0, [x0, x1]f , [x0, x1, x2]f , . . . , [x0, x1, . . . , xn−1]f , [x0, x1, . . . , xn]f )
Valoarea functiei f ın punctul x se va aproxima prin Ln(x).
Functii spline cubice de clasa 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 functieif ın a si b:
f ′(a) = u , f ′(b) = v.
Se cauta o functie Sf de clasa C2 pe [a, b] astfel ıncat:
Sf(x) = aix3 + bix
2 + cix + di , pentru x ∈ [xi, xi+1], i = 0, n− 1
Sf(xi) = yi , i = 0, n , S ′f(a) = f ′(a) = u , S ′
f(b) = f ′(b) = v
Functia Sf cu proprietatile de mai sus are urmatoarea forma:
Sf(x) =(x− xi)
3Ai+1
6hi+
(xi+1 − x)3Ai
6hi+αix+βi , x ∈ [xi, xi+1], i = 0, n− 1
undehi = xi+1 − xi
αi =yi+1 − yi
hi− hi(Ai+1 − Ai)
6
βi =xi+1yi − xiyi+1
hi
− hi(xi+1Ai − xiAi+1)
6
196
pentru i = 0, n− 1 , iar constantele {Ai, i = 0, n} sunt solutia sistemuluiliniar:
2h0A0 + h0A1 = 6(y1 − y0
h0− u)
hi−1Ai−1 + 2(hi−1 + hi)Ai + hiAi+1 = 6(yi+1 − yi
hi
− yi − yi−1
hi−1
) ,
i = 1, . . . , n− 1
hn−1An−1 + 2hn−1An = 6(v − yn − yn−1
hn−1)
(1)
Sistemul de mai sus este un sistem liniar de dimensiune n + 1:
HA = f
unde:
H =
2h0 h0 0 0 . . . 0 0 0h0 2(h0 + h1) h1 0 . . . 0 0 00 h1 2(h1 + h2) h2 . . . 0 0 0...0 0 0 0 . . . hn−2 2(hn−2 + hn−1) hn−1
0 0 0 0 . . . 0 hn−1 2hn−1
f =
6(y1 − y0
h0
− u)
6(y2 − y1
h1− y1 − y0
h0)
6(y3 − y2
h2− y2 − y1
h1)
...
6(yn − yn−1
hn−1− yn−1 − yn−2
hn−2)
6(v − yn − yn−1
hn−1)
, A =
A0
A1
A2...
An−1
An
197
Sistemul de mai sus se rezolva folosind una din metodele de rezolvare asistemelor liniare.
Valoarea functiei f ın x, f(x), se aproximeaza prin Sf(x) (x trebuie safie din [a, b]). Se cauta i0 astfel ca x ∈ [xi0 , xi0+1]. Avem:
f(x) ≈ Sf (x) =(x− xi0)
3Ai0+1
6hi0
+(xi0+1 − x)3Ai0
6hi0
+ αi0 x + βi0
198
Laboratorul nr. 11
TemaDate 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]:
∫ b
af(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 ′ = f), daca aceasta estecunoscuta.
Exemple:
f(x) = 3.0 ∗ x3 − 5.0 ∗ x2 + cos(x) , F (x) =3.0
4.0x4 − 5.0
3.0x3 + sin(x) ;
f(x) = ex − 2.0 ∗ cos(x) ∗ sin(x) , F (x) = ex + 0.5 ∗ cos(2 ∗ x) ;
f(x) = cos(ex) ∗ ex , F (x) = sin(ex) ;
Aproximarea integralelor
Cu ajutorul metodei de aproximare a integralelor se va calcula o valoareaproximativa pentru integrala cautata Iaprox. Folosind F , primitiva functieif , se calculeaza valoarea exacta a integralei, Iexact si se verifica cat de bunaeste aproximarea facuta comparand cele doua valori.
∫ b
af(x) dx = Iexact = F (b)− F (a) ;
∫ b
af(x) dx ≈ Iaprox = se calculeaza cu metodele de mai jos
Se afiseaza:Iaprox , Iexact , |Iaprox − Iexact|
199
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 , h =b− a
N − 1
O prima metoda de aproximare a integralelor este:
∫ b
af(x) dx ≈ Iaprox = h[
5
12f1 +
13
12f2 + f3 + f4 + · · ·+
+fN−3 + fN−2 +13
12fN−1 +
5
12fN ]
Ordinul de aproximare al metodei (eroarea) esteb− a
N3.
O a doua metoda este data de formula:
∫ b
af(x) dx ≈ Iaprox = h[
3
8f1 +
7
6f2 +
23
24f3 + f4 + f5 + · · ·+
+fN−4 + fN−3 +23
24fN−2 +
7
6fN−1 +
3
8fN ]
iar eroarea este ın acest caz de ordinulb− a
N4.
200