Upload
alexbulgaru
View
216
Download
1
Embed Size (px)
DESCRIPTION
ds
Citation preview
Calcul Numeric
Cursul 6
2015
Anca Ignat
1
Algoritmul lui Householder Matrice de reflexie - n nP de forma:
22
=1= 2 , , || || = | | = 1
nT n
n jj
P I vv v v v
21 1 2 11
22 2 1 2 2
1 2
21 2
= ( , , , ) =
n
T nn
n n n n
v v v v vvv v v v v v
vv v v v
v v v v v v
.
2
Matricile de reflexie sunt : simetrice - = TP P i ortogonale - 2T T nPP P P P I .
= ( 2 ) = 2( ) = 2( ) = 2 =T T T T T T T T Tn n n nP I vv I vv I v v I vv P
2
22
2
= ( 2 )( 2 ) = 2 2 4( )( ) =
4 4 ( ) = 4 4 || || =
4 4 = (|| || = 1)
T T T T T Tn n n
T T T T Tn n
T Tn n
P I vv I vv I vv vv vv vv
I vv v v v v I vv v v v
I vv vv I v
3
21 1 0 1 1 0= 2, = , = 2 (1 , ,0 0 1 0 0 1
n v P x y Px
1 1 1 1
2 2 2 2
1 0= , = =
0 1x y x x
x yx y x x
Vectorul y=Px este reflectatul vectorului x n raport cu axa Ox2. Algoritmul ce folosete matricile de reflexie pentru a obine o
descompunere QR pentru o matrice n nA a fost descris de Alston S. Householder n articolul "Unitary triangularization of a
nonsymmetric matrix" aprut n Journal of the Assoc. of
Computing Machinery 5 (1958), 339-342.
4
Transformarea matricii A ntr-una superior triunghiular se face n
(n-1) pai, la fiecare pas folosindu-se o matrice de reflexie.
Pas 1: (1) 1=A P A (matricea P1 se alege astfel nct col. 1 s fie transformat n form superior triunghiular) Pas 2: (2) (1)2 2 1= ( )A P A P P A (P2 transform col. 2 n form sup. triunghiular, fr s schimbe col. 1) Pas r: ( ) ( 1) 1 1( )
r rr r rA P A P P P A
(se transform col r
n form sup. triunghiular fr s schimbe primele (r-1) coloane)
5
Descompunerea QR construit cu algoritmul Householder este urmtoarea:
1 2 1 = =n rP P P P A QA R unde
1 2 1= n rQ P P P P Q este matrice ortogonal ca produs de matrici ortogonale.
= = = =T T TQA R Q QA Q R A Q R QR
1 2 1 1 2 1= = ( ) =T T
n r r nQ Q P P P P P P P P
6
Pasul r La intrarea n pasul r matricea A are forma:
11 12 1 1
22 2 2
1 1
0
0 0= 0 0
0 0
0 0
r n
r n
rr rn
r r r n
ir in
nr nn
a a a aa a a
a aA a a
a a
a a
7
Pasul r const n:
2
:=
= 2 ( ) , , || || = 1r
r r T r n rr n
A P AP I v v v R v
unde vectorul v r se alege astfel ca matricea A s aib i coloana r n form superior triunghiular:
8
11 12 1 1
22 2 2
1
0
0 0= 0 0 0
0 0 0
0 0 0
r n
r n
rr rn
r n
in
nn
a a a aa a a
a aA a
a
a
9
Calculul matricii Pr Pentru simplitate vom nota Pr=P , vr=v.
1 1 1
2 2 2
1 1 1
1
= ( ) =0
0
0
r r r
r r r
r r r r r r
rr rrr r r
r r
ir
nr
a a aa a a
a a aa a k
Ae PA e Aea
a
a
10
Aplicnd proprietatea matricilor ortogonale :
n nQ , nx , 2 2|| ||Qx x pentru matricea Q=P i vectorul x=Aer avem:
2 2 2 2 22 1 2 1
2 2 2 2 2 2 2 21 2 1 1
|| || = =
|| || =r r r r r
r r r r r rr r r ir nr
PAe a a a kAe a a a a a a a
Din relaia de mai sus rezult:
2 2 2 2 2 21
== = = =
n
rr r r ir nr iri r
k a a a a a k
Determinarea vectorului v ce definete matricea P:
11
( ) = ( 2 )( ) = 2( )( ) =
2 ( ( )) = (2 ) =
T Tr n r r r
Tr r r r
PA e I vv Ae Ae vv Ae
Ae v v Ae Ae v Ae u
unde cu i u am notat:
12
1 1
2 2
1 1 2 2
:= ( ) = ( ), = ( , ) nn
r
r
Tr r
ir i
nr n
r r ir i nr n
a va v
v Ae Ae va v
a v
a v a v a v a v
13
1 1
2 2
1 1
11
00
0
:= (2 ) = ( ) = =0
0
0
r r
r r
r r r r
rrrrr r
r rr r
irir
nrnr
a aa a
a aa ka ku v Ae PA eaa
aa
aa
14
Cu aceste notaii matricea P devine:
2
2
1 1 1 1= 2( ) ( ) = ( )2 2 2
: 2
T T Tn n nP I u u I uu I uu
Pentru a cunoate matricea P trebuie s mai determinm constanta . Din condiia:
2 2 2 22 2 2 22
1 1|| || = 1 || || = 1 || || 1 2 =|| ||2 4
v u u u
15
2 2 2 2 2 22 2 1
1
2 2 2 2 21
00
0
|| || =|| || = ( ) =
2 =2 = 2( )
rrrr r r ir nr
r r
ir
nr
rr r r ir nr rr
rr rr
a ku a k a a a
a
a
a
a a a a ka kka ka
16
de unde obinem: = rrka
Vom alege semnul constantei k astfel nct s fie ct mai mare posibil deoarce constanta apare n operaia de mprire. Avem:
" " = ( 0)semn = semn
rr
rr
mare kak a
17
Ce nseamn =0 ? 2 22 2
1
1= || || = 0 || || = 0 = 02
= , 0, , = 0, , = 0rr r r ir nr
u u u
a k a a a
Cum arr=k i semn k = -semn arr obinem:
= 0, = , ,ira 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=PrA fr a face nmulire matricial. Vom pune n eviden schimbrile n raport cu coloanele.
18
1( ) = noua col. a matr. = ( )( ) =
1 1( )( ) ( ( )) =
Tj n j
T Tj j j j
jj
PA e j A I uu Ae
Ae uu Ae Ae u u Ae
Ae u
19
1
2
11
=1 =
00
:= ( ) = ( , ) =
( ) = =
( = 0, = 1, , 1 , = , = 1, ,
n
j
j
Tj j rj rr
r rr j
nrnj
n n
rj rr ij ir nj nr i ij i iji i r
i r rr i ir
a
a
u Ae a a kaa
aa
a a k a a a a u a u a
u i r u a k u a i r
)n
20
Noua coloan j se obine din vechea coloan j din care scdem
vectorul u nmulit cu constanta j. Ne intereseaz ca primelor (r-1)
coloane s nu li se schimbe forma superior triunghiular deja
obinut.
Pentru j=1,,(r-1) avem:
21
1
2
1
1
1
00
0:= ( ) = ( = 0 , ) =
= 0
= 0
0 0 0( ) 0 0 = 0
n
j
j
jjT
j j j jrr
r rrj
nr
nj
j jj rr ir nr
a
a
a
u Ae aa ka
a
aa
a a a k a a
22
Din faptul c 0, 1,..., 1j j r rezult c primele (r-1) coloane ale matricii A nu se schimb cnd facem operaia A=PrA, rmn
n form superior triunghiular.
Algoritmul de trecere de la matricea A la matricea PrA este
urmtorul:
23
1 2 1
pentru = 1, , 1
( ) = ( , , , , ,0, ,0) pentru =
pentru = 1, ,
j
Tr j r r r r
jj
Ae j r
P A e a a a k j r
Ae u j r n
== ( , ) =n
n
j j i iji r
Ae u u a
= 0, = 1, , 1 , = , = , = 1, ,i r rr i iru i r u a k u a i r n
24
Operaia de transformare a vectorului termenilor liberi b:=Prb:
1 1 1= ( ( )) = ( ) = ( ) =T T Tr nP b I uu b b uu b b u u b b u
== = ( , ) =n
nT
i ii r
u b b u u b
25
Algoritmul lui Householder
;for 1, , 1
calculeaz matricea (constanta i vectorul )* ;* ;
* ;
n
r
r
r
r
Q Ir n
P uA P Ab P b
Q P Q
La sfritul acestui algoritm, n matricea A vom avea matricea superior triunghiular R, n vectorul b vom avea initTQ b , initb este vectorul iniial iniial al termenilor liberi, iar matricea Q va conine matricea TQ din factorizarea QR a matricii A.
26
Algoritmul Householder detaliat
2
=
;for 1, , 1
construc ia matricii constanta i vectorul
= ;
if ( ) break ; / / 1 ( s
n
rn
iri r
r n
Q Ir n
P u
a
r r P I A
ingular )
= ;if ( 0 ) ;
;; , 1, , ;
rr
rr
r rr i ir
ka k k
k au a k u a i r n
27
=
*transformarea coloanelor 1, ,
for 1, ,
= ( / ) ( , ) / = ( ) / ;
for , ,
r
n
j j i iji r
A P Aj r n
j r n
Ae u u a
i r n
=
;
transformarea coloanei a matricii; 1, , ;
*
= ( / ) ( , ) / = (
ij ij i
rr ir
rn
ii r
a a u
r Aa k a i r n
b P b
b u u b
) / ;
for , , ;
i
i i ii r n b b u
28
=
*for 1, ,
= ( , ) / = ( ) / ;
for , ,
;
r
n
j i iji r
iij ij
Q P Qj n
Qe u u q
i r n
q q u
29
Numrul de operaii efectuate: A (adunri, scderi):
3 2
( 1)(2 1) ( 1)( 1)(2 3)( 1) 2 ( 1) =3 3
2 ( )3
n n n n n nn n n
n O n
M (nmuliri, mpriri ): 3 2( 1)(2 1) 24( 1) 3 ( 1) = ( )
6 3n n nn n n n O n
R (radicali ): (n-1)