30
Calcul Numeric Cursul 6 2015 Anca Ignat

CN - curs 06 - 2015

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)