31
Calcul Numeric Cursul 5 2015 Anca Ignat

CN - curs 05 - 2015

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