Ampliaci´on de Métodos Numéricos

38
Ampliaci´ondeM´ etodos Num´ ericos Ion Zaballa Departamento de Matem´ atica Aplicada y Estad´ ıstica e Investigaci´ on Operativa Euskal Herriko Unibertsitatea

Transcript of Ampliaci´on de Métodos Numéricos

Page 1: Ampliaci´on de Métodos Numéricos

Ampliacion de MetodosNumericos

Ion Zaballa

Departamento de Matematica Aplicada

y Estadıstica e Investigacion Operativa

Euskal Herriko Unibertsitatea

Page 2: Ampliaci´on de Métodos Numéricos

2

Page 3: Ampliaci´on de Métodos Numéricos

Capıtulo 1

Vectores y Matrices.Factorizacion LU

1.1. Matrices y Aplicaciones Lineales

El objetivo de este capıtulo es fijar algunas notaciones y convenciones, y tambiendar un repaso rapido a algunos conceptos basicos de algebra lineal pero desde unpunto de vista que, quizas, no es el habitual.

Comenzamos recordando que una matriz no es mas que una familia de elementosexpuestos en un determinado orden de forma que su apariencia externa es la de unrectangulo de elementos ordenados:

A “

»———–

a11 a12 . . . a1n

a21 a22 . . . a2n...

.... . .

...am1 am2 . . . amn

fiffiffiffifl

3

Page 4: Ampliaci´on de Métodos Numéricos

4 Vectores y Matrices. Factorizacion LU

Esta parece ser la forma en que Sylvester (1885) introdujo originalmente las matrices.De forma abreviada escribiremos A “ raijs 1ďiďm

1ďjďnpara indicar la matriz que tiene

en la posicion o entrada pi, jq el elemento aij. Tambien diremos que aij es el elementopi, jq de A. Si A “ raijs 1ďiďm

1ďjďnentonces diremos que A tiene m filas y n columnas

y que A es de orden o tamano m ˆ n o simplemente que es una matriz m ˆ n. Lasmatrices con igual numero de filas y columnas se llaman cuadradas. La i-esima filay j-esima columna de A son las matrices

ai “ rai1 ai2 . . . ains y aj “

»———–

a1j

a2j...amj

fiffiffiffifl ,

respectivamente.

Los elementos de una matriz pueden ser de muy diferente naturaleza: numeros,polinomios, funciones continuas, etc. Por lo general son elementos de algun conjuntocon estructura de anillo (normalmente conmutativo y con elemento 1) de forma talque si R es uno de tales anillos entonces podemos definir formalmente una matrizA de orden mˆ n como una aplicacion:

µ : I ˆ J Ñ R

donde I “ t1, 2, . . . ,mu, J “ t1, 2, . . . , nu y µpi, jq “ aij. De esta forma A es laaplicacion µ y dos matrices son iguales si lo son las aplicaciones que las definen. Esdecir, A “ raijs 1ďiďm

1ďjďny B “ rbijs 1ďiďp

1ďjďqson iguales si y solo si n “ q, m “ p y

aij “ bij @i, j. Denotaremos con Rmˆn al conjunto de las matrices de tamano mˆncon elementos en R. Podemos entonces definir la suma y producto de matrices: SiA “ raijs P Rmˆn y B “ rbijs P Rmˆn son matrices del mismo tamano entonces

A`B “ raij ` bijs P Rmˆn;

y si A “ raijs P Rmˆn y B “ rbijs P Rnˆp, entonces

AB “«

nÿ

k“1

aikbkj

ffP Rmˆp.

En particular, si n “ m “ p entonces cualesquiera dos matrices de Rnˆn se pue-den sumar y multiplicar y pRnˆn,`, ¨q es un anillo no conmutativo con elemento

Page 5: Ampliaci´on de Métodos Numéricos

1.1 Matrices y Aplicaciones Lineales 5

identidad. Este elemento es la matriz

In “

»———–

1 0 . . . 00 1 . . . 0...

.... . .

...0 0 . . . 1

fiffiffiffifl “ rδijs,

llamada matriz identidad. Las unidades de un anillo son aquellos elementos queadmiten un inverso. En nuestro caso, y dado que Rnˆn es una anillo no conmuta-tivo, diremos que una matriz A P Rnˆn es una unidad, que admite inversa o, mascomunmente, que es invertible si existe una unica B P Rnˆn tal que AB “ BA “ In.Si A es invertible, a la unica matriz B tal que AB “ BA “ In se le llama inversade A y se representa por A´1. Se puede demostrar que si R “ F es un cuerpo yAB “ In entonces A´1 “ B. Esto es util porque nos dice que basta comprobar queA es invertible por la derecha (o izquierda) para demostrar que lo es por los doslados.

Debe observarse que si A1, A2 P Rnˆn son invertibles entonces el producto A1A2

lo es y pA1A2q´1 “ A´12 A´1

1 . As pues, el conjunto de las matrices invertibles n ˆ nes un grupo, no abeliano, llamado grupo general lineal de orden n sobre R y quedenotaremos por GlnpRq.

Las matrices de Rmˆn se pueden multiplicar por elementos de R (escalares): Six P R y A “ raijs P Rmˆn entonces

xA “ rxaijs P Rmˆn.

De esta forma el conjunto Rmˆn tiene estructura de modulo libre sobre R. Una basede este modulo es el conjunto tEij : 1 ď i ď m, 1 ď j ď nu siendo Eij la matrizcuyos elementos son todos cero excepto el de la posicion pi, jq que es 1. Dado queR es conmutativo con elemento identidad, todas las bases de Rmˆn tienen el mismonumero de elementos (a este numero se le llama dimension o rango del modulo), eneste caso mn. En particular, si R “ F es un cuerpo, entonces Fmˆn es un espaciovectorial y Fnˆn un algebra, no conmutativa, de dimension n2.

1.1.1. Algunos tipos de matrices

1. Transpuesta y transpuesta conjugada

Page 6: Ampliaci´on de Métodos Numéricos

6 Vectores y Matrices. Factorizacion LU

Dada una matriz A P Rmˆn a la matriz que se obtiene al intercambiar las filaspor las columnas se le llama matriz transpuesta de A y se denota por AT . Ası,si A “ raijs P Rmˆn entonces AT “ rajis P Rnˆm. Por su parte, si R “ C, elcuerpo de los numeros complejos y la unidad imaginaria la representamos coni (“ ?´1), entonces cada elemento akj “ xkj ` iykj de una matriz A admiteun conjugado akj “ xkj ´ iykj. La matriz A “ raijs se llama matriz conjugadade A. La transpuesta conjugada de A P Cmˆn la denotaremos por A˚ P Cnˆm.

Algunas propiedades elementales de la transposicion son las siguientes:

pAT qT “ A, pA˚q˚ “ A

Si λ es una escalar entonces pλAqT “ λAT y pλAq˚ “ λA˚

pA`BqT “ AT `BT , pA`Bq˚ “ A˚ `B˚pABqT “ BA, pABq˚ “ B˚A˚

pAT q´1 “ pA´1qT , pA˚q´1 “ pA´1q˚.2. Matrices Simetricas y Hermıtices

Las matrices que tienen la propiedad de ser iguales a sus transpuestas, A “ AT ;i. e. matrices A “ raijs tales que aij “ aji para todos i y j, reciben el nombre dematrices simetricas. El nombre es debido, posiblemente, a que sus elementosson simetrıcos respecto de la diagonal principal. Es claro que estas matricesdeben ser cuadradas.

Las matrices skew-simetricas son las que cumple que AT “ ´A.

Por su parte, si R “ C y A “ A˚ entonces A se dice que es hermıtica. Y siA “ ´A˚ entonces A es skew-hermıtica.

Algunos ejemplos de estos tipos de matrices son los siguientes:„i 2i2i 4

simetrica

„1 2i´2i 4

hermıtica

„0 2i´2i 0

skew-simetrica

„i 2i2i 4i

skew-hermıtica

„0 ii 0

simetrica y skew-hermıtica

„0 ´ii 0

hermıtica y skew-simetrica

Cualquiera que sea A P Rnˆm, las matrices AAT , ATA y A`AT son simetricas;mientras que si A P Cmˆn entonces AA˚, A˚A y A` A˚ son hermıticas.

Page 7: Ampliaci´on de Métodos Numéricos

1.1 Matrices y Aplicaciones Lineales 7

3. Matrices Diagonales

Una matriz n ˆ n se dice que es diagonal si todos sus elementos son ceroexcepto los de las posiciones pi, iq, 1 ď i ď n. Si D P Rnˆn y di es elementoque ocupa la posicion pi, iq, escribiremos:

D “ Diagpd1, . . . , dnq.En general si A P Rnˆn los elementos aii, 1 ď i ď n, se dice que son o formanla diagonal principal de A. Las matrices diagonales se pueden considerar comoun caso especial de matrices diagonales por bloques. Estas son las que tienenla forma: »

