Upload
alexbulgaru
View
240
Download
6
Embed Size (px)
DESCRIPTION
sd
Citation preview
Calcul Numeric
Cursul 5
2015
Anca Ignat
1
Algoritmul de eliminare Gauss fr schimbare de linii descompunere LU
Presupunem c la fiecare pas al algoritmului de eliminare
Gauss pivotul este nenul ( ( 1) 0rrra ), deci nu e nevoie de
schimbare de linii.
Algoritmul se poate scrie astfel:
2
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
Considerm vectorul i matricea:
3
( ) ( )( )
1
( )
0
0, :r n r T n nr r n r
r
rn
t T I t et
t
4
col r
lin
( )( )
( )11
( )( )
0 0 0 0 0
0 0 0 0 00 1 0 00 0 0 1)
0 0 0
r Trr
rrr
rrn
n
t et t r
t t
5
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
t
6
Inversa matricii Tr este
1 ( )r Tr n rT I t e .
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 t
Dac A este o matrice oarecare, vrem s vedem cum se poate construi matricea B=Tr A fr a face nmulire matricial. Vom studia legtura ntre liniile matricilor A i B.
7
( ) ( )
( )
( ) ( )
( )
T T T r T T T r Ti i r i n r i i r
T r Ti i r
e 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 obine din linia i a matricii A la care se adaug linia r a matricii A nmulit cu factorul ( )rit .
( )
( )
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
.
8
Operaia TrA descrie Pasul r al algoritmului de eliminare Gauss dac:
( ) ( )( )( ) ( ) ( )1
1 ( ) ( ) ( ), , , ,r rr
r r rir nrr rr i nr r r
rr rr rr
a aat t ta a a
. Algoritmul de eliminare Gauss fr schimbare de linii poate fi descris astfel:
cu ( )1 2 1r T
n r n rT T T A U T I t e , ( ) ( )( )
( ) 1( ) ( ) ( )0 0 ( ) ( ) ( )
Tr rrr ir nrr r
r r rrr rr rr
a aata a a
.
9
Avem:
1 1 1 1 1 11 2 1 1 2 1, :n nA T T T U LU L T T T
1 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 t
Prin inducie 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
10
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
11
Descompuneri QR
Definiie Se numete matrice ortogonal, o matrice n x nQ care satisface relaia:
1= ( )T T TnQ Q QQ I Q Q .
Matricile ortogonale au urmtoarele proprieti:
Dac Q este matrice ortogonal atunci i matricea transpus QT este ortogonal.
12
= ( ) ( )T T T T T T T T nQ Q Q Q QQ Q Q I
Dac Q1 i Q2 sunt matrici ortogonale atunci Q1Q2 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 I
Dac n nQ este matrice ortogonal i nx atunci 2 2|| || =|| ||Qx x .
13
2 22 2 22 2
|| || , , , || || , || || 0
|| || || ||
TQx Qx Qx x Q Qx x x x
Qx x
Fie A o matrice real ptratic de dimensiune n. Pp. c avem:
A QR unde Q este o matrice ortogonal iar R este o matrice superior triunghiular.
= = = =T T TAx b QRx b Q QRx Q b Rx Q b
14
Algoritmul lui Givens Fie A o matrice real ptratic de dimensiune n. Pp. c avem:
A QR unde Q este o matrice ortogonal iar R este o matrice superior triunghiular.
= = = =T T TAx b QRx b Q QRx Q b Rx Q b n cazul algoritmului Givens, pentru a aduce sistemul Ax=b la forma Rx = QTb se folosesc matricile de rotaie. O matrice de rotaie , =1,( ) = ( )pq ij i j nR r are urmtoarea form :
15
1 0 0 0 00 1 0 0 0
0 0 0( ) =
10 0 ) 0
0 0 0 0 1
pq
p q
c s pR
s c q
16
n rest
1 pentru = , ,pentru = , = , =
= pentru = , =pentru = , =
0
ij
i j i p i qc i j i p i q
r s i p j qs i q j p
unde p, q {1,...,n} iar c i s sunt dou numere reale care satisfac relaia c2+s2=1. Constantele c i s pot fi alese astfel nct c=cos, s=sin. Se arat uor, folosind relaia c2+s2=1, c matricea ( )pqR este ortogonal:
( ) ( ) ( ) ( )T Tpq pq pq pq nR R R R I
17
Calculul matricii: = ( )pqB R A ,
B se obine din A modificnd doar liniile p i q. Fie
Ti iA e A , - linia i a matricii A
Ti iB e B - linia i a matricii B.
Liniile matricii B:
= = 1, , , ,=
=
i i
p p q
q p q
B A i n i p i qB cA sA
B sA cA
18
, 1, ,
, 1, ,
n rest
pj pj qj
qj pj qj
ij ij
b c a s a j n
b s a c a j n
b a
Calculul matricii :
= ( )TpqD A R , D se obine din A modificnd doar coloanele p i q. Notm Aej , Dej coloana j a matricii A i respectiv D.
19
Coloanele matricii D:
= 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 q
De cAe sAe
De sAe cAe
d c a s a i n
d s a c a i n
d a
Algoritmul lui Givens se desfoar n (n-1) pai - la pasul r se transform coloana r a matricii A n form superior triunghiular fr a modifica primele (r-1) coloane.
20
Pasul 1 Intrare: matricea A, vectorul b Ieire: matricea (1)A (cu prima col. n form superior triunghiular), b(1) Se efectueaz urmatoarele operaii de nmulire cu matrici de rotaie:
(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 b
Unghiurile 1i (constantele c1i i s1i) se aleg astfel ca elementul de pe pozitia (i,1) din matricea rezultat s devin 0.
21
Pasul r Intrare: matricea A(r-1) (are primele (r-1) coloane n form superior triunghiular), b(r-1) Ieire: matricea A(r) (cu primele r coloane n form superior triunghiular), b(r) La acest pas matricea A(r-1) i vectorul b(r-1) se transform astfel:
( 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 b
22
unde elementele = r ic c i = r is s din matricile de rotaie se aleg astfel ca dup nmulirea cu ( ) , = 1, ,r i r iR i r n elementul (i,r) s devin 0. Considerm operaia = ( )r i r iB R A , unde r i se alege 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 aj r b s a c a
23
Cea mai simpl alegere pentru c i s astfel ca s obinem bir=0 este:
2 2
2 2
= = ,1ales astfel ca 1
r r i r
r r i r
c f a s f a
f c s fa a
2 2 2 2= = i rr r
r r i r r r i r
aac sa a a a
2 2 = 0 0 1 , 0( ( ) )
rr ir rr ir
ir n
a a a a c sR I
24
Deci elementul de pe poziia (i,r) este deja nul. Nu avem ce schimba n matricea A. Operaia = ( )r i r iB R A , nu afecteaz forma superior triunghiular a primelor (r-1) coloane. n matricea B aceste coloane vor continua s fie n form superior triunghiular.
, , 1, , 1
deoarece 0rj rj ij ij rj ij
rj ij
b c a s a b s a c a j r
a a
nmulirea = ( )r i r iB R A nu schimb dect liniile r i i ale matricii B. n concluzie, operaia = ( )r i r iB R A nu schimb elementele nule deja obinute, ci doar face ca elementul de pe poziia (i,r) s devin 0.
25
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
Notm cu Q urmtoarea 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 R
26
Matricea Q este matrice ortogonal ca produs de matrici ortogonale. Descompunearea QR a matricii A este urmtoarea:
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
27
Pe scurt, algoritmul lui Givens este urmtorul:
;for 1, , 1
for 1, ,
( )* ;( )* ;
( )* ;
n
ri ri
ri ri
ri ri
Q Ir n
i r n
A R Ab R b
Q R Q
28
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
f a af
) { 1; 0;} / / ( )
else { / ; / ; }( )*
for 1, ,;
ri ri
rr ir
ri ri
rj rj ij
c s R Ic a f s a f
A R Aj r n
a c a s a
a
;vechiij rj ijs a c a
29
0 ;( )*
;
;
( )*
ir rr
ri ri
r r ivechi
i r i
ri ri
a a fb R bb c b s b
b s b c b
Q R Q
for 1, ,
;
;
rj rj ij
vechi
ij rj ij
j n
q c q s q
q s q c q
30
La sfritul acestui algoritm, n matricea A vom avea matricea superior triunghiular R, n vectorul b vom avea initQ b ( initb - vectorul termenilor liberi iniial), iar matricea Q va conine matricea TQ din factorizerea QR a matricii A. Numrnd operaiile efectuate (exceptnd calculul matricii Q) obinem: ( 1) radicali
2n n
3 2( 1)(4 7) 2 ( ) adunari/scaderi6 3
n n n n O n 3 22 ( 1)(2 5) 4 ( ) inmultiri/impartiri
3 3n n n n O n