CN Sistemas Lineales I ,

download CN Sistemas Lineales I ,

of 53

description

Sistemas lineales analisis numerico.

Transcript of CN Sistemas Lineales I ,

  • Sistemas de Ecuaciones

    Lineales I

    Preliminares: Expresion matricial. Dificultades numericas.

    Factorizacion LU: Eliminacion Gaussiana. Relacion con la factorizacion LU.

    Pivoteo: Estrategia de pivoteo parcial.

    Adaptacion a matrices con estructuras particulares: Metodo de Cholesky. Matrices

    banda y tridiagonales.

    Propagacion de errores: Numero de condicion. Estimacion a posteriori del error.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 1 - DMFA Universidad Catolica de la Santsima Concepcion

  • Expresion matricial

    Todo sistema de ecuaciones lineales puede escribirse matricialmente:

    a11x1 + + a1nxn = b1...

    .

    .

    .

    an1x1 + + annxn = bn

    Ax = b,

    donde

    A :=

    a11 a1n...

    .

    .

    .

    an1 ann

    Rnn y b =

    b1...

    bn

    Rn

    son los datos y x =

    x1...

    xn

    Rn es el vector de incognitas.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 2 - DMFA Universidad Catolica de la Santsima Concepcion

  • Matriz inversa

    El sistema de ecuaciones linealesAx = b tiene solucion unica si y solo siA es una

    matriz no singular.

    Recordemos que una matrizA Rnn es no singular si y solo si se cumple cualquiera

    de estas condiciones:

    1. A es invertible: A1 Rnn : AA1 = A1A = I ;

    2. det(A) 6= 0;

    3. todas las filas (y columnas) deA son l.i.: rango(A) = n.

    4. 0 no es valor propio deA: 0 / (A).

    SiA es no singular, entonces

    Ax = b x = A1b.

    Sin embargo, en general, no es conveniente calcular la matriz inversaA1 para resolver

    un sistema de ecuaciones, pues hacerlo as resulta mucho mas costoso

    computacionalmente.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 3 - DMFA Universidad Catolica de la Santsima Concepcion

  • Matriz inversa (cont.)

    Por el contrario, una manera natural de calcular la inversa de una matrizA Rnn

    consiste en resolver n sistemas de ecuaciones lineales. Si llamamos c1, . . . , cn a las

    columnas deA1:

    A1 =

    c1

    cn

    , c1, . . . , cn Rn,

    entoncesAc1

    Acn

    = A

    c1

    cn

    = AA1 = I =

    e1

    en

    ,

    donde las columnas e1, . . . , en de I son los vectores de la base canonica de Rn. Por lo

    tanto,A1 puede calcularse columna por columna resolviendo:

    Aci = ei, i = 1, . . . , n.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 4 - DMFA Universidad Catolica de la Santsima Concepcion

  • Dificultades numericas

    Los siguientes aspectos deben tenerse en cuenta al disenar un algoritmo para resolver un

    sistema de ecuaciones lineales:

    Costo operacional. El tiempo de calculo del computador necesario para resolver el

    sistema debe ser lo menor posible.

    Una medida standard del costo operacional es la cantidad de operaciones aritmeticas

    (+, , , /) que requiere un algoritmo. Este usualmente se expresa en flop (floating

    point operations).

    Costo de almacenamiento. La cantidad de posiciones de memoria que requiere el

    computador para ejecutar un algoritmo (representacion de los datos, variables auxiliares,

    etc.) tambien debe ser la menor posible.

    Precision de los resultados. Los algoritmos deben ser estables, en el sentido de amplificar

    lo menos posible los errores de los datos y los de redondeo.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 5 - DMFA Universidad Catolica de la Santsima Concepcion

  • Costo operacional

    Los sistemas que aparecen en muchas aplicaciones son de gran tamano. Un sistema de

    1000 1000 hoy se considera de tamano moderado y en algunas aplicaciones deben

    resolverse sistemas de ecuaciones con cientos de miles de incognitas.

    Hay metodos que en teora permiten resolver cualquier sistema de ecuaciones lineales,

    pero que en la practica requieren tiempos de calculo prohibitivos.

    Mal ejemplo: Regla de Cramer. Este procedimiento permite calcular explcitamente la

    solucion de un sistemaAx = b mediante:

    xi =det(Ai)

    det(A), i = 1, . . . , n,

    dondeAi es la matriz que se obtiene a partir deA reemplazando en esta su columna

    i-esima por el segundo miembro b.

    Si los determinantes se calculan mediante la formula recursiva usual de desarrollo por fila

    (o por columna), el costo operacional de la Regla de Cramer es de aproximadamente

    (n+ 1)! flop.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 6 - DMFA Universidad Catolica de la Santsima Concepcion

  • Costo operacional (cont.)

    Buen ejemplo: Metodo de Eliminacion Gaussiana. Este procedimiento se basa en el

    metodo algebraico de transformaciones elementales. Su costo operacional veremos

    que es de aproximadamente23n

    3 flop.

    Comparacion:

    En un computador de 1Gflop (109 flop) por segundo:

    n 10 15 20 100 1000 2000

    Regla de Cramer

    flop 4 107 2 1013 5 1019 10160

    tiempo 0.04 s 5.5 horas 1500 anos

    Eliminacion Gaussiana

    flop 666 2250 5333 7 105 7 108 5 109

    tiempo 0. s 0. s 0. s 0 s 0.73 s 4.88 s

    Calculo Numerico IN1012C/IN1052C/MAT221N - 7 - DMFA Universidad Catolica de la Santsima Concepcion

  • Costo de almacenamiento

    En muchas aplicaciones los sistemas de ecuaciones lineales que deben resolverse

    involucran matrices de gran tamano, pero tales que la mayor parte de sus entradas son

    nulas.

    Estas matrices se denominan dispersas o ralas (en ingles y en MATLAB, sparse) y

    existen tecnicas para almacenarlas que solo requieren una cantidad de posiciones de

    memoria aproximadamente igual al numero de entradas no nulas de la matriz.

    Los metodos algebraicos usuales (por ejemplo el de transformaciones elementales)

    requieren modificar la matriz original del sistema y, muchas veces, destruyen el caracter

    disperso de la misma.

    Para evitar esto, estudiaremos tambien otros procedimientos (metodos iterativos) que no

    modifican la matriz del sistema, por lo que resultaran mas convenientes desde el punto de

    vista del costo de almacenamiento.

    Estos metodos no se basan en calcular la solucion exacta del sistema, sino en construir

    iterativamente aproximaciones cada vez mejores de la misma.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 8 - DMFA Universidad Catolica de la Santsima Concepcion

  • Precision de los resultados

    La resolucion de un sistema de ecuaciones lineales en el computador involucra la

    propagacion de errores en los datos y errores de redondeo. Por ello:

    1. Hay que disponer de alguna tecnica que permita predecir cuando la resolucion de un

    sistema de ecuaciones puede propagar drasticamente estos errores.

    2. Hay que disenar metodos numericos estables, que reduzcan la propagacion de los

    errores de redondeo tanto como sea posible.

    3. Hay que disenar tecnicas computacionales que nos permitan, despues de calcular la

    solucion de un sistema de ecuaciones, estimar a posteriori la precision de la solucion

    calculada. Es decir, testear si el error con el que se la calculo esta por debajo de una

    tolerancia aceptable.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 9 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas con matriz triangular

    Dadas

    L =

    l11 0 0

    l21 l22. . .

    .

    .

    .

    .

    .

    ....

    . . . 0

    ln1 ln2 lnn

    y U =

    u11 u12 u1n

    0 u22 u2n...

    . . .. . .

    .

    .

    .

    0 0 unn

    decimos que L es triangular inferior yU es triangular superior.

    Dado que

    det(L) = l11l22 lnn y det(U) = u11u22 unn,

    una matriz triangular es no singular si y solo si sus terminos diagonales son todos no

    nulos.

    La resolucion de sistemas de ecuaciones lineales con matrices triangulares es muy

    sencilla y su costo operacional es bajo.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 10 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas con matriz triangular (cont.)

    Consideremos un sistema Lx = b con matriz triangular inferior L. Procedemos por

    sustitucion progresiva:

    l11x1 = b1 x1 = b1/l11

    l21x1 + l22x2 = b2 x2 = (b2 l21x1) /l22...

    .

    .

    .

    ln1x1 + + lnnxn = bn xn = (bn ln1x1 lnn1xn1) /lnn

    Algoritmo:

    Para i = 1, . . . , n xi =1

    lii

    bi i1

    j=1

    lijxj

    Costo operacional:

    ni=1

    1 + i1

    j=1

    2

    = n

    i=1

    (2i 1) = n2 flop.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 11 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas con matriz triangular (cont.)

    Ejercicio:

    1. Deducir el siguiente algoritmo para resolver un sistemaUx = b con matriz triangular

    superiorU :

    Para i = n, n 1, . . . , 1 xi =1

    uii

    bi n

    j=i+1

    uijxj

    2. Calcular su costo operacional.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 12 - DMFA Universidad Catolica de la Santsima Concepcion

  • Metodo de Eliminacion Gaussiana (M.E.G.)

    El metodo de eliminacion gaussiana consiste en reducir mediante transformaciones

    elementales un sistemaAx = b a otro equivalente (es decir, que tenga la misma

    solucion), de la forma

    Ux = b,

    dondeU es una matriz triangular superior. Luego, el sistema resultante se resuelve por

    el algoritmo descrito para matrices triangulares.

    Denotemos el sistema original porA(1)x = b(1). El proceso empleado consiste en

    reemplazar las ecuaciones por combinaciones no triviales de las otras. As, consideremos

    la matriz no singularA Rnn y supongamos que el elemento a(1)11 es no nulo.

    Consideremos los multiplicadores

    mi1 =a(1)i1

    a(1)11

    , i = 2, . . . , n,

    donde a(1)ij donota el elemento que esta en la fila i y columna j de A

    (1).

    Calculo Numerico IN1012C/IN1052C/MAT221N - 13 - DMFA Universidad Catolica de la Santsima Concepcion

  • Metodo de Eliminacion Gaussiana (cont.)

    Es posible eliminar la incognita x1 de la segunda ecuacion en adelante, por simple

    sustraccion a la fila i, i = 2, . . . , n, de la primera fila previamente multiplicada pormi1 y

    haciendo lo mismo para el vector b:

    a(2)ij = a

    (1)ij mi1a

    (1)1j , i, j = 2, . . . , n,

    b(2)i = b

    (1)i mi1b

    (1)1 , i = 2, . . . , n,

    donde b(1)i denota la componente i-esima del vector b

    (1).

    As se obtiene un sistemaA(2)x = b(2) equivalente al anterior:

    a(1)11 a

    (1)12 a

    (1)13 a

    (1)1n

    0 a(2)22 a

    (2)23 a

    (2)2n

    0 a(2)32 a

    (2)33 a

    (2)3n

    .

    .

    ....

    .

    .

    ....

    0 a(2)n2 a

    (2)n3 a

    (2)nn

    x1

    x2

    x3...

    xn

    =

    b(1)1

    b(2)2

    b(2)3

    .

    .

    .

    b(2)n

    Calculo Numerico IN1012C/IN1052C/MAT221N - 14 - DMFA Universidad Catolica de la Santsima Concepcion

  • Metodo de Eliminacion Gaussiana (cont.)

    A continuacion, si a(2)22 6= 0, podemos analogamente eliminar la incognita x2 de la

    tercera ecuacion en adelante.

    Siguiendo con este proceso un numero finito de veces se obtiene el sistema

    A(k)x = b(k), 1 k n,

    donde la matriz A(k) toma la siguiente forma:

    A(k) =

    a(1)11 a

    (1)12 a

    (1)1n

    0 a(2)22 a

    (2)2n

    .

    .

    .. . .

    . . ....

    .

    .

    . 0 a(k)kk a

    (k)kn

    .

    .

    ....

    .

    .

    ....

    0 0 a(k)nk a

    (k)nn

    Para realizar este proceso hemos supuesto que a(i)ii 6= 0, i = 1, . . . , k 1.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 15 - DMFA Universidad Catolica de la Santsima Concepcion

  • Metodo de Eliminacion Gaussiana (cont.)

    Notemos que para k = n obtenemos el sistema triangular superior

    a(1)11 a

    (1)12 a

    (1)1n

    0 a(2)22 a

    (2)2n

    .

    .

    .. . .

    . . ....

    0 0 a(n)nn

    x1

    x2...

    xn

    =

    b(1)1

    b(2)2

    .

    .

    .

    b(n)n

    Los valores a(k)kk son llamados pivotes y deben ser valores no nulos para

    k = 1, . . . , n 1.

    Si la matriz originalA es no singular, entonces tambien a(n)nn 6= 0 y el sistema triangular

    superior resultante puede resolverse por el algoritmo ya visto:

    Para i = n, n 1, . . . , 1 xi =1

    a(i)ii

    b(i)i

    nj=i+1

    a(i)ij xj

    Calculo Numerico IN1012C/IN1052C/MAT221N - 16 - DMFA Universidad Catolica de la Santsima Concepcion

  • Algoritmo del M.E.G.

    Recordemos que en el paso k-esimo

    se parte de la siguiente matriz:

    a(1)11 a

    (1)12 a

    (1)1n

    0 a(2)22 a

    (2)2n

    .

    .

    .. . .

    . . ....

    .

    .

    . 0 a(k)kk a

    (k)kn

    .

    .

    ....

    .

    .

    ....

    0 0 a(k)nk a

    (k)nn

    Para k = 1, . . . , n 1

    para i = k + 1, . . . , n

    mik = a(k)ik /a

    (k)kk

    para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kjb(k+1)i = b

    (k)i mikb

    (k)k

    Para i = n, n 1, . . . , 1 xi =1

    a(i)ii

    b(i)i

    nj=i+1

    a(i)ij xj

    Observacion: El algoritmo no precisa crear los ceros debajo de la diagonal de la matriz,

    pues estos luego no se utilizan.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 17 - DMFA Universidad Catolica de la Santsima Concepcion

  • Costo Operacional del M.E.G.

    Costo del paso de eliminacion:

    Para k = 1, . . . , n 1

    para i = k + 1, . . . , n

    mik = a(k)ik /a

    (k)kk

    para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kjb(k+1)i = b

    (k)i mikb

    (k)k

    n1k=1

    ni=k+1

    1 + n

    j=k+1

    2

    + 2

    =n1k=1

    (n k) [2(n k) + 3]

    =

    (2

    3n3 +

    1

    2n2

    7

    6n

    )flop

    Costo de la solucion de sistema triangular superior: n2 flop.

    Costo operacional total:

    (2

    3n3 +

    3

    2n2

    7

    6n

    )flop.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 18 - DMFA Universidad Catolica de la Santsima Concepcion

  • Costo Operacional del M.E.G. (cont.)

    n Eliminacion Sist. Triang. Total M.E.G.2

    3n3

    % Elim % S. T.

    10 705 100 805 666 87.58 12.42

    20 5510 400 5910 5333 93.23 6.77

    30 18415 900 19315 18000 95.34 4.66

    40 43420 1600 45020 42666 96.45 3.55

    50 84525 2500 87025 83333 97.13 2.87

    100 671550 10000 681550 666666 98.53 1.47

    200 5353100 40000 5393100 5333333 99.26 0.74

    300 18044650 90000 18134650 18000000 99.50 0.50

    400 42746200 160000 42906200 42666666 99.63 0.37

    500 83457750 250000 83707750 83333333 99.70 0.30

    600 144179300 360000 144539300 144000000 99.75 0.25

    700 228910850 490000 229400850 228666666 99.79 0.21

    800 341652400 640000 342292400 341333333 99.81 0.19

    900 486403950 810000 487213950 486000000 99.83 0.17

    1000 667165500 1000000 668165500 666666666 99.85 0.15

    Calculo Numerico IN1012C/IN1052C/MAT221N - 19 - DMFA Universidad Catolica de la Santsima Concepcion

  • Costo Operacional del M.E.G. (cont.)

    Para n grande, los terminos proporcionales a n2 (y a n) resultan despreciables respecto a

    los proporcionales a n3.

    Por esa razon, el costo operacional del metodo de eliminacion gaussiana se dice que

    es de aproximadamente

    2

    3n3 flop

    Notemos que la mayor parte del costo corresponde a la triangularizacion de la matriz:

    Para k = 1, . . . , n 1

    para i = k + 1, . . . , nmik = a

    (k)ik /a

    (k)kk

    para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kj

    Costo operacional:2

    3n3 flop.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 20 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU

    Ejemplo:

    A =

    1 3 2

    2 8 1

    4 6 5

    m21 = 2

    m31 = 4

    1 3 2

    0 2 3

    0 6 3

    m32 = 3

    1 3 2

    0 2 3

    0 0 12

    U :=

    1 3 2

    0 2 3

    0 0 12

    L :=

    1 0 0

    m21 1 0

    m31 m32 1

    =

    1 0 0

    2 1 0

    4 3 1

    Notemos que

    LU =

    1 0 0

    2 1 0

    4 3 1

    1 3 2

    0 2 3

    0 0 12

    =

    1 3 2

    2 8 1

    4 6 5

    = A

    Calculo Numerico IN1012C/IN1052C/MAT221N - 21 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU (cont.)

    Si la matrizA es tal que la etapa de eliminacion del M.E.G. se puede llevar a cabo (es

    decir si todos los pivotes a(i)ii 6= 0, i = 1, . . . , n 1), entonces

    A = LU ,

    donde:

    U es la matriz triangular superior que resulta de la eliminacion y

    L es la matriz triangular inferior de los multiplicadoresmij :

    L =

    1 0 0

    m21 1. . .

    .

    .

    .

    .

    .

    .. . .

    . . . 0

    mn1 mnn1 1

    Calculo Numerico IN1012C/IN1052C/MAT221N - 22 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas mediante factorizacion LU

    SiA = LU , entonces

    Ax = b L(Ux) = b

    Ly = b,Ux = y.

    Por lo tanto, resolver un sistemaAx = b es equivalente a:

    1. resolver Ly = b y, luego,

    2. resolverUx = y.

    Como estos sistemas son triangulares (inferior y superior, respectivamente), el costo

    operacional de resolver los dos sistemas es 2n2 flop.

    Factorizar la matrizA = LU consiste simplemente en:

    triangularizarA por eliminacion gaussiana y

    almacenar la matriz triangular L de multiplicadores.

    Por lo tanto, el costo de factorizar la matrizA = LU es 23n3 flop.

    Como 2n2 23n3, el costo operacional total para resolver un sistema mediante

    factorizacion LU es 23n3 flop.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 23 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas mediante factorizac. LU (cont.)

    Muchas veces deben resolverse varios sistemas de ecuaciones con la misma matriz y

    distintos segundos miembros b1, . . . , bm (por ejemplo, para calcularA1).

    En tal caso, conviene primero factorizar la matrizA = LU (una sola vez!) y luego

    resolver los pares de sistemas triangulares para cada segundo miembro: Ly

    1 = b1,

    Ux1 = y1,

    Ly

    m = bm,

    Uxm = ym.

    As, la parte mas costosa del proceso (la factorizacion: 23n3) se hace una sola vez y solo

    se repite la parte menos costosa (la solucion de los sistemas triangulares: 2n2).

    Hay algoritmos (Crout, Doolitle) que permiten obtener directamente la factorizacion LU

    de una matriz, pero el costo es el mismo que el de hacerlo por eliminacion gaussiana.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 24 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas mediante factorizac. LU (cont.)

    Algoritmo (por eliminacion gaussiana):

    Para k = 1, . . . , n 1

    para i = k + 1, . . . , nmik = a

    (k)ik /a

    (k)kk

    para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kjPara i = 1, . . . , n yi = bi

    i1j=1

    mijyj

    Para i = n, n 1, . . . , 1 xi =1

    a(i)ii

    yi n

    j=i+1

    a(i)ij xj

    Observacion: La matriz triangular supe-

    rior puede calcularse utilizando las mis-

    mas posiciones de memoria en las que

    inicialmente esta almacenadaA.

    A fin de no tener que utilizar una matriz

    mas para guardar L, pueden almacenarse

    cada multiplicador mij en lugar de la

    entrada aij que se hace cero en ese paso.

    Esta no es la forma en que procede MAT-

    LAB, pues este software no pretende opti-

    mizar el costo de almacenamiento.

    Sin embargo, hay mucho software que uti-

    liza este truco a fin de evitar tener que usar

    memoria adicional para almacenar los mul-

    tiplicadores.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 25 - DMFA Universidad Catolica de la Santsima Concepcion

  • Necesidad del pivoteo

    Para k = 1, . . . , n 1

    para i = k + 1, . . . , nmik = a

    (k)ik /a

    (k)kk

    para j = k + 1, . . . , n a(k+1)ij = a(k)ij mika(k)kj

    El algoritmo de eliminacion gaussiana (o

    el de factorizacion LU) solo puede lle-

    varse a cabo si todos los pivotes son

    no nulos:

    a(k)kk 6= 0.

    Ejemplo. El sistema de ecuaciones siguiente tiene matriz no singular pues su

    determinante es 1: 0 1 1

    1 2 3

    2 0 1

    x1

    x2

    x3

    =

    2

    4

    0

    Sin embargo el algoritmo anterior no puede aplicarse pues a11 = 0 y, por lo tanto,

    m21 = a(1)21 /a

    (1)11 ym31 = a

    (1)31 /a

    (1)11 no estan definidos.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 26 - DMFA Universidad Catolica de la Santsima Concepcion

  • Necesidad del pivoteo (cont.)

    Para poder resolver el sistema, debe intercambiarse la primera ecuacion con

    cualquiera de las otras de manera de evitar el pivote cero. Por ejemplo, asi:0 1 1

    1 2 3

    2 0 1

    x1

    x2

    x3

    =

    2

    4

    0

    1 2 3

    0 1 1

    2 0 1

    x1

    x2

    x3

    =

    4

    2

    0

    Por otra parte, puede demostrarse que la estabilidad del metodo de eliminacion

    gaussiana en cuanto a propagacion de errores de redondeo se deteriora si los

    multiplicadoresmij son numeros muy grandes en modulo.

    Una forma de evitar ambos inconvenientes, pivotes nulos y multiplicadores grandes en

    modulo, es realizar en cada paso el intercambio de ecuaciones que produzca el pivote

    mayor posible en modulo. Esto estrategia se denomina pivoteo parcial.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 27 - DMFA Universidad Catolica de la Santsima Concepcion

  • Estrategia de pivoteo parcial

    a(1)11 a

    (1)12 a

    (1)1n

    0 a(2)22 a

    (2)2n

    .

    .

    .. . .

    . . ....

    .

    .

    . 0 a(k)kk a

    (k)kn

    .

    .

    ....

    .

    .

    ....

    0 0 a(k)nk a

    (k)nn

    En el paso k-esimo se revisa el vectora(k)kk

    .

    .

    .

    a(k)nk

    y se busca la fila l en la que aparece la en-

    trada mayor en modulo:

    k l n :a(k)lk = max

    kin

    {a(k)ik } . Luego, si l 6= k, se intercambia esa fila con la k-esima.

    Si la matriz es no singular, siempre habra una entrada no nula en ese vector, por lo que

    as se evitan los pivotes nulos.

    Ademas, despues del intercambio,a(k)kk a(k)ik , i = k, . . . , n. Por lo tanto, los

    multiplicadores no pueden pasar de 1 en modulo:

    |mik| =a(k)ik /a(k)kk 1, i = k, . . . , n.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 28 - DMFA Universidad Catolica de la Santsima Concepcion

  • Matrices de permutacion

    Si hay intercambios de filas, las matrices triangulares L yU que se obtienen por el

    metodo de eliminacion gaussiana con estrategia de pivoteo parcial, ya no factorizan

    aA, sino que factorizan a la matriz que se obtiene despues de aplicar aA todos los

    intercambios de filas que tuvieron lugar.

    Se llama matriz de permutacion a toda matriz que se obtenga intercambiado filas de I .

    Por ejemplo, las siguientes son todas las matrices de permutacion 3 3:1 0 0

    0 1 0

    0 0 1

    1 0 0

    0 0 1

    0 1 0

    0 1 0

    1 0 0

    0 0 1

    0 1 0

    0 0 1

    1 0 0

    0 0 1

    0 1 0

    1 0 0

    0 0 1

    1 0 0

    0 1 0

    Los intercambios de filas de una matriz se obtienen multiplicando a izquierda por una

    matriz de permutacion. Por ejemplo:0 1 0

    0 0 1

    1 0 0

    1 2 3

    4 5 6

    7 8 9

    =

    4 5 6

    7 8 9

    1 2 3

    Calculo Numerico IN1012C/IN1052C/MAT221N - 29 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU con estrategia de pivoteo parcial

    Teorema. SiA es una matriz no singular, entonces existen matrices no singulares L

    triangular inferior yU triangular superior y una matriz de permutacion P , tales que

    LU = PA.

    Estas matrices pueden obtenerse mediante el metodo de eliminacion gaussiana con

    estrategia de pivoteo parcial.

    Si se debe resolver un sistemaAx = b, se procede as:

    Ax = b PAx = Pb L(Ux) = Pb

    Ly = Pb,Ux = y.

    El metodo de eliminacion gaussiana con estrategia de pivoteo parcial resulta estable

    respecto a la propagacion de errores de redondeo.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 30 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU con pivoteo en MATLAB

    Comando: [L,U]=lu(A)

    L es una matriz psicologica-

    mente triangular inferior

    U es una matriz triangular supe-

    rior

    L*U = A.

    >> A=[1 2 3;4 5 6;7 8 0];

    >> [L,U]=lu(A)

    L = 0.1429 1.0000 0

    0.5714 0.5000 1.0000

    1.0000 0 0

    U = 7.0000 8.0000 0

    0 0.8571 3.0000

    0 0 4.5000

    >> L*U

    ans = 1 2 3

    4 5 6

    7 8 0

    Calculo Numerico IN1012C/IN1052C/MAT221N - 31 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU con pivoteo en MATLAB (cont.)

    Comando:

    [L,U,P]=lu(A)

    L es una matriz triangular inferior

    U es una matriz triangular supe-

    rior

    P es una matriz de permutacion

    L*U = P*A.

    >> A=[1 2 3;4 5 6;7 8 0];

    >> [L,U,P]=lu(A)

    L = 1.0000 0 0

    0.1429 1.0000 0

    0.5714 0.5000 1.0000

    U = 7.0000 8.0000 0

    0 0.8571 3.0000

    0 0 4.5000

    P = 0 0 1

    1 0 0

    0 1 0

    Calculo Numerico IN1012C/IN1052C/MAT221N - 32 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU con pivoteo en MATLAB (cont.)

    Comando:

    [L,U,P]=lu(A)

    L es una matriz triangular inferior

    U es una matriz triangular supe-

    rior

    P es una matriz de permutacion

    L*U = P*A.

    >> L*U

    ans = 7 8 0

    1 2 3

    4 5 6

    >> P*A

    ans = 7 8 0

    1 2 3

    4 5 6

    Calculo Numerico IN1012C/IN1052C/MAT221N - 33 - DMFA Universidad Catolica de la Santsima Concepcion

  • Matrices banda

    Se dice queA = (aij) Rnn es una matriz banda si aij = 0 cuando |i j| ,

    con n. Al numero se lo llama el ancho de banda de la matriz.

    0 0...

    . . .. . .

    . . ....

    . . .

    . . . 0

    0. . .

    . . . ...

    . . .. . .

    . . ....

    0 0

    Las matrices banda son un caso especial de matrices dispersas y, como tales, deben

    almacenarse como sparse en MATLAB a fin de reducir el costo de almacenamiento.

    Estas matrices aparecen muy habitualmente en las aplicaciones; especialmente en la

    resolucion de problemas de valores de contorno para ecuaciones diferenciales.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 34 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU de matrices banda

    Si una matriz bandaA puede factorizarse LU sin necesidad de pivoteo, entonces las

    matrices triangulares L yU tambien son banda con el mismo ancho de banda queA.

    A =

    0 0...

    . . .. . .

    .

    .

    .

    . . .

    . . ....

    0. . .

    . . .. . .

    .

    .

    .

    .

    .

    .. . .

    . . .. . . 0

    0 0

    L

    0 0

    0. . .

    . . .. . .

    .

    .

    .

    .

    .

    .. . .

    . . .. . . 0

    .

    .

    .. . .

    . . . ...

    . . .. . .

    .

    .

    .

    0 0

    U

    Por eso se dice que la factorizacion LU sin pivoteo preserva la estructura banda de las

    matrices.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 35 - DMFA Universidad Catolica de la Santsima Concepcion

  • Matrices tridiagonales

    Un caso extremo de matrices banda es el de las matrices tridiagonales ( = 2):

    A =

    b1 c1 0 0

    a2. . .

    . . .. . .

    .

    .

    .

    0. . .

    . . .. . . 0

    .

    .

    .. . .

    . . .. . . cn1

    0 0 an bn

    Rnn

    Estas matrices aparecen tambien muy habitualmente, por ejemplo, al interpolar por splines

    o al resolver problemas de valores de contorno para ecuaciones diferenciales ordinarias.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 36 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU de matrices tridiagonales

    Cuando se cumplen las siguientes desigualdades,

    |b1| > |c1|,

    |bi| |ai|+ |ci|, i = 2, . . . , n 1,

    |bn| > |an|,

    las matrices tridiagonales pueden factorizarse LU sin necesidad de pivoteo y este

    procedimiento resulta estable respecto a la propagacion de errores de redondeo:

    A =

    1 0 0

    2. . .

    . . ....

    0. . .

    . . .. . .

    .

    .

    .

    .

    .

    .. . .

    . . .. . . 0

    0 0 n 1

    L

    1 1 0 0

    0. . .

    . . .. . .

    .

    .

    .

    .

    .

    .. . .

    . . .. . . 0

    .

    .

    .. . .

    . . . n1

    0 0 n

    U

    Calculo Numerico IN1012C/IN1052C/MAT221N - 37 - DMFA Universidad Catolica de la Santsima Concepcion

  • Las entradas i, i y i de las matrices L yU pueden calcularse muy facilmente:

    b1 c1 0 0

    a2 b2 c2. . .

    .

    .

    .

    0

    . . .. . .

    . . . 0

    .

    .

    .. . .

    . . .. . . cn1

    0 0 an bn

    =

    1 0 0

    2 1. . .

    .

    .

    .

    0

    . . .. . .

    . . ....

    .

    .

    .. . .

    . . .. . . 0

    0 0 n 1

    1 1 0 0

    0 2 2. . .

    .

    .

    .

    .

    .

    .. . .

    . . .. . . 0

    .

    .

    .. . . n1 n1

    0 0 n

    11 = b1 = 1 = b1

    11 = c1 = 1 = c1

    21 = a2 = 2 = a2/1

    21 + 12 = b2 = 2 = b2 21

    12 = c2 = 2 = c2

    nn1 = an = n = an/n1

    nn1 + 1n = bn = n = bn nn1

    Calculo Numerico IN1012C/IN1052C/MAT221N - 38 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion LU de matrices tridiagonales (cont.)

    As obtenemos el siguiente algoritmo (Algoritmo de Thomas):

    11 = b1 = 1 = b1

    11 = c1 = 1 = c1

    21 = a2 = 2 = a2/1

    21 + 12 = b2 = 2 = b2 21

    12 = c2 = 2 = c2

    nn1 = an = n = an/n1

    nn1 + 1n = bn = n = bn nn1

    1 = b1

    Para i = 2, . . . , ni1 = ci1

    i = ai/i1

    i = bi ii1

    Costo operacional:

    ni=2

    3 = 3(n1) flop

    Calculo Numerico IN1012C/IN1052C/MAT221N - 39 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas con matrices tridiagonales

    Al resolver un sistemaAx = d con matrizA tridiagonal, a partir de su factorizacion LU,

    Ax = d L(Ux) = d

    Ly = d,Ux = y,

    los sistemas triangulares tambien pueden resolverse muy facilmente:

    1 0 0

    2 1. . .

    .

    .

    .

    0

    . . .. . .

    . . ....

    .

    .

    .. . .

    . . .. . . 0

    0 0 n 1

    y1

    y2

    .

    .

    .

    yn1

    yn

    =

    d1

    d2

    .

    .

    .

    dn1

    dn

    y1 = d1

    Para i = 2, . . . , n yi = di iyi1Costo operacional:

    ni=2

    2 = 2(n1) flop

    Calculo Numerico IN1012C/IN1052C/MAT221N - 40 - DMFA Universidad Catolica de la Santsima Concepcion

  • Solucion de sistemas con matrices tridiagonales (cont.)

    1 1 0 0

    0

    . . .. . .

    . . ....

    .

    .

    .. . .

    . . .. . . 0

    .

    .

    .. . . n1 n1

    0 0 n

    x1

    x2

    .

    .

    .

    xn1

    xn

    =

    y1

    y2

    .

    .

    .

    yn1

    yn

    xn = yn/n

    Para i = n 1, . . . , 1 xi = (yi ixi+1) /iCosto operacional:

    1+

    n1i=1

    3 = 1+3(n1) flop

    El costo total de resolver un sistema de ecuaciomes con matriz tridiagonal mediante el

    algortimo de Thomas es de 3(n 1) + 2(n 1) + 1 + 3n 2 = 8n 7 flop.

    Comparese este costo con el del metodo de eliminacion gaussiana aplicado a ciegas sin

    sacar provecho de la estructura tridiagonal de la matriz:23n

    3.

    Por ejemplo, un sistema 1000 1000 cuesta aproximadamente 666 666 666 flop por

    M.E.G. y aproximadamente 8 000 flop mediante este algoritmo.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 41 - DMFA Universidad Catolica de la Santsima Concepcion

  • Matrices definidas positivas

    Una matriz simetricaA Rnn se dice definida positiva si

    xtAx > 0 x Rn : x 6= 0.

    Estas matrices tambien aparecen muy habitualmente, por ejemplo, al ajustar parametros

    de un modelo por cuadrados mnimos o al resolver problemas de valores de contorno para

    ecuaciones diferenciales.

    Teorema. SeaA Rnn una matriz simetrica. A es definida positiva si y solo si se

    cumple cualquiera de las siguientes condiciones:

    1. los valores propios deA son todos positivos;

    2. los determinantes de las submatrices principales deA son todos positivos;

    3. existe una matriz L, triangular inferior y no singular, tal queA = LLt.

    Esta ultima propiedad nos dice que si la matriz es simetrica y definida positiva, siempre

    puede obtenerse una factorizacion en matrices triangulares sin necesidad de pivoteo.

    Ademas, no hace falta calcular la matriz triangular superior, pues es la transpuesta de

    la triangular inferior. Veremos que esto reduce el costo operacional a la mitad.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 42 - DMFA Universidad Catolica de la Santsima Concepcion

  • Metodo de Cholesky

    Se aplica solamente a matrices simetricas y definidas positivas.

    Se basa en calcular directamente la matriz L tal queA = LLt.

    Se procede como en el caso de matrices tridiagonales y se obtiene el siguiente algoritmo:

    Para j = 1, . . . , n

    ljj =

    ajj j1k=1

    l2jk

    para i = j + 1, . . . , n lij = 1ljj(aij

    j1k=1

    likljk

    )

    El costo operacional es:

    nj=1

    j1k=1

    2 +

    ni=j+1

    (1 +

    j1k=1

    2

    ) 13n

    3 flop,

    +n races cuadradas.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 43 - DMFA Universidad Catolica de la Santsima Concepcion

  • Metodo de Cholesky (cont.)

    Para resolver un sistema de ecuacionesAx = b con matriz simetrica y definida

    positiva por el metodo de Cholesky, una vez calculada L, se tiene:

    Ax = b L(Ltx) = b

    Ly = b,Ltx = y.

    Para resolver los sistemas Ly = b y Ltx = y, se utiliza el algoritmo que ya conocemos

    para matrices triangulares, cuyo costo operacional es de 2n2.

    Por lo tanto el costo operacional total del metodo de Cholesky es de 13n3. Vale decir,

    aproximadamente la mitad que el del M.E.G.

    Ademas, se demuestra que si la matriz es simetrica y definida positiva, los metodos de

    factorizacion son estables respecto a la propagacion de errores de redondeo sin

    necesidad de estrategia de pivoteo.

    En particular, el metodo de Cholesky es estable respecto a la propagacion de errores

    de redondeo.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 44 - DMFA Universidad Catolica de la Santsima Concepcion

  • Factorizacion de Cholesky en MATLAB

    Comando: R=chol(A)

    R es una matriz triangular supe-

    rior

    Rt*R = A.

    A =

    2 -1 0

    -1 2 -1

    0 -1 2

    >> R=chol(A)

    R =

    1.4142 -0.7071 0

    0 1.2247 -0.8165

    0 0 1.1547

    >> B=R*R

    B =

    2.0000 -1.0000 0

    -1.0000 2.0000 -1.0000

    0 -1.0000 2.0000

    Calculo Numerico IN1012C/IN1052C/MAT221N - 45 - DMFA Universidad Catolica de la Santsima Concepcion

  • Propagacion de errores en los datos (segundo miembro)

    Consideremos el siguiente ejemplo:0.10 1.00

    0.11 1.00

    x1x2

    =

    2.0

    2.1

    . Solucion exacta: x =

    10.01.0

    .

    Supongamos que el segundo miembro b ha sido redondeado a un dgito decimal y que su

    valor redondeado a dos dgitos decimales es b = (2.00, 2.14)t. La solucion de este

    nuevo sistema es:0.10 1.00

    0.11 1.00

    x1x2

    =

    2.00

    2.14

    . Solucion exacta: x =

    14.00.6

    .

    Notemos que un error de menos del 2% en los datos produjo un error del 40% en la

    solucion!!!

    Calculo Numerico IN1012C/IN1052C/MAT221N - 46 - DMFA Universidad Catolica de la Santsima Concepcion

  • Propagacion de errores en los datos (matriz)

    Consideremos de nuevo el mismo ejemplo:0.10 1.00

    0.11 1.00

    x1x2

    =

    2.0

    2.1

    . Solucion exacta: x =

    10.01.0

    .

    Supongamos ahora que la entrada a11 de la matriz es en realidad0.102 en lugar de

    0.10 . La solucion de este nuevo sistema es:0.102 1.00

    0.11 1.00

    x1x2

    =

    2.00

    2.1

    . Solucion exacta: x =

    12.5000.725

    .

    Esta vez un error del 2% en los datos produjo un error de alrededor del 25% en la solucion.

    Otra vez, los errores en los datos se amplificaron, pese a que no se ha usado

    metodo numerico alguno!

    Calculo Numerico IN1012C/IN1052C/MAT221N - 47 - DMFA Universidad Catolica de la Santsima Concepcion

  • Propagacion de errores en el segundo miembro

    Supongamos que se quiere resolver el sistemaAx = b, pero que del segundo miembro

    b, solo se conoce un valor aproximado b = b+ b, sujeto a errores b.

    Sea x la solucion exacta del sistemaAx = b.

    Sea x = x x, el error de la solucion aproximada x. Entonces,

    x

    x(A

    A1) bb

    .

    Calculo Numerico IN1012C/IN1052C/MAT221N - 48 - DMFA Universidad Catolica de la Santsima Concepcion

  • Numero de condicion

    Se define el numero de condicion de la matrizA como

    cond(A) := AA1 .

    Dado que

    x

    x: error relativo de la solucion aproximada x,

    b

    b: error relativo del segundo miembro b,

    x

    x(A

    A1) bb

    = cond(A)b

    b,

    el numero de condicion cond(A) es una cota del factor de propagacion entre el

    error relativo del dato b y el error relativo de la solucion aproximada x.

    Para toda matriz no singularA, cond(A) 1.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 49 - DMFA Universidad Catolica de la Santsima Concepcion

  • Propagacion de errores en los datos de un sistema

    El numero de condicion de la matriz de un sistema tambien rige la propagacion de errores

    en la misma matriz.

    Teorema. SiAx = b y (A+ A)(x+ x) = (b+ b), conA no singular y A

    suficientemente pequeno como para que cond(A)AA < 1, entonces,

    x

    x

    cond(A)

    1 cond(A)AA

    (A

    A+b

    b

    ).

    La capacidad de propagar errores en los datos de un sistemaAx = b depende

    esencialmente de la matrizA y no del segundo miembro b.

    Si cond(A) 1 decimos que el sistema esta bien condicionado.

    Si cond(A) 1 decimos que el sistema esta mal condicionado.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 50 - DMFA Universidad Catolica de la Santsima Concepcion

  • Propagacion de errores de redondeo

    El numero de condicion de la matriz tambien determina la capacidad de propagar los

    errores de redondeo cuando el sistema se resuelve computacionalmente.

    Teorema. Sea x Rn la solucion del sistemaAx = b conA Rnn no singular y

    b Rn.

    Sea x Rn la solucion calculada mediante el metodo de eliminacion gaussiana con

    estrategia de pivoteo parcial, en un computador con constante de precision .

    Sea p =1

    Amax

    1i,j,kn

    {a(k)ij }.Entonces, si el sistema no esta demasiado mal condicionado de manera que

    cond(A) < 1, se tiene la siguiente acotacion del error relativo de la solucion

    calculada:

    x xx

    2n3pcond(A)

    1 cond(A).

    Calculo Numerico IN1012C/IN1052C/MAT221N - 51 - DMFA Universidad Catolica de la Santsima Concepcion

  • Propagacion de errores de redondeo (cont.)

    La cota del teorema nos dice que si el error de la solucion calculada x es muy grande,

    necesariamante se debe a alguna (o a varias) de estas razones:

    1. la dimension del sistema n es muy grande;

    2. la constante de precision del computador no es suficientemente pequena;

    3. el numero de condicion de la matriz cond(A) es demasiado grande.

    Quien es el culpable?

    solucion calculada mala =

    dimension del problema excesivamente grande

    mala precision del computador (pocos dgitos)

    sistema mal condicionado

    Teoremas analogos valen para el metodo de Cholesky, si la matrizA es simetrica y

    definida positiva, y para el algoritmo de Thomas, si la matrizA es tridiagonal y satisface

    las desigualdades |b1| > |c1|, |bn| > |an| y |bi| |ai|+ |ci|, i = 2, . . . , n 1.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 52 - DMFA Universidad Catolica de la Santsima Concepcion

  • Estimacion a posteriori del error de una solucion calculada

    Sea x la solucion exacta del sistemaAx = b y sea x x una solucion calculada.

    Sea e := x x el error de la solucion calculada x.

    Sea r := bAx el residuo de la solucion calculada x.

    Si el residuo fuera nulo (r = 0), la solucion calculada coincidira con la exacta.

    Si no, como se puede estimar el error e? Notemos que

    Ae = A(x x) = AxAx = bAx = r.

    Por lo tanto, podemos proceder del siguiente modo:

    1. Resolvemos computacionalmente

    Ae = r.

    2. La solucion calculada de este sistema e no va a coincidir exactamente con el error e

    pero va a ser una aproximacion del mismo:

    e e = e e.

    3. e es una estimacion del tamano del error e.

    Calculo Numerico IN1012C/IN1052C/MAT221N - 53 - DMFA Universidad Catolica de la Santsima Concepcion