Clase Mincua Lineal 2016

Embed Size (px)

Citation preview

  • 7/26/2019 Clase Mincua Lineal 2016

    1/84

    1/84Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales

    Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3

    Matemticas de EspecialidadIngeniera Elctrica

    Mnimos cuadrados lineales

    Jos Luis de la Fuente [email protected]

    [email protected]

    Clase_mincua_lineal_2016.pdf

  • 7/26/2019 Clase Mincua Lineal 2016

    2/84

    2/84

    ndice

    Introduccin Fundamentos tericos

    Sistemas incompatibles. Ecuaciones normales Sistemas indeterminados

    Resolucin numrica del problema Mtodo de Gram-Schmidt Mtodo de Gram-Schmidt modificado Factorizacin QR

    Descomposicin numrica en valores singulares Comparacin de los mtodos

    Matlab y la solucin de problemas de mnimos cuadrados

  • 7/26/2019 Clase Mincua Lineal 2016

    3/84

    3/84Introduccin

    Muchos modelos matemticos modernos, especialmente aquellos que usan

    tcnicas de estimacin y regresin, se han convertido en herramientas

    fundamentales en la ciencia, la ingeniera, el marketing y la toma de decisiones.

    Para dotarse de datos a gran escala o conocer y controlar en tiempo real el

    estado y funcionamiento de diversos sistemas de operacin, control y prediccin

    es necesario primero tomar medidas adecuadamente de los mismos y

    posteriormente actuar a partir de determinados modelos o estimadores.

    Cualquiermedidasiempre estsujeta a errores, por pequeos que sean, por eldesajuste fsico de la calibracin del aparato que la realiza, su propia

    imperfeccin, las condiciones ambientales, las vibraciones, el envejecimiento de

    la maquinaria, etc. En el caso de datos sociales por la falta de homogeneidad de

    la muestra, dispersin de la poblacin, etc.

  • 7/26/2019 Clase Mincua Lineal 2016

    4/84

    4/84

    Par mitigar el efecto de esos errores, aislarlos, identificarlos yfiltrarlosse tomaun nmero de medidas de los parmetros que definen un sistema bastante

    mayor del estrictamente necesario redundante.

    Laredundanciade medidas conduce normalmente, en los modelos matemticosque determinan cmo se relacionan los parmetros y variables de

    funcionamiento de un sistema, asistemas de ecuaciones incompatibles: con

    muchas ms ecuaciones que incgnitas.Lafaltade suficientesmedidas, llevaa sistemas indeterminados.

    Para obtener la solucin ms probable que represente un sistema y que mejor se

    aproxime a la ideal si no se diesen esos errores, seproyectael problema en unsubespacio de menor dimensin para filtrar o aislar los datos irrelevantes.

    Laproyeccin ms comnes la ortogonal, que determina el mtodo de losmnimos cuadrados(ver teorema de la proyeccin).

  • 7/26/2019 Clase Mincua Lineal 2016

    5/84

    5/84

    Casos posibles de sistemas lineales, una vez ms

    =

    m = n

    rango(A) = m= n

    =

    m = n

    rango(A)< m = n

    =m > n

    rango(A) = n < m

    =m > n

    rango(A)< n < m

    =

    m < n

    rango(A) = m < n

    =

    m < n

    rango(A) < m < n

  • 7/26/2019 Clase Mincua Lineal 2016

    6/84

    6/84

    Estudiaremos puesproblemas sin solucin, en los querango.Ajb/rango.A/pues bIm.A/.

    0 1 2 3 4

    a6

    b

    a8

    O determinaremos unapseudosolucinque cumpla un criterio concreto: porejemplo, el de minimizar la normakAx bk2.

    Ax

    Ax

    Ax

    Im( )A

    b

    0

  • 7/26/2019 Clase Mincua Lineal 2016

    7/84

    7/84

    Tambinproblemas con muchas soluciones, de las que:

    Se escoge aquella x cuyanorma eucldea,kxk2, esmnima.Se estudiaotro tipo de solucin; por ejemplo:

    Que minimicemX

    j D1

    aTjx bj

    :

    Que minimicem

    Kax

    j naTj x bj o : El hecho de que seminimicela norma eucldearaiz cuadrada positiva de la

    suma de los cuadrados de las desviaciones entre dos vectores de valores reales

    es lo queda nombrea los procedimientos para resolver esos problemas: mnimoscuadrados.Formalmente es:

    Dada una matriz A2 Rmn, de rango kmKn.m; n/, y un vector b2 Rm,encontrar un vector x

    2R

    n que minimice

    kAx

    b

    k2.

  • 7/26/2019 Clase Mincua Lineal 2016

    8/84

    8/84

    Elejemplo por excelenciade las tcnicas de mnimos cuadrados consiste enajustara un conjunto de mpares de puntos .ti ; bi /una funcin f .x; t /de n

    parmetros independientes x1; x2 : : : xn.

    Los pares de puntos los pueden definir unas mediciones, bi , obtenidas enunos tiempos, ti .

    Si la funcin es lineal en x1; : : : ; xn se tiene un problema de mnimoscuadrados lineales en el que,

    si los nparmetros se disponen como los coeficientes de un vector

    n-dimensional, x, y

    los datos obtenidos, en otro vectorm

    -dimensionalb

    (usualmentemn),se llega a una relacin de la forma AxDb, donde A2 Rmn, x2 Rn yb2 Rm.

  • 7/26/2019 Clase Mincua Lineal 2016

    9/84

    9/84

    Ejemplo Supongamos que queremosajustaral conjunto de pares de puntosf.ti ; bi /g=f.1;2/;.2;3/;.3;5/;.4;6/gla funcin

    f .x1; x2; x3; t /Dx1 C x2tC x3t 2;segn representa la figura.

    t

    b

    f(x1

    , x2

    , x3

    , t) =

    x1+

    x2

    t+x3

    t2

    1 2 3 4 5 6 7

    1

    2

    3

    4

    5

  • 7/26/2019 Clase Mincua Lineal 2016

    10/84

    10/84 Para los datos y parmetros de este ejemplo el sistema AxDbes as:2

    6641 1 1

    1 2 4

    1 3 9

    1 4 1 6

    3

    775

    A

    24

    x1x2

    x3

    35

    x

    D

    2

    6642

    3

    5

    6

    3

    775

    b

    :

    Resolver este problema en la zona de trabajo de Matlabsera trivial:

    >> Am=[1 1 1;1 2 4;1 3 9;1 4 16];

    >> b=[2 3 5 6];

    >> Am\b

    ans =

    0.50000000000000

    1.40000000000000

    -0.00000000000000

    Con una tctica de ajuste por mnimos cuadrados, tambin con Matlab:

    >> x=[1 2 3 4];

    >> y=[2 3 5 6];

    >> p=polyfit(x,y,2)

    p =

    -0.0000 1.4000 0.5000

  • 7/26/2019 Clase Mincua Lineal 2016

    11/84

    11/84

    Si se quiere profundizar un poco en el problema dibujando los datos y la funcinajustada, habra que hacer:

    >> x1=linspace(0,5,150);

    >> y1=polyval(p,x1);

    >> plot(x,y,o,x1,y1,-)

    Los resultados son los de la figura.

    0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 50

    1

    2

    3

    4

    5

    6

    7

    8

    La lnea recta yD0; 5 C 1;4t , en verde, y los puntos a los que se ajusta, enazul.

  • 7/26/2019 Clase Mincua Lineal 2016

    12/84

    12/84

    Otros muchos sistemas de la ciencia, ingeniera, economa, etc. recurren amodelos de mnimos cuadrados.

  • 7/26/2019 Clase Mincua Lineal 2016

    13/84

    13/84

    Sistemas de prediccin a partir de datos masivos

  • 7/26/2019 Clase Mincua Lineal 2016

    14/84

    14/84

    Sistemas de navegacinVOR, DME, ADF, RMI, MLS

  • 7/26/2019 Clase Mincua Lineal 2016

    15/84

    15/84

    Fundamentos tericos

    Teorema Descomposicin en valores singulares Si A2 Rmn es una matriz de rango r , existenmatrices ortogonales U2 Rmm y V2 Rnn tales que

    ADU V T; (1)

    donde

    D r 00 0

    ;2 Rmn y rDdiag.1, 2; : : : ; r /, con

    12 r > 0:

    Si las matrices U y V se escriben como

    UD u1; : : : ; um y VDv1; : : : ; vn ;

    losui yv i son losvectores singularesizquierdos y derechos, respectivamente, correspondientes a los valores

    singularesi , iD 1; : : : ; r .

  • 7/26/2019 Clase Mincua Lineal 2016

    16/84

    16/84

    Teorema El vectorxDV 1r 0

    0 0

    UTb

    es la solucin del problema

    minimizarx2Rn

    kAx bk2que hace mnima

    kxk

    2, donde A2

    Rmn yrango.A/

    Drm

    Kn.m;n/.

    Definicin A la matriz

    A

    DV

    1r 0

    0 0 UT 2 Rnnse la denominamatriz pseudoinversaoinversa generalizada Moore-Penrosede A.

  • 7/26/2019 Clase Mincua Lineal 2016

    17/84

    17/84

    De acuerdo con esa definicin, lasolucindemKnx2Rn kAx bk2 es

    xDAb:

    Adems, de acuerdo con el Teorema de la Proyeccin, se cumple que

    x?ker.A/ y que AxDP Im.A/b;

    0 1 2 3 4

    a6

    b

    a8

    donde P Im.A/bes laproyeccin ortogonalde bsobreIm.A/, paralelamente a

    ker.AT/.

    T T

  • 7/26/2019 Clase Mincua Lineal 2016

    18/84

    18/84 Obsrvese que .AT/ D.A/T; en general,.AB / BA:

    La matriz pseudoinversa satisface las denominadas condiciones de Penrose:

    AAA D AAAA D A.AA/T D AA.AA/T

    D AA:

    Las frmulas para obtener las matrices de proyeccin ortogonal sobre los cuatrosubespacios fundamentales de A son

    P Im.A/ D AAPker.A

    T/ D I AA

    PIm.A

    T/ D AA

    Pker.A/ D I AA

  • 7/26/2019 Clase Mincua Lineal 2016

    19/84

    19/84

    Dos casos de matriz pseudoinversa son fundamentales:

    a)SiA2 Rmn,mnyrango.A/Dn,A D.ATA/1AT:

    b)Si A2 Rmn,mnyrango.A/Dm,A

    DAT.AAT/1:

    a)es elproblema de mnimos cuadrados resultante de un sistema deecuaciones incompatible, con matriz de rango completo.

    b)es el de unsistema de ecuaciones compatible indeterminadocon matriz

    de rango completo: resuelve este problema:

    minimizarx2S

    kxk2; donde SD fxWAxDbg:

    Si t i tibl E i l

  • 7/26/2019 Clase Mincua Lineal 2016

    20/84

    20/84Sistemas incompatibles. Ecuaciones normales

    Si se tiene una ecuacin AxDb, A2 Rmn, que no tiene solucin puesbIm.A/, se puede buscar una pseudosolucin, x, queacerque Ax lo msposible a ben el sentido de lak k2, es decir,

    mKnx2Rn

    kAx bk2:

    Teorema Sean X e Y dos espacios vectoriales de dimensiones finitas n y m sobreel cuerpo R y A una transformacin lineal representada en dos bases de X e Y por la

    matriz A. Para un vector dado b2 Y, el vector x2 X minimizakAx bk2 si y slo siATAxDA Tb.

    I DEMOSTRACIN. Sean Im.A/D fAxWx2 Rng y ker.A/D fxWAxD0g.El complemento ortogonal del conjunto Im.A/ ser:

    .Im.A//? D frW r TzD0; 8z2Im.A/g D frW r TAD0TgD frW A TrD 0g Dker.AT/:

    El problema planteado es obviamente equivalente a minimizarkb Obk2, dondeOb2Im.A/.Por el teorema de la proyeccin, Ob es un vector que minimiza la norma anterior si y slo si bOb2.Im.A//?; es decir, si b

    Ob

    2ker.AT/, o de forma equivalente, 0

    DA T.b

    Ob/

    DATb

    ATAx.

  • 7/26/2019 Clase Mincua Lineal 2016

    21/84

    21/84

    La representacin geomtrica en tres dimensiones es esta.

    Im(A) a 1

    b

    a 2

    a 1x1

    a 2x2

    Ax

    r = b Ax (Im(A)) AT(b Ax ) = 0

    Al sistema de ecuaciones que define la relacin

    ATAxDA Tb

    se le denominaecuaciones normales.

    El vector de residuos, rD b Ax, es ortogonal aIm.A/y a los vectores quelo definen: a1 y a2. Es decir, se cumple que A

    T.Ax b/D0.

  • 7/26/2019 Clase Mincua Lineal 2016

    22/84

    22/84

    El vector solucin de las ecuaciones normales, x, esnicosi ATA es invertible(si y slo si la transformacin lineal A es inyectiva:rango.A/Dn); en este caso

    xD.ATA/1ATb:

    Si la matriz ATA es invertible,

    rD b AxD.I P Im.A//b;

    donde P Im.A/DA.AT

    A/1

    A

    T

    es la matriz de proyeccin ortogonal sobreIm.A/paralelamente aker.AT/.

  • 7/26/2019 Clase Mincua Lineal 2016

    23/84

    23/84

    Sistemas indeterminados

    Si el sistema tiene ms de una solucin, siempre se puede calcular aquella demenor norma eucldea.

    Teorema Sean X e Y dos espacios vectoriales de dimensiones n y m sobre el cuerpoR y A una transformacin lineal representada en dos bases de X e Y por la matriz A.

    El vector x de norma eucldea mnima que satisface la ecuacin AxD b es el dado porxDA Tz, donde z es una solucin de la ecuacin AATzDb.

    I DEMOSTRACIN. Si x1 es una solucin de la ecuacin AxD b, cualquier solucin de la misma se

    puede expresar como xDx 1 C u, donde u2ker.A/; es decir, estar en la variedad lineal x 1 Cker.A/.El teorema de la proyeccin garantiza la existencia en esta variedad lineal de un nico x tal que sunormakxk2 es mnima y adems pertenece a .ker.A//?.Como x2 .ker.A//?, pertenecer a Im.AT/, es decir, se podr expresar como xD ATz para algnz2Y. Como AxDb, entonces

    AATzDb:

  • 7/26/2019 Clase Mincua Lineal 2016

    24/84

    24/84

    Cuando la matriz AAT es invertible, la solucin ptima es

    xDAT.AAT/1b:

    La interpretacin geomtrica de este resultado en R3 se esquematiza as:

    0 1 2 3 A

    x7

    8 0 1 2 3 A

    x9 x

    7

    u

    x3

    3

  • 7/26/2019 Clase Mincua Lineal 2016

    25/84

    25/84

    Ejemplo Se quiere obtener la solucin de norma eucldea mnima de la

    ecuacin indeterminada

    1 2

    x1x2

    D3.

    Cualquier solucin se podr expresar como x1 C ker.A/, donde x1 es cualquiervector solucin (por ejemplo

    1 1

    T) yker.A/es el que se ve en la figura.

    1 2 3

    (3, 0)

    (3/5, 6/5) =

    (1, 1) =1

    2

    1.5

    x2 Im.AT/

    x1

    x

    ker.A/

    subespacio de soluciones

    x1

    La solucin que se busca es

  • 7/26/2019 Clase Mincua Lineal 2016

    26/84

    26/84 La solucin que se busca es

    xDAT

    AAT

    1

    bD

    1

    2

    1 2

    1

    2

    13D 3

    5

    1

    2

    D

    3=5

    6=5

    :

    Se ve que est enIm.AT/.

    1 2 3

    (3, 0)

    (3/5, 6/5) =

    (1, 1) =1

    2

    1.5

    x2 Im.A

    T

    /

    x1

    x

    ker.A/

    subespacio de soluciones

    x1

  • 7/26/2019 Clase Mincua Lineal 2016

    27/84

    27/84

    ndice

    Introduccin Fundamentos tericos

    Sistemas incompatibles. Ecuaciones normales Sistemas indeterminados

    Resolucin numrica del problema Mtodo de Gram-Schmidt Mtodo de Gram-Schmidt modificado Factorizacin QR

    Descomposicin numrica en valores singulares

    Comparacin de los mtodos

    Matlab y la solucin de problemas de mnimos cuadrados

    /

  • 7/26/2019 Clase Mincua Lineal 2016

    28/84

    28/84

    Resolucin numrica del problema

    Mediante lasecuaciones normales, con cualquiera de los mtodos estudiadospara sistemas con matriz cuadrada y simtrica:

    ATAx

    DATb,en el caso de que el sistema fuese incompatible, o a

    AATzDb, cuando se diese unsistema indeterminado.

    Losnmeros de condicin, 2, de AAT y ATA, son elcuadrado del de la

    matrizA, por lo que si el problema originalmente no est bien condicionado, lasdificultades numricas pueden resultar insalvables al resolver el sistema

    correspondiente.

    29/84

  • 7/26/2019 Clase Mincua Lineal 2016

    29/84

    29/84

    Ejemplo Consideremos la matriz

    AD266666664

    1 1 1 1 1

    ""

    "

    "

    "

    377777775

    :

    El rango de A es 5, para "0. La matriz

    AT

    AD

    2666664

    1 C "2 1 1 1 11 1 C "2 1 1 11 1 1 C "

    2

    1 11 1 1 1 C "2 11 1 1 1 1 C "2

    3777775

    tambin es de rango 5, para "0.

    30/84

  • 7/26/2019 Clase Mincua Lineal 2016

    30/84

    30/84

    El nmero de condicin 2.ATA/D2.A/2 D.5 C "2/="2.

    Si "es mayor que la precisin de la mquina pero "2 no (por ejemplo, si"D0,5 105, "2 D0,25 1010 y la precisin de la mquinaD1,0 1010), la representacin interna de la matriz ATA ser

    2666664

    1 1 1 1 11 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    1 1 1 1 1

    3777775

    por lo que, a efectos numricos en esa mquina, esta matriz ser singular y de

    rango 1: las ecuaciones normales no serviran.

    31/84

  • 7/26/2019 Clase Mincua Lineal 2016

    31/84

    31/84

    Otro aspecto importante que aconseja tener mucho cuidado al utilizar ATA

    AAT, nace del hecho de que aun cuando la matriz original A tengamuchos

    elementos cero, ATA o AAT pueden ser totalmente densas.

    Un ejemplo sera

    AD

    2666664

    1 1 1 1

    0

    0

    0

    0

    3777775

    ; y ATAD

    26664

    1 1 1 1

    1 1 1 1

    1 1 1 1

    1 1 1 1

    37775

    :

    32/84

  • 7/26/2019 Clase Mincua Lineal 2016

    32/84

    32/84

    Mtodo de Gram-SchmidtJorgen Pedersen Gram, Dinamarca,

    1850-1916 y Erhard Schmidt, Ale-

    mania, 1876-1959.

    Obtiene una base ortonormalizada del subespacioIm.A/.

    Comienza normalizando el primer vector columna de la matriz, a1:

    e1Da1=ka1k2.A continuacin se sustrae del vector a2 su coeficiente en la direccin de e1,ha2je1ie1, resultando un vector ortogonal a e1, el cual a su vez senormaliza: : :

    El proceso contina con los dems vectores columna de A.

    El nmero de operaciones del mtodo es O.mn2/sumas+restas ymultiplicaciones+divisiones y O.n/races cuadradas.

    33/84

    d l d l b d . / b

  • 7/26/2019 Clase Mincua Lineal 2016

    33/84

    /

    Los diversos vectores ortonormales de la base deIm.A/se obtienen as:

    e1 D a1

    ka1k2I

    e2 D a2 ha2je1ie1ka2 ha2je1ie1k2 I

    e3 D a3 ha3je1ie1 ha3je2ie2ka3 ha3je1ie1 ha3je2ie2k2

    I:::

    e2

    e1

    e3

    a 3

    a 3|e1e1

    a 3|e2e2

    a 3 a 3|e1e1 a 3|e2e2a 3

    a 3|e1

    e 1

    34/84

  • 7/26/2019 Clase Mincua Lineal 2016

    34/84

    El algoritmo para una matriz general Am

    n

    es el siguiente.

    Ortogonalizacin de A por Gram-SchmidtforjD 1 to n

    e.1Wm; j /a.1Wm; j /foriD 1 toj 1

    u.i;j/

    e.1W

    m; i /T

    a.1

    Wm; j /

    e.1Wm; j /e.1Wm; j / u.i;j/ e.1Wm; i /end

    u.j;j/vuut mX

    kD1e.k;j/2

    e.1Wm; j /e.1Wm; j /=u.j; j /end

    35/84

  • 7/26/2019 Clase Mincua Lineal 2016

    35/84

    El algoritmo hace ADE U, donde E mn es la matriz de columnas ei y Unnla matriz triangular superior de los productos interiores auxiliares uij .

    Sustituyendo esta expresin de A en las ecuaciones normales,ATAxDATb, resulta que

    UTE TE U xDUTE Tb

    y, por fin, dado que E TED I ,U xDE Tb:

    Un sistema triangular superior.

    En condiciones adecuadas, por consiguiente, el mtodo de Gram-Schmidtpodravalerpara resolver un problema lineal de mnimos cuadrados.

    36/84

  • 7/26/2019 Clase Mincua Lineal 2016

    36/84

    Gram-Schmidt modificado John R. Rice, EE.UU. 1934-.

    En la prctica se va perdiendo ortogonalidad en los vectores ei por erroresnumricos y, especialmente, si alguno de los vectores columna aj est prximo

    al subespacio generado por los vectores anteriores e1; : : : ; ej 1.

    En ese caso, los sumandos de la expresin ajP

    j 1iD1haj jeiiei pueden llegar a

    ser muy pequeos, o muy distantes unos de otros pero con un resultado final

    que puede ser muy pequeo, por lo que el error numrico que se va produciendo

    es relativamente grande. Al dividir el resultado por su norma (tambin muy

    pequea) los errores se amplificarn an ms.

    37/84

  • 7/26/2019 Clase Mincua Lineal 2016

    37/84

    En 1966 J.R. Rice modific el orden de las operaciones del mtodo haciendoque en una etapa k en vez de sustraer del vector ak sus proyecciones sobre los

    k

    1vectores ei ya calculados, el vector ek se hace igual a ak al principio y

    luego se le van sustrayendo su proyeccin en e1, pasando el resultado a ser elnuevo ek, el cual se proyecta luego en e2, y as sucesivamente en cada uno de

    los k 1 ei anteriores.Elresultado es sustancialmente mejornumricamente.

    Algoritmo clsico de Gram-SchmidtforjD 1 to n

    e.1Wm; j /a.1Wm; j /foriD 1 to j 1

    u.i;j/e.1Wm; i/T a.1Wm; j /e.1

    Wm; j /

    e.1

    Wm; j /

    u.i;j/

    e.1

    Wm; i/

    end

    u.j;j/vuut mX

    kD1e.k;j/2

    e.1Wm; j /e.1Wm; j /=u.j;j /end

    Algoritmo modificado de Gram-SchmidtforjD 1 to n

    e.1Wm; j /a.1Wm; j /foriD 1 to j 1

    u.i;j/e.1Wm; i/T e.1Wm; j /e.1

    Wm; j /

    e.1

    Wm; j /

    u.i;j/

    e.1

    Wm; i/

    end

    u.j;j/vuut mX

    kD1e.k;j/2

    e.1Wm; j /e.1Wm; j /=u.j;j /end

    38/84

  • 7/26/2019 Clase Mincua Lineal 2016

    38/84

    La versin clsica y modificada enMatlab son estas.

    function [x r2 e]=Grmsch_3(A,b)

    % Se resuelve Ax=b mediante el mtodo de Gram-Schmidt modificado

    [m,n]=size(A); x=zeros(n,1); e=zeros(m,n); u=triu(zeros(n,n));

    for j=1:n

    e(:,j)=A(:,j);

    for i=1:j-1

    u(i,j)=e(:,i)*e(:,j);e(:,j)=e(:,j)-u(i,j)*e(:,i);

    end

    u(j,j)=norm(e(:,j));

    e(:,j)=e(:,j)/u(j,j);

    end

    for i=n:-1:1 % Rx=b

    x(i)=(e(:,i)*b-u(i,i+1:n)*x(i+1:n))/u(i,i);

    end

    r2=norm(abs(A*x-b),2)^2; % Residuos^2

    end

    function [x r2 e]=Grmsch_2(A,b)

    % Se resuelve Ax=b mediante el mtodo de Gram-Schmidt clsico[m,n]=size(A); x=zeros(n,1); e=zeros(m,n); u=triu(zeros(n,n));

    for j=1:n

    e(:,j)=A(:,j);

    for i=1:j-1

    u(i,j)=e(:,i)*A(:,j);

    e(:,j)=e(:,j)-u(i,j)*e(:,i);

    end

    u(j,j)=norm(e(:,j));

    e(:,j)=e(:,j)/u(j,j);

    endfor i=n:-1:1 % Rx=b

    x(i)=(e(:,i)*b-u(i,i+1:n)*x(i+1:n))/u(i,i);

    end

    r2=norm(abs(A*x-b),2)^2; % Residuos^2

    end

    39/84

    l d l l l d fi d l b

  • 7/26/2019 Clase Mincua Lineal 2016

    39/84

    El cara a cara del clsico y el modificado en un Matlabsupercompacto es este.

    function [Q, R] = gs_m(A) function [Q, R] = gs_c(A)

    [m, n] = size(A); [m, n] = size(A);

    Q = zeros(m,n); Q = zeros(m,n);

    R = zeros(n); R = zeros(n);

    for j=1:n for j=1:n

    R(j,j) = norm(A(:,j)); R(1:j-1,j) = Q(:,1:j-1)*A(:,j);

    Q(:,j) = A(:,j)/R(j,j); temp = A(:,j) - Q(:,1:j-1)*R(1:j-1,j);

    R(j,j+1:n) = Q(:,j)*A(:,j+1:n); R(j,j) = norm(temp);

    A(:,j+1:n) = A(:,j+1:n) - Q(:,j)*R(j,j+1:n); Q(:,j) = temp/R(j,j);

    end end

    >> n=7; A=hilb(n);

    >> [Q, R]=gs_c(A);

    >> norm(Q*Q-eye(n))

    ans =

    0.156453367259543

    >> [Q1, R]=gs_m(A);>> norm(Q1*Q1-eye(n))

    ans =

    1.090139262380597e-009

    >> cond(A)

    ans =

    4.753673562966472e+008

    40/84

  • 7/26/2019 Clase Mincua Lineal 2016

    40/84

    Si resolvemos el ejemplo inicial.

    >> A=[1 1 1;1 2 4;1 3 9;1 4 16]

    A =

    1 1 11 2 4

    1 3 9

    1 4 16

    >> b=[2;3;5;6]

    b =

    2

    3

    56

    >> [x r2]=Grmsch_3(A,b) % MODIFICADO

    x =

    0.5000

    1.4000

    -0.0000

    r2 =

    0.2000

    >> A\bans =

    0.5000

    1.4000

    -0.0000

    41/84

  • 7/26/2019 Clase Mincua Lineal 2016

    41/84

    % Script_GRSCH_1.m_Script de Ortogonalidad Gram Schmidt clsico y modificado

    format short

    n=7; A=hilb(n);

    % Matriz de Hilbert (muy mal condicionada)

    cond(A), pause

    b=A*ones(n,1); % Trmino independiente para x=1.

    disp(Clsico:), [x r2 e]=Grmsch_2(A,b); % Gram Schmidt clsicox, pause, e, pause, norm(abs(x-ones(n,1)),2), pause

    ortogonalidad=norm(e*e-eye(n)), pause % Ortogonalidad matriz e

    disp(Modificado:), [x r2 e]=Grmsch_3(A,b);% Gram Schmidt modificado

    x, pause, e, pause, norm(abs(x-ones(n,1)),2), pause

    ortogonalidad=norm(e*e-eye(n)) % Ortogonalidad matriz e

    >> Script_GRSCH_1ans = 4.7537e+08

    Clsico:x =

    1.1983

    -7.187481.7515

    -318.3887594.3144

    -517.0744

    172.5582e =

    0. 81 33 - 0. 54 38 0 .1 99 1 - 0. 05 51 0 .01 20 - 0. 00 20 - 0. 00 110.4067 0.3033 -0.6886 0.4760 -0.1974 0.0541 0.0298

    0. 27 11 0 .3 939 - 0.2 07 1 - 0. 49 01 0 .61 08 - 0. 32 69 - 0. 15 79

    0.2033 0.3817 0.1124 -0.4396 -0.2542 0.6411 0.18330. 16 27 0 .3 514 0 .2 91 5 - 0. 11 23 - 0. 49 92 - 0. 20 22 0 .3 445

    0. 13 56 0 .3 202 0 .3 89 2 0 .2 30 9 - 0. 15 06 - 0. 54 18 - 0. 80 780.1162 0.2921 0.4407 0.5206 0.5013 0.3805 0.4115

    ans = 870.8917

    ortogonalidad = 0.6954Modificado:

    x =1.0052

    0.7926

    3.0065-6.8260

    15.3845-11.4559

    5.0969

    e =0. 81 33 - 0. 54 38 0 .1 99 1 - 0. 05 51 0 .01 20 - 0. 00 20 0 .0 002

    0. 40 67 0 .3 033 - 0.6 88 6 0 .4 76 0 - 0. 19 74 0. 05 41 - 0. 00 910. 27 11 0 .3 939 - 0.2 07 1 - 0. 49 01 0 .61 08 - 0. 32 69 0 .0 907

    0. 20 33 0 .3 817 0 .1 12 4 - 0. 43 96 - 0. 25 42 0. 64 10 - 0. 36 26

    0. 16 27 0 .3 514 0 .2 91 5 - 0. 11 23 - 0. 49 92 - 0. 20 22 0 .6 800

    0. 13 56 0 .3 202 0 .3 89 2 0 .2 30 9 - 0. 15 06 - 0. 54 18 - 0. 59 840.1162 0.2921 0.4407 0.5206 0.5013 0.3805 0.1995

    ans = 21.0752

    ortogonalidad = 1.9358e-08

    42/84

    F t i i QR

  • 7/26/2019 Clase Mincua Lineal 2016

    42/84

    Factorizacin QR

    Las transformaciones ortogonalesconservan la norma eucldea; esto es, siQn

    n

    es una matriz ortogonal y x un vector n-dimensional, se cumple que

    kQxk2D kxk2:En efecto,

    kQx

    k2

    D phQxjQxi D pxTQTQx

    D

    pxTx

    D kx

    k2:

    Segn esto,si Qes una matriz ortogonal, al premultiplicar el vector Ax bpor ella, su norma eucldea queda igual:

    kQAx Qbk2D kQ.Ax b/k2D kAx bk2:

    La idea es usartransformaciones ortogonalespara convertir el problema en otroms sencillo de resolver numricamente.

    43/84

  • 7/26/2019 Clase Mincua Lineal 2016

    43/84

    Si A2 Rmn, m > n, b2 Rm,rango.A/Dny se han efectuado una serie detransformaciones ortogonales que refleja un matriz ortogonal Q

    2R

    mm tal que

    QADRD

    R10

    n

    m ny R1 es triangular superior, si se hace

    QbD cd

    nm n;

    entonces

    kAx bk2 D kQAx Qbk2D R1x cd 2D

    qkR1x ck22 C kdk22; para cualquier x2 Rn.

    44/84

  • 7/26/2019 Clase Mincua Lineal 2016

    44/84

    LasolucindemKnx2Rn kAx bk2 ser aquella que hagamnimo

    kR1x

    c

    k22

    C kd

    k22:

    Comokdk22 es constante, la solucin ser la que haga mnimo el otrosumando:cuando R1xDc .Resolviendo este sistema por sustitucin inversa se llega a la solucin del

    problema de mnimos cuadrados.La suma de residuos al cuadrado serkdk22 y el vector de residuos

    rD QT

    0

    d:

    El proceso de reduccin de A a R se denominafactorizacin QR otriangularizacin ortogonal.

    45/84

  • 7/26/2019 Clase Mincua Lineal 2016

    45/84

    Teorema Sea la matriz A2 Rmn de rango n y su factorizacin ADQR. El factorR tiene todos los elementos de su diagonal principal positivos y es igual al que resulta de

    la factorizacin de Cholesky, G TG , deATA.

    I DEMOSTRACIN. Sirango.A/Dn, de acuerdo con un teorema anterior, la factorizacin de CholeskydeATA es nica.

    El teorema de la proyeccin garantiza la existencia en esta variedad lineal de un nico x tal que su

    normakxk2 es mnima y adems pertenece a .ker.A//?.Por otro lado,

    ATADh

    RT1; 0i

    QQT

    R10

    DR T1 R1:

    46/84

  • 7/26/2019 Clase Mincua Lineal 2016

    46/84

    Transformaciones de Householder

    Alston Scott Householder, EE.UU.,

    1904-1993.

    Definicin Se denominatransformacin o reflexin de Householdera una transforma-cin lineal de Rn en Rn caracterizada por una matriz Hnn de Householder de la formaHDI 2wwT donde w2 Rn; kwk2D1, es elvector de Householder.

    Teorema Toda transformacin de Householder essimtrica y ortogonal.

    I DEMOSTRACIN. Por definicin HT D I 2.wwT/T D I 2.wT/TwT D I 2wwT D H. Comoadems wTwD kwk22D1,

    HTHD H2 D .I 2wwT/.I 2wwT/D I 4wwT C 4w.wTw/wT DI :

    47/84

  • 7/26/2019 Clase Mincua Lineal 2016

    47/84

    Aplicar una transformacin de Householder a un vector cualquiera equivale aobtener sureflejorespecto al subespacio .Im.w//?.

    012 0w

    45

    w

    a

    7

    8

    w9

    a

    w

    7

    8

    w9

    a

    wHa

    4

    En efecto

    H aD.I 2wwT/aDa 2wwTaDa 2.wTa/w:El vector .wTa/w es la proyeccin de asobre w; es decir, H aes igual al

    vector a menos dos veces su proyeccin sobre w.

    48/84 Lo esencial de estas transformacioneses su capacidad de hacer cero

    determinados coeficientes de un vector dado modificarlo ortogonalmente:

  • 7/26/2019 Clase Mincua Lineal 2016

    48/84

    g

    Si x e y son dos vectores no nulos de igual norma eucldea y se hace

    wD 1

    kx yk2 .x y/;entonces

    .I 2wwT/xDy :

    Comprobmoslo:

    .I 2wwT/xDx 2

    .xy/Txp.xy/T.xy/

    xyp.xy/T.xy/

    D

    = x 2

    xTxy Tx.xy/T.xy/

    .x y/

    = x

    2 x

    Txy Tx2.

    x

    T

    xyT

    x/ .x y/Dy .

    Esto es as pues, al tener x e y la misma norma eucldea,

    .x y/T.x y/ D xTx yTx xTyC yTyD 2.xTx yTx/;

    pues xTx

    DyTy y yTx

    DxTy.

    49/84

  • 7/26/2019 Clase Mincua Lineal 2016

    49/84

    Este resultado,geomtricamente, se deduce inmediatamente de la reflexinantes mencionada.

    El vector w es colineal con el vector x y.Como x e y tienen la misma longitud, la reflexin de x respecto a

    .Im.w//? es y .

    0 1 2 0 3 4 4

    5

    3 66 7 8

    8

    50/84

    Para un sistema AxDbse pueden construir transformaciones de Householder

  • 7/26/2019 Clase Mincua Lineal 2016

    50/84

    que anulen los coeficientes que se deseen de cada vector columna de A dejando

    los dems como estaban.

    La figura representa los cuatro pasos del proceso de reducir una matriz A64a una triangular superior R64.

    0

    0

    0 0

    0

    0

    0 0

    0 00 0

    0 0

    0

    0 0

    0 0 0 0 0 0

    0 0 0

    0

    0 0

    0 0 0 0 0 0 0

    0 0 0 0

    A0 A1 A2 A3 A4

    La matriz A1 resultara de la transformacin H1A0; la A2 sera

    H2A1DH2H1A0; y as cuatro veces.A una matriz m nse le aplicar una sucesin kD1; : : : ; n de

    transformaciones, cada una de las cuales ha de hacer cero los coeficientes

    kC 1 ; : : : ; m del vector columna k.

    51/84 Se pretende que latransformacin k-sima, Hk, haga:

  • 7/26/2019 Clase Mincua Lineal 2016

    51/84

    HkakDyD

    ai k para iD 1; 2; : : : ; k 10 para iD kC 1 ; : : : ; m :

    A tal fin, los coeficientes del vector y debern ser:

    y1 D a1ky2 D a2k:::yk D qa2kkC a2kC1kC C a2mk OJO signos!

    ykC1 D 0:::ym D 0:

    Como y21C

    y22C C

    y2mD

    a21k

    Ca2

    2k

    C Ca2

    mk,

    jjyjj2D jjakjj2:

    La transformacin Hk tendr como vector w

    D.ak

    y/=

    kak

    y

    k2.

    52/84 Elcoeficiente k-simo de y puede adoptar dos signos.Paraevitar erroresde

    cancelacin, se escoge el signo opuesto al del coeficiente k-simo de ak.

  • 7/26/2019 Clase Mincua Lineal 2016

    52/84

    En esta figura hay dos posibilidades para transformar a en un vector de igual

    magnitud con a2D0: convertirlo en y o y 0,

    y a 1 y a 1 y a1 + y x1

    x2

    w

    a

    w alt

    Con el criterio apuntado,la transformacin que hay que usar es la que define w,

    que convierte a en y 0. Suprimer coeficientees w1Da1 .y1/Da1 C y1; elsegundo, el de aen x2.

    La transformacin alternativa, wal t convertira a a y : su primer coeficiente esa1

    y1; el segundo el mismo de w.

    53/84

  • 7/26/2019 Clase Mincua Lineal 2016

    53/84

    En definitiva, en la transformacin de Householder k-sima que se aplica a lamatriz A, los valores numricos del vector w son:

    wD 1p

    2s.sC jakk j/

    266666664

    0:::

    akkC s signo.akk /akC1k:::

    amk

    377777775

    ;

    donde sD qa2kkC a2kC1kC C a2mk .

    54/84Caso 1: Resolucin de AxDb, Amn, m > n y rango completo

  • 7/26/2019 Clase Mincua Lineal 2016

    54/84

    Mediante transformaciones de Householder se reduce la matriz A a unatriangular superior h R10 iy el vector ba otro

    cd

    La solucin demKnx2Rn kAx bk2 sera la R1xDc, por sustitucin inversa.La suma de residuos al cuadrado serkdk22.

    El algoritmo:

    Resolucin de Ax D b por transf. de Householder Transformacin columnas de la Matriz Amnforj D 1 to n

    ifm Kax fja.j;j/j; : : : ; ja.m;j/jg D 0 then stopD

    qPmkDj a.k;j/

    2

    sig no.a.j; j//

    w.j W m/ a.j W m;j/; w.j/ w.j/ C ; D 2PmkDj w 2.k/; a.j;j / forl D jC 1 to n

    a.j W m;l / a.j W m;l / w.j W m/

    wT.j W m/ a.j W m;l /

    end Transformacin del vector b.b.j W m/ b.j W m/ w.j W m/ wT.j W m/ b.j W m/

    end

    Resolucin del sistema Rx D b.forj D n to 1, x.j/

    b.j/PnkDjC1 a.j;k/ x.k/a.j;j/, end

    Residuos al cuadrado.rescua PmkDnC1 b2.k/

    55/84

    EnMatlab, con la posibilidad de obtener Qy R:

  • 7/26/2019 Clase Mincua Lineal 2016

    55/84

    , p Q y

    function [x r2 Q R]=Qrdes_3(A,b)

    % Resolucin de Ax=b mediante transformaciones de Householder; calcula Q y R

    [m n]=size(A); x=zeros(n,1); Q=eye(m);

    for j=1:n

    w=Housv(A(j:m,j)); % Householder de a(j:m,j)

    A(j:m,j:n)=A(j:m,j:n)-2*w*(w*A(j:m,j:n));

    b(j:m)=b(j:m)-2*w*(w*b(j:m));

    Qk=eye(m);

    Qk(j:m,j:m)=eye(m+1-j)-2*(w*w);

    Q=Qk*Q;

    end

    for i=n:-1:1 % Rx=bx(i)=(b(i)-x(i+1:n)*A(i,i+1:n))/A(i,i);

    end

    r2=norm(b(n+1:m))^2; % Residuos al cuadrado

    R=triu(A); Q=Q; % Matrices R y Q

    end

    function w = Housv(x)

    % Transformacin de Householder del vector x.

    m=max(abs(x)); w=x/m;

    sw=1; if w(1)> A=[1 1 1;1 2 4;1 3 9;1 4 16]

    A =

    1 1 1

    1 2 4

    1 3 9

    1 4 16

    >> b=[2;3;5;6]

    b =

    2

    3

    5

    6>> [x r]=Qrdes_3(A,b)

    x =

    0.5000

    1.4000

    -0.0000

    r =

    0.2000

    >> A\bans =

    0.5000

    1.4000

    -0.0000

    56/84 El vector de residuos, 20,1

    3

  • 7/26/2019 Clase Mincua Lineal 2016

    56/84

    rD

    2

    66640,1

    0,30,3

    0,1

    3

    7775;

    se puede obtener, si el algoritmo ha transformado ben c

    d

    , sin ms que hacer:

    r

    0

    dforkDnto1r Hkr

    end

    El nmero de operaciones de este mtodo es: O.mn2 n3=3/ sumas+restas y multiplicaciones+divisiones, para

    transformar la matriz A en R;

    nraces cuadradas y las de la sustitucin inversa, O.n2=2/.

    57/84

    C i 2 R l i d A b Amn

  • 7/26/2019 Clase Mincua Lineal 2016

    57/84

    Caso numrico 2: Resolucin de AxDb, Amn, n > m y rangocompleto

    Este problema,si tiene solucin, es indeterminado:tiene muchas.

    La de menor norma eucldease puede calcular mediante estos pasos:

    Paso 1Se aplica el algoritmo QR a la matriz AT, en vez de a A. Resultar

    QTAT D

    R

    0

    ;

    es decir, AT DQ

    R

    0

    , donde Q es una matriz ortogonal n ny R una

    triangular superior m m.

    58/84Paso 2La matriz original A ser AD RT; 0TQT.Si se sustituye en la ecuacin AxDb, se tendr que

  • 7/26/2019 Clase Mincua Lineal 2016

    58/84

    RT; 0T

    QTxDb:

    Si se hace el cambio de variable zDQT

    x, la ltima ecuacin quedaRT; 0T

    zDb:

    Como zTzD.QTx/T.QTx/DxTQTQxDxTx, las normaseucldeas de x y zsern iguales.

    Estructurando el vector z en zRz0 y bde igual manera, la solucin deRT; 0T

    zDb saldr de resolver

    RTzRDbR;siendo los dems coeficientes del vector z, z0, nulos.

    Paso 3El vector solucin x que se busca resultar de deshacer el cambio devariable introducido; es decir:

    xDQ

    zR0

    :

    59/84

    Caso 3: Resolucin numrica de Ax D b Amn m > n m < n y

  • 7/26/2019 Clase Mincua Lineal 2016

    59/84

    Caso 3: Resolucin numrica de AxDb, A , m > n m < n yrango incompleto

    Caso ms general que se puede dar en mnimos cuadrados de ecuaciones lineales.

    Paso 1Se transforma la matriz A mediante transformaciones deHouseholder y permutaciones de columnas para llegar a:

    m r

    r

    0

    En cada etapa k se calcula la norma eucldea de ak, k; : : : ; n,limitndose a sus coeficientes k; : : : ; m y se intercambia la columna k

    con la de mayor norma.

    60/84

  • 7/26/2019 Clase Mincua Lineal 2016

    60/84

    Paso 2Del Paso anterior se ha llegado a

    QAPD RD

    R110

    R12R22

    r

    m r y QbD

    c

    d

    r

    m r ;r n r

    dondekR22k21kAk2. A partir de aqu haydos opciones:Que rD n(rango completo). Lasolucinsale de resolver R11xDc.Que r < n(rango incompleto). Se construyen unas transformaciones

    ortogonales,Qnn1 , tales que R11; R12

    Q1D W; 0

    , donde W rr

    es triangular superior.

    61/84Cmo hacer esto?Se acta sobre R11, R12T y se llega a b).

    a) b)

  • 7/26/2019 Clase Mincua Lineal 2016

    61/84

    r

    n r

    r

    0

    ) )

    Esto se hace en r etapas. En una de ellas, k, sepremultiplicapor una

    transformacin de Householderque haga cero los elementos rC 1andela columna k y que deje inalterados del 1al k 1y del kC 1a r .

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    0

    1 2 3 4

    El valo indica el elemento que se utiliza para definir cada

    transformacin; los que se hacen cero con el signo

    .

    62/84

    P 3

  • 7/26/2019 Clase Mincua Lineal 2016

    62/84

    Paso 3De los dos pasos anteriores se tendr que

    kAx bk2D k.QAP /.PT

    x/ Qbk2:Ahora bien, .QAP /P Tx se puede escribir .QAP /Q1Q

    T1 P

    Tx y

    tambin,

    W 00 0QT1 P TxD c

    d :Si se hace QT1 P

    TxDy y se resuelve W y 1Dc, el vector solucin quese busca, x, resultar de

    xDP Q1 y 10 :

    63/84

    function [x r res]=Mincua_QR(A,b)

    % Resolucin de Ax=b general mediante transformaciones de Householder

  • 7/26/2019 Clase Mincua Lineal 2016

    63/84

    EnMatlab:

    % Resolucin de Ax b general mediante transformaciones de Householder

    % Posible rango incompleto r

    [m n]=size(A); x=zeros(n,1); tol=sqrt(eps); W=zeros(n,m); ip=1:n; r=n;

    for j=1:n

    jm=j; c=0;

    for k=j:n

    h=norm(A(j:m,k));

    if h>c, c=h; jm=k; end

    end

    if jm~=j, A(:,[j jm])=A(:,[jm j]); ip([j jm]) = ip([jm j]); end

    if j==m, break, end

    w=Housv(A(j:m,j)); % Householder de A(j:m,j); luego a A y b

    A(j:m,j:n)=A(j:m,j:n)-2*w*(w*A(j:m,j:n)); b(j:m)=b(j:m)-2*w*(w*b(j:m));

    end

    for j=1:n % Ver rango

    if abs(A(j,j))

  • 7/26/2019 Clase Mincua Lineal 2016

    64/84

    b=a*ones(4,1);

    A=[a a(:,1)*2+a(:,2)*0.5 a(:,3)*2+a(:,4)*0.5 a(:,2)*2+a(:,3)*0.5];

    size(A)

    ans = 200 7

    format long

    [x r res]=Mincua_QR(A,b)

    x =0.168704156479218

    0.156479217603912

    0.009779951100245

    0.792176039119804

    0.415647921760391

    0.415647921760391

    0.317848410757946r = 4

    res = 1.205973193713402e-029

    %

    % Comprobacin del resultado

    %

    >> x-pinv(A)*bans = 1.0e-015 *

    -0.111022302462516

    0.333066907387547

    0.194289029309402

    -0.333066907387547

    0.166533453693773

    -0.943689570931383

    0.499600361081320

    65/84

    Si lo utilizamos para resolver el ejemplo.

  • 7/26/2019 Clase Mincua Lineal 2016

    65/84

    >> A=[1 1 1;1 2 4;1 3 9;1 4 16]

    A =

    1 1 1

    1 2 41 3 9

    1 4 16

    >> b=[2;3;5;6]

    b =

    2

    3

    5

    6

    >> [x r res]=Mincua_QR(A,b)x =

    0.500000000000000

    1.400000000000000

    0

    r =

    3

    res =

    0.200000000000001>> A\b

    ans =

    0.5000

    1.4000

    -0.0000

    66/84

  • 7/26/2019 Clase Mincua Lineal 2016

    66/84

    Transformaciones de Givens James Wallace Givens, EE.UU., 1910-1993.

    Definicin Se denominatransformacin de Givensa una transformacin lineal ortogonalde Rn en Rn caracterizada por una matriz

    G .i; j /D

    26666666666664

    1 : : :1

    c s: : :

    s c1

    : : :

    1

    37777777777775

    ij

    donde c2 C s2 D1.

    67/84

    Al l R f d G

  • 7/26/2019 Clase Mincua Lineal 2016

    67/84

    Al aplicar a x2 Rn una transformacin, o rotacin, de Givens,G .i;j/

    WR

    n

    !R

    n, con c

    Dcos y s

    Dsen , producir lo siguiente:

    G .i;j /xD

    266666666666664

    x1:::xi1

    xicos C xjsen xi

    C1:

    ::xj 1xisen C xjcos

    xj C1:::xn

    377777777777775

    i

    j

    Se rota el vector x un ngulo en el subespacio que generan los vectores ei y

    ej de Rn.

    68/84

  • 7/26/2019 Clase Mincua Lineal 2016

    68/84

    Para hacer cero alguno de los coeficientes i j de un vector x, concretamenteel j , se deber escoger un tal quexisen C xjcos D 0, es decir, habrque hacer

    tan D xjxi

    ;

    o, lo que es equivalente,cDcos D xiq

    x2iCx2jy

    sDsen D xjqx2iCx

    2j

    :

    69/84

    Ejemplo En la figura se describe, en el espacio eucldeo tridimensional, larotacin del vector

  • 7/26/2019 Clase Mincua Lineal 2016

    69/84

    x

    D 241

    1

    135en el plano z y para anular su tercer coeficiente.

    ..

    .

    ..

    .

    ..

    .

    .

    .

    ..

    .

    ..

    .

    ..

    .

    .

    ..

    .

    ..

    .

    ..

    .

    ..

    ..

    .

    ..

    ..

    .

    .

    .

    ..

    ..

    .

    ..

    .

    .

    ..

    ..

    .

    ..

    .

    .

    ..

    .

    ..

    ..

    ..

    .

    .

    ..

    ..

    ..

    .

    ..

    .

    ..

    .

    ..

    ..

    ..

    .

    ..

    ..

    .

    ..

    .

    .

    ..

    .

    ..

    ..

    ..

    .

    ..

    ..

    .

    ..

    .

    ..

    .

    ..

    ..

    ..

    ..

    .

    .

    ..

    .

    ..

    .

    ..

    .

    ..

    ..

    ..

    ..

    ..

    .

    ..

    .

    ..

    .

    ..

    .

    .

    ..

    .

    ..

    .

    ..

    .

    .

    ..

    .

    ..

    .

    ..

    .

    .

    ..

    .

    ..

    ..

    ..

    .

    .

    ..

    .

    ..

    .

    ..

    .

    ...............

    ..

    ..

    .

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    .

    ..

    .

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    ..

    .

    ..

    ..

    .

    .....................................................................................................................................................................

    ............................

    y

    x

    z

    x

    x

    1

    1

    1

    70/84

  • 7/26/2019 Clase Mincua Lineal 2016

    70/84

    Como el ngulo que hay que rotar x es 45, la matriz de Givens que hay que

    utilizar es,

    G .2;3/D

    2641 0 00 p2=2 p2=2

    0 p

    2=2p

    2=2

    375 :

    El nuevo vector ser

    G xDx0D24

    1p2

    0

    35

    :

    Lanorma eucldeade ste y del original esp

    3.

    71/84 Mediante transformaciones de Givens se puede reducir la matriz de un problema

    de mnimos cuadrados, en n etapas, a una triangular superior R. En cada una

    de esas etapas, j , se haran cero, uno a uno, los coeficientes jC 1a m.

  • 7/26/2019 Clase Mincua Lineal 2016

    71/84

    p j j

    Por ejemplo, las operaciones necesarias para transformar la matrizAD

    24

    35en RD

    264

    0 0 0 0 0 0

    375, son las que siguen.

    A1DG .1; 2/AD 24

    0

    35 ; A2DG .1; 3/A1D 24 0 0

    35 ;

    A3DG .1; 4/A2D

    264

    5 5 50 0 0

    375

    ; A4DG .2; 3/A3D

    264

    5 5 500 00

    375

    ;

    A5DG .2; 4/A4D

    2645 5 50 5 50 00 0

    375 ; A6DG .3; 4/A5D264

    5 5 50 5 50 0 50 0 0

    375 :Los smbolos , y5 indican que el coeficiente al que se hace referencia ha experimentado 1, 2 3 transformacionesdesde su valor inicial.

    72/84

    El algoritmo numrico completo es el que describe la tabla que sigue.

  • 7/26/2019 Clase Mincua Lineal 2016

    72/84

    Resolucin de Ax D b por transf. de Givens Transformacin de la Matriz Amnfori D 1 to n

    forkD

    iC

    1 to m Hacer nulo el elemento .k;i/.

    ifa.k;i/ 0 thenif ja.k;i/j ja.i;i/j then

    t D a.i;i /=a.k; i/I s D 1=p

    1 C t2I c D s telse

    t D a.k; i/=a.i;i /I c D 1=p

    1 C t2I s D c tenda.i;i/ c a.i;i/ C s a.k;i/forj D i C 1 to n

    aux

    Dc

    a.i;j/

    Cs

    a.k;j/; a.k;j/

    s

    a.i;j/

    Cc

    a.k;j/; a.i;j/

    aux

    end Transformacin del vector b.

    aux D c b.i/ C s b.k/; b.k/ s b.i/ C c b.k/; a.i/ auxend

    end

    end Resolucin del sistema Rx D b.forj D n to 1

    x.j/ 0@

    b.j/ n

    XkDjC1a.j; k/ x.k/

    1A,

    a.j;j/

    end Residuos al cuadrado.rescua

    mXkDnC1

    b2.k/

    73/84

    function [x r2]=Givens(A,b)

    % Resolucin de Ax=b mediante transformaciones de Givens

  • 7/26/2019 Clase Mincua Lineal 2016

    73/84

    EnMatlab:

    [m,n]=size(A); x=zeros(n,1);

    for i=1:n % Factorizacin de A

    for k=i+1:m

    if 1+abs(A(k,i))==1, continue, endif abs(A(k,i))>=abs(A(i,i))

    t=A(i,i)/A(k,i); s=1/sqrt(1+t*t);

    c=s*t;

    else

    t=A(k,i)/A(i,i); c=1/sqrt(1+t*t);

    s=c*t;

    end

    A(i,i)=c*A(i,i)+s*A(k,i);

    q(i+1:n)=c*A(i,i+1:n)+s*A(k,i+1:n);

    A(k,i+1:n)=-s*A(i,i+1:n)+c*A(k,i+1:n);

    A(i,i+1:n)=q(i+1:n);

    q1=c*b(i)+s*b(k); % Transformar b

    b(k)=-s*b(i)+c*b(k);

    b(i)=q1;

    end

    end

    for i=n:-1:1 % Sustitucin inversax(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i);

    end

    r2=norm(b(n+1:m))^2; % Residuos al cuadrado

    end

    >> A=[1 1 1;1 2 4;1 3 9;1 4 16]

    A = 1 1 1

    1 2 4

    1 3 9

    1 4 16

    >> b=[2;3;5;6]

    b =

    2

    3

    5

    6

    >> [x,r]=Givens(A,b)x =

    0.5000

    1.4000

    -0.0000

    r =

    0.2000

    >> A\b

    ans =

    0.5000

    1.4000

    -0.0000

    74/84

    El nmero de operaciones que requiere este algoritmo para transformar A es

  • 7/26/2019 Clase Mincua Lineal 2016

    74/84

    O.2mn2 2n3=3/ sumas+restas y multiplicaciones+divisionesO.mn=2/races cuadradas y

    O.n2=2/ sumas+restas y multiplicaciones+divisiones para efectuar la sustitucin inversa.

    Con precisiones semejantes Givens es el doble decaroque Householder.Cundo utilizar Givens y Householder entonces?

    La clave est en considerar la estructura de la matriz A del problema:

    Si sta es densa, es decir, muchos de sus coeficientes son distintos de

    cero, el mtodo de Householder es el ms aconsejable;

    Si la estructura de A es dispersa, convendr centrarse en hacer cero

    slo aquellos elementos no nulos en las columnas correspondientes, por

    lo que, a priori,el mtodo de Givens deber ser ms ventajoso.

    75/84Transformaciones rpidas e Givens

    La idea es conseguir velocidad de Householder con una M 2 Rmm tal que

  • 7/26/2019 Clase Mincua Lineal 2016

    75/84

    La idea es conseguirvelocidad de Householdercon una M2 R tal queM A

    DS

    sea triangular superior y que M MT DDDdiag.d1; : : : ; d m/.

    Como D1=2Mes ortogonal, se tiene que

    ADM1

    SD D1=2M1 D1=2S D MTD1=2 D1=2S es la factorizacin QR de A.

    Si se eligen adecuadamente una matrices M1

    D 1 1

    1 1y M2D 1 2

    2 1 ,que cumplan que1i i 0, denominadastransformaciones rpidas deGivens, una reordenacin de los clculos de la factorizacin puede conseguir la

    velocidad de las transformaciones de Householder con las ventajas de las de

    Givens.

    76/84

    Por descomposicin en valores singulares

  • 7/26/2019 Clase Mincua Lineal 2016

    76/84

    Existen diversos mtodos1 iterativos para calcular la descomposicinnumricaen valores singulares ADU V T.

    A partir de ella, la solucin demKnx2Rn kAx bk2 es

    xDV 1r 00 0UTb: Para cualquier matriz Amn, de rango completo o incompleto, la solucin del

    problema demenor norma eucldeaes

    xDXi 0

    uTi b

    ivi :

    1Los veremos en el tema dedicado a los valores y vectores propios.

    77/84

    Ejemplo Utilizando la descomposicin U V T de A resolver21 6 11

    3 253

  • 7/26/2019 Clase Mincua Lineal 2016

    77/84

    266664

    1 6 11

    2 7 12

    3 8 134 9 14

    5 10 15

    377775

    A

    24x1x2x3

    35

    x

    D

    266664

    5

    5

    55

    5

    377775

    b

    :

    La descomposicin es

    A D U V T

    D "0;3546 0;6887 0;5700 0;1764 0;20960;3987 0;3756 0;7455 0;2235 0;3071

    0;4428 0;0624

    0;1702

    0;3652

    0;7985

    0;4870 0;2507 0;2966 0;7652 0;16270;5311 0;5638 0;0490 0;4472 0;4445#"35;1272 0 0

    0 2;4654 00 0 0;0000

    0 0 00 0 0

    #h0;2017 0;8903 0;40820;5168 0;2573 0;81650;8320 0;3757 0;4082

    i:

    78/84

    Como el valor singular 3D0, la solucin de norma eucldea mnima seobtiene de x

    uT1 bv CuT2 bv

  • 7/26/2019 Clase Mincua Lineal 2016

    78/84

    obtiene de x D 11

    v1 C 22

    v2

    D 11;070935;1272

    0;20170;51680;8320

    C 1;56062;4654

    0;89030;25730;3757

    D 0;50;00;5

    :

    Este programa deMatlabresuelve el ejemplo llamando a svd(

    )para obtener

    la descomposicin en valores singulares de A.

    function [x S r] = Svdre(a,b)

    % Resolucin ||Ax-b|| mediante la desc. en valores singulares de A

    [m,n] = size(a); tol=sqrt(eps); tmp=zeros(m); x=zeros(n,1);

    [U S V]=svd(a); S=diag(S); r=0;

    for j=1:n

    if S(j)>=tol

    r=r+1;

    tmp(r)=dot(U(:,j),b)/S(j);

    end

    end

    for j=1:r

    x=x+tmp(j)*(V(:,j));

    end

    end

    79/84

    Comparacin de los diversos mtodos

    M d O i

  • 7/26/2019 Clase Mincua Lineal 2016

    79/84

    Mtodo Operaciones

    Ecuaciones Normales mn2

    2 C n3

    6

    Transformaciones de Householder mn2 n33

    Transformaciones de Givens 2m n2 23

    n3

    Mtodo de Gram Schmidt mn2

    Mtodo de Gram Schmidt Modificado mn2

    Mtodo de Golub-Reinsch (SVD) 2m n2 C 4n3Mtodo de Golub-Reinsch-Chan (SVD) mn2 C 17

    3n3

    Los mtodos basados entransformaciones ortogonalesson los ms precisos y

    habituales.

    El basado enSVDes el ms robusto, aunque ms caro.

    80/84

    Matlab y el problema de mnimos cuadrados

  • 7/26/2019 Clase Mincua Lineal 2016

    80/84

    Para calibrar las posibilidades de Matlabcon los problemas de mnimoscuadrados, vamos a utilizarlo para ajustar a unos puntos la funcin

    yDc1xec2x

    que se utiliza en prospeccin de hidrocarburos y minerales.

    Como no disponemos de datos reales, vamos a generar unossintticoshaciendoc1D5y c2D 3.

    Generaremos 300 puntos y los perturbaremos con unruido aleatorionormalizadode media 0.

    81/84 Utilizaremos como mtodos para obtener los parmetros c1 y c2, en un modelolinealizado, con ayuda de las rutinas deMatlab:

    El operador n

  • 7/26/2019 Clase Mincua Lineal 2016

    81/84

    El operadorn

    Las ecuaciones normalesLa descomposicin QR

    El mtodo de Gram-Schmidt

    La descomposicin en valores singulares y

    La matriz pseudoinversa,

    Para linealizar el modelo original, haremos los cambios

    vDln.y=x/; uDx; Dln c1 y Dc2;resultando

    vDu C :

    82/84

    >> x0=0.01; %primer punto de muestra

    >> x=linspace(x0,2,300); % 300 puntos

    >> y=5*x.*exp(-3*x); %nube de puntos

    >> yn=abs(y+0.05*(rand(size(x))-0.5)); % + ruido: valores pos.

    >> v=log(yn./x); %cambio de variable

  • 7/26/2019 Clase Mincua Lineal 2016

    82/84

    Eldiary deMatlab:

    g y

    >> x=x(:); v=v(:);

    >> A=[ones(size(x)) x]; % Matriz del sistema

    >> c=A\v % Prim. respuesta: con \

    c =1.6443

    -3.0579

    >> G=chol(A*A); % Ecuaciones normales

    >> c1=G\(G\(A*v));

    >> c1

    c1 =

    1.6443 % Segunda respuesta

    -3.0579

    >> [Q,R]=qr(A,0); % Factorizacin QR

    >> c2=R\(Q*v)

    c2 =1.6443 % Tercera respuesta

    -3.0579

    >> [Q,R]=gs_m(A); % Gram-Schmidt modi.

    >> c3=R\(Q*v)

    c3 =

    1.6443 % Cuarta respuesta

    -3.0579

    >> format long

    >> c4=pinv(A)*v % Matriz pseudoinversa

    c4 =

    1.64428682050583 % Quinta respuesta

    -3.05786465731645

    >> [U S V]=svd(A); % Descomposicin val. sing.

    >> c5=V\(S\(U\v))

    c5 =

    1.64428682050583 % Sexta respuesta

    -3.05786465731645

    83/84function demoXexp(n)

    % demoXexp Ajuste datos sintticos a y = c(1)*x*exp(c(2)*x)

    %% Dato: n = (opcional) nmero de puntos sintticos a generar.

    % defecto=200%

    if nargin

  • 7/26/2019 Clase Mincua Lineal 2016

    83/84

    Un script.mcon las instrucciones

    x=linspace(x0,2,n); % Construccin de los datosy=5*x.*exp(-3*x); %

    yn=abs(y+0.05*(rand(size(x))-0.5)); % con cambio de variable

    v=log(yn./x); %x=x(:); v=v(:); % para linealizar el

    A=[ones(size(x)) x]; % modeloc=A\v; %

    fprintf(Parmetros ajustados:\ncon A\\b: c1 = %18.15f c2 = %18.15f\n,...exp(c(1)),c(2));

    % --- Plot datosxfit = linspace(min(x),max(x));

    yfit = exp(c(1))*xfit.*exp(c(2)*xfit);if n

  • 7/26/2019 Clase Mincua Lineal 2016

    84/84

    0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    x

    y

    c1 = 5.6363 c2 = 3.1949

    100 puntos "sintticos"

    original

    +ruido

    ajustado