Calcul Numeric Cursul 6 2019 Anca Ignat
Algoritmul lui Givens Fie A o matrice reală pătratică de dimensiune n. Pp. că avem: A QR unde Q este o matrice ortogonală iar R este o matrice superior triunghiulară. Ax = b QRx = b Q T QRx = Q T b Rx = Q T b În cazul algoritmului Givens, pentru a aduce sistemul Ax=b la forma Rx = Q T b se folosesc matricele de rotație. O matrice de rotație R ( ) = ( r ), =1, are următoarea formă : pq ij i j n 1
pq R pq 10 0 0 0 01 0 0 0 0 0 c s 0 p ( ) = 1 00 s) c 0 q 00 0 0 1 2
1pentru i = j, i p, i q cpentru i = j, i = p, i = q rij = spentru i = p, j = q spentru i = q, j = p 0înrest unde p, q {1,...,n} iar c şi s sunt două numere reale care satisfac relația c 2 +s 2 =1. Constantele c şi s pot fi alese astfel încât c=cos, s=sin. Se arată ușor, folosind relația c 2 +s 2 =1, că matricea R ( ) este ortogonală: pq T T R ( ) R ( ) R ( ) R ( ) I pq pq pq pq n 3
Calculul matricei: B = Rpq( ) A, B se obține din A modificând doar liniile p şi q. Fie T Ai ei A, - linia i a matricei A T Bi ei B - linia i a matricei B. Liniile matricei B: B = A i = 1,, n, i p, i q i i B = ca sa p p q B = sa ca q p q 4
b ca sa, j 1,, n pj pj qj b sa ca, j 1,, n b qj pj qj ij a înrest ij Calculul matricei : T D = AR pq( ), D se obține din A modificând doar coloanele p și q. Notăm Aej, Dej coloana j a matricei A şi respectiv D. 5
Coloanele matricei D: D = A j 1,, n, j p, j q j j De = cae sae p p q De = sae cae q p q d ca sa, i 1,, n ip ip iq d sa ca, i 1,, n d iq ip iq ij a înrest ij Algoritmul lui Givens se desfășoară în (n-1) pași - la pasul r se transformă coloana r a matricei A în formă superior triunghiulară fără a modifica primele (r-1) coloane. 6
Pasul 1 Intrare: matricea A, vectorul b (1) Ieșire: matricea A (cu prima coloană în formă superior triunghiulară), b (1) Se efectuează următoarele operații de înmulțire cu matrice de rotație: (1) R ( ) R ( ) R ( ) A A 1n 1n 13 13 12 12 (1) R1 n( 1n) R13 ( 13) R12 ( 12) bb Unghiurile 1i (constantele c1i și s1i) se aleg astfel ca elementul de pe poziția (i,1) din matricea rezultat să devină 0. 7
Pasul r Intrare: matricea A (r-1) (are primele (r-1) coloane în formă superior triunghiulară), b (r-1) Ieșire: 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: ( r1) ( r) R ( ) R ( ) R ( ) A A rn rn ri ri rr 1 rr 1 R ( ) R ( ) R ( ) b b rn rn ri ri rr 1 rr 1 ( r1) ( r) 8
unde elementele c= c ri şi s= s ri din matricele de rotație se aleg astfel ca după înmulțirea cu Rr i ( r i ), i = r 1,, n elementul (i,r) să devină 0. Considerăm operația B = Rr i ( r i ) A, unde ri se alege astfel ca bir 0: b ca sa, rj rj ij b sa ca, j 1,, n ij rj ij b a înrest) kl kl ( j r) b sa c a ir rr ir 9
Cea mai simplă alegere pentru c și s astfel ca să obținem bir=0 este: c = f a s = f a, rr ir 2 2 f ales astfel ca c s 1 f a arr air c= s= a a a a 2 2 2 2 rr ir rr ir 1 a 2 2 rr ir 2 a a 2 = 0 a a 0 c 1, s 0 rr ir rr ir ( R ( ) I ) ir n 10
Deci elementul de pe poziția (i,r) este deja nul. Nu avem ce schimba în matricea A. Operația B = Rr i ( r i ) A, nu afectează forma superior triunghiulară a primelor (r-1) coloane. În matricea B aceste coloane vor continua să fie în formă superior triunghiulară. b ca sa, b sa ca, j 1,, r 1 rj rj ij ij rj ij deoarece a a 0 rj ij Înmulțirea B = Rr i ( r i ) A nu schimbă decât liniile r și i ale matricei B. În concluzie, operația B = Rr i ( r i ) A nu schimbă elementele nule deja obținute, ci doar face ca elementul de pe poziția (i,r) să devină 0. 11
Algoritmul lui Givens poate fi descris astfel: R ( ) R ( ) R ( ) R ( ) R ( ) AR n1n n1n rn rn rr 1 rr 1 1n 1n 12 12 T R ( ) R ( ) R ( ) R ( ) R ( ) bb Q b n1n n1n rn rn rr 1 rr 1 1n 1n 12 12 _ Notăm cu Q următoarea matrice: Q R ( ) R ( ) R ( ) R ( ) R ( ) n1n n1n rn rn rr 1 r r1 1n 1n 12 12 12
Matricea Q este matrice ortogonală ca produs de matrice ortogonale. Descompunerea QR a matricei A este următoarea: 1 T QA R( Q Q ) AQ RQR T T QQ R ( ) R ( ) R ( ) R ( ) R ( ) n1n n1n rn rn rr1 rr1 1n 1n 12 12 R ( ) R ( ) R ( ) R ( ) R ( ) T T T T T 12 12 1n 1n rr1 rr1 rn rn n1n n1n T 13
Pe scurt, algoritmul lui Givens este următorul: Q I n ; forr 1,, n1 fori r 1,, n AR ri ( ri )* A; brri ( ri )* b; Q Rri ( ri )* Q; 14
Q I n ; forr 1,, n1 fori r 1,, n construcţiamatricii R ( ) constantelecşi s f a a 2 2 rr ir if ( f ){ c 1; s 0;} / / R ( ) I else { c a / f ; sa / f ; } A R ( )* A for j r 1,, n ri a c a s a ri rr ; rj rj ij vechi aij s arj c aij ir 15 ri ; ri ri ; ri
a 0; a f ir b R ( )* b b c b s b Q R ( )* Q ri rr ri r r i b s b c b vechi i r i for j 1,, n ri q c q s q ri ; rj rj ij vechi qij s qrj c qij ; ; ; 16
La sfârșitul acestui algoritm, în matricea A vom avea matricea init superior triunghiulară R, în vectorul b vom avea Qb ( - vectorul termenilor liberi inițial), iar matricea Q va conține T matricea Q din factorizarea QR a matricei A. Numărând operațiile efectuate (exceptând calculul matricei Q) obținem: nn ( 1) radicali 2 n( n 1)(4n 7) 2 3 2 n O( n ) adunări/scăderi 6 3 2 n( n 1)(2n 5) 4 3 2 n O( n ) înmulţiri/împărţiri 3 3 b init 17
QR algoritmul Gram Schmidt nn A cu det A 0 A=QR r11 r12 r1 n 0 r 1 2 n 1 2 n 22 r 2n a a a q q q 0 0 rnn a j = Aej coloana j a matricei A q j = Qej coloana j a matricei Q (1) 18
Relația (1) poate fi rescrisă astfel: 1 1 r11q a r q r q a 1 2 2 12 22 r q r q r q a 1 j p p 1 p jp pp (2) r q r q r q a 1 j n n 1n jn nn 19
Algoritmul de calcul al descompunerii QR cu metoda Gram-Schmidt se desfășoară în n pași, la fiecare pas calculându-se: - coloana p din matricea R - coloana p din matricea Q Avem: det A 0, A QR, Q ortogonală det R 0 ( r 0 i) ii 20
Pasul 1 Se folosește prima ecuație a sistemului (2) r q 11 a 1 1 Se face produsul scalar al acestei ecuații cu vectorii q 1 şi a 1. Se folosește proprietatea coloanelor matricelor ortogonale: Din: obținem: i 2 i j q 21 pentru i j q, q n 0 pentru i j 1 1 1 1 q a şi q 1 r 2 11 21
1 r a, q a ( r 0 deoarece det A 0) 1 1 1 11 2 11 r11 Pasul p Se folosește ecuația p sistemului (2): r q r q r q a 1 j p p 1 p jp pp La acest pas se cunosc deja coloanele q 1,q 2,...,q p-1. Se face, pe rând, produsul scalar al acestei ecuații cu vectorii: q 1,q 2,...,q p-1 q p şi a p. 22
p p k j, p j r, kpq q a q j 1,..., p 1 n k1 n p k j, k j, j j r q q r q q r q, q r n n n kp kp jp jp k1 k1 k j p j r a, q j 1,..., p 1 jp n Avem: 1 q a r q r q p p 1 p1 1p p1p rpp 23
Obținem: 1 q 1 a r q r q p 2 p 1 p 1 2 2 2 1 p p1 p 2 rpp r a r q r q p 1 p1 pp 1p p1p q 1 a r q r q 1 a r q p1 p p 1 p1 p j 1p p1p jp rpp rpp j1 2 24
Algoritmul Gram Schmidt modificat for i = 1,n v i = a i ; for i = 1, n rii = v i 2; q i = (1/ rii ) v i ; for j = (i + 1), n rij = (q i, v j ); v j = v j - rijq i ; 3 2 3 2 ( n 3 n ) ( n n 2) M: A: 2 2 Exemple descompuneri QR http://profs.info.uaic.ro/~ancai/cn/curs/exempleqr/ 25
Metode iterative pentru rezolvarea sistemelor de ecuaţii liniare =, n n n Ax b A, b (1) se presupune cunoscut că A este nesingulară, det A 0; soluţia exactă a sistemului (1) se notează cu x = A b * 1 n - dimensiunea sistemului este "mare"; * x (2) A este matrice rară - cu "puţine" elemente aij 0; : 26
pentru a aproxima soluţia * x matricea A nu se schimbă (transformă) ci doar se folosesc elementele nenule ale matricei ; se construieşte un şir de vectori ( k) n { x }, şir care în anumite cazuri, converge la * x : ( k ) * x x pentru k 27
O schemă generală de deducere a unei metode iterative Fie descompunerea: nn A = B C, B, C R, B uşor inversabilă (3) Ce înseamnă B "uşor" inversabilă? Sistemul liniar, având ca matrice a sistemului matricea B: Bx = f se rezolvă uşor (adică repede) ca în cazul sistemelor cu matrici diagonale sau triunghiulare, de exemplu. 28
* * * Ax = b Bx Cx = b * * * 1 * 1 * Bx = Cx b x = B Cx B b = Mx d unde Şirul 1 1 := n n n M B C, d := B b (4) ( k ) { } x se construieşte astfel: ( k1) ( k ) x := Mx d, k = 0,1, 2, (0) x n ales arbitrar (5) ( k 1) Vectorul x poate fi privit şi ca soluţia sistemului liniar: ( k ) Bx = f cu f := Cx b (6) 29
( k 1) Cunoscând vectorul, următorul element din şir, x, se poate construi fie utilizând relaţia (5) (dacă putem construi matricea M explicit), fie rezolvând sistemul liniar (6). x ( k ) Matricea M poartă numele de matricea iteraţiei iar (0) n vectorul x se numeşte iteraţia iniţială. Ne punem problema convergenţei şirului ( k ) x : ( k ) * x x, k Se ştie că această convergenţă nu are loc pentru orice matrice B. Avem următorul rezultat general de convergenţă. 30
Teorema de convergenţă nn Fie A o matrice nesingulară şi nn (0) n B, C, det B 0, astfel ca A=B-C. Fie x un ( k ) vector oarecare şi { x } şirul de vectori dat de relaţia (5) cu M şi d daţi de (4). Atunci: ( k ) * (0) x x k x M,, ( ) < 1 (7) unde ( M) = max ; valoarepropriea matricii M este raza spectrală a matricei M. Dacă există o normă ( k ) matricială naturală astfel ca M < 1 atunci șirul { x } * converge la soluția x a sistemului (1). k 0 M 1 x x, k, x. (8) 31
Demonstrație: Scăzând relațiile (5) şi x Mx d obţinem: ( k1) * ( k) * x x = M( x x ), k = 0,1,2, Avem: ( p) * ( p 1) * 2 ( p 2) * p (0) * x x = M( x x ) = M ( x x ) = = M ( x x ) ( p) * p (0) * x x = M ( x x ), p Prin urmare: ( p ) * p x x, p M 0, p p M 0, p ( M ) < 1 Dacă: M < 1 p M 0, p x p x, p x ( ) * (0) 32
Evaluarea erorii absolute ( k ) * x x Presupunem M <1 ( şirul Avem din (5): ( k ) { } x converge la * x ). x x l1 l Mx l l1 Mx d d ( l1) ( l ) ( l ) ( l1) x x = M( x x ) l Pentru orice k, j, folosind relaţiile de mai sus, avem: ( k j1) ( k j) ( k j) ( k j1) j ( k1) ( k ) x x = M( x x ) = = M ( x x ) k, j 33
Aplicând succesiv relaţia precedentă obţinem: ( k p) ( k ) ( k p) ( k p1) ( k p1) ( k p2) x x = x x x x x x x x ( k2) ( k1) ( k1) ( k ) = p1 ( 1) ( ) = k j k j ( x x ) j=0 p1 p1 ( k p) ( k ) ( k j1) ( k j) j ( k1) ( k ) x x = ( x x ) = ( M )( x x ) j=0 j=0 34
Făcând p obţinem: * ( k ) j ( k ) ( k1) x x = ( M ) M( x x ) j=0 M < 1 M j = ( I M ) j=0 Mai avem şi evaluarea: 1 1 1 M < 1 ( In M ) 1 M 1 M Prin urmare: M 1 M n 1 * ( k ) ( k ) ( k1) x x x x 35
Această 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. 36