Semana 14 An

Embed Size (px)

Citation preview

  • 7/24/2019 Semana 14 An

    1/24

    Solucin sistemas lineales

    Mtodos iterativos no estacionarios

    Catalina Domnguez,

    Universidad del Norte

    Maestra en matemticas

    Semestre II de 2015

    Semana 14

    Pgina 1 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    2/24

    Calculo de valores propios: Mtodo QR (bsico)

    Schur descomposicin

    DadaA Cnn, existe una matrizUunitaria tal que

    U1AU=UHAU =

    1 b12 b1n0 2 b2n.

    .. .

    . .

    .

    ..0 0 n

    =T

    dondei son los valores propios deA

    T yUno son necesariamente nicas. El calculo paran 5no puedecalcularse de una manera directa, por eso se recurre a tcnicas itera-

    tivas para su calculo.

    Pgina 2 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    3/24

    Idea

    El problema se reduce a encontrar una matriz ortogonal Q Rnn

    (QTQ= I), de manera

    T =QTAQ

    siendoTuna matriz triangular superior.

    ayuda: principio teorico

    Dada A Rnn y Q Rnn una matriz ortogonal (QTQ = I),entonces, si

    B =QTAQ

    se puede descomponer como

    B= QR

    dondeR es una matriz triangular superior y Quna matriz ortogonal.

    Pgina 3 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    4/24

    Mtodo Iterativo QR (bsico)

    DadaA Rnn, y una matrizortogonal Q0 R

    nn,

    se calcula

    T0=QT0 AQ0,

    se encuentraQ1,R1 tal que

    T0=Q1R1.

    Tomamos

    T1=R1Q1 =QT1 Q1R1Q1

    =QT

    1 T0Q1=QT

    1 QT

    0 AQ0Q1= (Q0Q1)

    TAQ0Q1.,

    se encuentraQ2,R2 tal que

    T1=

    Q2

    R2

    .

    ...

    Tomamos

    T2=R2Q2=QT2 Q2R2Q2

    =QT2 T1Q2

    = (Q0Q1Q2)TAQ0Q1Q2

    En general, se determina Qk y

    Rk de manera que

    Tk1=QkRk

    y se define

    Tk =RkQk

    = (Q0Q1 Qk)TAQ0Q1 Qk.

    Si k entonces Tk Tdonde T es matriz triangular

    superior.

    Pgina 4 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    5/24

    Mtodo Iterativo QR (bsico)

    SeaA Rnn, dada una matriz ortogonalQ0 Rnn

    se calculaT0=Q

    T

    0AQ0

    Parak = 1, . . . ,hasta la convergencia DadaTk1, determinarQk,Rk tal queTk1=QkRk = tomamos Tk =RkQk

    Observaciones

    1 Se debe establecer un mtodo para encontrar la descomposicin

    QkRk deTk1.2 Tk yA son matrices semejantes, es decir, tienen los mismos

    valores propios.3 SiA tiene valores propios reales (de modulo distintos),Tk

    converge a una matriz triangular superior.

    4 SiAtienes valores propios complejos,Tk no converge a una

    matriz triangular superior.Pgina 5 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    6/24

    Dado un conjunto de vectores l.i

    x1, . . . ,xn, es posible generar

    vectores mutuamente ortogonales

    q1, . . . ,qnmediante

    q1= x1

    q2= x2 proyq1x2q1

    = x2 q1 x2

    q1 q1q1

    qk+1= xk+1 k

    i=1

    qi xk+1qi qi

    qi

    Denotando a a1, . . . ,an los vectores

    columna deA, tomamos

    q

    1=

    a1

    a1,

    qk+1= qk+1

    qk+1

    qk+1= ak+1 k

    i=1 (qj ,ak+1)qj

    A se descompone en A = QR. Puesto que Q1 = QT, la matrizRpuede calcularse fcilmente,

    R= QTA

    Pgina 6 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    7/24

    Teorema: Descomposicin (triangulacin) de Schur

    Dada una matrizA Rnn, entonces existe una matriz ortogonal Qtal que

    QTAQ=

    R11 R12 R1m

    0 R22 R2m...

    . . .

    0 0 Rmm

    =T

    dondeRiicorresponde a cualquiera de los siguientes casos: un numero real

    o una matriz2 2con dos valores propios complejos(conjugados)

    AdemsQ= lim

    kQ0Q1 Qk

    siendoQk la matriz ortogonal generada en el k-esimo paso de la fac-

    torizacinQR.

    Pgina 7 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    8/24

    function [ EI,V,normT,i] = QRiteracion( A, nmax, tol)

    % Realiza la iteracion QR para calculo de los vectores propios

    % de una matriz A

    T = A ; % en este caso Q_0 = I

    V = eye(size(A,1));

    iter = 0;

    while normT>tol && iter< nmax

    iter = iter+1;[Q,R] = qr(T);

    T = R*Q;

    V = V*Q;

    normT = norm(tril(T,-1),fro);

    end

    EI = diag(T);end

    Pgina 8 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    9/24

    Modificacin Factorizacin QR: Hessenberg Matrices

    FactorizacionQR

    n3 ciclos

    Hessenberg FactorizacionQR

    n2 ciclos

    Matriz de Hessenberg

    SeaB una matrizn ntal que

    bij = 0 1 j i 2, i= 3, . . . , n

    es decir, en la parte triangular inferior deB es cero, excepto posible-

    mente los elementos de primera subdiagonal.

    Pgina 9 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    10/24

    Modificacin Factorizacin QR: Hessenberg Matrices

    TransformarA Cnn en una matriz de Hessenberg

    B =QHAQ

    dondeQ = Hn

    2 H1yHi son matrices de Householder.

    Para matriz de Hessenberg, el polinomio caracterstico y su respectiva

    derivada en un punto c C puede calcularse fcilmente si calcular los

    coeficientes del polinomio (mtodo de Hyman).

    Pgina 10 Semana 14 5 de Noviembre de 2015 Domnguez

    M i d H h ld

  • 7/24/2019 Semana 14 An

    11/24

    Matrices de Householder

    Para v= x x2em definamos P =I 2vvT

    v2,

    1 Dado x Rn, y=Pxes la reflexin de xcon respecto al hiperplano= span{v}.

    2 Ptransforma

    x

    a un vector nulo excepto en unam

    -esima componenteEjemplo

    Para x= [1, 1, 1, 1]T ym = 3

    v=

    11

    11

    , P =12

    1 1 1 11 1 1 1

    1 1 1 11 1 1 1

    , Px=

    0020

    Pgina 11 Semana 14 5 de Noviembre de 2015 Domnguez

    M t i d H h ld

  • 7/24/2019 Semana 14 An

    12/24

    Matrices de Householder

    Dado x Rn, tenemos

    P(k) = Ik 0

    0 R(nk) , R(nk) =Ink 2

    w(k)w

    (k)T

    w2

    ,

    w(k) = x(nk) x(nk) e

    (nk)1 ,donde x

    (nk) Rnk es el vectorformado por las ultimasn kcomponentes de x.

    e(nk)1 es el primer vector unitario de R

    nk

    y=P(k)x, con yj =

    xj sij = 1, . . . , k

    x(nk) sij =k

    0 sij =k + 2, . . . , n .

    k = 2, x=

    12

    134

    , P(2) =

    1 0 0 0 00 1 0 0 00 0 0.1961 0.5883 0.78450 0 0.5883 0.7106 0.38590 0 0.7845

    0.3859 0.4855

    , y =

    12

    2600

    Pgina 12 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    13/24

    Reduccin a una matriz de Hessenberg

    Dada una matriz A Rnn, reducir A a una matriz de Hessenbergmediante el producto de matrices de HouseholderP(1)P(2) . . . P (n2).

    En pasok-simo consiste en calcularP(k), la cual anula las componentes

    k+ 2, . . . , nde lak-esima columna deA

    Sin = 5el proceso de reduccin consiste en

    P(1)

    0

    0 0

    P(2)

    0

    0 0 0 0

    P(3)

    0

    0 0 0 0 0

    Pgina 13 Semana 14 5 de Noviembre de 2015 Domnguez

    Mt d de H eh lde

  • 7/24/2019 Semana 14 An

    14/24

    Mtodo de Householder

    DadaA Rnn

    1 A(0):=A

    2 Parak = 1, . . . , n 2 A(k) =P

    T(k)A(k1)P(k) donde

    P(k) =

    Ik 00 R(n

    k)

    , R(nk) =Ink 2

    w(k)

    w(k)T

    w(k)2 ,

    w(k) = x(nk)x(nk) e

    (nk)1 , x: k-esimo vector columna deA

    (k1

    Observaciones

    1 Al realizar el productoPT(k)A(k1), las primerask filas no varan.

    2 Al realizar el productoPT(k)A(k1)P(k), las primerask columnasno varan.

    3 SiA Rnn es simtrica, entoncesA(k) =PT(k)A(k1)P(k)

    tambin lo es, y por tantoHdebe ser tridiagonal.Pgina 14 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    15/24

    Ejemplo

    A= 4 2 2 12 3 1 12 1 3 11 1 1 2

    Matrices reduccin

    w(1)=

    12

    1

    , P1 =

    1 0 0 00 0.6 0.6 0.30 0.6 0.3 0.60 0.3 0.6 0.6

    A1 =

    4 3 0 03 2 3 10 3 1 10 1.8 1 1

    , A2=

    4 3 0 03 2 3.16 0.00 3.16 1.4 0.20 0 0.2 1.4

    Pgina 15 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    16/24

    function [H,Q] = RedHouseholder(A)

    % Dada una matriz A, determina la reduccion de A

    % a una matriz de Hessenberg superior H, usando

    % matrices de Householder.

    n = size(A,1);

    Q = eye(n);

    for k=1:n-2

    P = zeros(n,n);

    P(1:k,1:k) = eye(k);x = A(k+1:end,k);

    w = x-norm(x)*eye(n-k,1);

    W = w*w;

    P(k+1:end,k+1:end) = eye(n-k)- 2/norm(w)^2*W;

    H = P*A*P;

    A = H ;Q = Q*P;

    end

    end

    Pgina 16 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    17/24

    Fact. QR de una matriz de Hessenberg usando matrices de rotacin

    Dada una matrizA Rn es posible factorizarAmediante

    H=QTAQ, Q= P(1)P(2) . . . P (n2)

    donde P(k) es una matriz de Householder, y H es una matriz de

    Hessenberg superior.

    Tenemos queA y Hson matrices semejantes, es decir, stas

    poseen los mismos valores propios.

    Encontrar los valores propios deHes ms fcil de hallar que los

    deA. Al obtenerHes posible aplicar distintos mtodos paraencontrar los valores propios, entre ellos, descomposicin QR

    mediante matrices de rotacin.

    Pgina 17 Semana 14 5 de Noviembre de 2015 Domnguez

    D i i QR M t i d R t i

  • 7/24/2019 Semana 14 An

    18/24

    Descomposicin QR: Matrices de Rotacin

    G(j, k, )THanula la componentehk,j deH.

    G(j, k, ) =filaj

    filak

    columnaj columna k

    1. . .

    cos() sin().. .

    sin() cos(). . .

    1

    Sihk,j = 0 cos() = 1, sin = 0;

    Si |hk,j | > |hj,j |

    = hj,jhk,j

    sin() = 11+2

    cos =sin();

    |hj,j | > |hk,j |

    = hk,jhj,j

    cos() = 11+2

    sin() =cos();

    Pgina 18 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    19/24

    Fact. QR mediante matrices de rotacin

    Objetivo: Para una matriz de Hessenberg H, encontrar una matriz

    triangular superiorR, tal que

    H=Q R, siendoQ una matriz ortogonal.

    Estrategia:Anular las componentes(j + 1, j)de Hmediante el pro-ducto de matrices de rotacinG(j, j+ 1, )hasta obtener una matriz

    triangular superiorR,

    GT(n1) GT(2)G

    T(1)

    QT

    H=R

    donde

    G(m) =G(m, m+ 1, ).

    Pgina 19 Semana 14 5 de Noviembre de 2015 Domnguez

    1 2 1 1

  • 7/24/2019 Semana 14 An

    20/24

    Ejemplo: H =

    1 2 1 12 3 1 00 1 2 00 0 3 1

    G(1)=

    0.44 0.89 0 00.89 0.44 0 0

    0 0 1 00 0 0 1

    , G(1)TH=

    2.23 1.78 0.44 0.440 3.13 1.34 0.890 1 2 00 0 3 1

    G(2)=

    1 0 0 0

    0 0.95 0.30 00 0.30 0.95 00 0 0 1

    , GT(2)GT(1)H=

    2.23 1.78 0.44 0.440 3.28 1.88 0.850 0 1.49 0.270 0 3 1

    G(3)=

    1 0 0 00 1 0 00 0 0.44 0.890 0 0.89 0.44

    , GT(3)GT(2)GT(1)H=

    2.23 1.78 0.44 0.440 3.28 1.88 0.850 0 3.35 0.770 0 0 0.69

    R

    Q= G(1)G(2)G(3), QT =GT(3)G

    T

    (2)GT

    (3)

    Observe que el calculo de G(m)anula la componente(m + 1, m)de lamatrizG(m

    1)H

    Pgina 20 Semana 14 5 de Noviembre de 2015 Domnguez

  • 7/24/2019 Semana 14 An

    21/24

    Mtodo QR usando matrices de rotacin y de Hessenberg

    Dada una matrizA Rnn

    1 Se calcula una matriz de Hessenberg superiorHusando

    matrices de Householder

    H=QTAQ, dondeQ =P(1)P(2) P(n2)

    2 Se realiza descomposicin QR usando matrices de rotacin:

    1 DadoH(0)=H

    2 Parak = 1hasta nmax

    1 Calcular Q(k)y R(k)tal que H(k1) = Q(k)R(k) usando

    matrices de rotacin.

    2 H(k) = R(k)Q(k)3 parar si

    H(k)es triangular superior

    H(k)es de bloque triangular superior.

    Pgina 21 Semana 14 5 de Noviembre de 2015 Domnguez

    function G MatrizRotacion(A j n)

  • 7/24/2019 Semana 14 An

    22/24

    function G = MatrizRotacion(A,j,n)

    % Calcula una matriz de rotacion para anular la componente

    % (j+1,j) de una matriz de Hessenberg A

    G = eye(n);

    xj = A(j,j);xk = A(j+1,j);

    if xk==0

    c=1;

    s=0;

    elseif abs(xk) >= abs(xj)t = xj/xk;

    s= 1/sqrt(1+t^2);

    c = s*t;

    elseif abs(xj) > abs(xk)

    t = xk/xj;

    c = 1/sqrt(1+t^2);s = c*t;

    end

    G(j:j+1,j:j+1) =[c -s; s c];

    end

    Pgina 22 Semana 14 5 de Noviembre de 2015 Domnguez

    function [EI,H, R] = QRRotacion(H,nmax,tol)

  • 7/24/2019 Semana 14 An

    23/24

    % Determina la descomposicion Schur usando

    % matrices de Hessenberg. En la descomposicion QR utiliza

    % matrices de rotacion.

    n = size(H,1);

    [H,Q] = RedHouseholder(H); % Reduccion matriz de Hessenberg

    iter =0;

    while normH< tol && iter

  • 7/24/2019 Semana 14 An

    24/24

    p p g

    Mtodo de Hyme

    Calculo de races del polinomio caracterstico

    Pgina 24 Semana 14 5 de Noviembre de 2015 Domnguez