———–

A1 0 . . . 00 A2 . . . 0...

.... . .

...0 0 . . . Ap

fiffiffiffifl

siendo Ai una matriz cuadrada de tamano ni ˆ ni, 1 ď i ď p.

4. Matrices Triangulares

Una matriz A “ raijs P Rnˆn se dice que es triangular superior si aij “ 0 parai ą j. Si aij “ 0 para i ă j entonces A es triangular inferior. De la mismaforma que con matrices diagonales, las triangulares son un caso particularde las matrices triangulares por bloques. Una matriz triangular superior porbloques tiene la siguiente forma:

A “

»———–

A11 A12 . . . A1p

0 A22 . . . A2p...

... . . ....

0 0 . . . App

fiffiffiffifl .

con Aij P Rniˆnj .

Las inversas de matrices triangulares superiores (inferiores) son triangularessuperiores (inferiores, respectivamente).

Hay otros tipos de matrices que iremos definiendo a medida que los vayamosnecesitando.

5. Matrices de Permutacion

Una matriz P P Rnˆn se dice que es de permutacion si en cada fila y columnahay un elemento igual a 1 y todos los demas son cero. La multiplicacion por

Page 8: Ampliaci´on de Métodos Numéricos

8 Vectores y Matrices. Factorizacion LU

este tipo de matrices efectua una permutacion de las filas o columnas del objetomultiplicado. Ası por ejemplo,

P “»–

0 0 11 0 00 1 0

fifl y P T “

»–

0 1 00 0 11 0 0

fifl

son matrices de permutacion y

P

»–

123

fifl “

»–

312

fifl y

“1 2 3

‰P T “ “

3 1 2‰.

Es decir, P pone la fila 1 en la 2, la 2 en la 3 y la 3 en la 1. Y P T hace lomismo pero en las columnas.

En general, si Sn es el grupo simetrico de orden n; i. e. el grupo de permutacio-nes de n elementos, y σ “ pi1, i2, . . . , inq P Sn; i. e. σpkq “ ik, denotamos conPσ “ rδiσpjqs “ rδiiks P Rnˆn. Es decir, Pσ es la matriz que tiene exactamenteun 1 en la posicion pσpiq, iq, 1 ď i ď n y todos los demas elementos son cero.Ası, en el ejemplo de arriba, P es la matriz de la permutacion σ “ p2, 3, 1q.Notemos que P T “ Pσ´1 “ P´1 y si A “ raijs entonces

PσA “ raσpiqjs y AP T “ raiσpjqs.

Es decir, PσA se obtiene de A poniendo la fila i en la σpiq, y AP T se obtienede A poniendo la columna j en la σpjq.

1.1.2. Submatrices

Dada una matriz A “ raijs P Rmˆn, diremos que la matriz B “ rbijs P Rpˆq esuna submatriz de A si existen ındices pi1, . . . , ipq y pj1, . . . , jqq tales que 1 ď i1 㨠¨ ¨ ă ip ď m, 1 ď j1 ă ¨ ¨ ¨ ă jq ď n y

airjs “ brs, 1 ď r ď p, 1 ď s ď q.

Esto significa, simplemente, que los elementos que componen B estan en la inter-seccion de algunas filas y columnas de A:

Page 9: Ampliaci´on de Métodos Numéricos

1.1 Matrices y Aplicaciones Lineales 9

A “

ttttt

tttt

ttt

i1

i2

i3

i4

j3j2j1

b11 b12 b13

b21 b22 b23

b31 b32b33

b41 b42 b43

Trabajaremos a menudo con submatrices para lo que vamos a introducir unanotacion mas compacta y util. Denotamos con

Qr,n “ tpi1, . . . , irq : 1 ď i1 ă . . . ă ir ď nuel conjunto de todas las secuencias de r numeros enteros positivos entre 1 y n.

Si α, β P Qr,n, diremos que α precede a β en el orden lexicografico, y escribiremos

α ď β,

si la primera diferencia βi ´ αi que no sea cero es positiva. Por ejemplo, si α “p1, 3, 4, 7q y β “ p1, 3, 5, 6q entonces α´ β “ p0, 0,´1, 1q y β ´ α “ p0, 0, 1,´1q. porlo tanto α precede a β en el orden lexicografico: β ě α.

Dada una matriz A “ raijs P Rmˆn, si α P Qr,m y β P Qs,n, la matriz B “ rbijs PRrˆs definida por

bij “ aαiβj , 1 ď i ď r, 1 ď j ď s

es una submatriz de A y se denotar por

B “ Arα|βs.

Esta notacion es muy parecida a la que usa MATLAB para definir submatrices(vease la Gua de MATLAB para este curso). MATLAB utiliza parentesis en vez de

Page 10: Ampliaci´on de Métodos Numéricos

10 Vectores y Matrices. Factorizacion LU

corchetes. Aquı los parentesis se usaran para designar la submatriz complementaria.Es decir, si α P Qr,n entonces la secuencia complementaria de α es α1 P Qn´r,n quecumple la siguiente condicion: Si α “ pα1, . . . , αrq y α1 “ pα11, . . . , α1n´rq entonces

tα1, . . . , αr, α11, . . . , α

1n´ru “ t1, 2, . . . , nu.

Si α P Qr,m y β P Qs,n y α1, β1 son las secuencias complementarias en t1, . . . ,muy t1, . . . , nu, entonces pondremos

Apα|βq “ A “ rα1|β1s.

Ejemplo 1.1 .- El siguiente ejemplo puede ayudar a clarificar la notacion. Sea

A “

»——–

0 1 2 3´3 ´2 ´1 0

4 5 6 7´7 ´6 ´5 ´4

fiffiffifl

Ar1, 2|1, 3s “„a11 a13

a21 a23

“„

0 2´3 ´1

Ap2, 3|3q “ Ar1, 4|1, 2, 4s “„a11 a12 a14

a41 a42 a44

“„

0 1 3´7 ´6 ´4

1.1.3. Aplicaciones lineales

Si R “ F es un cuerpo (sobreentendemos que es conmutativo) hay una relacionmuy estrecha entre las matrices con elementos en F y las aplicaciones lineales defi-nidas entre espacios vectoriales sobre F. En efecto, sean V1 y V2 espacios vectorialesde dimensiones n y m, respectivamente, sobre F, y fijemos bases B1 y B2 de V1 y V2.Ası a cada aplicacion lineal f : V1 Ñ V2 le corresponde una matriz A “ raijs P Fmˆnde la siguiente forma: los elementos de la j-esima columna de A son las compo-nentes de la imagen del j-esimo vector de B1 respecto de la base B2. Es decir, siB1 “ tv1, . . . , vnu, B2 “ tu1, . . . , umu, y

fpvjq “mÿ

i“1

aijui, j “ 1, . . . , n (1.1)

Page 11: Ampliaci´on de Métodos Numéricos

1.1 Matrices y Aplicaciones Lineales 11

entonces la matriz A “ raijs P Fmˆn se llama la matriz de f respecto de las bases B1 yB2. Recıprocamente, dada la matriz A “ raijs P Fmˆn y fijadas las bases B1 y B2 de V1

y V2, respectivamente, la relacion (1.1) define una unica aplicacion lineal entre estosespacios vectoriales. Dicho formalmente, si HompV1,V2q es el espacio vectorial de lasaplicaciones lineales de V1 en V2, y fijadas bases en estos dos espacios vectoriales, losespacios vectoriales Fmˆn y HompV1,V2q son isomorfos y el isomorfismo esta definidoa partir de la relacion (1.1). Conviene tener siempre presente este isomorfismo porquenos permite traducir propiedades de las matrices en propiedades de las aplicacioneslineales entre espacios vectoriales y al reves. En particular, toda matriz A P Fmˆnpuede verse como una aplicacion lineal entre los espacios vectoriales Fm y Fn. Paraello identificamos Fn con Fnˆ1; es decir, escribimos y hablamos indistintamente delvector x “ px1, x2, . . . , xnq P Fn y de la matriz columna (a la que llamaremos conmucha frecuencia vector columna):

x “

»———–

x1

x2...xn

fiffiffiffifl “

“x1 x2 . . . xx

‰T P Fnˆ1.

De esta forma, dada A P Fmˆn, queda definida la aplicacion lineal (que seguimosdenotando con la letra A):

A : Fn Ñ Fmx ; Ax

donde debemos entender que Ax es el vector columna que resulta de multiplicar Ay el vector columna x.

1.1.4. Imagen y Nucleo de una matriz

Aunque en la seccion anterior hemos procurado actuar con la maxima generali-dad acerca del anillo en el que estan definidas las matrices, a partir de ahora, nuestrasmatrices supondremos que tienen sus elementos en un cuerpo (siempre conmutati-vo), F, y casi siempre podremos pensar que este cuerpo es el de los numeros realeso complejos. Comenzamos con dos conceptos basicos bien conocidos: la imagen yel nucleo de una matriz se definen como la imagen y nucleo de la correspondienteaplicacion lineal asociada.

