Documente Academic
Documente Profesional
Documente Cultură
calculnumericID PDF
calculnumericID PDF
CUZA IAI
FACULTATEA de INFORMATIC
CALCUL NUMERIC
Anca Ignat
CUPRINS
Preliminarii
Calcul matricial
Tipuri de matrici
Norme
Norme matriciale
10
14
19
21
21
27
Descompuneri LU
33
Factorizarea Choleski
37
40
Descompuneri QR
43
43
48
57
57
60
63
67
Metodele relaxrii
68
73
75
81
87
Vectori proprii
92
94
96
96
97
100
Metoda secantei
101
103
106
Interpolare numeric
108
108
111
115
116
118
119
Integrare numeric
124
126
Formula trapezului
129
130
131
Formule iterate
132
133
Bibliografie
157
Teme de laborator
158
Preliminarii
Fie K un corp ( - corpul numerelor reale sau - corpul numerelor
complexe).
Definiie
X se numete spaiu vectorial peste corpul K dac sunt definite dou
operaii
+ : X u X X i : K u X X,
astfel nct ( X , + ) este un grup comutativ :
a + b = b + a , a,b X comutativitate,
(a + b) + c = a + (b + c) , a,b,c X asociativitate ,
O(a+b) = O a + O b , O K , a,b X ,
(O + P ) a = O a + P a , O,P K , a X,
O( Pa ) = (O P)a , O,P K , a X,
1 K astfel nct 1.a = a , a X.
Exemple: este spaiu vectorial peste .
Fie xi , yi , O . Se definesc vectorii x, y i operaiile de adunare
x1
x
x 2 , y
#
xn
y1
x1 y1
y2 , x y x2 y2 ,O x
#
#
yn
xn yn
3
O x1
O x2 .
#
O xn
m1 " amn
m1 " amn
Definiie
Fie X un spaiu vectorial peste corpul K. Vectorii x1 , x2 , ,xp X
D1 x1 D 2 x2 .. D p x p
0D1 D 2 ...D p
0D i K
canonic:
e1
1
0
,e
# 2
0
0
0
#
,!, en
1 -poziiak
#
0
0
1
,!,e
k
#
0
Calcul matricial
ij i , j 1!n
a11 ! an1
# % # , AT
a " a
1n
nn
Pentru matricea:
A TuU , A
ij i 1!m
j 1!n
ji i , j 1!n
0
0
#
1
AH
AT
a
ji
j 1!n
i 1!m
a11 ! a1n
A # % # , AH
a
m1 " amn
a11 ! am1
#
%
#
a1 j
a11 ! a1n #
a
2j
Ae j # % # 1poziia j
#
a
m1 " amn #
0
amj
Aej este coloana j a matricii A, j=1,...,n, iar eiTA este linia i a matricii A
i=1,...,m.
y1
y2 n
#
yn
x, y xi yi
y H x
i 1
x1
x
y1 y2 " yn 2
#
xn
x1
x
x 2 n , y
#
xn
y1
y2 n
#
yn
x1
n
x
T
x, y xi yi y x y1 y2 " yn 2
#
i 1
xn
Proprietile matricii AH
1.
(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
Propoziie
Ax, y
m
x, AH y n .
n
Demonstraie.
(Ax , y) = yH (Ax) = yH A x = yH (AH)H x = (AH y)H x = (x , AH y).
Tipuri de matrici
Definiii
a110.....................0
a21a22 ..................0
A #
##
a a a
nn
n1 n 2
O matrice A UuU , A=(ai j ) se numete matrice triunghiular superior
(sau superior triunghiular dac ai j = 0 pentru j < i.
.......... a1n
a11a12 a13
000...........a
nn
I n nun ,I n
100"00
010"00
#
00"0
00"0
Norme
Definiie
Fie X un spaiu vectorial peste corpul K. Se numete norm aplicaia:
. : X o
care ndeplinete condiiile
(1) x t0; x 0 x 0;
O x , x X , O K .
U sau U
Exemple
Fie spaiile vectoriale U sau U . Pe aceste spaii urmtoarele aplicaii
sunt norme vectoriale:
n
x 1 xi ;
i 1
x 2
;
i 1
f
Definiie
Se numete produs scalar n spaiul vectorial X aplicaia:
,: X u X oK
care satisface condiiile :
(a ) x, x t0, x X , x, x 0 x 0;
x, y K . Observm
2
2
x, y y , y 0
y, y
0 d x D y, x D y x D y, x D x D y, y
x, y y , x ,
x, x D y , x x, x
y, y
2
i innd seama de faptul c (x, y ) y, x (x, y ) x, y x, y rezult
2
x, x y, y x, y
t 0 deci avem inegalitatea Cauchy-Buniakovski y, y
x D y , y x, y
Schwartz.
ntr-un spaiu vectorial dotat cu produs scalar se poate induce o norm
numit euclidian:
x 2 : x, x .
Reaminitm definiia produselor scalare pe U i pe U introduse anterior:
x, y
xi yi , x, y U
i 1
x y
i
i 1
x 2
i 1
Norme matriciale
Definiie
10
Exemple
n
A F
este o norm
i j
i 1 j 1
matricial.
Vom arta c aceast norm satisface condiiile din definiia normei
matriciale.
Introducem notaiile:
L1
L
A 2 >C1C2 "Cn @ncare
#
Lm
a1 j
a2 j
n
Li (ai1ai 2 " ain ) ,i 1,!, m;C j m , j 1,!, n.
#
a
mj
Cu aceste notaii vom avea:
m
aij
AF
i 1 j 1
Li
i 1
j 1
2
j 2
A
2
A
m
A
i
^ L
i 1
A 2
i 2
A
i
L L
B 2
i 2
B
i
B
1
^ L
i 1
A
i
0 A 0.
B
i
i 1
mun
2 (L , L ) L
Considerm vectorii:
a L1A ,L2A ", LmA m ,b
i 1
` d ^ L
A 2
i 2
i 1
A
i 2
B
2
B
i 2
2 L
L ,L ", L
B
1
A 2
i 2
B
m
L
AF B
n T
m
(a , b) = ( LiA , LBi ) d a
i 1
A B
2
F
d A F 2 A F B
11
B
2
F
( A F B F )2 .
2
2
`d
m
2 LiA
i 1
LBi
Deci A B
d A F B F.
O A F
m n
O aij
O aij
i 1j 1
i 1j 1
O AF
ik
A
i
L , C
A
i
B
j
i 1 j 1
2
are
elementele
B
j
A * B Tu p
L ,C .
bkj
k 1
produs
B
1
ij i 1"n
j 1" p
Matricea
mij
A 2
i 2
d L
i 1 j 1
B 2
j 2
m A 2 p B 2
Li 2 C j 2
i1
j 1
A F B F .
Am artat c aplicaia Frobenius este o norm matricial.
Aplicaia
nu este o norm
matricial.
Pentru n = 2 fie:
1
2
T
A
1
1
.
A * B I 2 , A max B max
2
1
.
A * B max 1! A max < B max
2
1
2
1
2
1
2
,B
1
12
1
2
Fie
A i max{
Ax
x
;x U , x z 0}
1}
I n i max{
; x z 0} 1 ,
Pentru x 1
i 1
Pentru x
13
Dac
Px
i,P
i
-
PAP 1 .
i
Ax O x(O I n A) x 0, x z 0det(O I n A) 0
adic matricea O I A este singular. Polinomul:
p A (O ) det(O I n A) O n a1O n1 aO n2 ... an1O an
se numete polinom caracteristic asociat matricii A. Polinomul pA de
grad n are n rdcini care sunt valorile proprii ale matricii A.
Se numete raz spectral a matricii A numrul U ( A) :
matricial
n
x 2
xi
i 1
2
indus
este A 2
de
norma
vectorial
euclidian
14
A 2 sup{ Ax ; x X , x 2 1}
Considerm un vector oarecare x cu norma euclidian egal cu 1:
n
n
n
n
n
n
2
Ax 2 Ax, Ax ai j x j aik xk x j (ai j aik xk ).
i 1 j 1
k 1
j1 i1
k 1
H
Tinnd seama de definiia matricii A :
n
H
H
A aij , A
a ji A A
alp alq .
Ax
pq
l 1
Ax , Ax Ax , Ax A
i
Ax j , xi
O x ,x
j
O j x j , xi O j xi , x j
x X , x
i 1
i 1
D i xi ; Di
2
1;
n
n
n
n
H
H
A
Ax
,
x
D
A
Ax
,
D
x
D
O
x
,
i
i i i D j x j
i j j
j 1
j 1
i1
i1
O D
i
2
i
dU AH A
i 1
deci
A d U AH A
15
Propoziie
Axmax
Omax xmax .
Atunci:
A xmax
Omax xmax
Propoziia 1
Ak o0pentruk o f.
Observaie.
cazul
U Ak U A d Ak o 0,k o f.
k
limU A
k of
0U A 1.
16
avem
k 0
converge la o matrice S,
k 0
Propoziia 2
Fie A
nun
. Seria
k 0
A
k
S U A 1.
k
Dac exista o norm a matricii A astfel nct ||A|| < 1 atunci seria
f
k
( I A) 1.
S
k 0
nof
Pr.1
An An o 0U A 1.
( I n A)( I n A A2 .. An )
Sn
I n An1
( I n A) 1 ( I n An1 ).
Avem implicaiile:
A 1 U A d A 1 Ak ( I n A) 1.
k 0
17
Propoziia 3
( I n r A) 1 . Din relaiile:
( I n r A) 1 I n r A
In 1
I n d ( I n r A) 1 I n r A d ( I n r A) 1 (1 A )
obinem:
1
d ( I n r A) 1 .
1 A
Folosind relaia:
( I n r A) 1 ( I n r A) ( I n r A) 1 r ( I n r A) 1 A I n
deducem:
( I n r A) 1 I n B ( I n r A) 1 A ( I n r A)1 d 1 ( I n r A) 1 A
(1 A ) ( I n r A) 1 d 1
deci:
( I n r A) 1 d
18
1
.
1 A
a
a
a
sau
sau
a
a
a
a
d Ga
a
G a se exprim de regul n %.
n aproximrile 1kg 5g, 50g5g erorile absolute sunt egale dar pentru
prima eroarea relativ este 0,5% iar pentru a doua eroarea relativ este
10%.
19
Fie
1 r ' a ,a2
a1
2 r ' a ,
a1 r a2
(1 r 2 ) r ' a r ' a
1
a = a1 * a2 sau
rezult
G a G a G a
1
20
a1
a2
'x
?
x
Pentru prima problem n cele ce urmeaz presupunem c matricea A
este nesingular. Din egalitatea:
A 'A A I n A1'A
ale datelor de ieire
1
. Atunci I+A-1'A este nesingular i
1
A
avem:
A1'A
1
Demonstraie. Avem:
21
1
1 A
1
'A
'A
Pr.3
1
1
1
1
1
A
'
A
d
A
'
A
I
A
'
A
1
A1
de unde obinem:
I A
Pentru
'A
'A
1
1
1
1
.
d
1 A1'A 1 A1 'A
A 'A x 'x
1
A 1
'b
I A
1
1
'A x
A 1
'b
'x
d
'
A
(1)
x
1 A1 'A x
Din Ax =b obinem b d A x
A
1
d
i innd seam de acest
x
b
.
x
A
1 A1 'A b
Notm cu k(A)=||A-1|| ||A|| numrul de condiionare al matricii A.
Propoziie
1
A 1
atunci:
k A
'b
'A
.
'A b
A
1 k A
A
'x
poate fi mare chiar dac erorile
x
'b
'A
i
sunt mici.
b
A
U AT A
A 2
U A2
k A A 2 A1
2
O1 O2
On
O1
U A
On , A1
U A1
de condiionare spectral.
Pentru o matrice ortogonal A AT A
O1
, k A
A AT
On
se numete numr
O1
AT numrul de
I A1
A2
U A A
U I 1
23
AT
Metoda substituiei
a21 x1 a22 x2 = b2
#
(1)
24
b1
(2)
a11
Din a doua ecuaie , utiliznd valoarea x1 din (2) , obinem x2 :
b a21 x1
x2 = 2
a22
Cnd ajungem la ecuaia i :
ai1 x1 ai 2 x2 " aii 1 xi 1 aii xi = bi
folosind variabilele x1 , x2 ,..., xi 1 calculate anterior, avem:
b ai1 x1 " aii 1 xi 1
xi = i
aii
Din ultima ecuaie se deduce xn astfel:
b an1 x1 an 2 x2 " ann1 xn1
xn = n
ann
Algoritmul de calcul a soluiei sistemelor (1) cu matrice inferior
triunghiular este urmtorul:
x1
i 1
bi aij x j
j 1
,i 1,2,!, n 1, n
aii
Acest algoritm poart numele de metoda substituiei directe.
Vom considera, n continuare sistemul (1) cu matrice superior
triunghiular :
a11 x1 " a1i xi " a1n1 xn1 a1n xn = b1
xi
%
aii xi " ain1 xn1 ain xn = bi
%
an1n1 xn1 an1n xn = bn1
ann xn = bn
Necunoscutele x1 , x2 ,..., xn se deduc pe rnd, folosind ecuaiile
sistemului, de la ultima ctre prima.
Din ultima ecuaie gsim xn :
bn
xn
(4)
ann
Folosind valoarea lui xn dedus mai sus, din penultima ecuaie
obinem:
b a x
xn1 = n1 n1n n
an1n1
25
bi
xi
a x
ij
j i 1
aii
,i
n, n 1,",2,1.
(5)
26
Ei ai1 0
a
E1
n1 En
a11
En an 1 0
27
1
1
1
a22 x2 """ a2 n xn b2
#
1
1
1
ai 2 x2 """ ain xn bi
#
1
an12 x2 """ ann
xn bn1
sau
a11j
1
aij
ai11
b1
i
a
aij i1 a1 j ,i
a11
2,", n; j
2,", n.
2,", n.
0,i
bi
b1.
ai1
b1,i
a11
2,", n.
Pas 2: Intrare : A x b
2
2
2
Ieire : A x b Ax b, A are primele dou coloane n
form superior triunghiular.
1
z 0 i se urmrete anularea elementelor
Se presupune a22
1
a32
,a42
,", an 2
2
(transformarea
coloanei
form
1
superior
1 ai21
1
E2
1 Ei
a22
1 an12
1
E2
1 En
a22
28
E3 a32
0;
Ei 2 ai22
0;
En an 2
0;
a2 2j a21j , j 2,!, n
1
2
1 ai 2 1
aij aij 1 a2 j ,i 3,", n; j 3,!, n
a22
2
ai1 0,i 2,!, n
2
ai 2 0,i 3,!, n
b 2 b ,b 2 b1
1
2
2
1
1
2
a
1
bi i21 b2(1) ,i 3,!, n.
bi
a22
%
%
r 1
r 1
r 1
ar 1r xr " ar 1n xn br 1
#
#
r 1
r 1
r 1
anr xr " ann xn bn
Presupunem
arr
r 1
z 0. Vom
urmri
29
anularea
elementelor
r 1 ar r11r
r 1
Er
r 1 Er 1
arr
r 1 air r 1
r 1
Er
r 1 Ei
arr
r 1 anr r 1
r 1
Er
r 1 En
arr
Er1 ar 1r
r
0;
Ei r air r
0;
En anr
0;
r 1
r
r 1
r 1 air
a
a
r 1 arj ,i r 1,!, n; j r 1,!, n.
ij
ij
arr
r
0, j 1,!, r ,i j 1,!, n.
aij
r
b1 ,
b1
r
j 1
bj , j 2,!, r ,
b j
r 1
a
r
r 1
ir
bi
bi r 1 b2( r 1) ,i r 1,!, n.
arr
1
arr
r 1
30
ai0r
r 1
max air
r 1
;i
r ,!, n
r ,!, n, j
r ,!, n
0"" arn
%
arr "arn
r 1
r 1 r 1
r 1
( r 1)
0
A
a11 a22 " ar 1r 1 det
det A
#
0"" ann
"""ann
0"" 0
0"" 0
arr " 0
r 1
r 1 r 1
r 1
( r 1)
0
A
a11 a22 " ar 1r 1 det
det A
#
#
0"" 0
0
"""
r 1
0;
bi f * br ;
r
r 1;
pivotare(r );
if (|arr | d H ) 'MATRICE SINGULARA'
else { Am A( n1) ,b mb( n1)
serezolv sistemul triunghiular superior Ax b}
Numrul de operaii efectuate la pasul r i n total este:
(n r ) 1M n r A n r A 1A 1M
n 1
n 1
M : n r 2 n r
r 1
n 1
r 1
M
:
r 1
n 1
A
:
n r n r
3
n 1 n 2n 5,
n 1 n n 1,
3
r 1
n
n
' n 2 ;
' n 2
:
3
3
32
Descompuneri LU
a21a22 "a2 p
a p1a p 2 "a pp
Teorem (descompunere LU)
Fie A u o matrice real ptratic de dimensiune n astfel nct
det Ap z 0 , p = 1,!, n . Atunci exist o unic matrice inferior
i o unic matrice
33
a pi = ( LU ) pi
l
k =1
p 1
pk ki
k =1
k =1
u pi
a pi l pk uki ,i
p,!, n
(2)
k 1
aip = ( LU )ip
k =1
k =1
p 1
lip
p 1,", n
(3)
k 1
L1icuU11ladreaptaobinemUU11 L1L1.
MatriceaUU11estetriunghiularsuperioriarmatriceaL1L1 estetriunghiularinferior
cuelementelediagonaleegalecu1.RezultUU11
34
L1L1
I ,deciL
L1,U
U1.
fori
r 1,!, n
a
< f ir ;
arr
//Ei
Ei f Er
<for j r 1,!, n
aij aij f
arj ;
<air
<bi
0;
bi f br ;
Fie:
t (r )
0
#
0
( r ) ,Tr : I n t ( r )erT u
tr 1
#
t (r )
n
35
t ( r )erT
0
#
0
( r ) 0"10"0
tr 1
#
t (r )
n
col
Pr
00" 0 "0
00"0"0
(r )
00"tr 1"0lin r 1)
#
00"t ( r ) "0
Tr
10"0"0
01"0"0
#
00"1"
(r )
"tr 1"
#
(r )
t
"
"
n
(r ) T
I n t er . n adevr:
36
(r )
ar( r 1) r
air( r )
anr( r )
0
0
(
)
(
)
(
) .
"
"
"
arr( r )
arr( r )
arr( r )
Avem:
A T11T21 "Tn11U LU ,L : T11T21 "Tn11
T11T21
( I n t (1)e1T )( I n t (2)e2T )
21 1"0"0
a11
(1)
a31 a32 "0"0
(1)
a11
a22
(1)
L
ar 1
ar 2
(1) ""0
a22
a11
(1)
( r 1)
ar 11 ar 12 " ar 1r "0
(1)
a11
a22
arr( r 1)
(1)
( r 1)
a
a
a
n1 n(1)2 " nr( r 1) "
a22
arr
a11
Factorizarea Choleski
Definiie
Matricea A u se numete pozitiv semidefinit dac:
Ax, x t 0x .
Matricea A se numete pozitiv definit dac:
Ax, x !0x ,x z 0 .
Propoziie
Dac matricea A u este pozitiv definit atunci matricea A este
nesingular.
37
l
p 1 p
#
np
Se determin nti elementul diagonal lpp:
a pp
LL
T
pp
l p1
lp2
#
(l p1l p 2 "l pp " l pp
#
38
p 1
a pp
2
p1
2
p2
2
pp
l l " l l pp
r a pp l pj2
j 1
aip
l l
ij pj
lipl pp ,i
p 1,!, n
j 1
Elementele lij, lpj , j=1,...,p-1 sunt determinate la paii anteriori deci sunt
cunoscute.
Avem:
p 1
aip lij l pj
lip
j 1
l pp
,i
p 1,!, n,lip
39
#
yn = an1 x1 " ann xn (En)
n algoritmul Gauss-Jordan se procedeaz astfel: se scoate x1 dintr-una
din relaiile de la (E1) la (En) i se nlocuiete n toate celelalte. Relaia
din care s-a scos x1 se aduce pe prima poziie. Se scoate x2 din una din
relaiile de la (E2) la (En), se aduce aceast relaie pe poziia a doua i se
nlocuiete x2 n toate celelate relaii. ... Se repet aceste operaii pn sau nlocuit toate variabilele xi . Se ajunge la un sistem de forma:
x ByW unde yW PyW A1 BPW
(1)
( PW este o matrice de permutri care reflect schimbrile de linii
efectuate)
Pasul p ( p = 1,2,!, n )
Vectorul W reflect schimbrile de linii fcute pn la acest pas.
Iniial ( p = 1 ) W i = i,i = 1,!, n . La acest pas sistemul are urmtoarea
form:
p 1
xi = aij yW aip x p
j =1
a x
ij
j = p 1
p 1
yW = a pj yW a pp x p
p
j =1
p 1
yW = aij yW aip x p
i
j =1
,i = 1,!, p 1
pj
xj
j = p 1
n
a x
ij
,i = p 1,!, n
j = p 1
40
x p = (a pj yW yW
j
j =1
pj
x j )/a pp
j = p 1
p 1
= aij yW
j
j =1
p 1
a x
ij
j = p 1
aip (a pj yW yW
j
j =1
p 1
j =1
pj
x j )/a pp =
j = p 1
(a
ij
aip a pj /a pp ) x j
j = p 1
Sistemul a devenit :
p 1
xi = (aij
j =1
aip
a
a pj ) yW j ip yW p
a pp
a pp
(aij ip a pj ) x j , i = 1,!, p 1
a pp
j = p 1
p 1
n
a pj
a
1
x p =
yW j
yW p pj x j
a pp
j =1 a pp
j = p 1 a pp
p 1
yW i = (aij
j =1
aip
a
a pj ) yW j ip yW p
a pp
a pp
(aij ip a pj ) x j , i = p 1,!, n
a pp
j = p 1
aip
a pp
Pentru i = p
acpj =
a pj
a pp
, j = 1,!, n , j z p
1
a pp
Calculele se pot face la fiecare pas p n matricea A , fr a mai folosi
matricea auxiliar Ac . n final (dup efectuarea pasului n ) n matricea
A vom avea matricea B din formula (1).
Matricea PW are forma:
acpp =
41
eWT1
T
e
PW = W 2 = (eV eV " eV )
n
1
2
#
eT
Wn
unde eWT = (00!1!0) (1 este pe poziia W i ). Permutarea V ce apare n
i
matricii A1 .
42
Descompuneri QR
Definiie
Se numete matrice ortogonal, o matrice Q nxn care satisface
relaia:
QT Q = QQT I n (Q 1 QT ) .
matricea
Qx, Qx
matrice
ortogonal
x atunci
43
pq
10"0"0"0
01"0"0"0
00"c"s"0 p
R pq (T ) =
#
00" s )"c"0 q
#
00"0"0"1
1pentrui = j , i z p,i z q
cpentrui = j , i = p,i = q
rij = spentrui = p, j = q
spentrui = q, j = p
0nrest
unde p, q {1,!, n} iar c i s sunt dou numere reale care satisfac
relaia c 2 s 2 = 1 . Constantele c i s pot fi alese astfel nct
c = cosT ,s = sin T . Se arat uor, folosind relaia c 2 s 2 = 1 , c matricea
R pq (T ) este ortogonal:
R pq (T )RTpq (T ) RTpq (T ) R pq (T ) I n
jz p, jzq
45
Cea mai simpl alegere pentru cis astfel ca s obinem bir 0 este:
1
c = D arr s = D air ,D alesastfelcac 2 s 2 1D
ar2r ai2r
arr
air
c=
s =
ar2r ai2r
ar2r ai2r
Dac arr2 air2 = 0 acest lucru implic faptul c arr = air = 0 , deci
elementul air este deja nul. n acest caz putem lua c = 1, s = 0 , matricea
de rotaie coincide cu matricea unitate I , Rri (T ri ) I , matricea A nu se
schimb.
Cnd se efectueaz operaia B = Rri (T ri ) A , matricea A are primele
(r 1)
coloane
n
form
superior
triunghiular
( akl 0,k 1,!, l 1,l 1,!, r 1 ) i elementele ar 1r " ai 1r 0 .
n matricea B aceste elemente vor continua s fie nule.
brj carj saij ,bij sarj caij , j 1,!, r 1
nmulirea B = Rri (T ri ) A nu schimb dect liniile rii ale matricii B ,
prin urmare vom avea br 1r ar 1r " bi 1r ai 1r 0 . n concluzie,
operaia B = Rri (T ri ) A nu schimb elementele nule deja obinute, ci doar
face ca elementul de pe poziia (i, r ) s devin 0.
Algoritmul lui Givens poate fi descris astfel:
Rn1n (T n1n )" Rrn (T rn )" Rrr 1 (T rr 1 )" R1n (T1n )" R12 (T12 ) A R
_
Rn1n (T n1n )" Rrn (T rn )" Rrr 1 (T rr 1 )" R1n (T1n )" R12 (T12 )b b QT b
i urmtoarea matrice:
Notm cu Q
Rn1n (T n1n )" Rrn (T rn )" Rrr 1 (T rr 1 )" R1n (T1n )" R12 (T12 )
R12T (T12 )" R1Tn (T1n )" RrTr 1 (T rr 1 )" RrnT (T rn )" RnT1n (T n1n )
46
b Rri (T ri ) * b;
i
i
Q Rri (T ri ) *Q;
Detaliat avem:
i I ;
Q
n
forr 1,!, n 1
fori r 1,!, n
construciamatriciiRri (T ri )constantelecis
xD arr2 air2 ;
xif (D dH ){c 1;s 0;}//Rri (T ri )
r 1,!, n
vechi
q ij s
q rj c
q ij ;
La sfritul acestui algoritm, n matricea A vom avea matricea superior
i T binit ( binit - vectorul termenilor
triunghiular R , n vectorul b vom avea Q
47
i ) obinem:
Numrnd operaiile efectuate (exceptnd calculul matricii Q
n(n 1)(4n 7) 2 3
n(n 1)
n O(n 2 ) adunri/scderi i
radicali,
6
3
2
2n(n 1)(2n 5) 4 3
n O(n 2 ) nmuliri/mpriri.
3
3
Definiie
Se numete matrice de reflexie o matrice P u de forma:
n
P = I n 2vvT , v , || v ||2 =
|v
|2 = 1
j =1
2
1
v v1v2 !v1vn
v1
v2
v2v1v22 !v2vn
(v , v ,!, vn ) =
vv =
.
# 1 2
#
v
n
vnv1vn v2 !vn
Matricile de reflexie sunt simetrice ( P = PT ) i ortogonale
( PPT PT P P 2 I n ).
PT = ( I n 2vvT )T = I n 2(vvT )T = I n 2(vT )T vT = I n 2vvT = P
P 2 = ( I n 2vvT )( I n 2vvT ) = I n 2vvT 2vvT 4(vvT )(vvT ) =
0
0 1
0
0 1
i x 2 , y Px :
x
y 1 0 x1 x1
x= 1 , y = 1 =
x2
y2 0 1 x2 x2
Vectorul y = Px este reflectatul vectorului x n raport cu axa Ox2 .
Algoritmul ce folosete matricile de reflexie pentru a obine o
descompunere QR pentru o matrice A u a fost descris de Alston S.
48
= R Q T QA = Q T R A = Q T R = QR
QA
Q = Q T = ( Pn1 " Pr " P2 P1 )T = PP
1 2 " Pr " Pn 1
Pasul r
La intrarea n pasul r matricea A are forma:
a11a12 "a1r "a1n
00"arr "arn
A = 00"ar 1r "ar 1n
00"a "a
ir
in
00"anr "ann
Pasul r const n:
A := Pr A
Pr = I n 2v r (v r )T , v r R n , || v r ||2 = 1
unde vectorul v r se aleg astfel ca matricea A s aib i coloana r n
form superior triunghiular:
49
a11
0
#
0
A = 0
#
0
Calculul matricii Pr
a
a
a
=
2
r
2r
2r
#
a r 1r = ar 1r
r 1r
a
rr
a
k
rr
( PA)er = Aer =
Aer =
ar +1r
0
air
0
a
nr
0
unde cu i u am notat:
a1r v1
a2 r v2
# #
:= vT ( Aer ) = ( ( Aer ), v )R = ( , )R =
air vi
# #
anr vn
= a1r v1 + a2 r v2 + " + air vi + " + anr vn
a1r
a1r 0
a2 r
a2 r 0
#
#
#
0
a
ar 1r
r
1
r
arr k
k
u := (2 ) v = Aer ( PA)er = rr
=
a
a
0
r +1r
r +1r
#
#
#
a
air
0 ir
#
#
#
0 a
nr
nr
Cu aceste notaii matricea P devine:
1
1
1
1
P = I n 2( )u ( ) u T = I n ( 2 )uu T = I n uu T cu := 2 2
2
2
2
51
arr k
||22 = (arr k ) 2 ar21r " air2 " anr2 =
|| u ||22 =||
ar 1r
#
air
nr
arr2 ar21r " air2 " anr2 2karr k 2 = V 2karr V = 2(V karr )
de unde obinem:
E = V karr
Vom alege semnul constantei k astfel nct E s fie ct mai mare posibil
deoarce constanta E apare n operaia de mprire. Avem:
E = || u ||22 = 0o|| u ||22 = 0o u= 0oarr = k , ar 1r = 0,!,air = 0,!,anr = 0
k i semnk = semnarr obinem:
air = 0,i = r ,!, n
adic avem coloana r deja n form superior triunghiular, se poate trece
la pasul urmtor. n acest caz matricea A este singular.
Ne intereseaz cum se efectueaz operaia A := Pr A fr a face nmulire
matricial. Vom pune n eviden schimbrile n raport cu coloanele.
1
1
( PA)e j = nouacoloan jamatricii A = ( I n uuT )( Ae j ) = Ae j (uu T )( Ae j ) =
Cum arr
Ae j
u (u T ( Ae j )) = Ae j
unde
52
Jj
u
E
a1 j 0
a2 j 0
#
#
J j := u T ( Ae j ) = ( arj , arr k ) = arj (arr k ) " aij air " anj anr =
ar 1 j ar 1r
#
#
anj anr
i =1
i=r
Noua coloan j se obine din vechea coloan j din care scdem vectorul
u nmulit cu constanta J j . Ne intereseaz ca primelor (r 1) coloane s
nu li se schimbe forma superior triunghiular deja obinut. Pentru
j = 1,!, r 1 avem:
a1 j
a2 j
#
0
a jj
0
T
) =
J j := u ( Ae j ) = ( a j 1 j = 0 ,
arr k
#
ar 1r
arj = 0
#
anr
anj = 0
53
Ae j pentru j = 1,!, r 1
J
Ae j j upentru j = r 1,!, n
E
cu
n
J j = ( Ae j , u ) = ui aij
i=r
unde
n
J = u b = (b, u ) = uibi
T
i=r
b Pr * b;
i
i
Q
Pr *Q;
La sfritul acestui algoritm, n matricea A vom avea matricea superior
i T binit ( binit - vectorul termenilor
triunghiular R , n vectorul b vom avea Q
54
In;
xV = air2 ;
i=r
I n ( Amatricesingular)
r 1lPr
k ;
arr k ;ui
A Pr * A
transformareacoloanelor j
xfor j
r 1,!, n
r 1,!, n
n
xfori r ,!, n
bi bi J
ui ;
i P * Q
i
Q
r
xfor j 1,!, n
n
i , u ) / E = ( u q )/E ;
J =(Qe
i ij
j
i=r
55
4(n 1) 3n(n 1)
n(n 1)(2n 1) 2 3
= n O(n 2 )
6
3
R (radicali ): ( n 1)
56
Ax = b ,
A u , b
(1)
(2)
Fie descompunerea:
A = B C , B, C R nun , B"uor" inversabila
Ce nseamn B "uor" inversabil ? Sistemul liniar, avnd ca matrice a
sistemului matricea B :
Bx = f
se rezolv uor (adic repede) - ca
n cazul sistemelor cu matrici
diagonale sau triunghiulare, de exemplu.
Ax* = b l Bx* Cx* = b l
Bx* = Cx* b l x* = B 1Cx* B 1b = Mx* d
(3)
(4)
unde
M := B 1C u , d := B 1b
irul {x ( k ) } se construiete astfel:
x ( k 1) := Mx ( k ) d , k = 0,1, 2,! x (0) alesarbitrar
Vectorul x ( k 1) poate fi privit i ca soluia sistemului liniar:
Bx = f cu f := Cx ( k ) b
Cunoscnd vectorul x ( k ) , urmtorul element din ir, x ( k 1) , se poate
construi fie utiliznd relaia (6) (dac putem construi matricea M
explicit), fie rezolvnd sistemul liniar (7).
Matricea M poart numele de matricea iteraiei iar vectorul
57
(5)
(6)
(7)
^ `
M 1 x k o x , k o f,x 0 .
(9)
xl 1
Mx d
l
xl Mxl 1 d
x (l 1) x (l ) = M ( x (l ) x (l 1) ) l
Pentru orice k,j, avem folosind relatiile de mai sus:
x ( k j 1) x ( k j ) = M ( x ( k j ) x ( k j 1) ) = " = M j ( x ( k 1) x ( k ) ) k , j
Aplicnd succesiv relaia precedent obinem:
58
(8)
( x ( k j 1) x( k j ) )
j =0
=
p 1
p 1
j =0
j =0
x ( k p ) x ( k ) = ( x ( k j 1) x( k j ) ) = (M j )( x( k 1) x ( k ) )
Fcnd
p o f obinem:
f
x x
(k )
= (M j ) M ( x ( k ) x ( k 1) )
j =0
|| M ||< 1M j = ( I n M ) 1
j =0
Prin urmare:
|| M ||
|| x ( k ) x ( k 1) ||
1 || M ||
Aceast relaie ne spune c din punct de vedere practic putem opri
algoritmul atunci cnd diferena dintre dou iteraii succesive devine
suficient de mic acest lucru asigurnd apropierea de soluie.
n continuare vom particulariza matricea B.
|| x* x ( k ) ||d
59
Fie sistemul:
Ax = b ,
A u , b
cu
0
0
"
0
" 0
% #
" ann
Avem:
det B = a11a22 " ann z 0
1
0 " 0
a
11
"
0
0
1
1
1
a22
B 1 = diag[ , ,!, ] =
a11 a22
ann
#
# % #
1
0
0 "
ann
Matricea C este:
a12 a13 " a1n
0
a
0
a23 " a2 n
21
C = B A = a31 a32
0 " a3n
#
#
#
%
#
a
"
a
a
0
n2
n3
n1
a daca i z j
C = (cij ) u cij = ij
daca i = j
0
Matricea iteraiei se poate calcula i are forma:
60
a21
a22
1
M := B C =
a31
a33
#
a
n1
ann
M = (mij ) u
a12
a11
a13
a11
a23
"
a22
a32
a33
#
a
n2
ann
"
a1n
a11
a2 n
a22
a
3n
a33
"
#
%
a
n3 "
ann
aij
( ) daca i z j
mij = aii
0
daca i = j
Construim vectorul g:
g : Mx ( k ) , Mx ( k ) = ( gi )in 1
Componentele vectorului g sunt:
n
n a
n
ij ( k )
(k )
gi = mij x j = x j = (aij x (jk ) )/aii ,i 1,!, n
j =1 aii
j =1
j =1
j zi
j zi
Vectorul d este:
bi
,i 1,!, n
aii
( k 1)
i
, i = 1,!, n
j =1
j zi
i 1
a x
ij
(k )
j
)/aii
, i = 1,!, n
j = i 1
61
(9)
|| M ||< 1 x ( k ) o x* , k o f .
Demonstraie.Fie x
soluia sistemului Din A=B-C rezult
Bx* Cx* b sau
x* Mx* d . Procesul iterativ x ( k 1) Mx ( k ) d conduce la relaia:
x* x
k 1
M x* x
dM
x* x d " d M
k
k 1
x* x
aij
( a
i =1 j =1
j zi
) 2 < 1 x ( k ) o x* , k o f
(10)
ii
| aij |
( | a
ii |
i =1
iz j
) < 1 j = 1,!, n x ( k ) o x* , k o f
(11)
(
j =1
j zi
| aij |
| aii |
) < 1 i = 1,!, n x ( k ) o x* , k o f
(k )
*
| aij |<| aii | i = 1,!, n lim x = x
j =1
j zi
(12)
k of
|a
ij
i =1
iz j
62
(13)
i 1
= (bi aij
x (jk )
j =1
xi( k 1)
i 1
= (bi aij
j =1
x (jk 1)
Cnd calculm xi( k 1) cunoatem deja x1( k 1) ,.., xi(k11) i putem folosi
aceste valori n prima sum.
Deducerea metodei Gauss-Seidel din schema general se face lund:
0 " 0
a11 0
a
21 a22 0 " 0
B = a31 a32 a33 " 0
#
# % #
#
a
n1 an 2 an 3 " ann
aij daca j d i
u
B = (bij )
bij =
0 daca j > i
Matricea B este nesingular innd cont de presupunerea aii z 0,i :
det B = a11a22 " ann z 0
Matricea C este:
0 a12 a13 " a1n
0
a23 " a2 n
0
0
0
0 " a3n
C = B A=
#
#
%
#
#
0
0
0 " an1n
0
0 "
0
0
aij daca i < j
u
C = (cij )
cij =
daca i t j
0
n cazul metodei Gauss-Seidel, vectorul x ( k 1) se obine din x ( k )
rezolvnd sistemul inferior triunghiular (7) din schema general:
63
Bx = Cx ( k ) b = f
Soluia sistemului (6) este dat de formula:
i 1
i 1
j =1
j =1
(14)
(15)
fi = (Cx ( k ) )i bi , i = 1,2,!, n
(16)
Vectorul f este:
unde
n
(Cx )i = cij x
(k )
(k )
j
(17)
j = i 1
j =1
( k 1)
i
= (bi aij x
(k )
j
j = i 1
aij
( a
i =1 j =1
j zi
)2 < 1
ii
|a
ij
(10)
j =1
j zi
atunci:
x ( k ) o x* , k o f x (0)
Demonstraie. n procedeul iterativ Gauss-Seidel, notnd soluia cu
x
A1b i H ( k ) x
x ( k ) vectorul eroare, scznd relaiile:
64
i 1
aij x j
aii xi
j 1
a x
ij
bi
j i 1
i 1
j 1
a x
ij
(k )
j
bi
j i 1
obinem:
i 1
H i( k 1)
j 1
j zi
Notm c max{
j 1
j zi
aij
aii
aij
aii
aij
H (j k 1)
aH
j i 1
(k )
j
ii
Observm c:
n
H1( k 1) d
j 2
a1 j
a11
H (j k ) d c H ( k ) f .
i 1
H i( k 1) d
j 1
aij
aii
aij
H (j k 1)
j i 1
aii
i 1
H (j k ) d c H ( k )
aij
a
j 1
H (k )
ii
j i 1
aij
aii
d c H (k )
|a
ij
|<| a jj | j = 1,!, n
(11)
i =1
iz j
lim x x x
k of
ai 1, j
ij
i 1
iz j
i
Ay b avem
65
i 1
aiij y j
yi
j 1
ai y
ij
j i 1
i 1
( k 1)
i
j 1
Notnd H ( k )
ai z
ij
(k )
j
j i 1
y z ( k ) obinem:
i 1
aiH
(k )
j
ij
j i 1
i 1
i 1 j i 1
i 1 j 1
j 1
j 1
i j 1
aiij H (j k ) aiij .
j 2
(12)
i 1
Introducem notaiile:
n
Dj
aiij ,E j
i j 1
j 1
ai ,D
ij
0,E1
0.
i 1
i 1
j 1
c(1 D j ) rezult:
( k 1)
j
i 1
(1 D j )d c H
(k )
j
(1 D j ) d " d c
j 1
adic lim H ( k )
k of
k 1
(0)
j
(1 D j ) o 0, k o f
j 1
0, H (0) .
Din H k 1
k of
jk
0rezult lim M
k of
[( I LD 1 ) D]1UD 1D
astfel c:
Mk
j D o 0pentruk o f.
D 1 M
66
0.
a
21 a22 a23 " a2 n
12 a22
A = a31 a32 a33 " a3n = AT = a13 a23
#
# % #
#
#
#
a
a
n1 an 2 an 3 " ann
1n a2 n
Dac matricea A este simetric o putem scrie astfel:
A = AT A = L D LT
unde
a11 0 "
0 a "
22
D = diag[a11 , a22 ,!, ann ] =
#
# %
0 "
0
0
0
0
0
0
0
0
0 LT =
#
#
#
0
0
an 3
0
Matricea A fiind pozitiv definit ( ( Ax, x) n
0
0
a
21 0
L = a31 a32
#
#
a
n1 an 2
"
"
"
%
"
a31
a32
a33
#
a3n
"
"
"
%
"
an1
an 2
an 3
#
ann
0
0
#
ann
a12 a13 " a1n
0 a23 " a2 n
0
0 " a3n
#
# %
#
0
0 " an1n
0
0 "
0
> 0 x R n , x z 0 ) este
nesingular i n plus:
aii
Avem urmtorul rezultat.
Aei , ei ! 0i
1,!, n
Lem
Fie A u o matrice simetric i B u o matrice nesingular
astfel nct matricea P = B BT A este pozitiv definit. Fie matricea
M = I n B 1 A . Atunci raza spectral a matricii M este strict subunitar
dac i numai dac matricea A este pozitiv definit:
U (M ) < 1 A > 0
67
i = 1,!, n i b vectorul termenilor liberi. Atunci metoda lui GaussSeidel genereaz iruri convergente la soluia x* = A1b pentru orice
iteraie iniial x (0) dac i numai dac matricea A este pozitiv defnit .
Demonstraie: Din teorema de convergen avem:
x ( k ) o x* , k o fU ( M ) < 1
Dac matricea A se scrie sub forma:
A = L D LT
matricile B i C sunt date de:
B = L D , C = B A = LT
Matricea iteraiei M este:
M = B 1C = B 1 ( B A) = I n B 1 A
ncercm s aplicm Lema de mai sus. Pentru aceasta verificm dac
matricea P este pozitiv definit:
P = B BT A = L D ( L D)T L D LT = D
n
( Px, x)
Rn
= ( Dx, x)
Rn
= ((aii xi )i ,( xi )i )
Rn
= aii xi2
i =1
Rn
> 0 x R , x z 0 P > 0
Metodele relaxrii
68
Ae ,x
l
y ( k ) el , AT ( x y ( k ) ) el , A( x y ( k ) ) el , r ( k ) rl ( k )
Ael ,el
r (k )
r (k )
ck2 all 2ck rl( k ) l(all !0)ck 0,2 l sau 2 l ,0
all
all
(k )
r
ck Zk l ,cuZk 0,2
all
Metoda de relaxare obinut este urmtoarea:
rl ( k )
(0)
( k 1)
(k )
y dat, y
y Zk
el k 0,1,!,Zk 0,2
all
Pentru a aproxima x
se deduce o clas de metode numite metodele
relaxrii successive. Aceste metode se obin aplicnd metodele de
69
l 1 y
l
2 y
(2)
n y
(n)
`
Z ,k , neschimbat
astfel:
x (0)
(1)
(k )
r1(0)
y Z
e1
a11
(0)
r2(1)
y Z e2
a22
(1)
#
l
y
( n 1)
rn( n1)
Z
en
ann
x (1) y ( n )
Trecerea de la iteraia k la iteraia urmtoare se face asrfel:
x ( k )
l 1 y
l
( kn 1)
2 y
( kn 2)
n y
( kn n )
y ( kn )
y
( kn )
r1( kn )
Z
e1
a11
r2( kn1)
Z
e2
a22
y
( kn 1)
y
( kn n 1)
#
l
rn( knn1)
Z
en
ann
ri
0,1,2,!
( kn i 1)
aii
70
y ( kni 1)
ri
( kn i 1)
x1( k 1)
( k 1)
x2
#
n
xi(k11) ,ri ( kni 1) b Ay ( kni 1) bi aij y (jkni1)
i
(k )
j 1
x
i
#
x(k )
n
i 1
bi aij x
( k 1)
j
j 1
Acum putem scrie dependena componentelor vectorului
componentele vectorului x ( k ) :
x (0) Z 0,2 date,
x ( k 1) de
i 1
n
( k 1)
b
a
x
aij x (jk ) ,i 1,2,!, n,k 0,1,2,!
i ij j
aii
j 1
j i
i 1
n
Z
xi( k 1) Z ) xi( k ) bi aij x (jk 1) aij x (jk ) ,i 1,2,!, n,k 0,1,2,!
aii
j 1
j i 1
j i 1
an1an 2 "ann10
Cu aceste notaii, matricile B i C de mai sus pot fi scrise astfel:
1
1 Z
B L D,C
DLT
71
1
1Z
B C L D
DLT LD LT A
Px, x
(2 Z )
(2 Z )
i 1
72
D x
0D j
i i
0, j 1,!, k .
(3)
i 1
E x
i i
0.
(4)
i 1
Aplicnd A obinem:
k 1
E O x
i i i
i 1
73
0.
(5)
O O E x
i
k 1
i i
i 1
A B pA O
pB O .
Demonstraie.
p A O det(O I A) det O I TBT 1 det OTT 1 TBT 1
det T O I B T 1 det(T )det O I B det T 1
pB O
i0 j
j 1
j z i0
O xi
i0 j
j 1
j zi0
a x ,i
ij
1,!, n.
j 1
j zi
xj
xi0
d ai0 j
j 1
j di0
xj
xi0
d ri0 ,inndseamac
xj
xi0
d 1.
/ HU 1BU
/ HC .
O H Oi H cii d H cij O H Oi
' H .
j 1
j zi
Ax, x O x, x O x 2 .
Dar Ax, x x, AT x x, Ax Ax, x Ax, x
Ax, x .
O
scalar:
2
2
75
astfel c:
^ A `
k
, simetrice, asemenea cu
A k
k
k of
(k )
k
o/ diag > O1 , O2 ,!, On @.
A , A A A
k
n construcia matricilor A se vor utiliza matrici de rotaie plan
R pq T astfel:
A,
A k 1
R pk qk T k A k RTpk qk T k ,k
0,1,!!
k 1
R pk qk T k A RTpk qk T k
R pk qk T k V vom avea A
A k . Atunci:
k 1
WAW 1deci A
k 1
A.
kk
pk qk k
R pk qk T k A RTpk qk T k A .
Deteminarea la fiecare pas a direciilor p,q se face cutnd elementul
nediagonal de modul maxim :
k 1
a pqk
k 1
aqp
k 1
0.
r
ij
rij
G ij i, j
cos T k i
sin T k i
sin T i
k
k 1
aij
pk , j
qk ,
qk , j
pk .
qk
r a r
il
k
lm
jm
l 1 m 1
Pentru
p pk ,q
simplificarea
calculelor
vom
qk ,c cos T k ,s sin T k , i vom obine:
nota
k 1
k
aij aij , i, j 1,!, ni z p, q j z p, q,
k 1
k
k
apj capj saqj ,j 1,!, n, j z p, q,
k 1
k
k
aqj sapj caqj ,j 1,!, n, j z p, q,
k 1
k
k
ajp cajp sajq ,j 1,!, n, j z p, q,
k 1
k
k
ajq sajp cajq ,j 1,!, n, j z p, q,
k 1
k
k
k
app c 2app 2csapq s 2aqq
,
k
k
k 1
k
aqq
s 2app 2csapq c 2aqq
,
k 1
apq
Din condiia a pq
k 1
k
k
k 1
k
aqp
cs aqq
app c 2 s 2 apq .
0 rezult:
app aqq
k
cos2 T sin 2 T
ctg 2T .
2sin T cos T
2apq
k
O j ajj j 1,!, n,
k
77
2 / 2.
Notm:
a pp aqq
k
D
c2 s2
2cs
Din ecuaia D
2a pqk
,t
tg T k .
1 t2
t 2 2D t 1 0 avem rdcinile:
2t
t1,2 D r D 2 1.
Dintre cele dou rdcini , cu produsul t1t2 1, o vom alege pe aceea cu
modulul subunitar adic:
D sign D D 2 1 T k S / 4.
Calculele pentru obinerea valorilor a pp ,aqq
k 1
k 1
k
app app
apq
k
se pot simplifica:
k
k
k
1 app s 2aqq
2csapq
s 2 aqq
app 2csapq
k
k 1
s2
k
k
s2 c2
2a pq 2apq
2cs
k
s3 sc 2 2c 2 s
tapq .
c
Obinem astfel:
k 1
k
k
k
k 1
k
app app tapq aqq
aqq
tapq .
Propoziie
irul de matrici construite cu algoritmul lui Jacobi converge la o
matrice diagonal / diag[O1 , O2 ,! On ].
Demonstraie. Notm:
a k S k
ij
i 1 j
i 1 j
j zi
k 1
a k ,D k
ij
78
a k .
ii
1
k
prin
a k 1 a k 1
pp qq
a k ta k a k ta k
pp
qq
pq
pq
a k a k 2t 2 a k 2t.a k a k a k
pp qq
pq
pq pp
qq
a k a k 2t 2 a k 2. a k 1 t 2
pp qq
pq
pq
a k a k 2 a k .
pq
pp qq
i
2
a a ,i
k 1
ii
k
ii
1,! n,i z p, q,
rezult:
k 1
k
D 2 apkqk .
rezult:
a k t S
pk qk
n(n 1)
k 1
k 1
D
k 1
D
k
2 apkqk
k
2 apkqk
rezult:
S
k 1
dS
2
2
0
1
d ! d S 1
n
n
n
n
1
1
sau
k
k of
S
o 0.
79
k 1
a pq
a pj ca pj saqj ;
aqj su caqj ;
a
jp a pj ;a jq aqj ;
<a pp a pp t
a pq ;aqq aqq t
a pq ;
<a pq aqp 0;
80
0"hnn1hnn
Ne intereseaz un algoritm care s transforme o matrice ptratic A
oarecare ntr-o matrice Hessenberg superioar H care s aib aceleai
valori proprii:
i P
i 1,P
i matricenesingular .
AoH a..H$+ PA
Pr = I n 2v r (v r )T , v r R n , || v r ||2 = 1
Vectorul v r se alege astfel ca matricea Aies s aib coloana r n form
superior Hessenberg i s nu schimbe primele r-1 coloane ale matricii
Aintr .
81
Calculul matricii Pr
a
1r
a
a
2
r
2r
a
2
r
#
a rr arr
arr
a
k
Aer = ar 1r o ( PA)er Aer = r 1r
ir
0
#
anr
2
ir
k =r V
i = r 1
82
a1r
a1r 0
#
#
#
arr
arr 0
ar 1r
k arr k
u := (2D ) v = Aer ( PA)er =
=
#
# #
a
0
air
ir
#
# #
a
a
0
nr
nr
Cu aceste notaii matricea P devine:
1
1
1
1
P = I n 2( )u( )u T = I n ( 2 )uu T I n uu T cuE : 2D 2
E
2D
2D
2D
Pentru a cunoate matricea P trebuie s mai determinm constanta E .
Din condiia:
1
1
|| v ||22 = 1||
u ||22 = 1 2 || u ||22 12E =|| u ||22
2D
4D
avem:
|| u ||22 (ar 1r k ) 2 " air2 " anr2 =
ar21r " air2 " anr2 2kar 1r k 2 =
V 2kar 1r V = 2(V kar 1r )
de unde obinem:
E = V kar 1r
Vom alege semnul constantei k astfel nct E s fie ct mai mare
posibil deoarce constanta E apare n operaia de mprire. Avem:
E "mare"oE = V kar 1r t V (V t 0)osemnk = semnar 1r
Ce nseamn E = 0 ?
1
E = || u ||22 = 0o|| u ||22 = 0o u= 0oar 1r k ,!,air 0,!,anr = 0
2
83
( PA)e j
(In
Ae j
uu T )( Ae j )
Ae j
u (u T ( Ae j )) = Ae j
(uu T )( Ae j )
Jj
u
E
unde
a1 j 0
a2 j 0
#
#
,
J j := u T ( Ae j ) = (
) =
ar 1 j ar 1r k
a anr
nj
ar 1 j (ar 1r k ) " aij air " anj anr =
n
u a
i ij
i = r 1
#
0
a j 1 j
#
a j 2 j = 0 0
T
)
J j : u ( Ae j ) (
,
a
k
#
1
r
r
ar 1 j = 0 ar 2 r
#
#
a = 0 anr
nj
a1 j 0 " a j 1 j 0 " 0(ar 1r k ) " 0air " 0anr = 0
Din faptul c J j = 0 , j = 1,!, r 1 rezul c primele r 1 coloane
ale matricii A nu se schimb ca urmare a n mulirii A := Pr A , rmn n
form superior Hessenberg.
Algoritmul de trecere de la matricea A la matricea Pr A este urmtorul:
84
Ae j pentru j = 1,!, r 1
J
Ae j j upentru j = r 1,!, n
E
cu
n
J j = ( Ae j , u ) =
u a
i ij
i = r 1
eiT A
Ji T
u
E
unde
aij
Ji
u , j r 1,!, n,i 1,!, n
E j
85
xV =
a
2
ir
i = r 1
r 1lPr
In
k ;
ar 1r k ;ui
A Pr
A
transformareacoloanelor j
xfor j
r 1,!, n
r 1,!, n
fori r 1,!, n
a a J
u ;
ij
ij
i
transformareacoloaneiramatricii A
xar 1r k;air i r 2,!, n;
A A
Pr
transformarealiniilori 1,!, n
xfori 1,!, n
n
T
J
(
J
/
E
)
((
e
A
)
u
)
/
E
=
(
u j aij )/E ;
i
i
j = r 1
for j r 1,!, n
a a J
u ;
ij
ij
j
86
S22 "S 2 p
#
0"S
pp
-cO -d
cd
Se presupune c aceast ecuaie de gardul 2 are rdcini complexe.
Algoritmul QR de aproximare a valorilor proprii construiete un ir de
matrici A( k ) u , matrici asemenea cu matricea A, A( k ) A,k , ir
care converge la o matrice n form Schur real, A( k ) o S ,k o f .
Matricea limit
S este asemenea cu matricea A, valorile prorii ale matricii S fiind uor de
calculat. irul A( k ) se construiete astfel:
A(0) : A, A(0) Q0 R0 (descompunereaQRcalculatpentrumatricea A(0) )
A(1) : R0Q0 , A(1)
Q1R1(descompunereaQRcalculatpentrumatricea A(1) )
A(2) : R1Q1
#
A( k )
Qk Rk (descompunereaQRcalculatpentrumatricea A( k ) ),
A( k 1) : Rk Qk ,k
0,1,2,!
87
QkT | A( k )
Qk Rk Rk
QkT A( k )
RQ QT A( k )Q QT HQestetotnformHessenberg"
QT HQ
Notm cu:
RR12T (T12 )
i
R
88
n practic se presupune c matricea A este n form Hessenberg
neredus, adic:
aii 1 z 0i 2,!, n
Dac matricea nu este n form neredus, problema se decupleaz:
A A12 p
n 2
A 11
n p, p n 1sau
A
A
21
22
pn p
89
x A : RQ d k I n ;
xk k 1;
d k sunt constantele de deplasare. Dac A d I n QR ( A( k ) ) i
O p 1 d
. Dac se alege d |On convergena an( k1) n o 0 este
expresiei
Op d
rapid. Avem urmtoarul rezultat:
Teorem
Fie d o valoare proprie a unei matrici Hessenberg nereduse H. Dac
H RQ d I n , unde matricile Q i R sunt provin din descompunerea QR
a matricii H d I n QR . Atunci:
h nn1 0,h nn d
(algoritmul QR cu deplasare simpl gsete valoarea proprie d ntr-un
singur pas).
Euristic s-a constatat c la fiecare pas, cea mai bun aproximare a unei
(k )
valori proprii este ann
.
90
x A : RQ ann I n ;
xk k 1;
Varianta algoritmului QR cu deplasare (shift) dubl
n cazul cnd valorile proprii a1, a2 corespunztoare blocului:
amm amn
G
,m n 1
amn ann
sunt complexe, a1 ,a2 , abordarea cu deplasare simpl nu mai asigur
accelerarea convergenei. Avem:
det(OI 2 G ) (O a1 )(O a2 ) (O amm )(O ann ) amn anm
Q2 R2
A2 R2Q2 a2 I n
Fie matricea:
M : Q1Q2 R2 R1 Q1 Q2 R2 R1 Q1 A1 a2 I n R1 Q1 Q1T AQ1 a2 I n R1
Q1Q1T AQ1R1a2Q1R1 $ a2 I n Q1R1 $ a2 I n $ a1I n
M
Q1Q2 R2 R1 $ a2 I n $ a1I n
A2 (a1 a2 ) A a1a2 I n
Q1Q2
91
Q1Q2
A Q1Q2
(2)
UU T
In
U
In;
k
0;
while( A zmatricediagonal)
A : R pq (T pq ) ARTpq (T pq );
U : URTpq (T pq );
k k 1;
La sfritul acestui algoritm, n matricea A vom avea matricea / care
aproximeaz valorile proprii ale matricii A, iar n U se va gsi matricea ce
aproximeaz vectorii proprii, RTp1q1 (T p1q1 )" RTpk qk (T pk qk ).
93
m r )u( n r )
( mr )ur
AT
AAT
T T
U 6V
V 6TU T ,
/ m
66
D 2 ru( mr )
mum
0( mr )ur 0( mr )u( mr )
AT A V 6TU TU 6V T V 6T 6V T V / n V T ,
D 2 0ru( nr )
nun
/ n 6 6
0( nr )ur 0( nr )u( nr )
innd cont de ortogonalitatea matricilor U i V, putem rescrie relaiile
de mai sus astfel:
( AAT )U U / m ,/ m diag V 12 ,V 22 ,!,V r2 ,0,!,0 mum
T
Din aceste relaii deducem c V 12 ,V 22 ,!,V r2 sunt valorile proprii strict
pozitive ale matricilor AAT i/sau ATA iar matricile U i V sunt matrici ale
cror coloane sunt vectorii proprii asociai. Matricile AAT i ATA sunt
matrici simetrice:
T T
T T
AA A
AT
AAT , AT A
AT AT
AT A
A u, A u,
T
AT u
u, u
AA u
T
Ou AAT u , u
Ou, u O
2
2
t0
matrici simetrice.
Putem folosi descompunerea dup valori singulare pentru a defini
pseudo-inversa unei matrici oarecare (nzm). Lucrnd formal, avem:
A U 6V T , A1
T 1
U 6V
T 1
6?1U 1 V 6 ?1U T
A
I
I T
,A mun
95
96
0,1, 2,!
97
Teorem de convergen
Fie f C 2 > a, b @ , cu f (a ) f (b) 0 , f '( x)z0i f ''( x)z0x > a, b @ .
Dac alegem
apentru f (a) f ''(a)! 0
x0
bpentru f (b) f ''(b)! 0
a x .
f ( xk ) f '( xk )( xk x
) f ( xk )
xk 1 x xk x
f '( xk )
f '( xk )
Folosind dezvoltarea n serie Taylor avem:
( x
xk ) 2
0 f ( x
) f ( xk ) f '( xk )( x
xk ) f ''( yk )
,cu yk xk , x
2
2
( x xk )
f ( xk ) f '( xk )( xk x
) f ''( yk )
2
nlocuind n relaia de mai sus obinem:
( x x
) 2 f ''( yk )
xk 1 x
k
2 f '( xk )
Dac mai considerm o nou dezvoltare n serie Taylor:
98
(1.1)
(1.2)
obinem:
xk x
f ( xk )
f '( zk )
(1.3)
f ( xk ) f ''( yk )
t
2 f '( xk ) f '( zk )
i se arat analog
xk t x i xk 1 d xk ,k .
Dac notm:
M 2 max ^| f ''( x) |; x > a, b @` ,m1 min ^| f '( x) |; x > a, b @`
folosind relaia (1.1) obinem:
0
| xk 1 x
_d | xk x
|2
m1
de unde deducem c ordinul de convergen este cel puin 2.
99
urmtorul:
x1 Oxdreapta ceunetepunctele x , f ( x ) x0 , f ( x0 )
x2
Oxdreapta ceunetepunctele x , f ( x ) x , f ( x )
1
0,1,2,!
Ecuaia dreptei ce trece prin punctele a, f (a) cu b, f (b) este:
y f (a)
xa
.
f (a ) f (b) a b
Pentru a-l obine pe xk 1 din xk avem:
y f ( xk )
x xk
cu y 0
f ( xk ) f ( x) xk x
f ( xk )( xk x ) x f ( xk ) xk f ( x )
xk 1 xk
,k
f ( x ) f ( x )
f ( x ) f ( x )
k
0,1,2,!,x0 dat
Teorem de convergen
Fie f C 2 > a, b @ , cu f (a ) f (b) 0 , f '( x)z0i f ''( x)z0x > a, b @ .
Dac alegem
x ai x0 bpentru f (a ) f ''(a )! 0
atunci irul ^ xk ;k t 0` construit
x bi x0 apentru f (b) f ''(b)! 0
cu metoda falsei poziii este monoton, mrginit deci convergent la unica
soluie x
a ecuaiei f ( x) 0 .
100
Metoda secantei
x3 Oxdreapta ceunetepunctele x1 , f ( x1 ) , x2 , f ( x2 )
#
xk 1 Oxdreapta ceunetepunctele xk 1 , f ( xk 1 ) xk , f ( xk ) ,k 1,2,!
Obinem elementul xk 1 din xk i xk 1 astfel:
y f ( xk )
x xk
cu y 0
f ( xk ) f ( xk 1 ) xk xk 1
xk 1
xk
f ( xk )( xk xk 1 ) xk 1 f ( xk ) xk f ( xk 1 )
,k 1,2,!, x0 , x1dai
f ( xk ) f ( xk 1 )
f ( xk ) f ( xk 1 )
Teorem de convergen
Fie x
o soluie a ecuiei
2
f ( x) 0 .
Presupunem
1 5
| 1.61803 .
2
101
F ( X ) 0F
, X 2
#
#
#
fn
xn
f n ( x1 , x2 ,!, xn ) 0
Fie matricea jacobian asociat funciei F (presupunem c funciile f i
sunt difereniabile):
wf1
wf1 wf1
"
wx wx
wxn
2
1
wf 2 wf 2
wf 2
"
wxn ( x1 , x2 ,!, xn )
F ( X ) wx1 wx2
wf n wf n " wf n
wx wx
wxn
2
1
Pentru a gsi soluia X
a sistemului de ecuaii neliniare F ( X ) 0 se
construiete un ir de vectori X ( k ) astfel:
1
X (0) dat, X ( k 1) X ( k ) F ( X ( k ) ) F ( X ( k ) ) X ( k ) ' ( k ) ,k 0,1,!
'(k )
1
F ( X ( k ) ) F ( X ( k ) )
102
q
r1 r1 ( p, q ) 0
r1
Pentru a gsi funciile r0 ( p, q )ir1 ( p, q ) vom gsi coeficienii necunoscui
de ecuaia (1) prin identificarea coeficienilor lui x k din membrul stng i
membrul drept:
x n
: a0 b0
x n1
: a1 b1 pb0
x ni
: ai
x
: an1
2,3,!, n 2
r0 pbn2 qbn3
x 0
: an r1 qbn2
Rearanjnd relaiile de mai sus avem:
b0 a0 ,b1 a1 pb0
bi
2,3,!, n 2
n)
(2)
wp
wq
r0 bn1 ( p, q )
F
wbn1
wbn
wbn1
wbn
r1 bn ( p, q ) pbn1 ( p, q )
wp bn1 p wp wq p wq
103
yk
Coreciile ' ( k ) se gsesc ca soluie a sistemului:
zk
X ( k 1)
y
F ( pk , qk ) F ( pk , qk ).
(3)
z
wb wb
Pentru a obine derivatele pariale i i i vom deriva n relaiile (2):
wp wq
wb1
wb0
wb0
wp 0, wp b0 p wp
D i ci 1,Ei ci 2 i
Pentru aceasta se verific: D1 c0 ,D 2
F ( pk , qk )
104
<c0
b0 ;c1 b1 pc0 ;
<ci
<det
2,!, n;
2,!, n;
bn1cn2 bn cn3
det
bn cn2 bn1 (cn1 bn1 )
< z
;
det
< p p y;
<q q z;
<k k 1;
< y
105
Fie polinomul:
P( x) a0 ( x x1 )( x x2 )" ( x xn ),a0 z 0
Metoda lui Laguerre propune construirea unui ir de numere care s
convearg la una din rdcinile polinomului P.
Considerm derivata polinomului P:
1
1
1
P '( x) P ( x)
"
x xn
x x1 x x2
Avem:
ln | P ( x) | ln | a0 |ln| x x1 |ln| x x2 | " ln| x xn |
d
1
1
1
P '( x)
ln | P( x) |
"
G ( x)
dx
x x1 x x2
x xn P ( x)
d2
1
1
1
2 ln | P( x) |
"
dx
( x x1 ) 2 ( x x2 ) 2
( x xn ) 2
2
H ( x)
H ( yk )
n 1
2
a2
b
106
yk 1
yk a yk
yk 1 yk
n
max G ( yk )r (n 1) nH ( yk ) G 2 ( yk )
nP( yk )
2
2
107
Interpolare numeric
Presupunem c despre o funcie f cunoatem doar valorile ntr-un
numr finit de puncte. Pornind de la aceste date, dorim s aproximm
funcia f ntr-un alt punct.
x0
x1
x2 ... xn-1 xn
x
y0
y1
y2 ... yn-1
yn
f
n tabelul de mai sus f(xi)=yi, i=0,1,,n i xizxj pentru iz j. Dat un punct
xz xi, i=0,1,,n dorim s aproximm f(x) cunoscnd cele (n+1) perechi
(xi,yi),i=0,,n. Punctele xi se numesc noduri de interpolare.
1
( xi x0 )" ( xi xi 1 )( xi xi 1 )" ( xi xn )
Polinoamele pi au forma:
n
x xj
( x x0 )" ( x xi 1 )( x xi 1 )" ( x xn )
(
pi ( x)
),i 0,!, n
( xi x0 )" ( xi xi 1 )( xi xi 1 )" ( xi xn ) j 0 xi x j
ci
j zi
Propoziie
Polinoamele p0, p1,, pn formeaz o baz n 3n.
108
x1q ( x1 a1 0
#
q ( xk ) a0 p0 ( xk ) " ak pk ( xk ) " an pn ( xk )
x
ln ( x) ai pi ( x)
i 0
wn1 ( x) c
i 0
j 0
j zi
j 0
j zk
( x x j ); wn1 ( xk ) c ( xk x j )
110
(5)
(6)
f ( n1) ( x) 0 c(n 1)! f ( n1) ( x) c(n 1)!
(derivata de ordin (n+1) a polinomului de grad n ln este 0). Din relaiile
(4), (5) i (6) rezult c:
f ( n1) ( y ) f ( x) ln ( x)
f ( n1) ( y )
c
f ( x) ln ( x)
wn1 ( x)
(n 1)!
(n 1)!
wn1 ( x)
adic am obinut relaia (3).
111
(8)
lk ( xk , x0 , x1 ,!, xk , f ) lk 1 ( xk , x0 , x1 ,!, xk 1 , f )
(9)
k 1
(x
xj )
j 0
k 1
k 1
i 0
j 0
j zi
k 1
yi (
A k 1
yk
(x
j 0
xj )
xk x j
)
xi x j
(x
k 1
(x
xj )
j 0
xj)
j 0
k 1
yk
i 0
i 0
i
k 1
( xk xi ) ( xi x j )
j 0
j zi
yi
(10)
(x x )
i
j 0
j zi
(11)
j 1
Dac nmulim relaia (8) cu (x-xk) iar relaia (11) cu (x-x0) i scdem
aceste relaii obinem:
( x0 xk )lk ( x, x0 , x1 ,!, xk , f ) ( x xk )lk 1 ( x, x0 , x1 ,!, xk 1 , f )
k
( A B) ( x x j ) 0adic A B
j 0
> x0 , x1,!, xk @ f
k 1
(x x )
j
j 1
112
l 1
(x x )
l
l 1
k 1
j 1
j 0
k 1
l 1
0
l 1
Putem scrie:
k 1
k 1 f
j 1
> x0 ,!, xk @ f
k 1
( x x )> x x
j
`
x xn @
j 0
> x0 , x1 ,!, xk @ f
(12)
x0 xk
Relaia (12) justific denumirea de diferen divizat. Se introduce i
noiunea de diferen divizat de ordinul 0:
(13)
> xk @ f yk f ( xk ),k
Diferenele divizate se pot obine folosind definiia direct (10) sau
folosind definiia recursiv (13), (12). Cele dou definiii sunt
echivalente:
Propoziie
k
> x0 , x1 ,!, xk @ f
i 0
yi
(x x )
i
yi
n 1 ( xk ) '
w
i 0
(14)
j 0
j zi
113
> x0 , x1,!, xk 1 @ f
k
(
x0 xk 1 i 0
k 1
yi
k
(x x )
i
i 1
^
x0 xk 1
y0
xj )
j 0
j z0
[
i 1
yi
(x x )
i
yk 1
k 1
(x
k 1
xj)
j 1
j z k 1
(
(x x )
j 1
j zi
(x
)
j 0
j zi
yi
k 1
1
1
)]}
xi xk 1 xi x0
j 1
j zi
y0
k 1
(x
k 1
i 0
k 1
(x
xj)
k 1
j 0
j z0
yk 1
xj)
j 0
j z k 1
i 1
yi
k 1
(x x )
i
j 0
j zi
yi
k 1
(x x )
i
j 0
j zi
114
Ne
propunem
calculm
diferenele
necesare
divizate
construirii
> x0 , x1 @ f ,
polinomului
de
dd [0, i ]
yi ,i 0,!, n;
fork 1,!, n
fori 0,!, n k
dd [k 1, i ] dd [k 1, i 1]
dd [k , i ]
xi xi k
Putem face aceleai calcule folosind un singur vector, de exemplu
rescriind vectorul y astfel:
115
fork 1,!, n
fori n,!, k
yi 1 yi
yi
xi k xi
La finalul acestei secvene de program vectorul y va conine elementele:
y0,
> x0 , x1 @ f ,
> x0 , x1, x2 @ f ,, > x0 , x1,!, xn @ f
( yk
0,!, n.
x0
y0
z0
x1
y1
z1
x2
y2
z2
... xn-1
... yn-1
... zn-1
xn
yn
zn
H 2 n1 ( x)
i 0
2 n 1
(15)
i 0
H2n+1 este unicul polinom de gard cel mult 2n+1 care satisface relaiile de
interpolare:
H 2 n1 ( xi ) yi ,H 2'n1 ( xi ) zi i 0,!, n
(16)
Dac x z xi ,i 0,!, n i fC2n+2[a,b] atunci:
f (2 n 2) ( y ) 2
f ( x) H 2 n1 ( x)
wn1 ( x)
(2n 2)!
116
(17)
unde y
117
Funcii spline
b.
P0 ( x),x [ x0 , x1 ],
P ( x), x [ x , x ],
1
2
1
P ( x), x [ x2 , x3 ],
S ( x) 2
#
Pn2 ( x), x [ xn2 , xn1 ],
x o xi
x ! xi
118
Pk 1 xk
S x0
P0 ( x0 )
Pk xk
yk ,k 1,!, n 1,
y0 ,S xn Pn1 xn
yn .
119
"
S ( x)
x xi
S ( x)
x xi
'
'
Ai 1
2hi
3
Ai 1
6hi
x xi
x x
i 1
2hi
x x
i 1
0,! n 1,
6hi
x x
i 1
Ai 1
Ai D i x E i ,D i , E i , i 0,! n 1,
6hi
6hi
Impunnd condiiile de interpolare i de continuitate vom obine:
Pi ( x)
120
hi2
Ai D i xi Ei yi ,
6
h2
Pi ( xi 1 ) i Ai 1 D i xi 1 E i yi 1i 0,! n 1.
6
Din aceste relaii determinm D i iE i nfunciede Ai , Ai 1 , yi , yi 1 :
yi 1 yi hi
Ai 1 Ai ,
Di
hi
6
Pi ( xi )
Ei
xi 1 yi xi yi 1 hi
xi 1 Ai xi Ai 1 ,i 0,! n 1.
hi
6
Din condiia:
'
0
P ( x0 )
'
'
0
f (a ),inndseamdeP ( x)
x x0
x x
A 1
1
2h0
A0 D 0
2h0
rezult
y y0
f ' (a)
6 1
(18)
h0
'
i 1
P ( x)
'
x xi1
2hi 1
x xi
x x
A i
Ai 1 D i 1 ,
2hi 1
x x
i 1
Ai 1
Ai D i ,
2hi
2hi
rezult, utiliznd valorile pentru D i 1 iD i deduse mai sus:
h
y yi 1 hi 1
Pi ' 1 ( xi ) i 1 Ai i
Ai Ai1
hi 1
2
6
Pi ( x)
Pi ' ( xi )
hi
y y h
Ai i 1 i i Ai 1 Ai
hi
2
6
sau
hi 1 Ai 1 2(hi 1 hi ) Ai hi Ai 1
y y y yi 1
6 i 1 i i
,
h
h
i
i 1
(19)
i 1,!, n 1.
n final, din condiia:
'
S (b)
'
n 1
P ( xn )
'
'
n 1
f (b)dinP ( x)
121
x xn1
2hn1
An
x x
n
2hn1
An1 D n1
obinem:
Pn'1 ( xn )
hn1
y yn1 hn1
An n
An An1
hn1
2
6
f ' (b),
sau
y yn1
6 f ' b n
(20)
hn1
0
2h0 h0 0!!!!!!!!!!!!!!!!!
h 2(h h )h 0!!!!!!!!!!!!!
0
1
1
0
h1 h1 h2 h2 !!!!!!!!!!
#
!!!!!!!!!!hn1 2hn1
y1 y0
f ' (a)
6
h0
y y y y
i 1
i
i
i 1
f
6
i 1,!, n 1
hi 1
hi
hn1
123
Integrare numeric
Fie f : [a,b] , integrabil i p : [a,b] o funcie pondere:
b
p x f x dx.
Ne propunem s aproximm
Relaia
b
1,!, n,
(1)
i 1
p( x) f ( x)dx
124
Ln1 ( x)
wn ( x)
f xi ,wn ( x)
'
i 1 ( x xi ) wn ( xi )
(x x ) ,
j
j 1
rezult c:
ci
p( x) ( x x )dx,
j
(x x )
i
j 1
j zi
j 1
j zi
Rn ( f )
p( x)r ( x)dx
n
Observaie. Dac f
P ( n ) ([ )
wn ( x) 0
Lagrange pentru funcii de clas C [a, b] , rn ( x)
n!
rezult Rn ( P) 0. Rezult c pentru formulele de cuadratur de tip
interpolativ ordinul de exactitate este cel puin n-1. n formulele de tip
interpolativ xi ,ci se aleg asfel nct ordinul de exactitate s fie maxim.
O alt clasificare a formulelor de cuadratur se face n raport cu
dispunerea nodurilor x1i xn nintervalul[a, b].
x formule de tip nchis :
x1 a,xn b,
x formule de tip deschis :
x1 ! a, xn b,
x formule de tip nchis deschis : x1 a, xn b,
x formule de tip deschis nchis : x1 ! a, xn b.
n
Formule iterate
Se consider o divizare a
b
X1
f ( x)dx
a
X1 X 2 ! X N
b i descompunerea:
XN
X2
f ( x)dx
X0
f ( x) dx "
X1
f ( x)dx .
X N 1
X k 1
Xk
cuadratur .
125
Se consider funcia
a d x1 x2 " xn d b
pondere
nodurile
f ( x)dx
f :[a, b] o ,
integrabil
ab ba
t
2
2
astfel ca:
b
ba
ab ba
ba
a f ( x)dx 2 1 f ( 2 2 t )dt 2 1 g (t )dt.
Construim polinomul de interpolare Lagrange pentru
g (t ) Ln1 (t ) rn (t ) n care:
t tj
, xi
j 1 i tj
j zi
n
ab ba
ti , g (ti )
2
2
g (t ) t
Ln1 (t )
i 1
funcia
f ( xi ).
rn t
g
t t ,
j
j 1
dn a b b a
f
t
dt n 2
2 t
b a n
Rezult:
b
f x dx
a
n 1 1
1 n
t tj
f n [ t
ba n
ba
wn t dt
dt
f xi
t
t
n
2 i1
2
!
j
1
i
j
1
1
j zi
Notm:
n
Ii
1
1
n t t
w t
1
1
j
dt '
n dt .
2 1 j 1 ti t j
2 wn ti 1 t ti
j zi
Rn f
ba
n 1 1
f n [ t
n!
1
wn t dt
f x dx
I f x R ( f )
n
i 1
126
(2)
Observaii
1.Coeficienii I i n nu depind de funcia f, prin urmare pot fi calculai i
tabelai pentru o repartiie dat a nodurilor xi.
2. Dac utilizm formula (2) pentru f { 1, n formula de interpolare vom
b
avea
1dx
rn ( x) 0 Rn (1) 0,astfelcb a
(b a ) I i n .1 din
i 1
care rezult :
n
I
n
i 1
1
wn t dt
n! 1
cn
f
t ti
1
i 1
i wn' (t )
1
n 1
t ti
1
i 1
t t
n 1i
1
wn (t )
i 1
wn' t .
1
1
1 wn W
dW I n n1 i
Ii
n 1 '
127
10
14175
89600
299376
3956
25713
80335
531500
8 45
I1
3 14
I2
9 64
23552 141669
9 24
250
-3712
I4
3 64
I5
14
I3
95
375
41
27
9261
9261
I7
41 25039
I8
5257
9720
-242625
27 20923 -18160
95 216
I6
5257
41984
52002 -1302750
52002 2136840
9720 1362000
I9
3956 141669
-242625
I10
25713
531500
80335
I11
I 0
10
I10
10
16067 10
, I1
299376
I 9
10
26575 10
I 2
74844
I 8
10
5675 10
- 4825 10 17807
,I 4
I 610
,I 5
6237
5544
12474
Considerm funcia f : > 1,1@ o fragmentar liniar:
I 310
I 710
128
-16175
99792
sign( I i ),x xi i 0,!,10,
f ( x)
10
10
( x xi )sign( I i 1 ) x xi 1 sign( I i ), x > xi , xi 1 @ ,i 0,!,9.
10
cu graficul:
1
0.5
-1
-0.5
0.5
-0.5
-1
1
Avem
f x dx
0,4.
1
I j10 f x j
j 0
10
10
j
vom
6.1259
j 0
cu eroarea absolut:
1
10
f x dx I j10 f x j
5.7259.
j 0
1
Formula trapezului
a, x2 b,t1 1,t2 1.
2
2
I1 I 2 1,
2
2
I 2
I1
rezult:
I1
I1
129
1
,
2
f x dx
a
ba
f a f b R2 f
2
(3)
R2 f
x a x b
a
f '' [ x
2
dx
b a
12
f '' K ,K a, b .
Interpretarea geometric:
f ( x)dx
este
ba
aproximat prin
f a f b care reprezint aria trapezului
2
AABB.
130
I 3 I 3 I 3 1,
2
3
1
3
I 33
I1
1
t t 1
I 3 1
dt
1
2 1 1 0 1 1
1
6
I 33
2
.
3
n ipoteza f C 4 > a, b @ se obine formula de cuadratur a lui Simpson:
rezult I 23
4
ba
b a f (K )
ab
f a 4 f
f b
6
2
2 90
5
f x dx
a
(4)
f x dx
a
3
4
h f a 3 f x2 3 f x3 f b ' h5 f [ (5)
xi
f x dx
a
2h
7 f a 32 f x2 12 f x3 32 f x4 7 f b
45
' h 7 f 6 [
131
Formule iterate
f x dx f x dx
i 0
xi
xi 1
N 1
x x
x x
f x dx i 1 i f xi f xi 1 i 1 i f " Ki
2
12
i 0
i 0
N 1
H
2
N 1
H 3 N 1 "
2
f
a
f
x
f
b
12 f Ki
i 1
i 0
f x dx
H
2
N 1
ba 2 "
f
a
f xi f b
H f [
2
i 1
12
N 1 x2 i 2
f x dx f x dx
a
i 0 x2 i
pentru fiecare din integralele din sum aplicm formula lui Simpson
obinnd:
b
N 1
x2i 2 x2i
f
x
dx
f x2i 4 f x2i 1 f x2i 2
a
6
i 0
5
1 N 1 x x 4
2i 2 2i f [i
90 i 0
2
sau
b
N 1
N 1
4
2
f
a
f
x
2i1 f x2i f (b)
a
i 0
i 1
(6)
H4
b a f 4 [ .
180
Formula (6) poart numele de formula lui Simpson iterat.
f x dx
H
3
132
133
134
Numele
rutinei
Realizeaz
f01bnc
nag_complex_cholesky
Factorizarea UUH a unei matrici complexe Hermitiene
pozitiv definite
f01mcc
nag_real_cholesky_skyline
Factorizarea LDLT a unei matrici reale simetrice pozitiv
definite, band
f01qcc
nag_real_qr
Factorizarea QR a unei matrici reale m n (m n)
f01qdc
nag_real_apply_q
Calculeaz QB sau QT B dup factorizarea realizat cu
f01qcc
f01rcc
nag_complex_qr
Factorizarea QR a unei matrici complexe m n (m n)
f01rdc
nag_complex_apply_q
Calculeaz QB sau QH B dup factorizarea realizat cu
f01rcc
Numele
rutinei
Realizeaz
f02aac
nag_real_symm_eigenvalues
Toate valorile proprii ale unei matrici reale simetrice.
f02abc
nag_real_symm_eigensystem
Toate valorile proprii i toi vectorii proprii pentru matrici
reale simetrice.
135
f02afc
nag_real_eigenvalues
Toate valorile proprii ale unei matrici reale.
f02agc
nag_real_eigensystem
Toate valorile proprii i toi vectorii proprii pentru matrici
reale
f02awc
nag_hermitian_eigenvalues
Toate valorile proprii ale unei matrici complexe hermitiene.
f02axc
nag_hermitian_eigensystem
Toate valorile proprii i toi vectorii proprii pentru matrici
complexe hermitiene
f02ecc
nag_real_eigensystem_sel
Calculul unor valori proprii selectate i a vectorilor proprii
pentru o matrice real general .
f02gcc
nag_complex_eigensystem_sel
Calculul unor valori proprii selectate i a vectorilor proprii
pentru o matrice complex general .
f02wec
nag_real_svd
SVD pentru matrici reale (Descompunerea dup valorile
singulare)
f02xec
nag_complex_svd
SVD pentru matrici complexe
f03 Determinani
Numele
rutinei
f03aec
Realizeaz
nag_real_cholesky
Factorizare LLT i determinantul unei matrici
simetrice , pozitiv definite .
reale,
f03afc
nag_real_lu
Factorizare LU i determinantul unei matrici reale
f03ahc
nag_complex_lu
Factorizare LU i determinantul unei matrici complexe
136
Numele
rutinei
Realizeaz
f04adc
nag_complex_lin_eqn_mult_rhs
Soluia aproximativ a sistemelor liniare complexe cu
membri drepi multipli .
f04agc
nag_real_cholesky_solve_mult_rhs
Soluia unui sistem cu matrice real, simetric, pozitiv
definit.
f04ajc
nag_real_lu_solve_mult_rhs
Soluia unui sistem real de ecuaii liniare
f04akc
nag_complex_lu_solve_mult_rhs
Soluia unui sistem complex de ecuaii liniare.
f04arc
nag_real_lin_eqn
Soluia unui sistem real de ecuaii liniare.
f04awc
nag_hermitian_lin_eqn_mult_rhs
Soluia unui sistem de ecuaii liniare cu matrice complex
hermitian, pozitiv definit
f04mcc
nag_real_cholesky_skyline_solve
Soluia unui sistem cu matrice real, simetric, pozitiv
definit. Matricea coeficienilor factorizat n prelabil cu
f01mcc.
Numele
rutinei
Realizeaz
f07adc
nag_dgetrf
Factorizarea LU a unei matrici reale de tip (m,n)
f07aec
nag_dgetrs
Rezolvarea unui sistem liniar de ecuaii reale cu membrii
drepi multipli utiliznd factorizarea f07adc
137
f Algebra Liniar
2.
Obiectiv
nag real lu (f03afc) calculeaz factorizarea LU a unei matrici reale
, cu pivotare parial i evaluarea determinantului
Specicare
#include <nag.h>
#include <nagf03.h>
void nag_real_lu(Integer n, double a[], Integer tda, Integer pivot[],
double *detf, Integer *dete, NagError *fail)
3.
4.
Descriere
Aceast funcie calculeaz factorizarea LU a unei matrici reale A cu
pivotare parial PA = LU, n care P este o matrice de permutare , L
este inferior triunghiular iar U este superior triunghiular cu 1 pe
diagonal . Determinantul lui A este produsul elementelor de pe
diagonala lui P cu semnul determinat de schimbarile de linii.
Parametri
n
Intrare : n, ordinul matricii A.
Restricie: n 1.
a[n][tda]
Intrare matricea A de tip n u n .
Ieire : A conine n partea triunghiular inferior matricea L , n
partea strict triunghiular superior matricea U fr elementele
de pe diagonala acesteia care sunt = 1..
tda
138
5.
6.
7
72
33 16
24 10 57
8 4 17
139
Vprintf("\nPermutare P\n");
for (i=0; i<n; i++)
Vprintf("%3ld%s",pivot[i],(i%8==7 || i==n-1) ? "\n" : " ");
Vprintf("\ndetf = %9.4f dete = %2ld\n", detf, dete);
detf = detf * pow(two, (double)dete);
Vprintf("\nValoarea determinantului = %9.4f\n", detf);
}
}
exit(EXIT_SUCCESS);
}
8.2. Date de intrare
f03afc Example Program Data
3
33 16 72
-24 -10 -57
-8 -4 -17
8.3. Rezultate
f03afc Example Program Results
Matricea A dup factorizare
-8.0000 0.5000 2.1250
-24.0000 2.0000 -3.0000
33.0000 -0.5000 0.3750
Permutare P
323
detf = 0.3750 dete = 4
Valoarea determinantului = 6.0000
141
f Algebra liniar
Obiectiv
Specicare
#include <nag.h>
#include <nagf02.h>
void
nag_real_symm_eigenvalues(Integer n, double a[], Integer tda,
double r[], NagError *fail)
3.
Descriere
Funcia reduce matricea real simetric A la o matrice real simetric
tridiagonal prin metoda lui Householder. Valorile proprii ale
matricii tridiagonale sunt determinate prin algoritmul QL.
4.
Parametri
n
fail
6.
7
Referine
Wilkinson J H and Reinsch C (1971) Handbook for Automatic
Computation (Vol II, Linear Algebra) Springer-Verlag pp 212226
and 227240.
8. Exemplu
Se consider matricea simetric
2.3 2.6
0.5 0.0
0.0
0.5 1.4 0.7
0.5
2.6 0.7 0.0
143
8.1. Program
/* nag_real_symm_eigenvalues(f02aac) Exemplu
*
*/
#include <nag.h>
#include <stdio.h>
#include <nag_stdlib.h>
#include <nagf02.h>
#define NMAX 8
#define TDA NMAX
main()
{
Integer i, j, n;
double a[NMAX][TDA], r[NMAX];
Vprintf("f02aac Resultate \n");
/* Skip heading in data file */
Vscanf("%*[^\n]");
Vscanf("%ld",&n);
if (n<1 || n>NMAX)
{
Vfprintf(stderr, "N este in afara domeniului: N = %5ld\n", n);
exit(EXIT_FAILURE);
}
for (i=0; i<n; i++)
for (j=0; j<n; j++)
Vscanf("%lf",&a[i][j]);
f02aac(n, (double *)a, (Integer)TDA, r,
NAGERR_DEFAULT);
Vprintf("Valori proprii\n");
for (i=0; i<n; i++)
Vprintf("%9.4f%s",r[i],(i%8==7 || i==n-1) ? "\n": " ");
exit(EXIT_SUCCESS);
}
144
Scop
c02afc
nag_zeros_complex_poly
Zerourile unui polinom cu coeficieni compleci
c02agc
nag_zeros_real_poly
Zerourile unui polinom cu coeficieni reali
c02akc
nag_cubic_roots
Zerourile unui polinom de gradul 3 cu coeficieni
reali
c02alc
nag_quartic_roots
Zerourile unui polinom de gradul 4 cu coeficieni
reali
145
146
factorizarea LU a
Utilizare
CALL LFDRG (N, FAC, LDFAC, IPVT, DET1, DET2)
det(A) = DET1 * 10^DET2.
LINRG/DLINRG (Single/Double precision)
Utilizare
CALL LFCDS (N, A, LDA, FAC, LDFAC, RCOND)
149
MATLAB
produs al companiei The MathWorks Inc.
Interpolare polinomial
Funcia interp1 utilizeaz tehnici de aproximare polinomial pentru
aproximarea valorilor unei funcii
yi = interp1(x,y,xi,metoda)
x vector coninnd nodurile de interpolare;
y vector coninnd valorile funciei n noduri;
xi vector coninnd punctele n care se interpoleaz funcia
metoda ir de litere prin care se precizeaz metoda de interpolare:
`nearest se atribuie valoarea funciei corespunztoare celui mai
apropiat nod de interpolare
`linear pe nodurile de interpolare se construiete o funcie spline
liniar pentru care se calculeaz valorile yi corespunztor punctelor de
intrare xi (metoda implicit);
`spline se utilizeaz aproximarea spline cubic pe nodurile x , y
Dac un element xi se afl n afara intervalului nodurilor de interpolare x
se aplic metoda specificat pentru extrapolare sau se utilizeaza funcia
interpl sub forma:
yi = interp1(x,Y,xi,method,extrapval)
n care yi pentru xi din afara intervalului de interpolare se atribuie
valoarea extrapval .
Exemplu 1. Metoda implicita : `linear
x = 0:10;
y = sin(x);
xi = 0:.25:10;
yi = interp1(x,y,xi);
plot(x,y,'o',xi,yi)
150
x = 0:20;
y = cos(x);
xi = 0:.2:20;
yi = interp1(x,y,xi,spline);
plot(x,y,'o',xi,yi)
151
Cuadraturi numerice
f ( x ) dx
a
152
O alt form
q = quad(fun,a,b,tol,trace)
realizeaz afisarea la fiecare pas a valorilor [nr_evaluari_ale_functiei a
, b-a, q]
>>SS = quad('sin(x)',0.0,10.0,0.01,1);
NR_EV
5
7
9
11
13
15
17
a
0.0000000000
0.0000000000
0.0000000000
2.5000000000
5.0000000000
5.0000000000
7.5000000000
b-a
1.00000000e+001
5.00000000e+000
2.50000000e+000
2.50000000e+000
5.00000000e+000
2.50000000e+000
2.50000000e+000
q
3.7613187551
0.6970411903
1.8008605052
-1.0846352873
1.0924896452
-0.0629632340
1.1855204732
SS = 1.8388
>>SS = quad('sin(x)',0.0,10.0,0.001,1);
5
7
9
11
13
15
17
19
21
23
25
27
29
SS =
0.0000000000
0.0000000000
0.0000000000
0.0000000000
1.2500000000
2.5000000000
2.5000000000
3.7500000000
5.0000000000
5.0000000000
7.5000000000
7.5000000000
8.7500000000
1.00000000e+001
5.00000000e+000
2.50000000e+000
1.25000000e+000
1.25000000e+000
2.50000000e+000
1.25000000e+000
1.25000000e+000
5.00000000e+000
2.50000000e+000
2.50000000e+000
1.25000000e+000
1.25000000e+000
3.7613187551
0.6970411903
1.8008605052
0.6846762159
1.1164636596
-1.0846352873
0.0194157015
-1.1042192499
1.0924896452
-0.0629632340
1.1855204732
1.1274786602
0.0582257246
1.8391
153
i numrul evaluarilor
Mathematica
Mathematica este un produs software realizat de WOLFRAM Research
Inc. Informaii se gasesc pe site-ul www.wolfram.com. Prima versiune a
aprut n 1988. Versiunea actuala Mathematica 5.1
15625 ( 6)
f
3024
154
bd
a c
, y-> }}
bc ad
bc ad
LinearSolve[m, {p,q}]
{
dp bq
cp aq
,
}
bc ad bc ad
n=Inverse[m]
{{
d
b
c
a
,
},{
,
}}
bc ad
bc ad
bc ad bc ad
f=m.n
{{
bc
ad
bc
ad
+
, 0},{0,
+
}}
bc ad bc ad
bc ad bc ad
Solve[x^2==0.5,x]
{{x ->0.707107},{x->0.707107}}
155
C
/* dot.f -- translated by f2c (version
19950314).
You must link the resulting object file with
the libraries:
-lf2c -lm (in that order)
*/
#include "f2c.h"
doublereal dot_(n, x, y)
integer *n;
real *x, *y;
{
/* System generated locals */
integer i__1;
real ret_val;
/* Local variables */
static integer i;
/* Parameter adjustments */
--y;
--x;
/* Function Body */
ret_val = (float)0.;
i__1 = *n;
for (i = 1; i <= i__1; ++i) {
/* L10: */
ret_val += x[i] * y[i];
}
return ret_val;
} /* dot_ */
http://www.weihenstephan.de/~syring/f2c/f2c.html
http://cm.bell-labs.com/netlib/f2c/mswin/
156
Bibliografie
1. C. Ignat, C. Ilioi, T. Jucan, Elemente de informatic i calcul
numeric, vol. 1, Ed. Universitii Al.I.Cuza, Iai, 1987.
2. C. Ilioi, Analiz numeric, vol. 1i 2, Ed. Universitii
Al.I.Cuza, Iai, 1983.
3. T.A. Beu, Calcul numeric n C, Ed. Albastr, Cluj, 2000.
4. D. Larionescu, Metode numerice, Ed. Tehnic, Bucureti, 1989.
5. C. Berbente, S. Mitran, S. Zancu, Metode numerice, Ed.
Tehnic, Bucureti, 1997.
6. G. Dahlquist, . Bjrk, Numerical Methods, Prentice-Hall, 1974.
7. G. Golub, C.F. Van Loan, Matrix Computation, J. Hopkins Univ.
Press, 1986.
8. V. Ionescu, A. Varga, Teoria sistemelor, Ed. ALL, Bucureti,
1994.
9. I. Dragot, Metode de calcul numeric, Ed. Didactic i
Pedagogic, Bucureti,1998
10. B. Dumitrescu, C. Popeea, B. Jora, Metode de calcul numeric
matriceal. Algoritmi fundamentali, Ed. ALL, Bucureti, 1998.
11. P.G. Ciarlet, Introduction lanalyse numrique matricielle et
loptimisatio, Masson, Paris, 1982.
12. W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery,
Numerical Recipes in C - The art of scientific computing,
Cambridge University Press, 2002, ediia online.
157
Teme de laborator
Laboratorul nr. 1
1. Sa se gaseasca cel mai mic numar pozitiv u > 0, de forma u = 10m ,
astfel ca:
1.0 u 6= 1.0
unde prin am notat operatia de adunare efectuata de calculator.
Numarul u poarta numele de precizia masin
a.
2. Fie numerele a = 1.0, b = u, c = u, unde u este precizia masina
calculata anterior. Sa se verifice ca operatia de adunare efectuata de
calculator nu este asociativa, i.e.:
(a b) c 6= a (b c)
3. Aproximarea functiilor sin si cos cu ajutorul dezvoltarii n serie Taylor:
X
(1)n x2n+1
sin x =
=
sn
n=0 (2n + 1)!
n=0
cos x =
X
(1)n x2n
tn
=
(2n)!
n=0
n=0
(1)n x2n+1
sn =
(2n + 1)!
tn =
(1)n x2n
(2n)!
(1)
(2)
Sumele de mai sus se folosesc doar pentru valori ale lui x [0, 2).
Pentru x 6 [0, 2) se foloseste periodicitatea functiilor sin si cos:
x = 2k + z , k Z , z [0, 2) ,
sin x = sin z ,
cos x = cos z
N
X
sn
n=0
158
cos x TN =
N
X
n=0
tn
n = 0, 1, . . . , N 1
x2
tn
(2n + 1)(2n + 2)
n = 0, 1, . . . , N 1
s0 = x ,
sn+1
t0 = 1 ,
tn+1 =
|tn | ,
= 10p u
159
Laboratorul nr. 2
Tema
1) Date n dimensiunea sistemului, - precizia calculelor, matricea A
nn
R
triunghiulara inferior sau superior, vectorul termenilor liberi b Rn :
- sa se rezolve sistemul liniar Ax = b folosind metoda substitutiei (sa se
scrie cele doua proceduri care implementeaza metoda substitutiei directe si
inverse)
- sa se scrie procedurile de calcul a inversei matricilor triunghiulare.
2) Date n dimensiunea matricilor, matricile A, B Rnn sa se scrie
proceduri de adunare, scadere, nmultire a matricilor.
Observatie Precizia calculelor , este un numar pozitiv de forma =
10m (cu m = 5, 6, ..., 10, ... la alegere) care este data de intrare n program
(se citeste de la tastatura sau din fisier) la fel ca si dimensiunea n a datelor.
Acest numar se foloseste atunci cand testam daca o variabila este 0 sau
nu naintea unei operatii de mpartire. Daca vrem sa efectuam operatia de
mpartire s = 1/v unde v R nu vom scrie:
if(v! = 0) s = 1/v;
else printf( nu se poate face impartirea);
ci vom scrie n program:
if(f abs(v) > eps) s = 1/v;
else printf( nu se poate face impartirea);
Metoda substitutiei
Fie sistemul liniar:
Ax = b
(1)
= b1
= b2
b1
a11
(2)
b2 a21 x1
a22
Algoritmul de calcul a solutiei sistemelor (1) cu matrice inferior triunghiulara este urmatorul:
xi =
(bi
i1
P
j=1
aii
aij xj )
,
161
i = 1, 2, . . . , n 1, n
(3)
= b1
= bi
= bn1
= bn
xn =
(4)
Folosnd valoarea lui xn dedusa mai sus, din penultima ecuatie obtinem:
xn1 =
bn1 an1n xn
an1n1
b1 a12 x2 a1n xn
a11
Procedeul descris mai sus poarta numele de metoda substitutiei inverse pentru
rezolvarea sistemelor liniare cu matrice superior triunghiulara:
xi =
(bi
n
P
j=i+1
aii
aij xj )
,
162
i = n, n 1, . . . , 2, 1
(5)
(6)
unde ej este vectorul ej = (0, ...0, 1, 0, ..., 0)T unde 1 este plasat pe pozitia
j din vector. Prin urmare, pentru a gasi inversa unei matrici triunghiulare
vom aplica metoda substitutiei de n ori.
Se va observa ca inversele matricilor triunghiulare sunt de asemenea matrici triunghiulare.
163
Laboratorul nr. 3
Tema
Date: n - dimensiunea sistemului, - precizia calculelor, matricea sistemului A Rnn ,vectorul termenilor liberi b Rn , sa se decida daca matricea A
este singulara sau nu si n caz ca matricea A este nesingulara sa se aproximeze
solutia sistemului:
Ax = b.
(1)
ail
bl
all
a0il = 0 ,
a0ij = aij
ail
alj
all
,
,
i = l + 1, n , j = l + 1, n
i = l + 1, n ,
i = l + 1, n ,
b0i = bi pentru restul indicilor i, j
164
(2)
(3)
(4)
165
Algoritmul :
l = 1;
cauta pivot;
interschimba linii; (daca e cazul)
while (l n 1) and (all ) 6= 0) do
begin
(2)+(3)+(4);
l = l + 1;
cauta pivot;
interschimba linii; (daca e cazul)
end
if all = 0 then matrice singulara
else
begin
rezolva sistem superior triunghiular; (formulele (2))
verifica solutie;
end
Verificarea solutiei
Folosind datele initiale (nu cele modificate pe parcursul algoritmului) se
calculeaza si se afiseaza |Ainit xGauss binit | unde Ainit si binit sunt matricea si
vectorul introduse initial iar xGauss este solutia calculata folosind algoritmul
de mai sus. In general |Ainit xGauss binit | trebuie sa fie de ordinul 10p cu
p > 4 daca s-a lucrat corect (p depinde de n dimensiunea sistemului).
x Rn , A Rnn , y := Ax Rn y = (yi )ni=1 , yi =
z Rn , z = (zi )ni=1 , |z| =
166
n
X
j=1
v
u n
uX
t
|z
i=1
aij xj , i = 1, . . . , n
i|
Laboratorul nr. 4
Tema
Date: n - dimensiunea sistemului, - precizia calculelor, matricea sistemului A Rnn , vectorul termenilor liberi b Rn , sa se calculeze, cand
este posibil, o descompunere LU a matricii A (A = LU ). Folosind aceasta
descompunere sa se calculeze determinantul matricii A (det A = det L det U )
si xLU o solutie aproximativa a sistemului Ax = b.
Pentru verificarea solutiei sa se afiseze norma:
|Ainit xLU binit |
Ainit si binit sunt datele initiale nu cele modificate pe parcursul algoritmului.
Descompunere LU
Teorem
a
Fie A Rnn o matrice reala patratica de dimensiune n astfel ncat
det Ak 6= 0, k = 1, . . . , n, unde Ak = (aij )i,j=1,...,k . Atunci exista o unica
matrice inferior triunghiulara L = (lij )i,j=1,...,n cu lii = 1, i = 1, . . . , n si o
unica matrice superior triunghiulara U = (uij )i,j=1,...,n astfel ncat
A = LU
(1)
n
P
k=1
p
P
k=1
Pentru i = p, . . . , n avem:
upi = api
p1
X
p1
P
k=1
lpk uki ,
lpk uki
i = p, . . . , n
(2)
k=1
n
P
k=1
p
P
k=1
p1
P
k=1
lik ukp
p1
X
lik ukp)/upp ,
i = p + 1, . . . , n
(3)
k=1
2. Daca pentru o matrice A avem descompunerea LU , rezolvarea sistemului Ax = b se reduce la rezolvarea a doua sisteme triunghiulare:
Ax = b LU x = b
Ly = b,
U x = y.
169
Laboratorul nr. 5
Tema
Date: n - dimensiunea sistemului, - precizia calculelor, matricea sistemului A Rnn ,vectorul termenilor liberi b Rn , sa se calculeze descompunerea QR a matricii A si daca matricea sistemului A este nesingulara sa
se aproximeze solutia sistemului:
Ax = b.
(1)
unde Ainit este matricea initiala iar Q Rnn este matricea ortogonala si
R Rnn este matricea triunghiulara superior din descompunerea QR a
matricii A calculate cu algoritmul lui Givens.
Fie A o matrice reala patratica de dimensiune n. Presupunem ca pentru
matricea A avem o descompunere de forma:
A=QR
(2)
QRx = b
QT QRx = QT b
Rx = QT b
170
R(p, q) =
rij =
1 0
0 1
..
.
0
0
0 0
..
.
0 0
0 0
s 0
0 0 s c 0
..
.
0 0
1
c
s
s
0
pentru
pentru
pentru
pentru
pentru
0 1
i = j, i 6= p si i 6= q
i = j, i = p si i = q
i = p, j = q
i = q, j = p
restul indicilor i, j
unde p, q {1, . . . , n} iar c si s sunt doua numere reale care satisfac relatia
c2 + s2 = 1 (c si s pot fi alesi astfel incat c = cos t, s = sin t). Dupa cum
se observa , matricea R(p, q) nu depinde doar de p si q ci depinde si de
parametrul t pe care l-am omis pentru a simplifica notatia.
Daca inmultim la dreapta o matrice oarecare A cu o matrice de rotatie
R(p, q), B = R(p, q)A, matricea rezultat se obtine din matricea A astfel:
Notam cu Ai , Bi - linia i a matricii A respectiv a matricii B. Matricea B
are urmatoarele linii:
Bi = A i
Bp = cAp + sAq
Bq = sAp + cAq
liniile i = 1, . . . , n ,
linia p
linia q
i 6= p , i 6= q
la nceput se initializeaza QT = I
la fiecare pas p se efectueaza asupra matricii QT aceleasi transformari ca
si
asupra matricii A;
Pasul p se modifica astfel:
a0 = a; b0 = b; q = q T ;
for i = p + 1, . . . , n
begin q
r = a2pp + a2ip ;
if r = 0 then c = 1, s = 0 (sau next i)
else c = app /r , s = aip /r;
for j = p + 1, . . . , n
begin
a0pj = c apj + s aij ;
a0ij = s apj + c aij ;
end
(se efectueaza transformarea R(p, i) QT )
for j = 1, . . . , n
begin
T
qpj = c qpj
+ s qijT ;
T
qij = s qpj
+ c qijT ;
end
a0ip = 0, a0pp = r;
b0p = c bp + s bi ;
b0i = s bp + c bi ;
a = a0 ; b = b0 ; q T = q;
end
Dupa ce s-a adus matricea A la forma superior triunghiulara , se verifica
daca nu este singulara (aii 6= 0, i = 1, . . . , n) si apoi se rezolva sistemul
superior triunghiular.
Verificarea descompunerii se face astfel:
Se aplica algoritmul lui Givens astfel ca sa fie construitasi matricea QT
apoi se calculeaza matricea:
C = Ainit QR
173
nn
, C=
(cij )ni,j=1
, ||C|| = max{
n
X
i=1
|cij | ; j = 1, . . . , n}
174
n
X
k=1
aik bkj
Laboratorul nr. 6
Tema
Date: n - dimensiunea sistemului, - precizia calculelor, matricea A
Rnn sa se aproximeze inversa matricii A (daca este nesingulara!!) utilizand
metoda Gauss-Jordan.
Sa se afiseze norma:
||Ainit A1
GJ In ||
1
unde Ainit este matricea initiala iar AGJ
este inversa calculata cu metoda
Gauss-Jordan. Pentru norma matriciala de mai sus se foloseste norma definita
n laboratorul 4.
CR
nn
, C=
(cij )ni,j=1
, ||C|| = max{
n
X
i=1
|cij | ; j = 1, . . . , n}.
y1 = a11 x1 + + a1n xn
y2 = a21 x1 + + a2n xn
.
..
(1)
(2)
yn = an1 x1 + + ann xn
(n)
unde y = P y
A1 = BP
(1)
p1
P
j=1
p1
P
y p =
j=1
p1
P
y i =
j=1
aij yj + aip xp +
j=p+1
n
P
apj yj + app xp +
aij yj + aip xp +
n
P
aij xj
j=p+1
n
P
j=p+1
, i = 1, . . . , p 1
apj xj
aij xj
, i = p + 1, . . . , n
p1
X
j=1
apj yj + yp
n
X
apj xj )/app
j=p+1
p1
P
xi (i = 1, . . . , p 1) sau yi (i = p + 1, . . . , n) =
aij yj +
j=1
p1
P
j=1
n
P
j=p+1
aij xj + aip (
p1
P
j=1
apj yj + yp
n
P
n
P
j=p+1
apj xj )/app =
j=p+1
Sistemul a devenit :
xi
xp
y i
n
X
aip
aip
aip
(aij
apj )yj +
y p +
apj )xj , i = 1, . . . , p 1
app
app
app
j=1
j=p+1
n
p1
X
1
apj
P apj
=
y j +
y p
xj
app
j=1 app
j=p+1 app
n
p1
X
aip
aip
aip
P
(aij
apj )yj +
y p +
(aij
apj )xj , i = p + 1, . . . , n
=
app
app
app
j=1
j=p+1
p1
P
(aij
176
aip
apj , j = 1, . . . , n , j 6= p
app
aip
app
Pentru i = p
a0pj =
apj
, j = 1, . . . , n , j 6= p
app
1
app
a0pp =
Calculele se pot face la fiecare pas p n matricea A, fara a mai folosi matricea
auxiliara A0 . La final (dupa efectuarea pasului n) n matricea A vom avea
matricea B din formula (1).
Matricea P are forma:
P =
eT1
eT2
..
.
eTn
= (e1 e2 en )
Laboratorul nr. 7
Tema
Date n dimensiunea sistemului, n 500, - precizia calculelor, vectorul
termenilor liberi b Rn :
- sa se construiasca o matrice rara A Rnn si sa se memoreze folosind
una din cele 2 variante economice de memorare. Presupunem ca matricea A
are 5 elemente nenule pe fiecare linie cu exceptia celui diagonal iar elementul
diagonal este suma acestor elemente nenule de pe fiecare linie:
aii =
n
X
aij
i = 1, . . . , n
j=1
aij 6= 0
- cu aceasta memorare economicaa matricii A, sa se aproximeze solutia
sistemului liniar:
Ax = b
(1)
folosind metodele Jacobi si Gauss-Seidel.
- sa se verifice solutia afisand :
|AxJ binit | sau |AxGS binit |
unde xJ si xGS sunt aproximarile solutiei obtinute cu algoritmul Jacobi respectiv Gauss-Seidel.
x .
i = 1, . . . , n.
Sirul {x(k) } se construieste pornind de la un vector initial dat x(0) iar apoi
x(k+1) se obtine din vectorul precedent x(k) :
Vectorul x(0) se obisnuieste sa se initializeze cu 0:
(0)
xi = 0 ,
i = 1, . . . , n
Sirul x(k) astfel construit converge (atunci cand converge, limita este chiar x
solutia sistemului (1)) daca si numai daca raza spectrala a matricii M este
strict mai mica decat 1. Raza spectrala a unei matrici, (M ), se defineste ca
fiind cea mai mare valoare proprie in modul:
(M ) = max{|i |; i valoare proprie a matricii M, i = 1, . . . , n}
179
(k+1)
xi
= (bi
n
X
(k)
aij xj )/aii
j=1,j6=i
Metoda Gauss-Seidel
Presupunem ca aii 6= 0, i = 1, . . . , n. Matricea B este matrice inferior
triunghiulara, B = partea inferior triunghiulara a matricii A = (bij ), bij = 0
pentru j > i , bij = aij , pentru j i , C = B A = (cij ), cij = 0 pentru
j i, cij = aij , pentru j > i.
Pentru i = 1, . . . , n
(k+1)
xi
= (bi
i1
X
(k+1)
aij xj
j=1
n
X
(k)
aij xj )/aii
j=i+1
n
X
j=1,j6=i
cR
(2)
xp ; x(k)
A=
15.3
1.4
3.2
10.2 1.05
0.33
20.3
1.3
2.45
0.73
1.5
25.4
Varianta 1 de memorare:
diag
valori
indici coloana = {3 , 1 , 3 , 5 , 2 , 1 , 4}
inceput linie
= {1 , 2 , 5 , 5 , 6 , 8}
182
Varianta 2 de memorare:
diag
valori
= {0.0 , 3.2 , 0.0 , 1.4 , 1.05 , 0.33 , 0.0 , 0.0 , 1.3 , 0.0 ,
0.73 , 1.5}
indici coloana = {1 , 3 , 2 , 1 , 3 , 5 , 3 , 4 , 2 , 5 , 1 , 4}
Fie:
x(0) =
(1)
(1)
1.0
2.0
3.0
4.0
5.0
b=
5.0
4.0
3.0
2.0
1.0
x1
varianta clasica
varianta 1
(0)
coloana[1] )/diag 1
varianta 2
(0)
coloana[2] )/diag 1
183
(1)
x2
varianta clasica
(1)
varianta 1
(1)
valori[4] xindici
(0)
coloana[2]
valori[3] xindici
coloana[3]
coloana[4] )/diag 2
(1)
varianta 2
(1)
valori[6] xindici
(0)
coloana[4]
valori[5] xindici
coloana[6] )/diag 2
(1)
184
coloana[5]
Laboratorul nr. 8
Tema
Date n dimensiunea matricii A, - precizia calculelor, matricea simetrica
A Rnn , A = AT , sa se aproximeze valorile proprii ale matricii A folosind
metoda Jacobi.
Metoda lui Jacobi pentru aproximarea valorilor proprii ale
matricilor simetrice
Fie A Rnn o matrice reala de dimensiune n. Se numesc valori proprii asociate matricii A, numerele complexe C, radacinile polinomului
caracteristic:
pA () = det(I A) = 0
Pentru a aproxima valorile proprii ale unei matrici se foloseste relatia de
asemanare. Doua matrici A si B se numesc asemenea (A B) daca exista
o matrice nesingulara P astfel ncat A = P BP 1 ( B = P 1 AP ). Se
observa ca daca A B atunci si B A. Relatia de asemanare se foloseste
n algoritmii de aproximare a valorilor proprii deoarece matricile asemenea
au acealasi polinom caracteristic (pA () pB ()) si n consecinta au aceleasi
valori proprii.
Fie A Rnn o matrice simetrica (A = AT ) . Matricile simetrice au
toate valorile proprii reale.
Ideea algoritmului lui Jacobi este de a construi un sir de matrici simetrice,
asemenea cu matricea initiala , sir care convearge la o matrice diagonala.
Matricea diagonala limita va fi asemenea cu matricea initiala A si prin urmare
pe diagonala acestei matricii limita vom gasi valorile proprii cautate.
Constructia sirului de matrici
Sirul de matrici {A(k) } Rnn se construieste stfel:
A(0) = A ,
T
A(k+1) = Rpq ()A(k) Rpq
()
185
indicii (p, q) sunt alesi ca fiind indicii celui mai mare element nediagonal luat n valoare absoluta din matrice:
(k)
(k)
|apq
| = max{|aij |; i = 1, . . . , n , j = 1, . . . , n , i 6= j} = (A = AT ) =
(k)
= max{|aij |; i = 2, . . . , n , j = 1, . . . , i 1}
(1)
(din cauza simetriei sirului de matrici, se poate cauta elementul a(k)
pq de
(k)
mai sus doar n partea strict inferior triunghiulara a matricii A )
unghiul (c = cos , s = sin , t = tg) este ales astfel ca elementele
(p, q) si (q, p) ale matricii A(k+1) sa devina zero, i.e.,
(k+1)
(k+1)
apq
= aqp
= 0.
Schema algoritmului
k = 0;
calculeaza indicii p si q (vezi (1)) ;
calculeaza unghiul , adica c, s si t;
while (A 6= matrice diagonala si k kmax )
{
T
A = Rpq () A Rpq
() ;
( a se vedea formulele (5) de mai jos )
calculeaza indicii p si q (vezi (1));
calculeaza unghiul , adica c, s si t ;
( a se vedea formulele (3) si (4) de mai jos )
k = k + 1;
}
186
Pasul k al algoritmului
La acest pas se constrieste matricea B pornind de la matricea A astfel:
T
B = Rpq () A Rpq
()
bpj
bqj
bpp
bqq
bpq
bij
=
=
=
=
=
=
(2)
(app aqq )
2apq
(1 t2 )
2t
a0
+ + 1 dac
2
t = + semn() + 1 =
(3)
2 + 1 daca < 0
187
Avem
c=
1
1 + t2
s=
t
1 + t2
(4)
Cazul apq = 0
T
inand cont ca apq este cel mai mare element nediagonal n valoare absoluta, cazul apq = 0 nseamna ca matricea A la care s-a ajuns, este matrice
diagonala, algoritmul oprindu-se n aceasta situatie - pe diagonala matricii
A se gasesc aproximarile valorilor proprii cautate. Prin urmare testul:
A 6= matrice diagonala
din schema algoritmlui de mai sus se poate nlocui cu testul:
|apq | >
unde este precizia calculelor.
Se observa ca:
bpp app = s2 (aqq app ) + 2c s apq = 2s (c s)apq =
= 2s [c (c2 s2 )s/(2c s)]apq = t apq
La fel se deduce ca :
bqq aqq = t apq
T
La pasul k operatia A = Rpq () A Rpq
() se poate face astfel astfel:
j = 1, 2, . . . , n , j 6= p , j 6= q,
j = 1, 2 . . . , n , j 6= p , j 6= q,
j = 1, 2 . . . , n , j 6= p , j 6= q,
188
(5)
0 0 1
A=
0 0 1 are valorile proprii 1 = 1 , 2 = 0 , 3 = 2
1 1 1
1 1 2
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
2
3
4
2
3
4
5
3
4
5
6
4
5
6
7
A=
A=
189
21)
Laboratorul nr. 9
Tema
Date n - gradul polinomului, - precizia calculelor, polinomul P de grad n:
P (x) = a0 xn + a1 xn1 + + ak xnk + + an1 x + an , ai R i , a0 6= 0
(pentru polinomul P se dau cei n + 1 coeficienti reali ai , i = 0, . . . , n) sa se
aproximeze toate radacinile reale folosind metoda lui Laguerre. De cate ori
este necesara calcularea valorii unui polinom ntr-un punct oarecare se va
folosi schema lui Horner.
Metoda Laguerre de aproximare a r
ad
acinilor reale ale unui
polinom
Fie P un polinom de grad n:
P (x) = a0 xn + a1 xn1 + + an ,
(a0 6= 0)
(1)
(3)
(4)
xk+1
= xk
xk+1
= xk xk ( xk =
, k = 0, 1, . . .
n P (xk )
P 0 (x
k)
semn( P 0 (x
k) )
H(xk )
(5)
1
1
daca x 0
daca x < 0
Observatie important
a: Alegerea iteratiei initiale, x0 , poate determina
convergenta sau divergenta sirului xk la x . De obicei, o alegere a iteratiei
initiale x0 n vecinatatea lui x asigura convergenta xk x pentru k .
Nu este nevoie de memorat ntreg sirul {xk } ci doar ultimul element xk0
calculat. Se considera ca o valoare xk0 x (este ultimul element calculat)
atunci cand diferenta dintre doua iteratii succesive devine suficient de mica,
i.e.,
|xk0 xk0 1 | <
191
G
asirea altor r
ad
acini reale ale polinomului P
Dupa ce a fost gasita o aproximare x (ultimul xk calculat n schema
descrisa mai sus) a unei radacini x a polinomului P , se mparte polinomul
P la (x x) (vezi formula (4)) si se reia procedeul Laguerre cu P := Q
(Q fiind restul mpartirii lui P la (x x)). Coeficientii polinomului Q se
calculeaza folosind formulele (3).
192
Exemple
P (x) = (x 1)(x 2)(x 3) = x3 6x2 + 11x 6 ,
a0 = 1.0 , a1 = 6.0 , a2 = 11.0 , a3 = 6.
1
3
2
P (x) = (x )(x )(x + 1)(x )
3
7
2
=
1
(42x4 55x3 42x2 + 49x 6)
42
1
1
P (x) = (x 1)(x )(x 3)(x )
2
4
=
1
(8x4 38x3 + 49x2 22x + 3)
8
193
Laboratorul nr. 10
Tema
Date n + 1 puncte, x0 , x1 , . . ., xn (xi R i) si cele n + 1 valori ale
unei functii necunoscute f n aceste puncte, y0 = f (x0 ), y1 f (x1 ), . . .,
yn = f (xn ), sa se aproximeze f (
x) pentru un x dat, x 6= xi , i = 0, . . . , n,
folosind polinomul de interpolare Lagrange forma Newton (diferentele divizate se calculeaza folosind schema lui Aitken) si functiile spline cubice de
clasa C 2 (cunostem n plus despre functia f valorile u = f 0 (a) si v = f 0 (b)).
Interpolare numeric
a
Cunoscand valorile unei functii ntr-un numar finit de puncte, x0 , x1 , . . . , xn
sa se aproximeze valoarea functiei respective ntr-un alt punct x 6= xi , i = 0, n.
x
f
x0
y0
x1
y1
xn
yn
Dat x 6= xi sa se aproximeze f (
x). Pentru a aproxima f (
x) se construieste o
functie elementara S(x) care satisface S(xi ) = yi , i = 0, n. Valoarea aproximativa pentru f (
x) este S(
x). Consideram doua moduri de constructie a
functiei S: polinom de grad n (polinomul de interpolare Lagrange) si functie
polinomiala de grad 3 pe portiuni (functie spline cubica).
Polinomul de interpolare Lagrange
Unicul polinom de grad n, Ln , ce satisface relatia de interpolare:
Ln (xi ) = yi
i = 0, n
n
X
i=0
n
Y
x xj
yi
j=0,j6=i xi xj
Aceasta forma are avantajul ca daca se mai adaugam un nod (xn+1 , yn+1 )
valoarea polinomului Lagrange Ln+1 se calculeaza simplu din Ln astfel:
Ln+1 (x) = Ln (x) + [x0 , . . . , xn+1 ]f (x x0 )(x x1 ) (x xn )
Coeficientii:
[x0 , x1 , ..., xk ]f =
k
X
i=0
yi
k
Q
(xi xj )
j=0,j6=i
y1 y 0
x1 x 0
[x0 , x1 , x2 ]f =
[x2 , x1 ]f [x1 , x0 ]f
x2 x 0
[xk+1 , . . . , x1 ]f [xk , . . . , x0 ]f
xk+1 x0
y0
y1
y2
y3
[x0 , x1 ]f
[x1 , x2 ]f
[x2 , x3 ]f
Pas 2
Pas n
[x0 , x1 , x2 ]f
[x1 , x2 , x3 ]f
195
yi+1 yi hi (Ai+1 Ai )
hi
6
i =
hi
6
196
y1 y 0
u)
h0
yi+1 yi yi yi1
),
hi
hi1
i = 1, . . . , n 1
(1)
yn yn1
)
hn1
H=
2h0
h0
0
0 ...
h0 2(h0 + h1 )
h1
0 ...
0
h1
2(h1 + h2 ) h2 . . .
..
.
0
0
0
0
0
0
f=
6(
6(
0
0
y2 y 1 y1 y 0
)
h1
h0
y3 y 2 y2 y 1
)
h2
h1
..
.
yn yn1 yn1 yn2
6(
)
hn1
hn2
6(v
yn yn1
)
hn1
197
0
0
0
0
0
0
y1 y 0
u)
h0
6(
0
0
0
A=
A0
A1
A2
..
.
An1
An
(
x xi0 )3 Ai0 +1 (xi0 +1 x)3 Ai0
+
+ i0 x + i0
6hi0
6hi0
198
Laboratorul nr. 11
Tema
Date f o functie continua, f C[a, b] si a, b, < a < b < , doua
constante reale finite. Sa se aproximeze integrala functiei f pe intervalul
[a, b]:
Z
b
a
f (x) dx
F (x) =
3.0 4 5.0 3
x
x + sin(x) ;
4.0
3.0
F (x) = sin(ex ) ;
Aproximarea integralelor
Cu ajutorul metodei de aproximare a integralelor se va calcula o valoare
aproximativa pentru integrala cautata Iaprox . Folosind F , primitiva functiei
f , se calculeaza valoarea exacta a integralei, Iexact si se verifica cat de buna
este aproximarea facuta comparand cele doua valori.
Z
Z
b
a
b
a
Se afiseaza:
Iaprox
Iexact
199
|Iaprox Iexact |
b
a
f (x) dx Iaprox = h[
h=
ba
N 1
5
13
f1 + f2 + f 3 + f 4 + +
12
12
+fN 3 + fN 2 +
13
5
fN 1 + fN ]
12
12
ba
Ordinul de aproximare al metodei (eroarea) este
.
N3
O a doua metoda este data de formula:
Z
b
a
f (x) dx Iaprox = h[
7
23
3
f1 + f2 + f3 + f 4 + f 5 + +
8
6
24
+fN 4 + fN 3 +
ba
.
N4
200
7
3
23
fN 2 + fN 1 + fN ]
24
6
8