clase sisli 12

Upload: jefferson-perez

Post on 13-Oct-2015

27 views

Category:

Documents


0 download

TRANSCRIPT

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    1/120

    Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales

    Mtodos Matemticos de EspecialidadIngeniera Elctrica

    Sistemas de ecuacioneslineales

    Mtodos directos de solucin

    Jos Luis de la Fuente [email protected]

    [email protected]

    Clase_sisli_12.pdf

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    2/120

    ndice

    Cul es el problema; consideraciones tericas

    Eliminacin de Gauss

    Pivotacin AlgoritmoNmero de operacionesMtodo de Gauss-JordanMatlab y los sistemas de ecuaciones lineales

    Factorizacin LU

    Mtodos explcitos para su obtencin Mtodo de Crout Mtodo de Doolittle

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    3/120

    Matlab y la factorizacin LUSolucin de sistemas modificados

    Refinamiento iterativo

    Sistemas con matrices especiales

    Matrices simtricas Factorizacin LDLT Factorizacin de Cholesky: matrices simtricas definidas positivas Matlab y la factorizacin de Cholesky Matrices simtricas semidefinidas positivas Matrices simtricas indefinidas

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    4/120

    Cul es el problema; consideracionestericas

    Se trata de dar solucin a sistemas de ecuaciones del tipo

    a11x1 C a12x2 C C a1nxn D b1a21x1 C a22x2 C C a2nxn D b2::: ::: ::: :::

    am1x1 C am2x2 C C amnxn D bm;lo que significa determinar los valores de las variables x1; : : : ; xnque hacen que se cumplan todas las igualdades.

    A los nmeros aij se les denomina coeficientes del sistema y a losbi trminos independientes.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    5/120

    Si se introducen las matrices

    A D

    2664a11 a12 a1na21 a22 a2n::: ::: :::

    am1 am2 amn

    3775 ; x D2664x1x2:::

    xn

    3775 y b D2664b1b2:::

    xm

    3775 ;el sistema se puede representar de forma ms compacta por

    Ax D b: En general se supondr que la matriz de coeficientes A 2 Rmn,x 2 Rn y b 2 Rm.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    6/120

    Casos posibles:

    =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

    3a 3b

    2a 2b

    1a 1b

    =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

    3a 3b

    2a 2b

    1a 1b

    =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

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    7/120

    Recordemos algunos resultados de la teora de lgebra lineal.

    Teorema (Compatibilidad de un sistema de ecuaciones lineales)La ecuacin Ax D b admite solucin si y slo si

    rango.Ajb/ D rango.A/:

    Corolario Si Amn tiene rango m, Ax D b siempre tiene solucin.

    Teorema Si x0 es una solucin de Ax D b, el conjunto de solu-ciones de la ecuacin est dado por x0 C ker.A/.

    Corolario Una solucin de Ax D b es nica si y slo si ker.A/ D ;.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    8/120

    Teorema La ecuacin Ax D 0, Amn, n > m, siempre tiene unasolucin no trivial.

    Teorema Si A es una matriz cuadrada de orden n, las siguientescondiciones son equivalentes:

    1. rango.A/ D n.2. ker.A/ D ;.3. Los vectores columna de A son linealmente independientes.

    4. Los vectores fila de A son linealmente independientes.

    5. Existe una matriz de orden n, A1, tal que

    A1A D AA1 D I :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    9/120

    Ejemplo

    Hay que modelizar el sistema de refrigeracin de una tarjetaelectrnica para poder usar un reloj con la mayor frecuencia deoscilacin posible.

    Simplificadamente, adoptamos el modelo fsico y matemtico de lafigura en el que se esquematiza un tiristor o un transistor montadoen una placa disipadora de calor.

    Thermal Model of an IC Package (1)

    Objective: Find the temperature of an integrated circuit (IC)package mounted on a heat spreader. The system of equations is

    obtained from a thermal resistive network model.

    Physical Model: Mathematical Model:

    Tp Tw

    aire

    temperatura Ta

    cQc

    a

    Q3 R3

    p

    a

    w

    a

    Q4 R4 Q5 R5

    Q1 Q2

    R2

    NMM: Solving Systems of Equations page 7

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    10/120

    Si el sistema necesita Qc watios de potencia, suponiendo unmodelo resistivo del flujo de aire entre los nudos del sistema,aplicando los principios de conservacin de la energa, se obtienenlas ecuaciones que siguen.

    Q1 D 1R1.Tc Tp/ Q4 D 1

    R4.Tp Ta/ Qc D Q1CQ3

    Q2 D 1R2.Tp Tw/ Q2 D 1

    R5.Tw Ta/ Q1 D Q2CQ4

    Q3 D 1R3.Tc Ta/

    Se conoce Qc, al igual que Ta. Las resistencias se pueden conocersabiendo el material de las placas y sus propiedades.

    Las incgnitas son entonces Q1, Q2, Q3, Q4, Tc, Tp y Tw.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    11/120

    Como hay siete ecuaciones, reagrupando las ecuaciones para aislarlas incgnitas se llega al siguiente sistema:

    R1Q1 Tc C T9 D 0R2Q2 Tp C Tw D 0

    R3Q3 Tc D TaR4Q4 Tp D TaR5Q2 Tw D TaQ1 CQ3 D Qc

    Q1 Q2 Q4 D 0: En forma matricial, el sistema tiene la siguiente expresin:2666664

    R1 0 0 0 1 1 00 R2 0 0 0 1 10 0 R3 0 1 0 00 0 0 R4 0 1 00 R5 0 0 0 0 11 0 1 0 0 0 0

    1 1 0 1 0 0 0

    37777752666664Q1Q2Q3Q4TcTpTw

    3777775 D2666664

    0

    0

    TaTaTaQc0

    3777775 Los flujos de calor se obtendrn resolviendo este sistema.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    12/120

    En Matlab, si R1 D 100, R2 D 200, R3 D 50, R4 D 100 yR5 D 300; Ta D 50 y Qc D 25, habra que hacer lo que sigue: A=[100 0 0 0 -1 1 0; 0 200 0 0 0 -1 1; 0 0 50 0 -1 0 0;...0 0 0 100 0 -1 0; 0 300 0 0 0 0 -1; 1 0 1 0 0 0 0;1 -1 0 -1 0 0 0]

    A =100 0 0 0 -1 1 00 200 0 0 0 -1 10 0 50 0 -1 0 00 0 0 100 0 -1 00 300 0 0 0 0 -11 0 1 0 0 0 01 -1 0 -1 0 0 0

    b=[0;0;-50;-50;-50;25;0]b =

    00

    -50-50-50250

    >> x=A\bx =

    1.0e+003 *0.005357142857140.000892857142860.019642857142860.004464285714291.032142857142860.496428571428570.31785714285714

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    13/120

    Interpretemos geomtricamente el problema de resolver en dosdimensiones un sistema de ecuaciones lineales cualquiera

    a11x1 C a12x2 D b1a21x1 C a22x2 D b2:

    Cada una de las ecuaciones que componen el sistema representauna recta en el espacio eucldeo de dimensin dos, segn sedescribe en la figura.

    x1

    x2

    a21x1 + a22x2 = b2

    a11x1 + a12x2 = b1

    La resolucin del sistema tiene como objetivo la bsqueda de lascoordenadas del punto donde se cortan esas dos rectas.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    14/120

    En la siguiente figura se pueden ver sistemas donde existendificultades para encontrar ese punto de interseccin, al menosvisualmente.

    Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display.Fig 9.2

    Generalizando a Rn, la resolucin de un sistema de ecuacioneslineales se puede interpretar como la bsqueda de las coordenadasdel(os) punto(s) de interseccin de los hiperplanos asociados a cadauna de las ecuaciones.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    15/120

    Interpretemos geomtricamente el problema en el subespacioIm.A/.

    Si se escribe el sistema de dos ecuaciones con dos incgnitas dela forma

    a11a21

    x1C

    a12a22

    x2 D

    b1b2

    ;

    el problema es el de descomponer linealmente el vector b en losvectores columna que definen las dos columnas de la matriz decoeficientes.

    [b1b2

    ]

    [a12a22

    ][

    a11a21

    ]

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    16/120

    En Rn, el problema se refiere a la bsqueda de la descomposicinlineal de un vector de n componentes segn n vectores dados: losque forman la base de Im.A/ que definen los vectores columna deA.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    17/120

    ndice

    Cul es el problema; consideraciones tericas

    Eliminacin de Gauss

    Matlab y los sistemas de ecuaciones lineales

    Factorizacin LU

    Solucin de sistemas modificados

    Refinamiento iterativo

    Sistemas con matrices especiales

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    18/120

    Mtodos directos: Eliminacin deGauss

    Los mtodos directos resuelven el problema en un nmero deetapas fijo.

    De ellos, el mtodo clsico del lgebra lineal numrica para resolverAx D b, A 2 Rnn, x 2 Rn y b 2 Rn, es el debido a CarlFriedrich Gauss (1777-1855), quien lo aplic por primera vez en1809 con motivo de unos estudios sobre rbitas de ciertos cuerposcelestes.

    Supondremos que la matriz A es de rango completo, por lo tantoinvertible, y que si eventualmente no lo es el procedimiento deberdetectarlo.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    19/120

    La mecnica del mtodo consiste en aplicar al sistemaa11x1 C a12x2 C C a1nxn D b1a21x1 C a22x2 C C a2nxn D b2::: ::: ::: :::

    an1x1 C an2x2 C C annxn D bnn transformaciones lineales que lo conviertan en otro ms fcil deresolver.

    Concretamente, transformarlo en un sistema triangular superiorde la forma

    u11x1 C u12x2 C C u1nxn D b01u22x2 C C u2nxn D b02

    ::: :::

    unnxn D b0n;o, escrito en forma matricial,

    Ux D b0:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    20/120

    Un sistema triangular superior, siempre y cuando se satisfaga que

    ui i 0; i D 1; : : : ; n;es fcilmente resoluble de manera recurrente mediante las frmulas

    xk D 1ukk

    0@b0k nXiDkC1

    ukixi

    1A ; k D 1; : : : ; n:Este proceso se conoce como sustitucin inversa.

    El mtodo de Gauss comporta pues n 1 etapas con:a) Multiplicacin de una cualquiera de las ecuaciones del sistema

    por un nmero distinto de cero.

    b) Sustitucin de una ecuacin cualquiera del sistema por la queresulta de sumarle otra cualquiera.

    c) Permutacin del orden en que aparecen en el sistema dosecuaciones cualesquiera del mismo.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    21/120

    Ejemplo

    Se desea resolver el sistema

    2x1 C x2 C 4x4 D 24x1 2x2 C 3x3 7x4 D 94x1 C x2 2x3 C 8x4 D 2 3x2 12x3 x4 D 2:

    Escrito en forma matricial, Ax D b, los distintos componentes son

    A D

    26642 1 0 4

    4 2 3 74 1 2 80 3 12 1

    3775 ; b D2664

    2

    92

    2

    3775 y x D2664x1x2x3x4

    3775 :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    22/120

    Reconfiguremos inicialmente la matriz A aumentndola unacolumna ms: la que define el trmino independiente b, y llamemosa la nueva matriz resultante cA; es decir,

    cA D Ajb D2664

    2 1 0 4 2

    4 2 3 7 94 1 2 8 20 3 12 1 2

    3775 :Apliquemos ahora la mecnica del mtodo en n D 3 etapas.

    Etapa 1

    Comprobemos que el elemento Oa11 denominado elementopivote no es cero.Si es distinto de cero, eliminemos los coeficientes de la primeracolumna por debajo de ese Oa11.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    23/120

    Para ello, calculamos para cada fila 2; : : : ; n los factores omultiplicadores

    ri D Oai1Oa11; i D 2; : : : ; n:

    A continuacin, restamos de las filas i D 2; : : : ; n, la primeramultiplicada por ri . El resultado es que todos los coeficientesdebajo de la diagonal principal de la columna 1 se anularn.

    Los dems coeficientes de cA debajo de la primera fila se vernafectados como indica esta expresin:

    Oaij Oaij ri Oa1j ; i D 2; : : : ; nI j D 2; : : : ; nC 1: En el ejemplo que venimos manejando, los multiplicadores son

    r2 D Oa21= Oa11 D 4=2 D 2r3 D Oa31= Oa11 D 4=2 D 2r4 D Oa41= Oa11 D 0=2 D 0:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    24/120

    Los coeficientes de la matriz cA que cambian de valor son:en la 2a fila: Oa21 0

    Oa22 Oa22 r2 Oa12 D 2 C 2 1 D 0Oa23 Oa23 r2 Oa13 D 3 C 2 0 D 3Oa24 Oa24 r2 Oa14 D 7 C 2 4 D 1Oa25 Oa25 r2 Oa15 D 9 C 2 2 D 5I

    en la 3a fila: Oa31 0Oa32 Oa32 r3 Oa12 D 1 2 1 D 1Oa33 Oa33 r3 Oa13 D 2 2 0 D 2Oa34 Oa34 r3 Oa14 D 8 2 4 D 0Oa35 Oa35 r3 Oa15 D 2 2 2 D 2I

    en la 4a fila: Oa41 0Oa42 Oa42 r3 Oa12 D 3 0 1 D 3Oa43 Oa43 r4 Oa13 D 12 0 0 D 12Oa44 Oa44 r4 Oa14 D 1 0 4 D 1Oa45 Oa45 r4 Oa15 D 2 0 2 D 2:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    25/120

    La nueva matriz cA1, resultado de transformar cA, es:cA1 D

    26642 1 0 4 2

    0 0 3 1 50 1 2 0 20 3 12 1 2

    3775 : Obsrvese que se hubiese obtenido exactamente el mismo resultadode haber premultiplicado cA por la denominada transformacin deGauss que define la matriz

    L1 D

    26641 0 0 0

    2 1 0 0

    2 0 1 00 0 0 1

    3775 :Matriz triangular inferior unitaria, denominada matriz detransformacin de Gauss.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    26/120

    La matriz L1 tambin se puede escribir de la formaL1 D I eT1 , donde

    D

    26640

    22

    0

    3775 y e1 D26641

    0

    0

    0

    3775 : En efecto,

    L1bA D 264 1 0 0 02 1 0 02 0 1 00 0 0 1

    375264 2 1 0 4 24 2 3 7 94 1 2 8 2

    0 3 12 1 2

    375 D2642 1 0 4 20 0 3 1 50 1 2 0 20 3 12 1 2

    375 :

    En resumen, cA1 D L1cA.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    27/120

    La inversa de la matriz L1, por otro lado, como se puedecomprobar fcilmente, es

    L11 D

    26641 0 0 0

    2 1 0 02 0 1 0

    0 0 0 1

    3775 :Idntica a L1 salvo por lo que respecta al signo de los coeficientesde la primera columna debajo de la diagonal principal.

    Etapa 2

    Hagamos cero los coeficientes debajo de la diagonal principal de la2a columna de cA1.

    Al hacerlo vemos que Oa122 es cero, lo que nos impide proceder comoen la etapa anterior.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    28/120

    Comprobemos en este caso si algn coeficiente de la columna 2 pordebajo de Oa122 es distinto de cero:

    Si no hay ninguno, esta columna es combinacin lineal de laprimera y por tanto la matriz es singular.

    Si hay varios, escojamos el de mayor valor absoluto eintercambiemos la fila de ese elemento con la segunda.

    En el ejemplo, el elemento de mayor valor absoluto debajo de ladiagonal principal en la segunda columna, 3, se encuentra en lafila 4. Intercambiamos esa fila 4 con la 2. Se obtendr

    cA01 D26642 1 0 4 2

    0 3 12 1 20 1 2 0 20 0 3 1 5

    3775 :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    29/120

    Esto mismo se obtiene premultiplicando cA1 por la permutacinP1 D

    26641 0 0 0

    0 0 0 1

    0 0 1 0

    0 1 0 0

    3775 :

    Recapitulemos: la matriz con la que vamos a operar a continuacin,cA01, es: bA01 D P1L1cA: Apliquemos a continuacin a la columna 2 la misma idea que a lacolumna 1 y hagamos cero sus coeficientes 3 a n.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    30/120

    Los nuevos multiplicadores saldrn de la expresin

    ri D Oa10i2

    Oa1022; i D 3; 4:

    Los nuevos valores de los coeficientes de la matriz cA01 por debajode la segunda fila se obtendrn aplicando la expresin

    Oa10ij Oa10ij ri Oa1

    02j ; i D 3; 4I j D 3; : : : ; 5:

    Los valores de los multiplicadores para el ejemplo son

    r3 D Oa1032= Oa1022 D 1=3 yr4 D Oa1042= Oa1022 D 0:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    31/120

    Los nuevos coeficientes de la matriz cA01 resultante:en la 3a fila: Oa1032 0

    Oa1033 Oa1033 r3 Oa1023 D 2 C 13 12 D 2Oa1034 Oa1034 r3 Oa1024 D 0 C 13 1 D 1=3Oa1035 Oa1035 r3 Oa1025 D 2 13 2 D 8=3I

    en la 4a fila: Oa1042 0Oa1043 Oa1043 r4 Oa1023 D 3 0 12 D 3Oa1044 Oa1044 r4 Oa1024 D 1 0 1 D 1Oa1045 Oa1045 r4 Oa1025 D 5 0 2 D 5:

    Obsrvese que, al ser r4 D 0, los clculos para adaptar la cuarta filapodran haberse evitado.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    32/120

    La nueva matriz resultado de estas transformaciones es

    cA2 D26642 1 0 4 2

    0 3 12 1 20 0 2 1=3 8=30 0 3 1 5

    3775 ;matriz que se expresa a partir de la inicial comocA2 D L2P1L1cA;donde L2 D

    26641 0 0 0

    0 1 0 0

    0 1=3 1 00 0 0 1

    3775 :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    33/120

    Etapa 3

    Para conseguir transformar el sistema original en uno triangularsuperior slo resta anular el elemento Oa243.

    El elemento de la diagonal principal Oa233 es distinto de cero, luegoprocedemos a calcular el multiplicador r4:

    r4 D Oa243= Oa233 D 3=2:

    Los nuevos valores de los coeficientes de la matriz cA2 por debajode la tercera fila se obtendrn aplicando la expresin

    Oa2ij Oa2ij ri Oa23j ; i D 4I j D 4; 5:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    34/120

    En concreto, en la cuarta fila:

    Oa243 0Oa244 Oa244 r4 Oa234 D 1 32 13 D 1=2Oa245 Oa245 r4 Oa235 D 5 C 32 83 D 1:

    La nueva matriz resultado de estas transformaciones es

    cA3 D26642 1 0 4 2

    0 3 12 1 20 0 2 1=3 8=30 0 0 1=2 1

    3775 :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    35/120

    A este resultado se ha llegado despus de aplicar a la matriz inicialcA una serie de transformaciones; concretamente:cA3 D L3L2P1L1cA;donde

    L3 D

    26641 0 0 0

    0 1 0 0

    0 0 1 0

    0 0 3=2 1

    3775 : En conclusin, la matriz original que defina el sistema, A, se puedetransformar en la triangular superior U aplicndole las mismastransformaciones que a cA. Es decir,

    U D L3L2P1L1A:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    36/120

    Como a b tambin se le han efectuado las mismas transformacionesllegndose a b0, resolver el sistema de ecuaciones original esequivalente a resolver

    Ux D b0:

    En el ejemplo,26642 1 0 4

    0 3 12 10 0 2 1=3

    0 0 0 1=2

    37752664x1x2x3x4

    3775 D2664

    2

    2

    8=31

    3775 :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    37/120

    La solucin se lleva a cabo mediante sustitucin inversa:

    x4 D 2;sustituyendo en la tercera ecuacin,

    x3 D 8=3 .2/.1=3/2

    D 1;y, a su vez, hacindolo en la segunda,

    x2 D 2 .1/.2/ .12/.1/3 D 4:

    Por ltimo, sustituyendo los valores de las variables ya calculadosen la primera ecuacin se obtiene

    x1 D 2 4.2/ 1.4/2

    D 3:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    38/120

    La solucin de nuestro ejemplo es pues266664x1x2x3x4

    377775 D2666643

    4

    12

    377775 :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    39/120

    Pivotacin

    Veamos qu ocurre si resolvemos con el procedimiento estudiado104 11 1

    A

    x1x2

    x

    D1

    2

    b

    ;

    en una mquina con tres dgitos significativos que efecteredondeos.

    Aplicando la mecnica apuntada, en la primera etapa se obtendrauna nueva matriz A1 y un nuevo vector b1; son:

    A1 D104 10 1 104

    y b1 D

    1

    2 104:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    40/120

    El nmero 1 104 D 9999, la mquina lo redondeara a 104;de la misma forma procedera con 2 104. La solucin del sistemasera

    x2 D 104

    104 D 1

    x1 D 1 x2104

    D 0;muy distinta de la real 0;99989999; 1;00010001T .

    La eleccin del pivote busca que los multiplicadores no sean enmagnitud mucho mayores que 1 con el fin de tener en cuenta loserrores de redondeo y la estabilidad numrica del procedimiento,

    Es por esto por lo que se escoge el de mayor magnitud de entrelos debajo de la diagonal principal.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    41/120

    Para el caso de este ltimo ejemplo, en la primera etapa, en lugarde operar sobre la matriz anterior, como el valor absoluto delelemento a21 es mayor que el del a11, se intercambiara la fila 1 conla 2, obtenindose

    A0 D1 1

    104 1

    y b0 D

    2

    1

    :

    Continuando con el procedimiento normal, despus de la primeraetapa, se llegar a

    A01 D1 1

    0 1 104

    y b01 D

    2

    1 2 104:

    Por redondeos internos, la mquina representara

    A01 D1 1

    0 1

    y b01 D

    2

    1

    :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    42/120

    La solucin de este sistema de ecuaciones serax1x2

    D1

    1

    :

    Solucin mucho mejor que la anterior, pues la real es

    x2 D 0,99980,9999 D 0,99989999x1 D 1,00010001:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - El proceso descrito se denomina pivotacin parcial.

    Su por qu radica en la aritmtica de precisin finita con la quetrabajan todos los ordenadores y en el hecho de que los factores omultiplicadores antes introducidos son inversamente proporcionalesal elemento pivote: si ste es demasiado pequeo puede amplificarlos errores de redondeo a lo largo del proceso de solucin.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    43/120

    Una segunda estrategia de pivotacin es la pivotacin total.

    Consiste en buscar en una etapa i no slo el elemento de mayorvalor absoluto en la columna correspondiente, sino en todo lo quequeda por tratar de la matriz: el mKaxikn; ijn jakj j.

    Partial Pivoting

    To avoid division by zero, swap the row having the zero pivot

    with one of the rows below it.

    0

    *

    Rows completed inforward elimination.

    Rows to search for amore favorable pivotelement.

    Row with zero pivot element

    To minimize the eect of roundo, always choose the row that

    puts the largest pivot element on the diagonal, i.e., nd ip such

    that |aip,i| = max(|ak,i|) for k = i, . . . , n

    NMM: Solving Systems of Equations page 37

    Pivotacin parcial

    Full Pivoting

    0

    *

    Rows completed inforward elimination.

    Columns to search for a morefavorable pivot element.

    Row with zero pivot element

    Rows to search for amore favorable pivotelement.

    *

    NMM: Solving Systems of Equations page 39

    Pivotacin total

    La pivotacin total proporciona la estrategia ptima para minimizarerrores de redondeo.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    44/120

    Desde un punto de vista terico, la eliminacin de Gauss conpivotacin total es, en general, un algoritmo numricamente estable.

    En la prctica, la pivotacin parcial produce buenos resultados yexcelentes prestaciones numricas por lo que rara vez se usa la total.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    45/120

    Algoritmo

    Transformacin de la Matriz Aumentada Ajbfor i D 1 to n 1

    Determinar ndice p 2 fi; i C 1; : : : ; ng tal que ja.p; i/j D mKaxijn ja.j; i/j.Intercambiar filas p e i .for j D i C 1 to n

    D a.j; i/=a.i; i/for k D i C 1 to nC 1

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

    endend Sustitucin Inversa.for j D n to 1

    x.j / [email protected] / nX

    kDjC1a.j; k/ x.k/

    1Aa.j; j /end

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    46/120

    En cdigo Matlab para cualquier sistema.

    function [x]=Gauss(A,b)% Solucin de Ax=b mediante eliminacin de Gaussn=size(A,1); x=zeros(n,1);for i=1:n-1 % Transformacin matriz A

    [p maxk]=max(abs(A(i:n,i)));maxk=maxk+i-1;if i~=maxk

    A([i maxk],:)=A([maxk i],:);b([i maxk]) =b([maxk i]);

    endj=i+1:n;A(j,i)=A(j,i)/A(i,i);A(j,j)=A(j,j)-A(j,i)*A(i,j);b(j)=b(j)-b(i)*A(j,i);

    endfor i=n:-1:1 % Sustitucin inversa

    x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i);end

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    47/120

    De esta codificacin conviene destacar dos elementos mejorables.

    No es realmente necesario intercambiar las filas una vez elegidoel elemento pivote de cada etapa; basta con tener constancia encada momento dnde estn las filas que se intercambian.

    Tal como est estructurado el programa slo se podra resolverun sistema el definido por el b dado y no, como es lo mshabitual, distintos sistemas con la misma matriz A y diversostrminos independientes.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    48/120

    El primero se puede paliar mediante la introduccin de vectorndice, IPIV, de dimensin el nmero de ecuaciones, inicializado ala posicin inicial en el sistema de cada una de las ecuaciones; esdecir,

    IPIV D

    266641

    2

    3:::

    n

    37775 :

    Cuando haya que intercambiar dos filas en un etapa, no se harintercambiando fsicamente los coeficientes de esas dos filas, sinohacindolo en las correspondientes de IPIV.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    49/120

    Si por ejemplo, en la primera etapa hay que utilizar como pivote unelemento de la cuarta fila, una vez efectuado el cambio, el vectorIPIV quedar:

    IPIV D

    26666644

    2

    3

    1:::

    n

    3777775 : Si al final de un proceso de resolucin de un sistema de cincoecuaciones con cinco incgnitas, el vector puntero resultase

    IPIV D

    2666644

    2

    5

    1

    3

    377775 ;

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    50/120

    la matriz A0 que se obtendra no resultara ser estrictamentetriangular superior.Tendra la forma que sigue.

    Para resolver el sistema que define Ax D b habra que aplicar esasmismas manipulaciones de filas al vector b o tenerlo en cuenta.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    51/120

    Para evitar el segundo inconveniente, habra que guardaradecuadamente la informacin que definen los multiplicadoresasociados a cada fila de cada etapa.

    Los i 1 multiplicadores se pueden guardar en los lugares vacoso mejor dicho, que se hacen cero que provocan lastransformaciones que definen: en la etapa i , debajo de ladiagonal principal en la columna i .

    En el ejemplo, con esta idea, al final del proceso:

    A D

    266642 1 0 4

    2 3 12 12 1=3 2 1=3

    0 0 3=2 1=2

    37775 :Los multiplicadores distintos de cero que se han calculado entodo el proceso son -2, 2, 1/3 y 3/2.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    52/120

    Nmero de operaciones del mtodo

    Dos de los factores ms importantes que influyen en lasprestaciones de un algoritmo son:

    Su estabilidad numrica ante los diversos errores.

    La cantidad de tiempo necesaria para completar los clculos queconlleva.

    Ambos factores dependen del nmero de operaciones aritmticasnecesarias para la aplicacin del algoritmo.

    Los tiempos necesarios para realizar en un ordenador lamultiplicacin y la divisin de dos nmeros son aproximadamenteiguales y considerablemente mayores, en trminos relativos, que losrequeridos para realizar la suma o diferencia, que tambin son muysemejantes entre s.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    53/120

    La eliminacin de Gauss para resolver un sistema de ecuacioneslineales, en la primera etapa, realiza las operaciones que serepresentan simblicamente en el esquema que sigue.

    ::: ::: ::: ::: :::

    !

    0 2 2 2 2::: ::: ::: ::: :::

    0 2 2 2 20 2 2 2 2

    El smbolo 2 designa los coeficientes de la matriz que se venafectados en esa etapa y que, en principio, son distintos de cero.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    54/120

    Si en la etapa i se est transformando una matriz n n, lasoperaciones que en ella se realizan son:

    n i divisiones para el clculo de los multiplica-dores;

    .n i/.n i C 1/ multiplicaciones y restas para modificar loscoeficientes de la matriz por debajo de lafila i que no estn en la propia columna i .

    En cada etapa se efectan,

    .n i/C .n i/.n i C 1/ D .n i/.n i C 2/multiplicaciones y divisiones y

    .n i/.n i C 1/sumas y restas.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    55/120

    En n 1 etapas de que consta el proceso, se harnn1XiD1.n i/.n i C 2/ D .n2 C 2n/

    n1XiD1

    1 2.nC 1/n1XiD1

    i Cn1XiD1

    i2

    D .n2 C 2n/.n 1/ 2.nC 1/.n 1/n2

    C .n 1/n.2n 1/6

    D 2n3 C 3n2 5n

    6

    multiplicaciones y divisiones yn1XiD1.n i/.n i C 1/ D .n2 C n/

    n1XiD1

    1 .2nC 1/n1XiD1

    i Cn1XiD1

    i2

    D .n2 C n/.n 1/ .2nC 1/.n 1/n2

    C .n 1/n.2n 1/6

    D n3 n3

    sumas y restas.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    56/120

    El comportamiento de estos valores para n grande tiende a1

    3n3.

    El proceso de sustitucin inversa requiere .n i/ multiplicaciones y.n i 1/ sumas, para cada trmino del sumatorio, y una resta yuna divisin.

    El nmero total de operaciones de todo el proceso es

    1Cn1XiD1..n i/C 1/ D n

    2C n2

    multiplicaciones y divisiones yn1XiD1..n i 1/C 1/ D n

    2 n2

    sumas y restas.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    57/120

    Contando la totalidad de la transformacin de la matriz del sistemay la sustitucin inversa, la eliminacin de Gauss requiere

    2n3C 3n2 5n6

    C n2C n2D n

    3C 2n2 n3

    multiplicaciones y divisiones y

    n3 n3C n

    2 n2D 2n

    3C 3n2 5n6

    sumas y restas.

    Para valores de n, estas expresiones tienden a

    1

    3n3 O.n3=3/

    lo que refleja la importante magnitud del nmero de operaciones.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    58/120

    Aunque la cantidad n3=3 puede parecer muy grande, recordemoslas frmulas de Cramer para la solucin de sistemas:

    xi D det.B i/det.A/

    ; donde B i D

    2664a11 a1i1 b1 a1iC1 a1na21 a2i1 b2 a2iC1 a2n::: ::: ::: ::: :::

    an1 ani1 bn aniC1 ann

    3775 :Mediante estas frmulas se requieren:8

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    59/120

    Mtodo de Gauss-Jordan

    Es una extensin natural de la eliminacin de Gauss por si se deseaobtener la matriz inversa. Consiste en eliminar de cada columna dela matriz de coeficientes del sistema no slo los coeficientes nonulos que estn debajo de la diagonal sino tambin los de arriba.

    Una etapa i de la eliminacin de Gauss estaba caracterizada por lamatriz

    Li D I ieTi ;donde

    i D

    2666640:::

    aiiC1 i=aii i

    :::

    aini=aii i

    377775 fila i C 1 y ei D2666640:::

    1:::

    0

    377775 fila i :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    60/120

    En la etapa i de este mtodo, la matriz de transformacin deGauss-Jordan es la dada por

    T i D I ieTi ;donde

    i D

    266664ai1i=a

    ii i

    :::

    1=aii i:::

    aini=aii i

    377775 fila i y ei D2666640:::

    1:::

    0

    377775 fila i : Si se tiene en cuenta que A0 D A y An D I , se tendr que

    T n1 T 2T 1A D I ;por lo que el mtodo obtiene directamente la matriz inversa:

    A1 D T n1 T 2T 1:

    Las multiplicaciones y divisiones, y sumas y restas, son O.n3=2/ .

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    61/120

    ndice

    Cul es el problema; consideraciones tericas

    Eliminacin de Gauss

    Matlab y los sistemas de ecuaciones lineales

    Factorizacin LU

    Solucin de sistemas modificados

    Refinamiento iterativo

    Sistemas con matrices especiales

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    62/120

    Matlab y los sistemas de ecuacioneslineales

    Para resolver un sistema Ax D b con Matlab slo hay que hacer

    x D Anb Con el ejemplo que estamos manejando:

    >> A=[2 1 0 4;0 -3 -12 -1;0 -1 -2 0;0 0 3 1];>> b=[2;2;-2;-5];>> A\bans =

    3.00004.0000

    -1.0000-2.0000

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    63/120

    Utilizando el script Gauss que hemos presentado:

    >> Gauss(A,b)ans =

    3.00004.0000-1.0000-2.0000

    Utilizando otra utilidad de Matlab muy interesante:

    >> linsolve(A,b)ans =

    3.00004.0000-1.0000-2.0000

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    64/120

    ndice

    Cul es el problema; consideraciones tericas

    Eliminacin de Gauss

    Matlab y los sistemas de ecuaciones lineales

    Factorizacin LU

    Solucin de sistemas modificados

    Refinamiento iterativo

    Sistemas con matrices especiales

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    65/120

    Factorizacin LU

    El clculo de A D LU se conoce como factorizacin odescomposicin LU .

    Para resolver un sistema de ecuaciones lineales Ax D b, siA D LU , el problema se convierte en el de resolver LUx D ba travs de dos sistemas de ecuaciones triangulares:

    Ux D y y Ly D b:Esto es muy til cuando se requiere resolver sistemas deecuaciones en los que la matriz A es siempre la misma y slocambia es el trmino independiente.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    66/120

    La factorizacin LU y la eliminacin de Gauss

    Una forma indirecta de conseguir esta factorizacin LU es lapropia eliminacin de Gauss.

    En efecto, mediante unas permutaciones y unastransformaciones definidas por matrices elementales triangularesinferiores el mtodo consegua:

    Ln1Pn1 L1P1A D U :

    De este proceso, haciendoP D Pn1 P1 y

    L D P.Ln1Pn1 L2P2L1P1/1;se puede comprobar que se obtiene la factorizacin

    PA D LU :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    67/120

    Existencia y unicidad de la factorizacin LU

    Teorema Sea A una matriz cuadrada regular de orden n. Exis-te una matriz de permutacin P y dos matrices, una triangularinferior y otra triangular superior, L y U , respectivamente, talesque

    PA D LU :La matriz L tiene todos los coeficientes de la diagonal principaligual a 1 (triangular inferior unitaria).

    Lema La matriz A admite una factorizacin LU si y slo si secumple que det.Ak/ 0; k D 1; : : : ; n:

    Teorema Si una matriz regular A de orden n admite unafactorizacin A D LU , donde L es una matriz triangular infe-rior de coeficientes diagonales 1 y U una triangular superior, esafactorizacin es nica.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    68/120

    Mtodos numricos directos para laobtencin de factorizaciones LU

    Mtodo de Crout. Versin LU 1

    Supongamos que se desea obtener la factorizacin en la formaLU 1, donde U 1 designa una matriz triangular superior en la quetodos los coeficientes de la diagonal principal son 1.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    69/120

    Si la matriz A es de orden 3 y se quiere factorizarla de la forma24a11 a12 a13a21 a22 a23a31 a32 a33

    35 D 24l11 0 0l21 l22 0l31 l32 l33

    35241 u12 u130 1 u230 0 1

    35 ;usando las reglas de multiplicacin de matrices se obtendr:1a col. de L: l11 D a11

    l21 D a21l31 D a31I

    2a fila de U : l11u12 D a12l11u13 D a13

    ! u1j D a1j=l11; j D 2; 3I

    2a col. de L: l21u12 C l22 D a22l31u12 C l32 D a32

    ! li2 D ai2 li1u12; i D 2; 3I

    2a fila de U : l21u13 C l22u23 D a23 ! u2j D .a2j l21u1j /=l22; j D 3I

    3a col. de L: l31u13 C l32u23 C l33 D a33 ! li3 D ai3 i1XjD1

    lijuj i ; i D 3:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    70/120

    En general, las frmulas de recurrencia que se pueden deducir deeste proceso, denominado factorizacin LU de Crout, son:

    li1 D ai1; i D 1; 2; : : : ; n;u1j D a1j=l11; j > 1;

    lik D aik k1XpD1

    lipupk; i k;

    ukj D0@akj k1X

    pD1lkpupj

    1Alkk; j > k:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    71/120

    Plasmadas en el algoritmo de Crout para factorizar una matrizregular Ann en la forma LU 1 resulta el de la tabla.

    for k D 1 to nfor i D k to n

    l.i; k/ a.i; k/ k1XpD1

    l.i; p/u.p; k/

    endfor i D k C 1 to n

    u.k; i/ [email protected]; i/ k1X

    pD1l.k; p/u.p; i/

    1Al.k; k/end

    end

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    72/120

    La versin Matlab de este algoritmo es la que sigue.

    function [L U]=LUCrout(a)% Factorizacin LU por Croutn=size(a,1); L=zeros(n); U=eye(n);for k=1:n

    for i=k:nL(i,k)=a(i,k)-L(i,1:k-1)*U(1:k-1,k);

    endfor i=k+1:n

    U(k,i)=(a(k,i)-L(k,1:k-1)*U(1:k-1,i))/L(k,k);end

    end

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    73/120

    Ahora bien, como apuntbamos en la eliminacin de Gauss, sepuede aprovechar la estructura de la matriz A para guardar en ellalas nuevas matrices L y U . El mismo algoritmo quedara as.

    function [L U]=Crout_1(A)% Factorizacin LU por Croutn=size(A,1);for k=1:n

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

    endL=tril(A,0); U=triu(A,1)+eye(n,n);

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    74/120

    Factorizar "10 10 20

    20 25 40

    30 50 61

    #da como resultado

    LU D241020 530 20 1

    35241 1 21 01

    35 :>> A=[10 10 20;20 25 40;30 50 61];>> [L,U]=Crout_1(A)L =

    10 0 020 5 030 20 1

    U =1 1 20 1 00 0 1

    >>

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    75/120

    Ejemplo

    Se desea factorizar la matriz

    A D24 0,001 2,000 3,000-1,000 3,712 4,623-2,000 1,072 5,643

    35en una mquina u ordenador con cuatro dgitos significativos.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    76/120

    Las operaciones que se realizan en la mquina son:

    l11 D 0,001Il21 D -1,000Il31 D -2,000Iu12 D f l

    2,0000,001

    D 2000I

    u13 D f l3,0000,001

    D 3000I

    l22 D f l 3,712C .1,000/.2000/ D 2004Il32 D f l 1,072C .2,000/.2000/ D 4001Iu23 D f l

    4,623C .1,000/.3000/

    2004

    D 1,500 y

    l33 D f l5,643C (2,000)(3,000) (4,001)(1,500) D 5,642:

    Obsrvese que el clculo de l33 conlleva la prdida de tres dgitospor redondeo: el valor que debera obtenerse es 5,922.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    77/120

    Pivotacin

    El ejemplo pone de manifiesto que, aunque se sepa que una matrizno es singular y que su factorizacin LU existe tericamente, loserrores de redondeo que se pueden producir al trabajar en unamquina pueden dar al traste con el resultado.

    Es aconsejable realizar pivotacin. Al final de un proceso conpivotacin se obtendra

    PA D LUes decir, no la factorizacin LU de la matriz original sino de PA.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    78/120

    El algoritmo de Crout con pivotacin parcial es el de la tablafor k D 1 to n

    for i D k to n

    l.i; k/ a.i; k/ k1XpD1

    l.i; p/u.p; k/

    endDeterminar ndice p 2 fk; k C 1; : : : ; ng tal que ja.p; i/j D mKaxijn ja.j; i/j.Intercambiar filas p y k.for i D k C 1 to n

    u.k; i/ [email protected]; i/ k1X

    pD1l.k; p/u.p; i/

    1Al.k; k/end

    end

    function [L U p]=CroutP(a)% Factorizacin LU por Crout con pivotacinn=size(a,1); p=1:n;for k=1:n

    i=k:n; a(i,k)=a(i,k)-a(i,1:k-1)*a(1:k-1,k);[r,m]=max(abs(a(k:n,k))); m=m+k-1;if a(m,k)==0, continue, endif k~=m, a([k m],:)=a([m k],:); p([k m])=p([m k]); endi=k+1:n; a(k,i)=(a(k,i)-a(k,1:k-1)*a(1:k-1,i))/a(k,k);

    endL=tril(a,0); U=triu(a,1)+eye(n,n);

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    79/120

    Si se factoriza la matriz 2410 10 2020 25 4030 50 61

    35 ;al final de este proceso, el vector IPVT./, que indica laspivotaciones realizadas, es 3, 2, 1T .

    >> A=[10 10 20;20 25 40;30 50 61];>> [L U p]=CroutP(A)L =

    30.0000 0 020.0000 -8.3333 010.0000 -6.6667 0.2000

    U =1.0000 1.6667 2.0333

    0 1.0000 0.0800p =

    3 2 1>>

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    80/120

    La matriz PA realmente factorizada es2430 50 6120 25 4010 10 20

    35 D 243020 8;333310 6;6667 0; 2

    35241 1;6667 2;03331 0;08001

    35 : El algoritmo de Crout requiere O.n3=3/ multiplicaciones/divisionesy sumas/restas para la factorizacin de la matriz.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    81/120

    Mtodo de Crout. Versin L1U Si se quiere conseguir la factorizacin L1U de una matriz 3 3,24a11 a12 a13a21 a22 a23

    a31 a32 a33

    35 D 24 1 0 0l21 1 0l31 l32 1

    3524u11 u12 u130 u22 u230 0 u33

    35 ;operando:1a fila de U : u11 D a11

    u12 D a12u13 D a13I

    1a col. de L: l21u11 D a21l31u11 D a31

    ! li1 D ai1=u11; i D 2; 3I

    2a fila de U : l21u12 C u22 D a22l21u13 C u32 D a23

    ! u2j D a2j l21u1j ; j D 2; 3I

    2a col. de L: l31u12 C l32u22 D a32 ! li2 D .ai2 li1u12/=u22; i D 3I

    3a fila de U : l31u13 C l32u23 C u33 D a33 ! u3j D a3j j1XiD1

    l3iuij ; j D 3:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    82/120

    Las frmulas de recurrencia que se pueden deducir de este procesoson:

    u1j D a1j ; j D 1; 2; : : : ; n;li1 D ai1=u11; j > 1;ukj D akj

    k1XpD1

    lkpupj ; j k;

    lik D0@aik k1X

    pD1lipupk

    1Aukk; i > k:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    83/120

    El algoritmo de Crout para factorizar una matriz regular Ann en laforma L1U es el que sigue.

    for k D 1 to nfor j D k to n

    u.k; j / a.k; j / k1XpD1

    l.k; p/u.p; j /

    endfor i D k C 1 to n

    l.i; k/ [email protected]; k/ k1X

    pD1l.i; p/u.p; k/

    1Au.k; k/end

    end

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    84/120

    Su implementacin en Matlab:

    function [L,U]=Croutl1u(a)% Factorizacin L1U por Croutn=size(a,1);for k=1:n-1

    i=k+1:n;a(i,k)=a(i,k)/a(k,k);a(i,i)=a(i,i)-a(i,k)*a(k,i);

    endL=tril(a,-1)+eye(n,n); U=triu(a);

    El resultado con la matriz precedente es:

    >> [L U]=Croutl1u(A)L =

    1 0 02 1 03 4 1

    U =10 10 200 5 00 0 1

    >> L*Uans =

    10 10 2020 25 4030 50 61

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    85/120

    La versin del algoritmo con pivotacin en Matlab es esta.

    function [L U p]=CroutP1(a)% Factorizacin L1U por Crout con pivotacinn=size(a,1); p=1:n;for k=1:n-1

    [r,m]=max(abs(a(k:n,k)));m=m+k-1;if a(m,k)==0, continue, endif k~=m, a([k m],:)=a([m k],:); p([k m])=p([m k]); endi=k+1:n; a(i,k)=a(i,k)/a(k,k);j=k+1:n; a(i,j)=a(i,j)-a(i,k)*a(k,j);

    endL=tril(a,-1)+eye(n,n); U=triu(a);

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    86/120

    El resultado con este script para el ltimo ejemplo:

    >> [L U p]=CroutP1(A)L =

    1.0000 0 00.6667 1.0000 00.3333 0.8000 1.0000

    U =30.0000 50.0000 61.0000

    0 -8.3333 -0.66670 0 0.2000

    p =3 2 1

    >> L(p,:)*Uans =

    10 10 2020 25 4030 50 61

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    87/120

    Con los recursos de Matlab:

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

    1.0000 0 00.6667 1.0000 00.3333 0.8000 1.0000

    U =30.0000 50.0000 61.0000

    0 -8.3333 -0.66670 0 0.2000

    P =0 0 10 1 01 0 0

    >> P*L*Uans =

    10 10 2020 25 4030 50 61

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    88/120

    Obtencin de la matriz inversa a partir de lafactorizacin LU

    Si se designa por X la matriz inversa de A 2 Rnn, los n vectorescolumna de X son los vectores solucin de los sistemas Axi D ei ,i D 1; : : : ; n.

    Si suponemos que tenemos la factorizacin PA D LU , donde Pes una matriz de permutacin, para obtener la inversa de A hayque resolver los 2n sistemas siguientes:

    Ly i D Pei ; Uxi D y i ; i D 1; : : : ; n:Es decir 2n sistemas de ecuaciones lineales con matricestriangulares en los que slo cambian los trminos independientes.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    89/120

    Matlab y la factorizacin LU

    Para resolver Ax D b con Matlab, usando la factorizacin LUde A, se utiliza [L U P]=lu(A) y luego se obtiene la solucin delsistema haciendo

    x=U\(L\(P*b))

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    90/120

    Apliquemos esta idea a uno de los ejemplos que manejamos:

    >> A=[2 1 0 4;0 -3 -12 -1;0 -1 -2 0;0 0 3 1];>> b=[2;2;-2;-5];>> [L U P]=lu(A)L =

    1.0000 0 0 00 1.0000 0 00 0 1.0000 00 0.3333 0.6667 1.0000

    U =2.0000 1.0000 0 4.0000

    0 -3.0000 -12.0000 -1.00000 0 3.0000 1.00000 0 0 -0.3333

    P =1 0 0 00 1 0 00 0 0 10 0 1 0

    >> x=U\(L\(P*b))x =

    3.00004.0000-1.0000-2.0000

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    91/120

    Otra cuestin a tener muy en cuenta:

    % Ensayo tiempos LU: Tiemp_LU.m

    A=rand(200,200);

    ticfor i=1:1000

    b=rand(200,1);x=A\b;

    endtoc

    tic[L U P] = lu(A);for i=1:1000

    b=rand(200,1);x=U\(L\(P*b));

    endtoc

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    92/120

    ndice

    Cul es el problema; consideraciones tericas

    Eliminacin de Gauss

    Matlab y los sistemas de ecuaciones lineales

    Factorizacin LU

    Solucin de sistemas modificados

    Refinamiento iterativo

    Sistemas con matrices especiales

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    93/120

    Solucin de sistemas modificados

    Si en Ax D b se modifica el vector b pero no A, no es necesariorehacer la factorizacin LU para resolver el nuevo sistema.

    Si se modifica ligeramente la matriz A, por ejemplo el coeficiente(j; k), con lo que A D A ejeTk , puede que no sea necesariotampoco recalcular la factorizacin en su totalidad.

    La frmula de Sherman-Morrison-Woodbury proporciona lainversa de una matriz en trminos de los vectores de unamodificacin a la misma de rango uno del tipo uvT :

    A uvT1 D

    A1CA1u1 vTA1u

    1vTA1:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    94/120

    Para resolver el nuevo sistema .A uvT /x D b, usando lafrmula, se obtendra

    x DA uvT

    1b

    D A1bCA1u1 vTA1u

    1vTA1b;

    operacin que podra hacerse por partes:

    1. Resolviendo Az D u, obteniendo z.2. Resolviendo Ay D b, obteniendo y .3. Calculando x D y C ..vTy/=.1 vT z//z.

    Como A ya est factorizada, este procedimiento requiere solosustituciones inversas y productos interiores; es decir O.n2/operaciones frente a las O.n3=3/ de la factorizacin.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    95/120

    Ejemplo

    Consideremos la matriz

    A D24 2 4 24 9 32 3 7

    35 D 24 1 0 02 1 01 1 1

    35L

    242 4 20 1 10 0 4

    35U

    a la que se le efecta una modificacin consistente en cambiar elcoeficiente (3,2) de -3 a -1.

    En este caso

    u D24 002

    35 y v D 24010

    35 ;con lo que la matriz resultante es A uvT .

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    96/120

    Con la factorizacin LU de A, se resuelve Az D u y Ay D b,dando

    z D243=21=21=2

    35 y y D 24122

    35 : Por ltimo,

    x D y C vTy

    1 vT zz D2412

    2

    35C 21 1=2

    243=21=21=2

    35 D 24740

    35 :

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    97/120

    ndice

    Cul es el problema; consideraciones tericas

    Eliminacin de Gauss

    Matlab y los sistemas de ecuaciones lineales

    Factorizacin LU

    Solucin de sistemas modificados

    Refinamiento iterativo

    Sistemas con matrices especiales

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    98/120

    Refinamiento iterativo

    Supongamos que se tiene una solucin aproximada, x0, del sistemade ecuaciones lineales Ax D b, y sea y una correccin o mejora dela misma tal que la solucin exacta, x, cumple que

    x D x0C y:Sustituyendo esta expresin en Ax D b se tiene que

    Ay D b Ax0 D r0;donde r0 es el vector de residuos.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    99/120

    Si este vector no cumple unos requisitos de precisin que nosinteresen, se pude resolver el sistema Ay D r0 y hacer

    x1 D x0C y;lo que har que la solucin se aproxime ms a x que x0.

    Si es necesario, se calcula un nuevo vector de residuos,r1 D b Ax1 y se continua el proceso hasta que la solucin seaproxime tanto como se quiera a la esperada.

    El vector de residuos debe calcularse con ms precisin que lausada para calcular la solucin inicial.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    100/120

    Este script de Matlab lleva a cabo el proceso a mano.

    % Script_Ref.m - Script de Refinamiento Iterativo

    n=6;format shortA=hilb(n); % Matriz de Hilbert (muy mal condicionada)b=A*ones(n,1); % Elegimos trmino independiente para sol. x=1.pausex=A\b % Solucin, evidentemente, =1

    B=A; % En B est A perturbada un poquitoB(6,1)=B(6,1)+1.e-06;pausex1=B\b % Veamos la nueva solucin; difiere bastantepause

    xex=ones(n,1); % Calculemos cuntonorm(xex-x1,2) % Como magnitud calculemos la norma 2 de la desviaci.norm(xex-x,2)pause

    res=b-A*x1; % Hagamos una iteracin del Refinamiento iterativox1=x1+B\resnorm(xex-x1,2)pause

    res=b-A*x1; % Hagamos otra iteracin del Refinamiento iterativoformat longx1=x1+B\resnorm(xex-x1,2)pause

    res=b-A*x1; % Hagamos otra iteracin del Refinamiento iterativox1=x1+B\resnorm(xex-x1,2)

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    101/120

    ndice

    Cul es el problema; consideraciones tericas

    Eliminacin de Gauss

    Matlab y los sistemas de ecuaciones lineales

    Factorizacin LU

    Solucin de sistemas modificados

    Refinamiento iterativo

    Sistemas con matrices especiales

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    102/120

    Sistemas con matrices especiales

    Matrices simtricas

    Factorizacin LDLT

    Lema Si todas las submatrices principales de una matriz A 2 Rnnson regulares, existen dos matrices triangulares inferiores unitariasnicas, L y M , y otra diagonal tambin nica, D D diag.d1; : : : ; dn/,tales que A D LDM T .

    Teorema Si A admite una factorizacin LDM T y es simtrica,L DM .

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    103/120

    Para derivar unas frmulas de recurrencia, a partir de un ejemplosimblico de orden 3,24a11 a12 a13a21 a22 a23

    a31 a32 a33

    35 D 24 1 0 0l21 1 0l31 l32 1

    3524d11 d22d33

    35241 l21 l310 1 l320 0 1

    35 ;operando de acuerdo con las reglas de multiplicacin matricial seobtiene que

    a11 D d11a21 D l21d11a31 D l31d11a22 D l221d11C d22a32 D l31l21d11C l32d22a33 D l231d11C l232d22C d33:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    104/120

    Generalizando se obtiene el algoritmo de la tabla.

    for k D 1 to nd.k/ a.k; k/

    k1XpD1

    a2.k; p/d.p/

    if d.k/ D 0 then stopfor i D k C 1 to n

    a.i; k/ [email protected]; k/ k1X

    pD1a.i; p/a.k; p/d.p/

    1Ad.k/end

    end

    Requiere O.n3=6/ multiplicaciones y divisiones y sumas y restas.

    Si no se efectan pivotaciones, el procedimiento numrico puedefallar por la posible presencia de coeficientes pivote muy pequeos,o por la acumulacin de errores de redondeo o de cancelacinimportantes.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    105/120

    Factorizacin de Cholesky

    Una matriz es definida positiva si para todo x 0 se cumple quexTAx > 0:

    Todos sus valores propios son positivos.

    Las matrices simtricas definidas positivas admiten unadescomposicin de la forma

    A D GTG ;donde G es una matriz triangular superior.

    Esta descomposicin fue formulada por Andr Louis Cholesky(1875-1918), comandante del ejrcito francs de la poca, durantela ocupacin internacional de Creta en 190609.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    106/120

    Las matrices simtricas definidas positivas se presentanhabitualmente en:

    Problemas relacionados con el anlisis de sistemas elctricos degeneracin y transporte de energa.

    Ajuste de funciones por mnimos cuadrados.

    Anlisis de estructuras mecnicas.

    En muchos procedimientos de optimizacin lineal y no lineal.

    En general, en todas aquellas aplicaciones donde al modelizar unsistema, la expresin xTAx mide la energa presente, o disponible,o cualquier otra magnitud fsica que slo admite cantidadespositivas en un entorno determinado.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    107/120

    Lema Las submatrices principales de una matriz definida positivason definidas positivas.

    Teorema Si A es una matriz definida positiva de orden n, tieneuna descomposicin de la forma LDM T , siendo todos los coefi-cientes de la matriz diagonal D positivos.

    Teorema Si A es una matriz simtrica definida positiva de ordenn, existe una nica matriz triangular superior, G , con todos suscoeficientes diagonales positivos, tal que A D G TG .

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    108/120

    Procedamos a simular el algoritmo con la descomposicin simblicade una matriz 3 3.

    Si se desea obtener la factorizacin24a11 a12 a13a12 a22 a23a13 a23 a33

    35 D 24g11 0 0g12 g22 0g13 g23 g33

    3524g11 g12 g130 g22 g230 0 g33

    35 ;operando de acuerdo con las reglas de multiplicacin matricial seobtiene que:

    a11 D g211a12 D g11g12a13 D g11g13a22 D g212C g222a23 D g12g13C g22g23a33 D g213C g223C g233:

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    109/120

    Generalizando este proceso se obtiene el algoritmo que describe latabla.

    for i D 1 to n

    g.i; i/ vuuuta.i; i/ i1X

    kD1g2.k; i/

    for j D i C 1 to n

    g.i; j /

    [email protected]; j / i1ikD1

    g.k; i/g.k; j /

    1CAg.i; i/end

    end

    El algoritmo requiere O.n3=6/ operaciones demultiplicacin+divisin y de suma+resta.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    110/120

    Este algoritmo en Matlab sera como sigue.

    function G=Chols_1(A)% Factorizacin de Choleskyn=size(A,1);for i=1:n, j=i+1:n;

    A(i,i)=sqrt(A(i,i));A(i,j)=A(i,j)/A(i,i);A(j,j)=A(j,j)-A(i,j)*A(i,j);

    endG=triu(A);

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    111/120

    La factorizacin de 26645 1 2 01 2 0 0

    2 0 4 10 0 1 3

    3775 W>> A=[5 1 -2 0;1 2 0 0;-2 0 4 1;0 0 1 3];>> G=Chols_1(A)G =

    2.2361 0.4472 -0.8944 00 1.3416 0.2981 00 0 1.7638 0.56690 0 0 1.6366

    >> G=chol(A)G =

    2.2361 0.4472 -0.8944 00 1.3416 0.2981 00 0 1.7638 0.56690 0 0 1.6366

    >>

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    112/120

    Matlab y la factorizacin de Cholesky

    Para resolver un sistema lineal de ecuaciones Ax D b conMatlab utilizando la factorizacin de Cholesky hay que utilizar lafuncin G=chol(A).

    La solucin del sistema correspondiente se puede obtener, teniendoen cuenta que se realiza A D G TG , haciendo

    x=G\(G\b)

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    113/120

    Para utilizar esta operacin con un ejemplo de los que estamosmanejando, habra que hacer algo parecido a lo que sigue.

    >> A=[5 1 -2 0;1 2 0 0;-2 0 4 1;0 0 1 3];>> b=[1;5;14;15];>> G=chol(A)G =

    2.2361 0.4472 -0.8944 00 1.3416 0.2981 00 0 1.7638 0.56690 0 0 1.6366

    >> x=G\(G\b)x =

    1.00002.00003.00004.0000

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    114/120

    Matrices simtricas semidefinidas positivas

    Una matriz A se dice semidefinida positiva, si para todo x 0,xTAx 0.

    Teorema Si A 2 Rnn es simtrica semidefinida positiva:jaij j .ai i C ajj /=2jaij j pai iajj .i j /

    mKaxi;jjaij j D mKax

    iai i

    ai i D 0 ) aij D aj i D 0; j D 1; : : : ; n: Si el algoritmo de Cholesky se aplica a una matriz semidefinidapositiva, y en un paso akk es cero, entonces ajk D 0; j D k; : : : n,por lo que no habra que hacer nada ms en la columna k.

    En la prctica, los errores de redondeo internos impiden los cerosexactos por lo que se recurre a la pivotacin.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    115/120

    Pivotacin

    Para mantener la simetra, las pivotaciones han de ser simtricas: sise intercambian dos filas, tambin hay que intercambiar lascolumnas simtricas: A PAPT .

    La pivotacin en Cholesky se lleva adelante as:

    En cada etapa k del proceso se determina el elemento demayor valor de la diagonal principal, mKaxkjn ajj :

    Si no es cero, se intercambian las filas/columnas p y k,siempre y cuando k p;si es cero, el resto de la matriz a factorizar sera nula y nose hara nada ms.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    116/120

    Este es el algoritmo de Cholesky con pivotacin para matricessemidefinidas positivas.

    for i D 1 to nDeterminar ndice p 2 fi; i C 1; ng tal que ja.p; p/j D mKaxijnfja.j; j /jgif a.p; p/ > 0Intercambiar filas/columnas p y i .

    g.i; i/ sa.i; i/

    i1XkD1

    g2.k; i/

    for j D i C 1 to n

    g.i; j /

    [email protected]; j / i1ikD1

    g.k; i/g.k; j /

    1CCAg.i; i/end

    endend

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    117/120

    Matrices simtricas indefinidas

    Una matriz A se dice indefinida si para algn vector x 0 laforma cuadrtica xTAx es positiva y para otros negativa.

    Para factorizar este tipo de matrices se recurre a descomposicionesde pivotacin diagonal en bloques de la forma

    PAPT D LBLT

    donde la matriz L es triangular inferior unitaria y la matriz B estridiagonal, o diagonal en bloques, con bloques de dimensin 1 1 2 2, bidiagonal en este caso.

    Casi todos los cdigos modernos utilizan alguna variedad de matrizbidiagonal B en bloques, aunque todava se usan mucho rutinas queimplementan algn mtodo en el que esa matriz es tridiagonal (T ).

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    118/120

    Los mtodos ms conocidos se citan a continuacin.

    Mtodo Estrategia Operaciones

    Parlett y Reid PAPT D LTLT O.n3=3/Aasen PAPT D LTLT O.n3=6/Bunch y Parlett PAPT D LBLT O.n3=6/CO.n3=6/ compara.Bunch y Kaufman PAPT D LBLT O.n3=6/C .n2 1/ compara.

    El del Bunch y Kaufman (1977), en alguna de sus variantes, es elms utilizado y el que emplean los cdigos profesionales parafactorizar matrices simtricas.

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    119/120

    function [L D P rho] = diagpiv(A)%DIAGPIV Diagonal pivoting factorization with pivoting of a symetric A.% P*A*P=L*D*L; L is triangular and D a block diagonal D 1x1 or 2x2.% Rho is the growth factor. This routine does not exploit symmetry.% Bunch and Kaufman (1977), Some stable methods for calculating inertia% and solving symmetric linear systems, Math. Comp. 31(137):163-179.

    if norm(triu(A,1)-tril(A,-1),1), error(Matrix must be symmetric.), end

    n = max(size(A)); k = 1; D = eye(n); L = eye(n); pp = 1:n;normA = norm(A(:),inf); rho = normA; alpha = (1 + sqrt(17))/8;

    while k < n[lambda r] = max(abs(A(k+1:n,k)));r = r(1) + k;if lambda > 0

    swap = 0;if abs(A(k,k)) >= alpha*lambda

    s = 1;else

    temp = A(k:n,r); temp(r-k+1) = 0; sigma = norm(temp, inf);if alpha*lambda^2 =alpha*sigma

    swap = 1; m1 = k; m2 = r; s = 1;else

    swap = 1; m1 = k+1; m2 = r; s = 2;end

    endif swap

    A([m1 m2],:) = A([m2 m1],:); L([m1 m2],:) = L([m2 m1],:);A(:,[m1 m2]) = A(:,[m2 m1]); L(:,[m1 m2]) = L(:,[m2 m1]);pp([m1 m2]) = pp([m2 m1]);

    endif s == 1 % s = 1

    D(k,k) = A(k,k);A(k+1:n,k) = A(k+1:n,k)/A(k,k); L(k+1:n,k) = A(k+1:n,k);i = k+1:n; A(i,i) = A(i,i) - A(i,k)*A(k,i);

    else % s = 2E = A(k:k+1,k:k+1); D(k:k+1,k:k+1) = E;C = A(k+2:n,k:k+1); temp = C/E;L(k+2:n,k:k+1) = temp;A(k+2:n,k+2:n) = A(k+2:n,k+2:n) - temp*C;

    end

    if k+s = 3, P = eye(n); P = P(pp,:); endrho = rho/normA;

  • h i j

    d e f g

    a b c

    10 8 7

    9 4 6 5

    1 2 3

    120/120

    Con una matriz de Hankel, el programa funciona as:

    >> A = gallery(ris,6)A =

    0.0909 0.1111 0.1429 0.2000 0.3333 1.00000.1111 0.1429 0.2000 0.3333 1.0000 -1.00000.1429 0.2000 0.3333 1.0000 -1.0000 -0.33330.2000 0.3333 1.0000 -1.0000 -0.3333 -0.20000.3333 1.0000 -1.0000 -0.3333 -0.2000 -0.14291.0000 -1.0000 -0.3333 -0.2000 -0.1429 -0.1111

    >> cond(A)ans =

    2.2185>> [L D P rho]=diagpiv(A)L =

    1.0000 0 0 0 0 00 1.0000 0 0 0 0

    -0.1760 0.2160 1.0000 0 0 0-0.3143 0.1714 -1.1905 1.0000 0 0-0.1048 0.3429 0.2646 -0.6667 1.0000 0-0.9778 0.2000 -0.6173 0.6222 0 1.0000

    D =0.0909 1.0000 0 0 0 01.0000 -0.1111 0 0 0 0

    0 0 -0.9216 0 0 00 0 0 1.7415 0 00 0 0 0 -0.8256 1.92640 0 0 0 1.9264 0.1284

    P =1 0 0 0 0 00 0 0 0 0 10 0 0 1 0 00 0 1 0 0 00 0 0 0 1 00 1 0 0 0 0

    rho =1.9264

    >> eig(A)ans =

    -1.5708-1.5705-1.44380.70801.56221.5708

    >>