Page 12: Ampliaci´on de Métodos Numéricos

12 Vectores y Matrices. Factorizacion LU

Definicion 1.2 .- Sea A P Fmˆn. Se define

ImpAq “ ty P Fm|y “ Ax para algun x P Fnu.y

KerpAq “ tx P Fn|Ax “ 0u.

1.1.5. Rango y nulidad

El rango por columnas de una matriz es la dimension del espacio que generan suscolumnas. Y el rango por filas de una matriz es la dimension del espacio que generansus filas. Ambos numeros coinciden para cada matriz (hay varias pruebas posiblesde este hecho, una de ellas se puede obtener como corolario del Teorema SVD quediscutiremos en Lecciones posteriores). Nos referiremos a este numero comun comoel rango de la matriz y, para una matriz A, lo representaremos por rangpAq.

Por otra parte, la nulidad de A P Fmˆn se define como la dimension de KerAy la denotaremos con el sımbolo νpAq. Los teoremas de isomorfa nos dan una rela-cion estrecha entre nulidad y rango. En efecto, de acuerdo con la Proposicion 1.4,rangpAq “ dim ImA y de acuerdo con los teoremas de isomorfa de aplicacioneslineales dim ImA “ n´ dim KerA. As pues

rangpAq “ n´ νpAq.

Diremos que una matriz m ˆ n tiene rango completo si su rango es el maximoposible; es decir, el mas pequeno de los numeros m y n. As pues, si m ě n yA P Fmˆn tiene rango completo, se tiene que las n columnas de A son linealmenteindependientes. Esto a su vez significa que el unico vector x “ px1, . . . , xnq para elque x1a1 ` ¨ ¨ ¨ ` xnan “ 0 es x “ 0; es decir, KerA “ t0u. Y esto equivale a que laaplicacion lineal que define A es inyectiva. De la misma forma, si m ď n y A tienerango completo entonces dim ImA “ m y como ImA Ď Fm debe ser ImA “ Fm;i.e., A es suprayectiva. Finalmente, si m “ n y A tiene rango completo entoncesla aplicacion lineal que define es biyectiva. Es decir, A es invertible: hay una nicamatriz B P Fnˆn tal que AB “ BA “ In. A esta nica matriz se le llama inversa deA y se representa por A´1.

El siguiente Teorema recoge unas cuantas propiedades bien conocidas equivalen-tes a que una matriz sea invertible. Algunas de ellas ya han sido demostradas masarriba.

Page 13: Ampliaci´on de Métodos Numéricos

1.1 Matrices y Aplicaciones Lineales 13

Teorema 1.3 Para A P Fnˆn las siguientes condiciones son equivalentes:

1. A tiene inversa A´1.

2. rangpAq “ n.

3. ImA “ Fn.

4. νpAq “ 0.

5. KerA “ t0u.6. 0 no es un valor propio (autovalor) de A.

7. detpAq ‰ 0.

Recordemos que λ, escalar en, quiza, un cuerpo extension de F, es un valorpropio si hay un vector no nulo x tal que Ax “ λx. Si 0 fuera valor propio de Aentonces Ax “ 0 para algun x ‰ 0. As KerA ‰ t0u. Y recıprocamente.

En cuanto a la propiedad detpAq ‰ 0, se trata de una consecuencia inmediatade las propiedades basicas de los determinantes para matrices sobre cuerpos. Y encuanto a terminologıa, las matrices que cumplen la propiedad detpAq ‰ 0 se llamanno singulares o regulares. Por lo tanto, no singularidad e invertibilidad son conceptosequivalentes para matrices sobre cuerpos.

Asociada al determinante recordemos que hay una caracterizacion del rango deuna matriz que la mencionamos por completitud porque tanto ella como el propioconcepto de determinante no son de utilidad desde un punto de vista numerico: elrango de A es el tamano de la mayor submatriz con determinante no nulo de A. Alos determinantes de las submatrices de una matriz tambien se les llama menoresde la matriz.

Una observacion final en la lınea de lo expuesto en la Seccion 1.2. Cuando escri-bimos

x “ A´1b

no debemos pensar en el vector x como el resultado de multiplicar la inversa dela matriz A por el vector b, sino que A´1b es el vector cuyas componentes son los

Page 14: Ampliaci´on de Métodos Numéricos

14 Vectores y Matrices. Factorizacion LU

coeficientes de b escrito como combinacion lineal de las columnas de A. En efecto,esto es consecuencia de la siguiente obvia equivalencia para las matrices invertibles:

Ax “ bô x “ A´1b

O tambien, si A es invertible entonces ImA “ Fn y las columnas de A forman unabase de Fn. Las componentes del vector A´1b son las coordenadas de b en esta base.

1.2. Interpretaciones del producto de matrices

Todo lo dicho hasta aquı concuerda con la interpretacion habitual del Algebralineal. Desde este punto de vista la ecuacion Ax “ b, que es un sistema no homogeneode ecuaciones lineales, se debe interpretar de la siguiente forma: b es la imagen porA del vector x. Por supuesto, esto es correcto, pero hay otra forma de mirar estaecuacion que es mucho mas util para este curso y que pasamos a analizar ahora.

En primer lugar, b “ Ax significa que el vector b es el resultado de multiplicarla matriz A y el vector x:

bi “nÿ

j“1

aijxj, i “ 1, . . . ,m.

Poniendo todas las componentes de b juntas:

»———–

b1

b2...bm

fiffiffiffifl “

»———–

a11

a21...am1

fiffiffiffiflx1 `

»———–

a12

a22...am2

fiffiffiffiflx2 ` ¨ ¨ ¨ `

»———–

a1n

a2n...

amn

fiffiffiffiflxn.

y escribiendo A en funcion de sus columnas:

A “ “a1 a2 ¨ ¨ ¨ an

‰,

tenemos queb “ x1a1 ` x2a2 ` ¨ ¨ ¨ ` xnan.

Es decir b es una combinacion lineal de las columnas de A cuyos coeficientes son lascomponentes del vector x. Ası pues, no es A quien actua sobre x para producir b,

Page 15: Ampliaci´on de Métodos Numéricos

1.2 Interpretaciones del producto de matrices 15

sino que es x quien actua sobre A para producir b. Este es el punto de vista habitualque adoptaremos en este curso.

Podemos utilizar esta interpretacion del significado de multiplicar matrices pa-ra conseguir una nueva caracterizacion de ImA. Recordemos que si a1, . . . , an sonvectores de Fn, el subespacio de Fn generado por estos vectores , y que denotaremosindistintamente por ă a1, . . . , an ą o por Span pa1, . . . , anq, es el conjunto de todaslas combinaciones lineales de a1, . . . , an:

ă a1, . . . , an ą“ Span pa1, . . . , anq “#

nÿ

i“1

xiai|xi P F+.

Proposicion 1.4 .- ImpAq es es subespacio de Fm generado por las columnas de A.

Demostracion.- Tenemos que demostrar que si A “ “a1 a2 ¨ ¨ ¨ an

‰entonces

ImA “ă a1, a2, . . . , an ą. Ahora bien

y P ImAô y “ Ax, para algn x P Fm ô y “nÿ

i“1

xiai,

donde x1, . . . , xn son las componentes de x. La ultima equivalencia es, como yahemos mencionado, debida a que y “ Ax si y solo si y es una combinacion lineal delas columnas de A cuyos coeficientes son las componentes de x.

De forma similar, los vectores x P KerA son aquellos cuyas componentes sonlos coeficientes del vector 0 como combinacion lineal de las columnas de A: 0 “x1a1 ` x2a2 ` ¨ ¨ ¨ ` xnan.

1.2.1. Producto de matrices

De la misma forma, si A P Rmˆn y B P Rnˆp tenemos una doble interpretacionpara la matriz C “ AB P Rmˆp. La tradicional sera que C es la matriz de lacomposicion de las aplicaciones

Rp BÝÑ Rn AÝÑ Rm

Page 16: Ampliaci´on de Métodos Numéricos

16 Vectores y Matrices. Factorizacion LU

en las bases canonicas. La que mas nos interesa en este curso es la siguiente: Si cijes el elemento en la posicion pi, jq de C entonces

cij “nÿ

k“1

aikbkj, 1 ď i ď m, 1 ď j ď p.

Por consiguientecij “ ai1b1j ` ai2b2j ` ¨ ¨ ¨ ` ainbnj, (1.2)

y si cj y bj son las j-esimas columnas de C y B:

cj “

»———–

c1j

c2j...cmj

fiffiffiffifl “

»———–

a11 a12 ¨ ¨ ¨ a1n

a21 a22 ¨ ¨ ¨ a2n...

.... . .

...am1 am2 ¨ ¨ ¨ amn

fiffiffiffifl

»———–

b1j

b2j...bnj

fiffiffiffifl “ Abj, j “ 1, . . . , p.

Ası “c1 c2 ¨ ¨ ¨ cp

‰ “ “Ab1 Ab2 ¨ ¨ ¨ Abp

‰,

de modo que la j-esima columna de C es una combinacion lineal de las columnas deA cuyos coeficientes son las componentes de la j-esima columna de B.

De forma similar, de (1.2) sacamos que si ci y ai son las i-esimas filas de C y A,entonces

ci “ aiB.

Y esto significa que la i-esima fila de C es una combinacion lineal de las filas de Bcuyos coeficientes son las componentes de la i-esima fila de A.

En resumen, en el producto de matrices AB:

A acta sobre B provocando combinaciones lineales en las filas de B, y

B acta sobre A provocando combinaciones lineales en las columnas de A.

Ejemplo 1.5 : Producto interno y producto externo de vectores.

Sean u, v P Rn. Se define le producto interno de estos dos vectores como uTv,mientras que el producto externo es uvT .

Page 17: Ampliaci´on de Métodos Numéricos

1.2 Interpretaciones del producto de matrices 17

Hay una gran diferencia entre estos dos productos. Para empezar uTv P R1ˆ1;es decir, es un escalar mientras que uvT P Rnˆn es una matriz. Ademas, uTv es unacombinacion lineal de las columnas de uT con los coeficientes de v o una combinacionlineal de las filas de v con los coeficientes de u. Tanto las columnas de uT como lasfilas de v son de tamano 1ˆ 1, de modo que el resultado es un escalar:

uTv “ “u1 u2 ¨ ¨ ¨un

»———–

v1

v2...vn

fiffiffiffifl “

nÿ

i“1

uivi P R.

Por su parte uvT se puede ver como una combinacion de las filas de vT (solo hayuna) cuyos coeficientes son las componentes de u; o, como una combinacion linealde las columnas de u (solo hay una) cuyos coeficientes son las componentes de vT .Es decir,

uvT “ “v1u v2u ¨ ¨ ¨ vnu

‰ “

»———–

u1vT

u2vT

...unv

T

fiffiffiffifl “

»———–

u1v1 u1v2 ¨ ¨ ¨ u1vnu2v1 u2v2 ¨ ¨ ¨ u1vn

......

. . ....

unv1 unv2 ¨ ¨ ¨ unvn

fiffiffiffifl

En conclusion, el producto exterior de u y v es una matriz nˆn cuyas columnasson ”multiplos” del vector u, y cuyas filas son “multiplos” del vector vT .

Otras dos interpretaciones del producto de matrices

Se pueden dar dos nuevas interpretaciones del producto de matrices a partir delos productos interno y externo de vectores. Sean A P Rmˆn y B P Rnˆp. Entonces

Por una parte, el elemento pi, jq de AB es pABqij “nřk“1

aikbkj. Es decir, es

el producto interno de la i-esima fila de A y la j-esima columna de B. Siendocompletamente formales:

pABqij “ pa1iqT bj,donde a1i es la i-esima columna de AT y bj la j-esima columna de B.

Page 18: Ampliaci´on de Métodos Numéricos

18 Vectores y Matrices. Factorizacion LU

Por otra, si ai representa la columna i-esima de A y bj la j-esima fila de B,entonces el elemento pi, jq del producto externo akb

k es precisamente aikbkj. Porlo tanto, si b1k es la k-esima columna de BT tenemos que pakpb1kqT qij “ aikbkj.Es decir,

AB “ a1pb11qT ` a2pb12qT ` ¨ ¨ ¨ ` anpb1nqT ,es la suma de n productos externos. Cada sumando es el producto externo dela i-esima columna de A y la i-esima fila de B (formalmente la i-esima columnade BT ).

Ejemplo 1.6 :Matrices elementales

Dada una matriz A P Rmˆn, hay tres tipos de transformaciones elementalesque se pueden realizar sobre A:

(t1) Sumar a una fila (o columna) de A otra fila (o columna) multiplicada por unescalar.

(t2) Multiplicar una fila (o columna) de A por un escalar distinto de cero.

(t3) Permutar dos filas (o columnas) de A.

Si las transformaciones se hacen en las filas se habla de transformacioneselementales por filas y si se hacen en las columnas de transformaciones ele-mentales por columnas.

Puesto que las transformaciones elementales por filas en A producen combina-ciones lineales de sus filas, se tienen que poder realizar multiplicando una matrizapropiada por A. Y lo mismo por columnas: las transformaciones elementales porcolumnas se pueden realizar multiplicando A por una matriz apropiada. Suponga-mos, por ejemplo, que se quiere sumar a la i-esima fila la j-esima multiplicada porα P R. Y supongamos, por fijar ideas, que i ă j. Si escribimos A en funcion de susfilas

A “

»———–

a1

a2

...am

fiffiffiffifl

Page 19: Ampliaci´on de Métodos Numéricos

1.2 Interpretaciones del producto de matrices 19

queremos obtener la matriz

B “

»——————————–

a1

...ai ` αaj

...aj

...am

fiffiffiffiffiffiffiffiffiffiffifl

Puesto que cada fila de B es una combinacion lineal de las filas de A, debe existir unamatriz E1pαq tal que B “ E1pαqA. Ahora bien, todas las filas de A y B coinciden,excepto la i-esima que es ai ` αaj. Por lo tanto

E1pαq “

»—————————–

i j

1. . .

i 1 . . . α. . .

...j 1

. . .

1

fiffiffiffiffiffiffiffiffiffifl

Es importante observar que E1pαq “ In`aeTj donde ej es el j-esimo vector (columna)canonico (todos los elementos cero excepto el de la posicion j que es 1) y a es elvector (columna) cuyos elementos son todos cero excepto el de la posicion i que esα. Ası pues E1pαq es una modificacion de rango 1 de la matriz identidad.

Es claro que B “ E1pαqA. De la misma forma

AE1pαq ““a1 ¨ ¨ ¨ ai ¨ ¨ ¨ aj ` αai ¨ ¨ ¨ an

‰.

Notese que en este caso, la columna que cambia es la j-esima.

Si lo que se quiere es multiplicar la i-esima fila de A por α ‰ 0 entonces la

Page 20: Ampliaci´on de Métodos Numéricos

20 Vectores y Matrices. Factorizacion LU

matriz E2pαq que lo produce es

E2pαq “

»————————–

i

1. . .

1i α

1. . .

1

fiffiffiffiffiffiffiffiffifl

En efecto

E2pαqA “

»—————–

a1

...αai

...am

fiffiffiffiffiffifl

y AE2pαq ““a1 ¨ ¨ ¨ αai ¨ ¨ ¨ an

‰.

Finalmente, si lo que se quiere es permutar las filas o columnas i y j debemos utilizaruna matriz de permutacion, en realidad una transposicion:

P “

»—————————————–

i j

1. . .

1i 0 . . . 1

.... . .

...j 1 . . . 0

1. . .

1

fiffiffiffiffiffiffiffiffiffiffiffiffiffifl

Page 21: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 21

Ası

PA “

»——————————–

a1

...aj

...ai

...am

fiffiffiffiffiffiffiffiffiffiffifl

y AP “ “a1 ¨ ¨ ¨ aj ¨ ¨ ¨ ai ¨ ¨ ¨ an

‰.

Las matrices de la forma E1pαq, E2pαq y P se llaman matrices elementales.Debe notarse que estas matrices y las matrices de transposicion se obtienen de lamatriz identidad realizando sobre esta la misma transformacion elemental que sequiere conseguir sobre la matriz que van a actuar. Ası, la matriz E1pαq de masarriba se obtiene de la matriz In sumando a la fila i la j-esima multiplicada por α.Y tambien se obtiene sumando a la columna j la i-esima multiplicada por α.

1.3. Factorizacion LU

La factorizacion LU se estudia en el curso de Metodos Numericos bajo la deno-minacion de Algoritmos de Doolittle y Crout. En esta seccion daremos un algoritmodiferente aunque todos ellos estan relacionados con la eliminacion gaussiana. Enefecto, el objetivo de la factorizacion LU es la resolucion de sistemas de ecuacioneslineales; y es la forma actual de representar la eliminacion Gaussiana. La eliminacionGaussiana era conocida ya en la China antigua [15] y los estudiantes la emplean demanera intuitiva en la escolarizacion obligatoria o bachillerato como un metodo deeliminacion de variables al resolver sistemas lineales. Gauss la uso en el contextode problemas de mınimos cuadrados lineales [7],[10], [20]. En los cursos de algebralineal se suele ensenar en conjuncion con la reduccion de una matriz a forma escaleray, en este contexto, se trata como una herramienta para obtener todas la solucio-nes de un sistema lineal, para calcular el determinante y el rango de la matriz delos coeficientes. En esta seccion estudiaremos su conexion con la factorizacion LUy justificaremos por que esta es la forma eficiente de implementar la eliminacionGaussiana.

La estrategia de la eliminacion gaussiana (EG) es reducir un sistema completo

Page 22: Ampliaci´on de Métodos Numéricos

22 Vectores y Matrices. Factorizacion LU

de n ecuaciones con n incognitas a otro sistema con el mismo numero de ecuacionese incognitas pero que es triangular superior. El metodo consiste en realizar trans-formaciones elementales por filas. Consiste de n ´ 1 etapas; se comienza con unamatriz Ap1q “ A P Fnˆn y un vector bp1q “ b P Fnˆ1 y se termina con un sistemaApnqx “ bpnq donde Apnq es una matriz triangular superior. El proceso es recursivo ypara k “ 1, . . . , n´ 1 se dispone de una matriz

Apkq “«Apkq11 A

pkq12

0 Apkq22

ff

donde Apkq11 P Fpk´1qˆpk´1q es una matriz triangular (para k “ 1 la matriz A

p1q11 sim-

plemente no existe; es decir, Ap1q “ Ap1q22 ). El objetivo en esta etapa k es sustituir

por ceros los elementos de Apkq que estan en la columna k por debajo del elementodiagonal a

pkqkk (llamado comunmente pivote). La forma de hacerlo es restar a la fila

i “ k ` 1, . . . , n la fila k multiplicada por un numero apropiado. Este numero debeser

mik “ apkqik

apkqkk

,

y se conoce con el nombre de multiplicador. Ası, en la etapa k de la EG se realizanlas siguientes transformaciones elementales:

apk`1qij “ a

pkqij ´mika

pkqkk , i, j “ k ` 1, . . . , n. (1.3)

bpk`1qi “ b

pkqi ´mikb

pkqk , i, j “ k ` 1, . . . , n. (1.4)

Si para todos los valores de k “ 1, . . . , n ´ 1 ha resultado ser apkqkk ‰ 0 entonces el

proceso termina con un sistema triangular superior Ux ” Apnqx “ bpnq que se resuelvemediante substitucion hacia atras. Este procedimiento para el sistema triangularsuperior Ux “ b es la recurrencia:

xn “ bnunn

xk “bk ´

nřj“k`1

ukjxj

ukk, k “ n´ 1, n´ 2, . . . , 1,

(1.5)

que proporciona las componentes de la solucion del sistema empezando por la ultimay, yendo hacia atras, acabando por la primera.

Page 23: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 23

Dado que cada una de las operaciones en (1.3) es una transformacion elementalen las filas de la matriz Apkq, esta se puede conseguir multiplicando por la izquierda(pre-multiplicando) la matriz Apkq por una matriz elemental. Es facil ver que sepueden agrupar las k ´ n operaciones de (1.3) en una sola matriz, concretamente:

Mk “

»———————–

1 ¨ ¨ ¨ 0 0 ¨ ¨ ¨ 0...

. . ....

......

0 ¨ ¨ ¨ 1 0 ¨ ¨ ¨ 00 ¨ ¨ ¨ ´mk`1k 1 ¨ ¨ ¨ 0...

......

. . ....

0 ¨ ¨ ¨ ´mnk 0 ¨ ¨ ¨ 1

fiffiffiffiffiffiffiffifl.

Un calculo sencillo nos permite comprobar que MkApkq “ Apk`1q. Tambien Mkb

pkq “bpk`1q. Observemos ahora que si mk “

“0 ¨ ¨ ¨ 0 mk`1k ¨ ¨ ¨ mnk

‰Ty ek es la

k-esima columna de In entonces

mkeTk “

»———————–

0 ¨ ¨ ¨ 0 0 ¨ ¨ ¨ 0...

. . ....

......

0 ¨ ¨ ¨ 0 0 ¨ ¨ ¨ 00 ¨ ¨ ¨ ´mk`1k 0 ¨ ¨ ¨ 0...

......

. . ....

0 ¨ ¨ ¨ ´mnk 0 ¨ ¨ ¨ 0

fiffiffiffiffiffiffiffifl.

Por lo tanto, Mk “ In`mkeTk . dado que mke

Tk es una matriz de rango 1, se dice que

Mk es una actualizacion de rango 1 de la matriz identidad. Ahora, como MkApkq “

Apk`1q para k “ 1, . . . , n´ 1, el proceso EG se reduce simplemente a la formula:

Mn´1Mn´2 . . .M1A “ Apnq “ U. (1.6)

Pero M´1k “ In `mke

Tk . En efecto,

pIn ´mkeTk qpIn `mke

Tk q “ In ´mke

Tk `mke

Tk ´mke

Tkmke

Tk “ In ´ eTkmkpmke

kq,

donde hemos usado la propiedad asociativa: pmkeTk qpmke

Tk q “ mkpeTkmkqeTk y que

eTkmk es un numero. Pero, teniendo en cuenta que el unico numero no nulo deek esta en la posicion k y que los elementos de mk son todos cero hasta el de laposicion k`1, concluımos que eTkmk “ 0. Por lo tanto, pIn´mke

Tk qpIn`mke

Tk q “ In

y M´1k “ In `mke

Tk tal y como se habıa dicho.

Page 24: Ampliaci´on de Métodos Numéricos

24 Vectores y Matrices. Factorizacion LU

Despejando A en (1.6) obtenemos

A “M´11 M´1

2 . . .M´1n´1U “ pIn `m1e

T1 qpIn `m2e

T2 q . . . pIn `mn´1e

Tn´1qU.

Pero para i ă j se tiene que mieTi mje

Tj “ eTi mjpmie

Tj q “ 0 porque eTi mj “ 0 siempre

que i ă j. Por lo tanto,

A “ pIn `m1eT1 ` . . .`mn´1e

Tn´1qU “

»—————–

1m21 1

... m32. . .

......

. . .

mn1 mn2 ¨ ¨ ¨ mnn´1 1

fiffiffiffiffiffiflU :“ LU

En conclusion EG calcula una factorizacion de A como producto de una matriztriangular inferior con todos los elementos en la diagonal iguales a 1 y una matriztriangular superior: A “ LU . A esta factorizacion se le llama Factorizacion LU deA (tambien descomposicion LU).

Calcular los factores L y U de una factorizacion LU de A (cuando exista) esmuy facil de programar en un algoritmo. En esta primera version suponemos que lafactorizacion existe; es decir, que para la matriz A dada todas las operaciones queaparecen son validas; es particular, que no hay division por cero. Debe observarseque la construccion de L es inmediata: sus columnas son los multiplicadores. En

otras palabras, en vez de calcular mik “ apkqik

apkqkk

y luego poner lik “ mik, pondremos

directamente lik “ apkqik

apkqkk

. Por supuesto, los superındices desapareceran porque son

innecesarios en un proceso algorıtmico en el que, recordemos, el sımbolo ““” significaasignacion y no igualdad.

En el pseudocodigo se usara con frecuencia la notacion de MATLAB. Ası, 1 : nrepresenta el vector

“1 2 ¨ ¨ ¨ n

‰; y for k “ 1 : n significa “ para k desde 1 hasta

n”.

Page 25: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 25

Factorizacion LU

Dato: A P FnˆnObjetivo: calcular matrices L, triangular inferior con unos en la diagonalprincipal, y U , triangular superior, tales que A “ LU .

‚ L “eyepnq‚ for k “ 1 : n´ 1‚ for i “ k ` 1 : n% Ponemos los multiplicadores en la columna k de L‚ lik “ aik{akk% Por debajo de pk, kq los elementos de A en la columna k% seran 0 ¿para que hacer la operacion?

‚ aik “ 0% Realizamos sobre las filas k ` 1, . . . , n la transformacion

% elemental correspondiente

‚ for j “ k ` 1 : n‚ aij “ aij ´ likakj

‚ end for‚ end for

‚ end for% A se ha convertido en triangular superior: es la U‚ U “ A

El algoritmo para la factorizacion LU es el primer algoritmo que vemos en estecurso. Se trata de un algoritmo sencillo pero eso no significa que sea bueno. Disenarbuenos algoritmos puede ser una tarea complicada y decidir si un algoritmo esbueno tambien. Hay dos propiedades fundamentales que se deben exigir a un buenalgoritmo: que sea estable y sea poco costoso. Estudiaremos en el Capıtulo 5 lo quesignifica que un algoritmo es estable y analizaremos si la eliminacion Gaussiana loes.

Para un algoritmo como el que acabamos de ver, su coste se mide en funcion delnumero de operaciones que hay que realizar. A estas operaciones se les suele llamarflops (por floating point operations). Cada suma, resta, multipliacion y division esuna flop. No distinguiremos entre operaciones con numeros reales o complejos ytampoco prestaremos atencion a otras operaciones que realizan internamente los

Page 26: Ampliaci´on de Métodos Numéricos

26 Vectores y Matrices. Factorizacion LU

ordenadores (como asignacion de memoria o realojamiento de variables, dedicacionde los procesadores a las distintas tareas que se esten realizando en el momento decorrer el algoritmo, etc). No obstante se debe saber que estos factores pueden afectaren gran medida al tiempo necesario para la ejecucion del algoritmo.

Normalmente el numero de flops es un polinomio en el tamano de la matriz. Deeste polinomio solo se suele destacar el termino de grado mayor. Ası, se suele decir

que el coste del algoritmo LU es de orden2

3n3 y se escribe habitualmente „ 2

3n3

o simplemente Opn3q. ¿ Como se calcula este numero? Contando las operacionesaritmeticas que se realizan en las dos lıneas del algoritmo:

lik “ aik{akkaij “ aij ´ likakj

La primera consiste de una division mientras que la segunda de una resta y unamultiplicacion. Esta domina a aquella y teniendo en cuenta que la longitud delvector j es p “ n´ k ` 1 resulta que 2p es el numero de operaciones necesario paraconseguir los elementos de la fila i de A

pkq22 . Y esto hay que repetirlo para j “ k : n

y para k “ 1 : n ´ 1. Ası pues, el numero de operaciones esta dominado por laexpresion:

n´1ÿ

k“1

nÿ

i“k`1

nÿ

j“k`1

2 “n´1ÿ

k“1

2pn´ kq2 “n´1ÿ

k“1

2k2 “ 2npn´ 1qp2n´ 1q

6„ 2

3n3

tal y como se ha dicho mas arriba. Se dice entonces que el coste del algoritmo LU esde orden 2

3n3. Cuando se habla sin mucha precision tambien se dice que es de orden

cubico o n3. Sin embargo, el coeficiente 2{3 no carece de importancia cuando n esmuy grande.

Notese finalmente que para obtener el vector bpnq en (1.4) se necesita un numerode operaciones de orden n2.

Interpretar la EG como una factorizacion LU es muy importante. De hecho,es muy importante el punto de vista de la factorizacion de matrices como metodode pensamiento y tambien para el calculo numerico. Damos algunos ejemplos enrelacion a la factorizacion LU . Supongamos que A “ LU es una factorizacion LU deA. Para resolver el sistema Ax “ b podemos escribir LUx “ b. Resolvemos entoncesel sistema Ly “ b y encontramos la solucion del sistema original resolviendo elsistema Ux “ y. Ası, x se obtiene resolviendo dos sistemas triangulares, el primero

Page 27: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 27

por sustitucion hacia adelante:

y1 “ b1

yk “ bk ´k´1řj“1

lkjyj, k “ 2, . . . , n,

y el otro mediante sustitucion hacia atras (1.5). El coste operacional de resolversistemas triangulares por sustitucion hacia adelante o hacia atras es de orden n2:un orden menor que la eliminacion gaussiana. Se puede objetar que aunque esto seaverdad, para resolver el sistema primero se ha tenido que realizar la factorizacion LUque es de orden cubico y, por lo tanto, el coste total para la resolucion del sistema esde ese ordenes se haga directamente mediante eliminacion gaussiana o mediante lafactorizacion LU y sustitucion hacia adelante y hacia atras. Y e cierto, pero ahoravienen las ventajas de hacer la factorizacion LU :

(i) Si tenemos que resolver el mismo sistema para varios vectores b, solo tendrıamosque resolver, para cada uno de ellos, dos sistemas triangulares y no hacer eli-minacion gaussiana desde el principio para cada uno. Este es el caso paracalcular la inversa de A: debemos calcular X tal que AX “ In. Ası pues,debemos resolver n sistemas Axi “ ei, i “ 1, . . . , n.

(ii) De forma parecida, resolver el sistema ATy “ c se reduce a resolver dos siste-mas triangulares: UT z “ c y LTy “ z.

(ii) Otro ejemplo es el calculo del numero α “ yTA´1x que se puede escribir comoα “ pyTU´1qpL´1xq. En realidad L´1x significa calcular un vector, digamosz, tal que L´1x “ z. Pero esto no es mas que resolver el sistema Lz “ x.De la misma forma yTU´1 “ vT equivale a yT “ vTU que es equivalente aresolver el sistema UTv “ y. Una vez resueltos estos dos sistemas triangulares,α “ vT z. El numero de operaciones necesarias para todo el proceso es de ordenn2. Calcular la inversa de A usando el procedimiento de (i) es de orden n3 unavez que tenemos la factorizacion LU de A que tambien es de orden cubico. Entotal orden n3.

1.3.1. Pivoteo

El proceso de eliminacion gaussiana falla cuando apkqkk “ 0 para algun k. Por esta

razon y por consideraciones de estabilidad que estudiaremos en el Capıtulo 5, se

Page 28: Ampliaci´on de Métodos Numéricos

28 Vectores y Matrices. Factorizacion LU

introduce la estrategia del pivoteo. Hay tres tipos de pivoteo: parcial, total y, menosconocido pero a veces util, de “torre de ajedrez”. Solo trataremos el pivoteo parcial,que consiste en lo siguiente:

al comienzo de la etapa k, se intercambian las filas k y r estando r determinadapor la condicion:

|apkqrk | “ maxkďiďn

|apkqik |

En palabras, se busca en la columna k por debajo de la diagonal un elemento(puede haber mas de uno) que en modulo (valor absoluto) sea mayor que elmodulo de los demas elementos en la columna k desde el elemento diagonalpara abajo. Entonces se intercambian las filas k y la del elemento encontrado demanera que, tras el intercambio, el elemento en la diagonal (el nuevo pivote)tiene modulo mayor o igual que los demas elementos en esa columna de ladiagonal para abajo. La eleccion de un elemento de modulo maximo (y nocualquier elemento no nulo) tiene importantes consecuencias en la estabilidadque veremos en el Capıtulo 5.

Recuerdese que el intercambio de dos filas de una matriz se consigue pre-multiplicandola matriz por una matriz de transposicion. Por lo tanto la eliminacion gaussiana conpivote parcial (EGPP) se puede describir como un producto de matrices:

Mn´1Pn´1Mn´2Pn´2 . . .M2P2M1P1A “ U,

siendo Pk la matriz que cambia la fila k con alguna posterior r (r ą k). En realidadeste procedimiento esconde otra factorizacion. Se entendera perfectamente con uncaso particular. Supongamos n “ 5, y recordemos que las matrices de transposicionson su propia inversa: P´1

k “ Pk o, PkPk “ In. Entonces

U “ M4P4M3P3M2P2M1P1A“ M4 ¨ P4M3P4looomooon

M 13

¨P4P3M2P3P4loooooomoooooonM 1

2

¨P4P3P2M1P2P3P4loooooooooomoooooooooonM 1

1

¨P4P3P2P1loooomoooonP

¨A

“ M4M13M

12M

11PA

¿Que relacion hay entre Mk y M 1k? Analicemoslo. Recordemos que Pk es la matriz

identidad excepto que las filas k y r (r ą k) estan intercambiadas. Entonces, paraj ą k la submatriz Pjp1 : k, 1 : kq formada por las primeras k filas y columnas de

Page 29: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 29

Pj es la matriz identidad. Por lo tanto Pjek “ ek y ası Pn´1Pn´2 . . . Pk`1ek “ ek y

M 1k “ Pn´1Pn´2 . . . Pk`1pIn ´mke

Tk qPk`1 . . . Pn´2Pn´1

“ pIn ´ Pn´1Pn´2 . . . Pk`1mkeTk

“ In ´m1keTk ,

donde m1k es el mismo vector que mk pero con los elementos en las posiciones k ` 1

hasta n permutados de acuerdo con la eleccion del pivote. Es decir, si en Pk`1

estan intercambiadas las filas k ` 1 y rk`1 entonces Pk`1mk es el vector mk con loselementos k ` 1 y rk`1 intercambiados; si Pk`2 intercambia las filas k ` 2 y rk`2

entonces Pk`2Pk`1mk es el mismo vector que mk en el que primero se intercambianlas filas k ` 1 y rk`1 y, en el vector obtenido, se intercambian las filas k ` 2 y rk`2;y ası sucesivamente.

En definitiva, PA “ LU donde P “ Pn´1Pn´2 . . . P2P1

L “M 1´11 M 1´1

2 . . .M 1´1n´2M

´1n´1 “

»—————–

1m1

21 1... m1

32. . .

......

. . .

m1n1 m1

n2 ¨ ¨ ¨ mnn´1 1

fiffiffiffiffiffifl

En conclusion el proceso EGPP aplicado a una matriz A produce una factorizacionLU de PA.

Hay un par de observaciones que es importante tener en cuenta:

(i) En general, la matriz de permutacion P no se puede determinar a priori deforma simple.

(ii) Los pivotes que van apareciendo son todos distintos de cero si y solo si detA ‰0. Esto es consecuencia de que si todos los elementos de la columna k por deba-jo e incluyendo la diagonal son cero entonces detA

pkq22 “ 0 y, en consecuencia,

detA “ 0. En otras palabras, si detA ‰ 0 la EGPP siempre produce unafactorizacion LU de PA para alguna matriz de permutacion P .

La primera version de un algoritmo para calcular las matrices P , L y U talesque PA “ LU para una matriz A P Fnˆn dada con detA ‰ 0 serıa la siguiente

Page 30: Ampliaci´on de Métodos Numéricos

30 Vectores y Matrices. Factorizacion LU

Factorizacion LU con pivoteo parcial. Version 1

Dato: A P Fnˆn, detA ‰ 0Objetivo: calcular matrices P , de permutacion, L, triangular inferior con unosen la diagonal principal, y U , triangular superior, tales que PA “ LU .

‚ L “eyepnq‚ for k “ 1 : n´ 1‚ Calculese el elemento de mayor valor absoluto de los elementos en lasposiciones pk, kq, pk, k ` 1q, . . . , pk, nq y la posicion que ocupa, digamos r‚ Permutense las filas k y r de A, L y P

for i “ k ` 1 : n% Ponemos los multiplicadores en la columna k de Llik “ aik{akk% Por debajo de pk, kq los elementos de A en la columna k% seran 0

aik “ 0% Realizamos sobre las filas k ` 1, . . . , n la transformacion

% elemental correspondiente

for j “ k ` 1 : naij “ aij ´ likakj

end forend for

end for% PA se ha convertido en triangular superior: es la UU “ A

Notese que para cada k “ 1 : n´ 1 debemos permutar las filas k y r de A (paracalcular el nuevo pivote en la posicion pk, kq), L (para obtener los elementos m1

ik queson los permutados de mik) y P (porque P “ Pn´1 . . . P2P1 y cada Pk permuta lasfilas k y r del producto Pk´1 . . . P2P1).

En lenguaje de MATLAB el algoritmo anterior quedarıa de la siguiente forma:

function [L,U,P] = lutxforv1(A)

%LUTXFORV1 devuelve matrices L, triangular inferior con 1 en la diagonal,

Page 31: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 31

%U, triangular superior y P de permutacion tal que PA=LU. En vez

%trabajar con la matriz P se trabaja con un vector p que almacena las

%transposiciones y a partir del cual se construye P. La matriz L se define

%y actualiza de forma explıcita y se utilizan bucles FOR para

%todos los contadores.

% Calculamos el tama~no de A

[n,n] = size(A);

%Iniciamos p=[1 2 ... n]^T

p = (1:n)’;

% y L

L=eye(n);

%Transformaciones elementales en las columnas 1, 2,..., n-1.

for k = 1:n-1

%Calculamos el maximo, r, (en valor absoluto) de los elementos

% A(k,k), A(k,k+1),...,A(k,n), y la posicion, m, donde se encuentra

[m,r] = max(abs(A(k:n,k)));

% Calculamos la posicion del maximo en toda la columna k-esima de A

r = r+k-1;

%Si el maximo fuera cero es porque toda la columna es cero y A no serıa

%invertible

if (A(r,k) ~= 0)

%Si el maximo no esta en la diagonal permutamos

if (r ~= k)

%permutamos las filas k y r en A

A([k r],k:n) = A([r k],k:n);

%en L

L([k r],1:k-1) = L([r k],1:k-1);

% y las posiciones k y r de p

p([k r]) = p([r k]);

end

%L esta fromada por los multiplicadores

for i = k+1:n;

L(i,k) = A(i,k)/A(k,k);

% Por debajo de (k,k) los elementos de A en la columna k seran 0

A(i,k)=0;

% Realizamos sobre las filas i=k+1,...,n la transformacion elemental

Page 32: Ampliaci´on de Métodos Numéricos

32 Vectores y Matrices. Factorizacion LU

for j = k+1:n;

A(i,j) = A(i,j) - L(i,k)*A(k,j);

end

end

end

%A se ha convertido en triangular superior: es la U

U=A;

% Construımos P a partir de p: las filas 1:n de P son las de la permutacion

P=eye(n); P=P(p,:);

Se puede mejorar un poco este algoritmo sin definir explıcitamente la matriz Laprovechando que para cada k los elementos ak`1k,. . . , ank se van a hacer cero. Laidea es almacenar los multiplicadores en dichas posisiciones; es decir hacer Api, kq “Lpi, kq. Pero entonces no es necesario hacer

L(i,k) = A(i,k)/A(k,k);

A(i,k)=L(i,k);

Basta poner

A(i,k) = A(i,k)/A(k,k);

Claro que tambien hay que sustituir la lınea

L([k r],1:k-1) = L([r k],1:k-1);

por

A([k r],1:k-1) = A([r k],1:k-1);

Pero como en la lınea anterior tenemos

A([k r],k:n) = A([r k],k:n);

podemos poner las dos lıneas juntas (recordemos que : significa 1 : n):

A([k r],:) = A([r k],:);

Al finalizar el algoritmo tanto L como U estan almacenadas en la matriz A. Paraextraerlas se usan los comandos tril y triu de MATLAB.

En lenguaje MATLAB tendrıamos:

function [L,U,P] = lutxfor(A)

%LUTXFOR devuelve matrices L, triangular inferior con 1 en la diagonal,

Page 33: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 33

%U, triangular superior y P de permutacion tal que PA=LU. En vez

%trabajar con la matriz P se trabaja con un vector p que almacena las

%transposiciones y a partir del cual se construye P. Las matrices L y U

%no se definen de forma expl\’icita y se almacenan en las partes triangular

%inferior y superior de A a medida que se van construyendo. Se utilizan

%bucles FOR para todos los contadores.

% Calculamos el tama~no de A

[n,n] = size(A);

%Iniciamos p=[1 2 ... n]^T

p = (1:n)’;

%Transformaciones elementales en las columnas 1, 2,..., n-1.

for k = 1:n-1

%Calculamos el maximo, r, (en valor absoluto) de los elementos

% A(k,k), A(k,k+1),...,A(k,n), y la posicion, m, donde se encuentra

[m,r] = max(abs(A(k:n,k)));

% Calculamos la posicion del maximo en toda la columna k-esima de A

r = r+k-1;

%Si el maximo fuera cero es porque toda la columna es cero y A no serıa

%invertible

if (A(r,k) ~= 0)

%Si el maximo no esta en la diagonal permutamos

if (r ~= k)

%permutamos las filas k y r en A (que incluyen las de L)

A([k r],:) = A([r k],:);

% y las posiciones k y r de p

p([k r]) = p([r k]);

end

for i = k+1:n;

A(i,k)=A(i,k)/A(k,k);

% Realizamos sobre las filas i=k+1,...,n la transformacion elemental

for j = k+1:n;

A(i,j) = A(i,j) - A(i,k)*A(k,j);

end

end

end

end

Page 34: Ampliaci´on de Métodos Numéricos

34 Vectores y Matrices. Factorizacion LU

%En la parte triangular inferior de A (sin la diagonal) esta L

L = tril(A,-1) + eye(n,n);

%Y en la parte triangular superior (incluyendo la diagonal) esta U

U = triu(A);

% Construımos P a partir de p: las filas 1:n de P son las de la permutacion

P=eye(n); P=P(p,:);

La ultima mejora (enseguida veremos por que se trata de una mejora) consisteen suprimir los bucles for de i y j sustituyendolos por una “actualizacion de rango1’ ’ como sigue:

function [L,U,p] = lutx(A)

%LUTX devuelve matrices L, triangular inferior con 1 en la diagonal,

%U, triangular superior y P de permutacion tal que PA=LU. En vez

%trabajar con la matriz P se trabaja con un vector p que almacena las

%transposiciones y a partir del cual se construye P. Las matrice L y U

%no se definen de forma expl\’icita y se almacenan en las partes triangular

%inferior y superior de A a medida que se van construyendo. Se utilizan

%actualizaciones de rango 1.

% Calculamos el tama~no de A

[n,n] = size(A);

%Iniciamos p=[1 2 ... n]^T

p = (1:n)’;

% y L

L=eye(n);

%Transformaciones elementales en las columnas 1, 2,..., n-1.

for k = 1:n-1

%Calculamos el maximo, r, (en valor absoluto) de los elementos

% A(k,k), A(k,k+1),...,A(k,n), y la posicion, m, donde se encuentra

[m,r] = max(abs(A(k:n,k)));

% Calculamos la posicion del maximo en toda la columna k-esima de A

r = r+k-1;

%Si el maximo fuera cero es porque toda la columna es cero y A no serıa

%invertible

if (A(r,k) ~= 0)

%Si el maximo no esta en la diagonal permutamos

if (r ~= k)

Page 35: Ampliaci´on de Métodos Numéricos

1.3 Factorizacion LU 35

%permutamos las filas k y r en A (que incluyen las de L)

A([k r],:) = A([r k],:);

% y las posiciones k y r de p

p([k r]) = p([r k]);

end

i = k+1:n;

A(i,k)=A(i,k)/A(k,k);

% Realizamos sobre las filas i=k+1,...,n la transformacion elemental

j = k+1:n;

A(i,j) = A(i,j) - A(i,k)*A(k,j);

end

end

%En la parte triangular inferior de A (sin la diagonal) esta L

L = tril(A,-1) + eye(n,n);

%Y en la parte triangular superior (incluyendo la diagonal) esta U

U = triu(A);

%A se ha convertido en triangular superior: es la U

U=A;

% Construımos P a partir de p: las filas 1:n de P son las de la permutacion

P=eye(n); P=P(p,:);

Se ha sustituido

for i=k+1:n;

A(i,k)=A(i,k)/A(k,k);

end

por

i=k+1:n;

A(i,k)=A(i,k)/A(k,k);

Es decir, Apk ` 1 : n, kq “ Apk ` 1 : n, kq{Apk, kq. Es evidente que el resultado enambos casos es el mismo. Mas importante es la sustitucion

for i=k+1:n;

for j=k+1:n

A(i,j) = A(i,j) - A(i,k)*A(k,j);

end

end

por

Page 36: Ampliaci´on de Métodos Numéricos

36 Vectores y Matrices. Factorizacion LU

i=k+1:n;

j=k+1:n

A(i,j) = A(i,j) - A(i,k)*A(k,j);

En ambos casos el resultado es el mismo (¿por que?) pero la naturaleza de lasoperaciones es completamente diferente. En el primer caso se van recorriendo loselementos de la matriz Apk ` 1 : n, k ` 1 : nq por filas y para cada elemento sehace la operacion Api, jq “ Api, jq ´ Api, kqApk, jq. En el segundo caso se opera lamatriz completa: como i y j son el vector k` 1 : n, Api, jq es la submatriz Apk` 1 :n, k ` 1 : nq. A este submatriz se le resta el producto Apk ` 1 : n, kqApk, k ` 1 : nq.Notese que Apk` 1 : n, kq es una matriz pn´ kq ˆ 1 y Apk, k` 1 : nq es 1ˆ pn´ kq.Por lo tanto, Apk ` 1 : n, kqApk, k ` 1 : nq es una matriz pn ´ kq ˆ pn ´ kq derango 1. De ahı que se haya dicho que se usan actualizaciones de rango 1: paracada k “ 1 : n ´ 1 se actualiza la matriz Apk ` 1 : n, k ` 1 : nq con la matrizApk` 1 : n, kqApk, k` 1 : nq que es de rango 1. En la siguiente seccion veremos porque, en general, es mas eficiente esta forma de proceder que la utilizacion de buclesfor.

En relacion al coste de los algoritmos LUTX y LUTXFOR, ambos tienen el mis-mo coste operacional que el algoritmo LU sin pivoteo („ 2

3n3). La razon es que el ma-

yor numero de operaciones se realiza en la sentencia Api, jq “ Api, jq´Api, kqApk, jq,que es la misma en los tres algoritmos. Los algoritmos LUTX y LUTXFOR, sin em-bargo, realizan realojamientos de memoria (para los pivoteos) que no estan presentesen el algoritmo LU sin pivoteo. Para sistemas de grandes dimensiones esto puedesuponer un mayor tiempo de ejecucion que queda compensado, por lo general, poruna mayor estabilidad de los primeros.

1.4. Subrutinas Basicas de Algebra Lineal (BLAS)

Para entender por que el algoritmo LUTX es mas eficiente que LUTXFOR,debemos comprender como opera la memoria de los ordenadores. Resulta que lamemoria de todos los ordenadores esta jerarquizada dependiendo del material delque esta hecha y, en consecuencia, de lo cara que es. Ası, los registros estan en laparte alta de la jerarquıa siendo la memoria mas rapida hecha de una material muycaro. Por lo tanto hay poca memoria de este tipo. Despues esta la memoria cache,la memoria principal (RAM), los discos, etc. La siguiente figura es una idealizacionde la jerarquıa de la memoria de los ordenadores.

Page 37: Ampliaci´on de Métodos Numéricos

1.4 Subrutinas Basicas de Algebra Lineal (BLAS) 37

Registros

Cache

RAM

Disco

Las operaciones logicas y aritmeticas se hacen solo en la parte alta de la memoria, enlos registros. Los datos almacenados en un nivel de la memoria pueden moverse a losniveles adyacentes; por ejemplo, entre memoria RAM y disco. La velocidad a la que semueven los datos entre niveles es muy alta en la parte superior de la memoria (entreregistros y cache, por ejemplo) y lenta en la parte baja. En concreto, la velocidada la que se realizan las operaciones aritmeticas es de 10 a 10000 veces mas rapidaque el movimiento de los datos entre los niveles bajos de la memoria (dependiendodel nivel). Esto significa que un algoritmo mal disenado puede consumir mucho mastiempo moviendo los datos de los niveles bajos de la memoria a los registros pararealizar las operaciones aritmeticas necesarias que haciendolas propiamente.

Dado que operaciones tales como multiplicar matrices son tan comunes, losconstructores de ordenadores las han estandarizado como Subrutinas Basicas deAlgebra Lineal (BLAS por sus iniciales en ingles) y las han optimizado para susmaquinas. A la hora de disenar un algoritmo es importante tener en cuenta lassubrutinas BLAS para optimizar el tiempo de ejecucion del mismo.

En la siguiente tabla se muestran el numero de referencias de memoria (numerode “datos” que se deben mover entre los distintos niveles de la memoria, m) yoperaciones en punto flotante para tres subrutinas importantes de BLAS:

Operacion Definicion flops (f) ref. memoria (m) Ratio q “ f{mBLAS1(saxpy)

y “ αx` y 2n 3n` 1 2/3

BLAS2 y “ Ax` y 2n2 n2 ` 3n 2BLAS3 C “ AB ` C 2n3 4n2 n{2

Por ejemplo, la operacion concocida como saxpy que consiste en actualizar un vectory de tamano n ˆ 1 con el producto de otro x por un numero α, precisa de 2noperaciones: n productos y n sumas. Como necesitamos mover al registro desde

Page 38: Ampliaci´on de Métodos Numéricos

38 Vectores y Matrices. Factorizacion LU

niveles inferiores de memoria n valores yi del vector original, n valores xi de x y elnumero α y devolver del registro al correspondiente nivel inferior n valores yi delresultado de la operacion, tenemos m “ 3n ` 1 referencias de memoria. La ultimacolumna nos da la razon q de los flops a las referencias de memoria.

El significado de q es que nos da aproximadamente el numero de flops porreferencia de memoria por cada operacion, o si se quiere, la cantidad de trabajoutil que se realiza en relacion al tiempo consumido moviendo datos entre los nivelesde memoria. Por ejemplo, supongamos que un algoritmo debe realizar f flops ycada una de ellas tarda taritm segundos en realizarse en los registros. Supongamostambien que dicho algoritmo necesita m referencias de memoria y cada una de ellastarda tmem segundos en realizarse. Suponiendo que las operaciones aritmeticas yel movimiento de los datos entre los distintos niveles de memoria no se realiza enparalelo, el tiempo total que tardarıa el algoritmo es:

f ¨ taritm `m ¨ tmem “ f ¨ taritmˆ

1` m

f¨ tmemtaritm

˙“ f ¨ taritm ¨

ˆ1` 1

q

tmemtaritm

˙.

Por lo tanto, cuanto mayor sea el valor de q, mas proximo estara el tiempo totaldel tiempo optimo f ¨ taritm de realizacion de las operaciones en el registro. Estosignifica que los algoritmos disenados para realizar operaciones con valores de qaltos son mejores que aquellos que no lo hacen.

En la tabla de mas arriba se aprecia que operaciones como saxpy tienen un costeOpn1q pero ofrecen el peor valor de q. Se llaman operaciones de Nivel 1 de BLASu operaciones BLAS1 y en esta categorıa estan inlcuıdas: los productos internos devectores o las multiplicaciones de vectores por escalares. Operaciones como multipli-cacion de matrices y vectores tienen un coste Opn2q y ofrecen un mejor valor de q.Se llaman operaciones de Nivel 2 de BLAS u operaciones BLAS2. Incluyen: resolversistemas triangulares de ecuaciones lineales o actualizaciones de rango 1. Operacio-nes tales como multiplicar matrices tienen un coste Opn3q y ofrecen el mejor valorde q. Son las operaciones del Nivel 3 de BLAS u operaciones BLAS3 e inlcuyen la re-solucion de sistemas lineales con varios terminos independientes y, en consecuencia,el calculo de la inversa de una matriz.

El algoritmo LUTXFOR usa operaciones BLAS1 mientras que LUTX utilizaoperaciones BLAS2 para realizar las operaciones aritmeticas fundamentales.