cap tulo 7 - uvinformatica.uv.es/iiguia/mc/teoria/mc_capitulo7.pdf · es f acil ver que el valor de...

26
Cap´ ıtulo 7 Resoluci´ on de sistemas de ecuaciones lineales 63

Upload: others

Post on 29-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Capıtulo 7

Resolucion de sistemas deecuaciones lineales

63

64 Metodos de resolucion exacta

7.1 Introduccion

El objetivo de este apartado es examinar los aspectos numericos que se presentan al resolversistemas de ecuaciones lineales de la forma:

a11x1 + a12x2 + a13x3 + · · ·+ a1nxn = b1a21x1 + a22x2 + a23x3 + · · ·+ a2nxn = b2a31x1 + a32x2 + a33x3 + · · ·+ a3nxn = b3...

...an1x1 + an2x2 + an3x3 + · · ·+ annxn = bn

(7.1)

Se trata de un sistema de n ecuaciones con n incognitas, x1, x2, . . . , xn. Los elementos aij ybi son numeros reales fijados.

El sistema de ecuaciones (7.1) se puede escribir, empleando una muy util representacionmatricial, como:

a11 a12 a13 · · · a1n

a21 a22 a23 · · · a2n

a31 a32 a33 · · · a3n...

......

. . ....

an1 an2 an3 · · · ann

x1

x2

x3...xn

=

b1b2b3...bn

(7.2)

Entonces podemos denotar estas matrices por A, x y b de forma que la ecuacion se reducesimplemente a:

Ax = b (7.3)

Los metodos de resolucion de sistemas de ecuaciones se pueden dividir en dos grandesgrupos:

• Los Metodos exactos o algoritmos finitos que permiten obtener la solucion del sistemade manera directa.

• Los Metodos aproximados que utilizan algoritmos iterativos e infinitos y que calculanlas solucion del sistema por aproximaciones sucesivas.

Al contrario de lo que pueda parecer, en muchas ocasiones los metodos aproximadospermiten obtener un grado de exactitud superior al que se puede obtener empleando losdenominados metodos exactos, debido fundamentalmente a los errores de truncamiento quese producen en el proceso.

De entre los metodos exactos analizaremos el metodo de Gauss y una modificacion de estedenominado metodo de Gauss-Jordan. Entre los metodos aproximados nos centraremos en elestudio de los metodos de Richardson, Jacobi y Gauss-Seidel.

7.2 Metodos de resolucion exacta

Antes de abordar el estudio de los metodos de resolucion exacta de sistemas de ecuacioneslineales, analizaremos algunas propiedades y relaciones utiles que caracterizan a estos sistemas.

Sistemas faciles de resolver 65

7.2.1 Sistemas faciles de resolver

Analizaremos previamente un sistema que sea facil de resolver. Por ejemplo, supongamos quela matriz A de n× n presenta estructura diagonal, es decir, todos los componentes distintosde cero se encuentran sobre la diagonal principal. El sistema de ecuaciones (7.2) toma portanto la forma:

a11 0 0 · · · 00 a22 0 · · · 00 0 a33 · · · 0...

......

. . ....

0 0 0 · · · ann

x1

x2

x3...xn

=

b1b2b3...bn

(7.4)

En este caso el sistema se reduce a n ecuaciones simples y la solucion es:

x =

b1/a11

b2/a22

b3/a33...

bn/ann

(7.5)

Continuando con la busqueda de sistemas con soluciones faciles, supongamos ahora queA tiene una estructura triangular inferior, es decir, todos los elementos de A distintos de cerose situan bajo la diagonal principal:

a11 0 0 · · · 0a21 a22 0 · · · 0a31 a32 a33 · · · 0...

......

. . ....

an1 an2 an3 · · · ann

x1

x2

x3...xn

=

b1b2b3...bn

(7.6)

Es facil ver que el valor de x1 se obtiene directamente a partir de la primera ecuacion. Sus-tituyendo el valor conocido de x1 en la segunda ecuacion es posible obtener el valor de x2.Procediendo de la misma forma para el resto de las ecuaciones, es posible obtener todos losvalores x1 , x2, x3, . . . , xn uno tras otro y en ese orden. El algoritmo formal para encontrarla solucion se denomina sustitucion progresiva y se puede expresar como:

xi =

bi −

i−1∑

j=1

aijxj

/aii (i = 1, 2, . . . , n) (7.7)

Se puede emplear el mismo razonamiento para el caso en que la estructura de la matrizA sea triangular superior. En este caso el sistema matricial adopta la forma:

a11 a12 a13 · · · a1n

0 a22 a23 · · · a2n

0 0 a33 · · · a3n...

......

. . ....

0 0 0 · · · ann

x1

x2

x3...xn

=

b1b2b3...bn

(7.8)

66 Metodos de resolucion exacta

y es posible obtener las soluciones en el orden xn, xn−1, . . . , x1, empleando en este caso unamodificacion del algoritmo expresado por la ecuacion (7.7) y que denominados algoritmo desustitucion regresiva:

xi =

bi −

n∑

j=i+1

aijxj

/aii (i = n, n− 1, . . . , 1) (7.9)

Como es logico, los metodos descritos se pueden aplicar a todos aquellos sistemas que sepueden convertir en un sistema triangular permutando filas y columnas de forma adecuada.

7.2.2 La factorizacion LU

Supongamos que A se puede factorizar como el producto de una matriz triangular inferior Lcon una matriz triangular superior U :

A = LU (7.10)

En este caso, el sistema de ecuaciones dado por (7.3) podrıa representarse en la forma:

LUx = b (7.11)

Si denominamos z a la matriz columna de n filas resultado del producto de las matrices Ux,tenemos que la ecuacion (7.11) se puede reescribir del siguiente modo:

Lz = b (7.12)

A partir de las ecuaciones (7.11) y (7.12), es posible plantear un algoritmo para resolver elsistema de ecuaciones empleando dos etapas:

• Primero obtenemos z aplicando el algoritmo de sustitucion progresiva en la ecua-cion (7.12).

• Posteriormente obtenemos los valores de x aplicando el algoritmo de sustitucion re-gresiva a la ecuacion

Ux = z

El analisis anterior nos muestra lo facil que es resolver estos dos sistemas de ecuacionestriangulares y lo util que resultarıa disponer de un metodo que nos permitiera llevar a cabola factorizacion A = LU . Si disponemos de una matriz A de n × n, estamos interesados enencontrar aquellas matrices:

L =

l11 0 0 · · · 0l21 l22 0 · · · 0l31 l32 l33 · · · 0...

......

. . ....

ln1 ln2 ln3 · · · lnn

U =

u11 u12 u13 · · · u1n

0 u22 u23 · · · u2n

0 0 u33 · · · u3n...

......

. . ....

0 0 0 · · · unn

La factorizacion LU 67

tales que cumplan la ecuacion (7.10). Cuando esto es posible, decimos que A tiene una des-composicion LU . Se puede ver que las ecuaciones anteriores no determinan de forma unicaa L y a U . Es facil ver que L tiene n(n+1)

2 elementos no nulos, y U otros tantos, luego entotal tenemos n(n + 1) = n2 + n incognitas, y solo n2 ecuaciones (una por cada elementoque se iguala). Esto significa que podemos asignar valores arbitrarios a n de las incognitas,en concreto, para cada i podemos asignar un valor distinto de cero a lii o bien a uii (aunqueno a ambos). Por ejemplo, una eleccion simple es fijar lii = 1 para i = 1, 2, . . . , n haciendode esto modo que L sea una matriz triangular inferior unitaria. Otra eleccion es hacer U unamatriz triangular superior unitaria (tomando uii = 1 para cada i).

Para deducir un algoritmo que nos permita la factorizacion LU de A partiremos de laformula para la multiplicacion de matrices:

aij =n∑

s=1

lisusj =

mın(i,j)∑

s=1

lisusj (7.13)

en donde nos hemos valido del hecho de que lis = 0 para s > i y usj = 0 para s > j.

En este proceso, cada paso determina una nueva fila de U y una nueva columna de L. Enel paso k, podemos suponer que ya se calcularon las filas 1, 2, . . . , k− 1 de U , al igual que lascolumnas 1, 2, . . . , k − 1 de L. Haciendo i = j = k en la ecuacion (7.13) obtenemos

akk = lkkukk +k−1∑

s=1

lksusk (7.14)

Si especificamos un valor para lkk (o para ukk), a partir de la ecuacion (7.14) es posibledeterminar un valor para el otro termino. Conocidas ukk y lkk y a partir de la ecuacion (7.13)podemos escribir las expresiones para la k-esima fila (i = k) y para la k-esima columna(j = k), respectivamente:

akj = lkkukj +k−1∑

s=1

lksusj (k + 1 ≤ j ≤ n) (7.15)

aik = likukk +

k−1∑

s=1

lisusk (k + 1 ≤ i ≤ n) (7.16)

Es decir, las ecuaciones (7.16) se pueden emplear para encontrar los elementos ukj y lik.

El algoritmo basado en el analisis anterior se denomina factorizacion de Doolittlecuando se toman los terminos lii = 1 para 1 ≤ i ≤ n (L triangular inferior unitaria) y facto-rizacion de Crout cuando se toman los terminos uii = 1 (U triangular superior unitaria).

Una implementacion en pseudocodigo del algoritmo para llevar a cabo la factorizacion LUse muestra en la figura (7.1).

Es interesante notar que los bucles que permiten el computo de la k-esima fila de U yde la k-esima columna de L se pueden llevar a cabo en paralelo, es decir, pueden evaluarsesimultaneamente sobre dos procesadores, lo que redunda en un importante ahorro del tiempode calculo.

68 Metodos de resolucion exacta

input n,(aij)for k = 1, 2, . . . , n do

Especificar un valor para lkk o ukk.Calcular el otro termino mediante:

lkkukk = akk −∑k−1

s=1 lksusk

for j = k + 1, k + 2, . . . , n do

ukj ←(akj −

∑k−1s=1 lksusj

)/lkk

end

for i = k + 1, k + 2, . . . , n do

lik ←(aik −

∑k−1s=1 lisusk

)/ukk

endendoutput (lij),(uij)

Figura 7.1: Implementacion del algoritmo de la factorizacion LU .

Ejemplo: Encuentre las factorizaciones de Doolittle y Crout de la matriz:

A =

60 30 2030 20 1520 15 12

La factorizacion de Doolittle es, a partir del algoritmo:

A =

1 0 012 1 013 1 1

60 30 200 5 50 0 1

3

= LU

En vez de calcular la factorizacion de Crout directamente, la podemos obtener a partir dela factorizacion de Doolittle que acabamos de ver. Efectivamente, si tenemos en cuenta quela matriz A es simetrica, es posible comprobar que se cumple la relacion:

A = LU = UTLT

por lo que la factorizacion de Crout resulta ser:

A =

60 0 030 5 020 5 1

3

1 12

13

0 1 10 0 1

= UTLT

Notese, no obstante, que esto solo es valido para matrices simetricas. En las otras, habrıaque volver a resolver el sistema de ecuaciones haciendo, en el caso de Crout, uii = 1.

Eliminacion gaussiana basica 69

7.2.3 Eliminacion gaussiana basica

Ilustraremos el metodo de Gauss aplicando el procedimiento a un sistema de cuatro ecuacionescon cuatro incognitas:

6 −2 2 412 −8 6 103 −13 9 3−6 4 1 −18

x1

x2

x3

x4

=

123427−38

(7.17)

En el primer paso, multiplicamos la primera ecuacion por 126 = 2 y la restamos a la segunda,

despues multiplicamos la primera ecuacion por 36 = 1

2 y la restamos a la tercera y finalmentemultiplicamos la primera ecuacion por −6

6 = −1 y la restamos a la cuarta. Los numeros 2, 12

y −1 son los multiplicadores del primer paso del proceso de eliminacion. El numero 6 es elelemento pivote de este primer paso y la primera fila, que no sufre modificacion alguna, sedenomina fila pivote. El sistema en estos momentos tiene el siguiente aspecto:

6 −2 2 40 −4 2 20 −12 8 10 2 3 −14

x1

x2

x3

x4

=

121021−26

(7.18)

En el siguiente paso del proceso, la segunda fila se emplea como fila pivote y −4 comoelemento pivote. Aplicamos del nuevo el proceso: multiplicamos la segunda fila por −12

−4 = 3

y la restamos de la tercera y despues multiplicamos la segunda fila por 2−4 = −1

2 y la restamos

a la cuarta. Los multiplicadores son en esta ocasion 3 y − 12 y el sistema de ecuaciones se reduce

a:

6 −2 2 40 −4 2 20 0 2 −50 0 4 −13

x1

x2

x3

x4

=

1210−9−21

(7.19)

El ultimo paso consiste en multiplicar la tercera ecuacion por 42 = 2 y restarla a la cuarta. El

sistema resultante resulta ser:

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

x1

x2

x3

x4

=

1210−9−3

(7.20)

El sistema resultante es triangular superior y equivalente al sistema original (las solucionesde ambos sistemas coinciden). Sin embargo, este sistema es facilmente resoluble aplicando elalgoritmo de sustitucion regresiva explicado en el apartado 7.2.1. La solucion del sistemade ecuaciones resulta ser:

x =

1−3−2

1

70 Metodos de resolucion exacta

Si colocamos los multiplicadores utilizados al transformar el sistema en una matriz trian-gular inferior unitaria (L) ocupando cada uno de ellos la posicion del cero que contribuyo aproducir, obtenemos la siguiente matriz:

L =

1 0 0 02 1 0 012 3 1 0−1 −1

2 2 1

Por otra parte, la matriz triangular superior (U) formada por los coeficientes resultantes trasaplicar el algoritmo de Gauss (ecuacion 7.20), es:

U =

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

Estas dos matrices nos dan la factorizacion LU de la matriz inicial de coeficientes, A, expresadapor la ecuacion (7.17):

6 −2 2 412 −8 6 103 −13 9 3−6 4 1 −18

=

1 0 0 02 1 0 012 3 1 0−1 −1

2 2 1

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

input n,(aij),(bi)for k = 1, 2, . . . , n− 1 do

for i = k + 1, k + 2, . . . , n doz ← aik/akkaik ← 0for j = k + 1, k + 2, . . . , n do

aij ← aij − zakjend

bi ← bi − zbkend

endoutput (aij),(bi)

Figura 7.2: Implementacion del algoritmo de eliminacion gaussiana.

En la figura (7.2) se muestra un algoritmo en pseudocodigo para llevar a la practica elproceso basico de eliminacion gaussiana que acabamos de describir. En este algoritmo sesupone que todos los elementos pivote son distintos de cero.

Metodo de Gauss-Jordan 71

7.2.4 Metodo de Gauss-Jordan

Como hemos visto, el metodo de Gauss transforma la matriz de coeficientes en una matriztriangular superior. El metodo de Gauss-Jordan continua el proceso de transformacion hastaobtener una matriz diagonal unitaria (aij = 0 para cualquier i 6= j).

Veamos el metodo de Gauss-Jordan siguiendo con el ejemplo empleado en el apartadoanterior. Aplicando el metodo de Gauss habıamos llegado a la siguiente ecuacion:

6 −2 2 40 −4 2 20 0 2 −50 0 0 −3

x1

x2

x3

x4

=

1210−9−3

Ahora seguiremos un procedimiento similar al empleado en el metodo de Gauss. Tomare-mos como pivote el elemento a44 = −3; multiplicamos la cuarta ecuacion por − 4

3 y la restamosa la primera:

6 −2 2 00 −4 2 20 0 2 −50 0 0 −3

x1

x2

x3

x4

=

810−9−3

Realizamos la misma operacion con la segunda y tercera fila, obteniendo:

6 −2 2 00 −4 2 00 0 2 00 0 0 −3

x1

x2

x3

x4

=

88−4−3

Ahora tomamos como pivote el elemento a33 = 2, multiplicamos la tercera ecuacion por 22 = 1

y la restamos a la primera:

6 −2 0 00 −4 2 00 0 2 00 0 0 −3

x1

x2

x3

x4

=

128−4−3

Repetimos la operacion con la segunda fila:

6 −2 0 00 −4 0 00 0 2 00 0 0 −3

x1

x2

x3

x4

=

1212−4−3

Finalmente, tomamos como pivote a22 = −4, multiplicamos la segunda ecuacion por −2−4 y la

sumamos a la primera:

6 0 0 00 −4 0 00 0 2 00 0 0 −3

x1

x2

x3

x4

=

612−4−3

72 Metodos iterativos

El sistema de ecuaciones anterior es, como hemos visto, facil de resolver. Empleando la ecua-cion (7.5) obtenemos las soluciones:

x =

1−3−2

1

7.2.5 Pivotado

Sin embargo, los algoritmos de Gauss y Gauss-Jordan que acabamos de describir puedendar lugar a resultados erroneos facilmente. Por ejemplo, analicemos el siguiente sistema deecuaciones, en el que ε es un numero muy pequeno pero distinto de cero:

(ε 11 1

) (x1

x2

)=

(12

)

Al aplicar el algoritmo gaussiano se obtiene el siguiente sistema triangular superior:

(ε 10 1− ε−1

) (x1

x2

)=

(1

2− ε−1

)

y la solucion es: {x2 = 2−ε−1

1−ε−1

x1 = (1 − x2)ε−1

En el computador, si ε es suficientemente pequeno, los terminos 2−ε−1 y 1−ε−1 se computarancomo un mismo numero, por lo que x2 ≈ 1 y x1 ≈ 0. Sin embargo, la solucion correcta es:

{x1 = 1

1−ε ≈ 1

x2 = 1−2ε1−ε ≈ 1

Tenemos entonces que la solucion calculada es exacta para x2 pero extremadamente inexactapara x1.

El problema anterior no radica en la pequenez del termino aii, sino en su pequenez relativarespecto de los otros elementos de su fila. La conclusion que podemos extraer es que un buenalgoritmo debe incluir el intercambio de ecuaciones cuando las circunstancias ası lo exijan.Un algoritmo que cumple este requisito es el denominado eliminacion gaussiana con pivoteode filas escaladas, que no se contempla en este curso elemental.

7.3 Metodos iterativos

El metodo de Gauss y sus variantes se conocen con el nombre de metodos directos: se ejecutana traves de un numero finito de pasos y dan lugar a una solucion que serıa exacta si no fuesepor los errores de redondeo.

Por contra, un metodo indirecto da lugar a una sucesion de vectores que idealmenteconverge a la solucion. El calculo se detiene cuando se cuenta con una solucion aproximada con

Conceptos basicos 73

cierto grado de precision especificado de antemano o despues de cierto numero de iteraciones.Los metodos indirectos son casi siempre iterativos: para obtener la sucesion mencionada seutiliza repetidamente un proceso sencillo.

7.3.1 Conceptos basicos

En general, en todos los procesos iterativos para resolver el sistema Ax = b se recurre a unacierta matriz Q, llamada matriz de descomposicion; la idea es que la ecuacion Ax = b seescribe como (A+Q−Q)x = b con lo cual el problema original adopta la forma equivalente:

Qx = (Q−A)x+ b (7.21)

La ecuacion (7.21) sugiere un proceso iterativo que se concreta al escribir:

Qx(k) = (Q−A)x(k−1) + b (k ≥ 1) (7.22)

El vector inicial x(0) puede ser arbitrario, aunque si se dispone de un buen candidato comosolucion este es el que se debe emplear. La aproximacion inicial que se adopta, a no ser quese disponga de una mejor, es la identicamente nula x1 = x2 = · · · = xn = 0. A partir de laecuacion (7.22) se puede calcular una sucesion de vectores x(1), x(2), . . . . Nuestro objetivo esescoger una matriz Q de manera que:

• se pueda calcular facilmente la sucesion [x(k)].

• la sucesion [x(k)] converja rapidamente a la solucion.

Como en todo metodo iterativo, deberemos especificar un criterio de convergencia δ y unnumero maximo de iteraciones M , para asegurar que el proceso se detiene si no se alcan-za la convergencia. En este caso, puesto que x es un vector, emplearemos dos criterios deconvergencia que se deberan satisfacer simultaneamente:

1. El modulo del vector diferencia, ‖x(k) − x(k−1)‖, partido por el modulo del vector x,‖x(k)‖ debera ser menor que la convergencia deseada:

(‖x(k) − x(k−1)‖‖x(k)‖

)≤ δ

2. La diferencia relativa del mayor elemento en valor absoluto del vector x(k), xm =Max{xi}, debera ser diez veces menor que δ:

ABS

(x

(k)m − x(k−1)

m

x(k)m

)≤ δ

10

74 Metodos iterativos

7.3.2 Metodo de Richardson

El metodo de Richardson toma como matriz Q la matriz identidad (I). En este caso laecuacion (7.22) queda en la forma:

Ix(k) = (I −A)x(k−1) + b = x(k−1) + r(k−1) (7.23)

en donde r(k−1) es el vector residual definido mediante r(k−1) = b−Ax(k−1).

La matriz identidad es aquella matriz diagonal cuyos elementos no nulos son 1, es decir:

{aij = 0 si i 6= jaij = 1 si i = j

y cumple que

IA = A

para cualquier valor de A; es decir, es el elemento neutro del producto matricial. De acuerdocon esto, la ecuacion (7.23) se puede escribir como:

x(k) = x(k−1) −Ax(k−1) + b = x(k−1) + r(k−1)

en donde un elemento cualquiera del vector r(k−1) vendra dado por la expresion:

r(k−1)i = bi −

n∑

j=1

aijx(k−1)j

En la figura (7.3) se muestra un algoritmo para ejecutar la iteracion de Richardson. Estemetodo recibe tambien el nombre de metodo de relajacion o metodo de los residuos.

input n,(aij),(bi),(xi),Mfor k = 1, 2, . . . ,M do

for i = 1, 2, . . . , n dori ← bi −

∑nj=1 aijxj

endfor i = 1, 2, . . . , n do

xi ← xi + riend

endoutput k,(xj),(ri)

Figura 7.3: Implementacion del algoritmo iterativo de Richardson.

Metodo de Jacobi 75

7.3.3 Metodo de Jacobi

En la iteracion de Jacobi, se escoge una matriz Q que es diagonal y cuyos elementosdiagonales son los mismos que los de la matriz A. La matriz Q toma la forma:

Q =

a11 0 0 · · · 00 a22 0 · · · 00 0 a33 · · · 0...

......

. . ....

0 0 0 · · · ann

y la ecuacion general (7.22) se puede escribir como

Qx(k) = (Q−A)x(k−1) + b (7.24)

Si denominamos R a la matriz A−Q:

R =

0 a12 a13 · · · a1n

a21 0 a23 · · · a2n

a31 a32 0 · · · a3n...

......

. . ....

an1 an2 an3 · · · 0

la ecuacion (7.24) se puede reescribir como:

Qx(k) = −Rx(k−1) + b

El producto de la matriz Q por el vector columna x(k) sera un vector columna. De modoanalogo, el producto de la matriz R por el vector columna x(k−1) sera tambien un vectorcolumna. La expresion anterior, que es una ecuacion vectorial, se puede expresar por n ecua-ciones escalares (una para cada componente del vector). De este modo, podemos escribir, paraun elemento i cualquiera y teniendo en cuenta que se trata de un producto matriz-vector:

n∑

j=1

qijx(k)j = −

n∑

j=1

rijx(k−1)j + bi

Si tenemos en cuenta que en la matriz Q todos los elementos fuera de la diagonal son cero,en el primer miembro el unico termino no nulo del sumatorio es el que contiene el elementodiagonal qii, que es precisamente aii. Mas aun, los elementos de la diagonal de R son cero, porlo que podemos eliminar el termino i = j en el sumatorio del segundo miembro. De acuerdocon lo dicho, la expresion anterior se puede reescribir como:

aiix(k)i = −

n∑

j=1,j 6=iaijx

(k−1)j + bi

de donde despejando x(k)i obtenemos:

x(k)i =

bi −

n∑

j=1,j 6=iaijx

(k−1)j

/aii

76 Metodos iterativos

que es la expresion que nos proporciona las nuevas componentes del vector x(k) en funcion devector anterior x(k−1) en la iteracion de Jacobi. En la figura (7.4) se presenta un algoritmopara el metodo de Jacobi.

input n,(aij),(bi),(xi),Mfor k = 1, 2, . . . ,M do

for i = 1, 2, . . . , n do

ui ←(bi −

∑nj=1,j 6=i aijxj

)/aii

endfor i = 1, 2, . . . , n do

xi ← uiend

endoutput k,(xj)

Figura 7.4: Implementacion del metodo de Jacobi.

El metodo de Jacobi se basa en escribir el sistema de ecuaciones en la forma:

x1 = (b1 − a12x2 − a13x3 − · · · − a1nxn) /a11

x2 = (b2 − a21x1 − a23x3 − · · · − a2nxn) /a22...

...xn = (bn − an1x1 − an2x2 − · · · −) /ann

(7.25)

Partimos de una aproximacion inicial para las soluciones al sistema de ecuaciones y sustituimosestos valores en la ecuacion (7.25). De esta forma, se genera una nueva aproximacion a lasolucion del sistema, que en determinadas condiciones, es mejor que la aproximacion inicial.Esta nueva aproximacion se puede sustituir de nuevo en la parte derecha de la ecuacion (7.25)y ası sucesivamente hasta obtener la convergencia.

7.3.4 Metodo de Gauss-Seidel

La iteracion de Gauss-Seidel se define al tomar Q como la parte triangular inferior de Aincluyendo los elementos de la diagonal:

Q =

a11 0 0 · · · 0a21 a22 0 · · · 0a31 a32 a33 · · · 0...

......

. . ....

an1 an2 an3 · · · ann

77

Si, como en el caso anterior, definimos la matriz R = A−Q

R =

0 a12 a13 · · · a1n

0 0 a23 · · · a2n

0 0 0 · · · a3n...

......

. . ....

0 0 0 · · · 0

y la ecuacion (7.22) se puede escribir en la forma:

Qx(k) = −Rx(k−1) + b

Un elemento cualquiera, i, del vector Qx(k) vendra dado por la ecuacion:

n∑

j=1

qijx(k)j = −

n∑

j=1

rijx(k−1)j + bi

Si tenemos en cuenta la peculiar forma de las matrices Q y R, resulta que todos los sumandospara los que j > i en la parte izquierda son nulos, mientras que en la parte derecha son nulostodos los sumandos para los que j ≤ i. Podemos escribir entonces:

i∑

j=1

aijx(k)j = −

n∑

j=i+1

aijx(k−1)j + bi

aiix(k)i +

i−1∑

j=1

aijx(k)j = −

n∑

j=i+1

aijx(k−1)j + bi

de donde despejando x(k)i , obtenemos:

x(k)i =

bi −

i−1∑

j=1

aijx(k)j −

n∑

j=i+1

aijx(k−1)j

/aii

Observese que en el metodo de Gauss-Seidel los valores actualizados de xi sustituyen deinmediato a los valores anteriores, mientras que en el metodo de Jacobi todas las componentesnuevas del vector se calculan antes de llevar a cabo la sustitucion. Por contra, en el metodode Gauss-Seidel los calculos deben llevarse a cabo por orden, ya que el nuevo valor xi dependede los valores actualizados de x1, x2, . . . , xi−1.

En la figura (7.5) se incluye un algoritmo para la iteracion de Gauss-Seidel.

7.4 Valores y vectores propios

Antes de comenzar la definicion y formas de resolucion del problema de valores y vectorespropios debemos indicar algunas definiciones y algoritmos necesarios para las secciones pos-teriores, entre ellas las de matrices ortogonales y descomposicion QR.

78 Valores y vectores propios

input n,(aij),(bi),(xi),Mfor k = 1, 2, . . . ,M do

for i = 1, 2, . . . , n do

xi ←(bi −

∑nj=1,j 6=i aijxj

)/aii

endoutput k,(xj)

Figura 7.5: Algoritmo para la iteracion de Gauss-Seidel.

7.4.1 Matrices ortogonales y rotaciones

Se llama matriz ortogonal a aquella cuya inversa es igual a su traspuesta, es decir, tal queQ−1 = QT . Equivalentemente, Q es ortogonal si QQT = QTQ = I siendo I la matriz iden-tidad. Una propiedad importante es que el producto de cualesquiera matrices ortogonales esasimismo ortogonal (es trivial probarlo a partir del producto de dos de ellas).

Las matrices ortogonales de tamano n × n representan giros en Rn; en R2 es facil ver,planteando una matriz generica, multiplicandola por su traspuesta e igualando a la identidad,que las unicas matrices ortogonales son de la forma

(cos(θ) −sen(θ)sen(θ) cos(θ)

)

siendo precisamente θ el angulo de giro alrededor del origen. Notese que un giro es un cambiode sistema de referencia que conserva las longitudes (el modulo de cualquier vector no cambiapor el hecho de girarlo) y que escogiendo apropiadamente el angulo de giro se puede conseguirque una de las componentes del vector (p. ej., la segunda) sea 0:

figure=eps/giro.eps,height=3.5cm

Figura 7.6: Giro de angulo θ que transforma el vector (x, y) en el (x′, 0)

Es obvio ver geometricamente que, dado un vector de componentes (x, y) en el sistemaoriginal, el angulo θ apropiado es tal que

tan(θ) =y

xcon lo que cos(θ) =

x√x2 + y2

y sen(θ) =−y√x2 + y2

De hecho,

x√x2+y2

y√x2+y2

−y√x2+y2

x√x2+y2

·

(xy

)=

(x2+y2√x2+y2

0

)=

( √x2 + y2

0

)

Analogamente, en Rn, se puede girar alrededor de uno de los ejes coordenados consiguiendoque la componente j-esima tome el valor 0, y simultaneamente solo la componente i-esima

Descomposicion QR 79

cambie de valor; la matriz necesaria para realizar esto la llamada matriz de Givens paralas componentes i y j, con i 6= j, definida como

G(i, j, θ) =

1 0 . . . . . . . . 00 1 . . . . . . . . .. . 1 . . . . . . . .. . . 1 . . . . . . .. . . . cos(θ) . . −sen(θ) . . .. . . . . 1 . . . . .. . . . . . 1 . . . .. . . . sen(θ) . . cos(θ) . . .. . . . . . . . 1 . .. . . . . . . . . 1 .0 . . . . . . . . . 1

es decir, la matriz identidad, pero con los elementos (i, i) y (j, j) cambiados de 1 a cos(θ), elelemento (i, j) cambiado de 0 a −sen(θ) y el elemento (j, i) cambiado de 0 a sen(θ). Se puedever que esta matriz es ortogonal (probarlo, haciendo los productos por la derecha y por laizquierda de ella con su traspuesta, lo que dara la identidad).

7.4.2 Descomposicion QR

Dada una matriz cuadrada A, su descomposicion QR es aquella que escribe A como productode dos matrices cuadradas, Q y R, del mismo tamano que A, y tales que Q sea ortogonal yR sea triangular superior. Al igual que se vio con la descomposicion LU , la descomposicionQR tambien puede servir para resolver sistemas de ecuaciones, dado que si Ax = b, o sea,QRx = b, entonces Rx = Q−1b, pero por ser Q ortogonal, Q−1 = QT de modo que Rx = QT b,el cual es un sistema triangular superior, y por tanto facil de resolver por sustitucion regresiva.Ademas, notese que no hemos perdido precision numerica al realizar la inversa de Q, puestoque no hay que realizar ninguna operacion aritmetica para hacer la traspuesta; de hecho, sepuede probar que este es el metodo numericamente mas estable para la resolucion de sistemasde ecuaciones lineales.

Por esta razon, y tambien por el uso que daremos posteriormente a la descomposicion QRen el problema de valores propios, es interesante ver como se puede realizar dicha descompo-sicion.

La idea es, al igual que en la eliminacion Gaussiana basica, proceder por columnas, e iranulando todos los elementos de la columna en cuestion (sea la k) desde el ak+1,k hasta elak+1,n mediante multiplicaciones por las matrices de Givens G(k+ 1, k, θ) hasta G(k+ 1, n, θ)respectivamente. Despues de haber multiplicado por N matrices de Givens apropiadamenteescogidas, siendo N = (n− 1)n/2, obtendremos

GNGN−1 . . . G1A = R

donde R sera triangular superior. Entonces,

A = G−11 G−1

2 . . . G−1N−1G

−1N R = GT1 G

T2 . . . G

TN−1G

TNR

80 Valores y vectores propios

y llamando Q = GT1 GT2 . . . G

TN−1G

TN , la cual sera ortogonal, pues es el producto de matrices

ortogonales, tenemos que A = QR, como querıamos.

Veamos este procedimiento con un ejemplo:

Hallar la descomposicion QR de la matriz

A =

1 2 01 1 12 1 0

Primero intentamos anular el elemento a21 = 1, usando el elemento a11; para ello usamos lasformulas para el coseno y el seno de θ vistas antes, con x = a11 e y = a21 (recordemos que lasformulas estaban pensadas para anular la componente y) con lo que

cos(θ) =a11√

a211 + a2

21

=1√2

= 0,707

sen(θ) = − a21√a2

11 + a221

=−1√

2= −0,707

Ası pues, la primera matriz de Givens sera

G1 =

0,707 0,707 0−0,707 0,707 0

0 0 1

y entonces

A1 = G1 ·A =

0,707 0,707 0−0,707 0,707 0

0 0 1

·

1 2 01 1 12 1 0

=

1,41 2,12 0,7070 −0,707 0,7072 1 0

Ahora, trataremos de eliminar el elemento a31 = 2 haciendo x = 1,41 e y = 2, con lo que lamatriz de Givens resulta

G2 =

0,577 0 0,8160 1 0

−0,816 0 0,577

y entonces

A2 = G2·A1 =

0,577 0 0,8160 1 0

−0,816 0 0,577

·

1,41 2,12 0,7070 −0,707 0,7072 1 0

=

2,44 2,03 0,4070 −0,707 0,7070 −1,15 −0,576

Finalmente, anularemos el elemento a23 = −1,15 usando el a22 = −0,707 con lo que la matrizde Givens sera

G3 =

1 0 00 −0,523 −0,8510 0,851 −0,523

y por tanto

A3 = G3·A2 =

1 0 00 −0,523 −0,8510 0,851 −0,523

·

2,44 2,03 0,4070 −0,707 0,7070 −1,15 −0,576

=

2,44 2,03 0,4080 1,35 1,210 0 0,903

Uso de la descomposicion QR en el problema de valores y vectores propios 81

Esta ultima matriz A3 que ya es triangular superior es la R que buscabamos; de hecho,

G3 ·G2 ·G1 · A = R

y entonces

A = GT1 ·GT2 ·GT3 ·R = QR

siendo

Q =

0,707 −0,707 00,707 0,707 0

0 0 1

·

0,577 0 0,8160 1 0

0,816 0 0,577

·

1 0 00 −0,523 0,8510 −0,851 −0,523

=

0,408 0,86 −0,3010,408 0,123 0,9040,816 −0,492 −0,301

7.4.3 Uso de la descomposicion QR en el problema de valores y vectorespropios

Un problema comun que aparece en multiples areas cientıficas como fısica, simulacion, visionpor computador, etc. es el encontrar los llamados valores y vectores propios de una matriz.El problema se formula como, dada una matriz cuadrada A de tamano n×n, hallar todas lassoluciones a la ecuacion

Avi = λivi (7.26)

siendo λi un numero real o complejo, y vi un vector en Rn. A cada una de las soluciones λise le llama valor propio de A, y a cada uno de los vi, vector propio.

Notese que multiplicar un numero real λ por un vector cambia solo su longitud, pero nosu direccion. Por ello, los vectores propios de una cierta matriz (aplicacion lineal de Rn enRn) son aquellos que al multiplicarlos por la matriz cambian solo su longitud, pero no sudireccion.

Un planteamiento directo para resolver la ecuacion anterior parte de escribir

Av − λv = 0

de donde

(A− λI)v = 0

siendo I la matriz identidad; es claro que esto es un sistema homogeneo de ecuaciones lineales.Obviamente, una solucion es la solucion trivial v = 0, de donde el vector nulo es vector propiode cualquier matriz; pero aparte de esta, la existencia de soluciones no triviales requerira queel sistema sea compatible indeterminado, lo cual para sistemas homogeneos significa que eldeterminante de la matriz del sistema sea nulo, o sea,

det(A− λI) = 0

Esta es una ecuacion en R, concretamente, un polinomio en la variable λ cuyas soluciones sonlos valores propios. Una vez hallado cada valor propio, se puede volver a la ecuacion (7.26)para hallar su vector propio asociado.

Veamos un ejemplo:

82 Valores y vectores propios

Hallar los valores y vectores propios de

A =

(2 5−1 −4

)

Planteamos

det(A− λI) = det

((2 5−1 −4

)− λ

(1 00 1

))= det

((2− λ 5−1 −4− λ

))=

= (2− λ)(−4− λ)− 5(−1)) = λ2 + 2λ− 3 = 0

Al polinomio resultante del desarrollo del determinante se le llama polinomio caracterısticode la matriz A. Sus raıces son los valores propios; en este caso, λ1 = 1 y λ2 = −3. Para hallarahora los vectores propios nos planteamos la ecuacion

(2 5−1 −4

)·(x1

x2

)= 1 ·

(x1

x2

)

o sea,

x1 + 5x2 = 0

−x1 − 5x2 = 0

Como se ve, estas ecuaciones no son independientes, de hecho son la misma con signo cam-biado. Por ello, hay solo una ecuacion con dos incognitas; daremos por ejemplo el valor 1 ala x2, y entonces x1 = −5. Ası pues, el vector v1 = (1,−5)T y todos los multiplos de el sonvectores propios de A. Se acostumbra entonces a dar como vector propio el de modulo 1, quese obtiene normalizando el resultado, o sea, vn2 = (1/

√26,−5/

√26)T .

Planteando ahora la misma ecuacion para el valor propio λ2,

(2 5−1 −4

)·(x1

x2

)= −3 ·

(x1

x2

)

o sea,

5x1 + 5x2 = 0

−x1 − x2 = 0

De nuevo, estas ecuaciones no son independientes; dando por ejemplo el valor 1 a x1 obtenemosque x2 = −1, por lo que el vector v2 = (1,−1)T y todos sus multiplos, en particular el demodulo 1, vn2 = (1/

√2,−1/

√2)T son vectores propios de A.

Notese que, si A fuese una matriz diagonal, la ecuacion definitoria de los valores propiosqueda

det

a11 − λ 0 . 0. a22 − λ . .. . . .0 . . ann − λ

= (a11 − λ)(a12 − λ) . . . (ann − λ)

Uso de la descomposicion QR en el problema de valores y vectores propios 83

cuyas soluciones son obviamente a11, a22, . . . , ann. O sea, los valores propios de una matrizdiagonal son los elementos de la diagonal, y sus vectores propios son los de la base canonica(comprobarlo).

En lo anterior no se ha hecho referencia a valores propios complejos, pero notese que elpolinomio caracterıstico no tiene por que tener ninguna forma especial, y por tanto sus raıcespueden ser cualesquiera, incluso complejas.

Esta manera de obtener los valores y vectores propios es siempre posible, pero tiene elinconveniente de tener que hallar las raıces de un polinomio, en general, de grado n (el tamanode la matriz), lo cual no siempre se puede resolver. Una alternativa es hallar los valores yvectores propios usando la descomposicion QR. Para ello, enunciemos una propiedad:

Dada cualquier matriz cuadrada, A, si A se pueda escribir como A = V −1BV , siendoB cualquier matriz y V una matriz invertible, entonces se dice que A y B son matricesconjugadas, y se cumple que los valores y vectores propios de A y B son iguales.

Para ver esto notese que

pA(λ) = det(A − λI) = det(V −1BV − λV −1IV ) = det(V −1(B − λI)V ) =

= det(V −1)det(B − λI)det(V ) = det(B − λI)det(V )det(V −1) = det(B − λI)det(V V −1) =

= det(B − λI)det(I) = det(B − λI) = pB(λ)

de donde A y B tienen el mismo polinomio caracterıstico, y por tanto los mismos valoresy vectores propios. Aquı se ha usado la propiedad de que el determinante del producto dematrices es el producto de los determinantes, la cual fue vista en asignaturas anteriores dealgebra.

Ahora, sea A una matriz cuadrada cuya descomposicion QR es A = QR. Entonces, lasmatrices A y RQ son conjugadas. Para verlo basta notar que

RQ = IRQ = Q−1QRQ = QTQRQ = QTAQ = Q−1AQ

de donde, identificando Q con V en la definicion de matrices conjugadas, queda probado.Ahora bien, por la propiedad anteriormente demostrada, esto significa que A y RQ tienen losmismos valores y vectores propios. Esto nos sugiere el siguiente algoritmo para la aproximaciona los valores propios reales de A:

En el algoritmo anterior se entiende por ”casi diagonal” una matriz cuyos elementos fuerade la diagonal principal son todos menores que un cierto valor ε positivo y suficientementepequeno con relacion al menor de los elementos de la diagonal.

Notese que cada una de las matrices Mi que aparecen en cada paso del algoritmo se obtie-nen como Ri−1Qi−1, y por tanto son conjugadas de la Mi−1, y prolongando el razonamientohacia atras, tambien conjugadas de la A original, luego sus valores y vectores propios son losmismos. Ası pues, cuando lleguemos a una Mi diagonal, los elementos de su diagonal seranlos valores y vectores propios buscados. La demostracion de que efectivamente se tiende auna matriz diagonal (es decir, de que los elementos fuera de la diagonal de las matrices Ai

van tendiendo a 0 al tender i a infinito) involucra conceptos fuera del alcance de este cursoelemental. Veamos un ejemplo.

84 Valores y vectores propios

Entrada: Matriz cuadrada A de tamano n× nHacer la descomposicion QR de A = Q1R1

sea M1 ← Asea i← 1Mientras (Mi no sea casi diagonal) hacer

i← i+ 1Hacer la descomposicion QR de Mi = QiRi

finDesde j = 1..n hacer

sea λj(Mi)jjfin Salida: Valores de λj con j = 1..n

Figura 7.7: Algoritmo numerico para encontrar los valores propios reales de una matriz.

Hallar los valores y vectores propios de

A =

60 30 2030 20 1520 15 12

En primer lugar, hallemos la descomposicion QR. Comenzaremos por anular el termino a21 =30 usando el a11 = 60, por lo que

cos(θ) =60√

602 + 302= 0,8944

sen(θ) =−30√

602 + 302= −0,4472

de donde

A1 = Q1·A =

0,8944 0,4472 0−0,4472 0,8944 0

0 0 1

·

60 30 2030 20 1520 15 12

=

67,082 35,7771 24,59670 4,4721 4,472120 15 12

Ahora trataremos de anular el termino a21 = 20 usando el a11 = 67,082 con lo que

cos(θ) =67,082√

67,0822 + 202= 0,9583

sen(θ) =−20√

67,0822 + 202= −0,2857

por lo que

A2 = Q2 ·A1 =

0,9583 0 0,28570 1 0

−0,2857 0 0,9583

·

67,082 35,7771 24,59670 4,4721 4,472120 15 12

=

Uso de la descomposicion QR en el problema de valores y vectores propios 85

70 38,5714 270 4,4721 4,47210 4,1527 4,4721

Finalmente, anularemos el termino a32 = 4,1527 usando para ello el a22 = 4,4721, con lo que

cos(θ) =4,4721√

4,47212 + 4,15272= 0,7328

sen(θ) =−4,1527√

4,47212 + 4,15272= −0,6805

Ası pues, las matrices son ahora

A3 = Q3·A2 =

1 0 00 0,7328 0,68050 −0,6805 0,7328

·

70 38,5714 270 4,4721 4,47210 4,1527 4,4721

=

70 38,5714 270 6,1029 6,32020 0 0,2341

Entonces, como ha resultado Q3 · Q2 · Q1 · A = A3, la descomposicion QR sera R = A3 yQ = QT1 ·QT2 ·QT3 , o sea

Q =

0,8944 −0,4472 00,4472 0,8944 0

0 0 1

·

0,9583 0 −0,28570 1 0

0,2857 0 0,9583

·

1 0 00 0,7328 −0,68050 0,6805 0,7328

=

=

0,8571 −0,5016 0,11700,4286 0,5685 −0,70220,2857 0,6521 0,7022

Desarrollaremos ahora el algoritmo iterativo; en el primer paso,

M1 = R ·Q =

84,2449 4,4213 0,06694,4213 7,5907 0,15260,0669 0,1526 0,1644

Ahora, por procedimientos analogos a los que se usaron en la primera descomposicion QR,hacemos a su vez la descomposicion de esta M1, obteniendo

M1 = Q2 ·R2 =

−0,9986 0,0524 0,0003−0,0524 −0,9984 −0,0203−0,0008 −0,0202 0,9998

·

−84,3609 −4,8132 −0,0749

0 −7,3501 −0,15220 0 0,1613

y escribimos

M2 = R2 ·Q2 =

84,4972 0,3583 −0,00010 7,3415 −0,0033

−0,0001 −0,0033 0,1611

Descomponiendo de nuevo,

M2 = Q3 ·R3 =

−0,9986 0,0524 0,0003−0,0524 −0,9984 −0,0203−0,0008 −0,0202 0,9998

·

−84,3609 −4,8132 −0,0749

0 −7,3501 −0,15220 0 0,1613

86 Valores y vectores propios

y pasando a la siguiente iteracion del algoritmo,

M3 = R3 ·Q3 =

84,4991 0,0335 00,0335 7,3396 0,0001

0 0,0001 0,1612

Respecto al criterio de parada, deberıamos ver que la mayor de las componentes fuera de ladiagonal en las matrices Mi (aquı, 0.0335) fuese en valor absoluto al menos 10 veces menorque el valor absoluto de la menor de las componentes de la diagonal (aquı, 0.1612). Comoquiera que 0.0335 aun no es menor que 0.0161, no podemos parar todavıa. Continuando conel algoritmo,

M3 = Q4 ·R4 =

−1 0,0004 0−0,0004 −1 0

0 0 1

·

−84,4991 −0,0364 0

0 −7,3396 −0,00010 0 0,1612

y entonces

M4 = R4 ·Q4 =

84,4991 0,0029 00,0029 7,3396 0

0 0 0,1612

Ahora sı podemos ver que el mayor elemento fuera de la diagonal (0.0029) es menor que 10veces el menor de los elementos de la diagonal (o sea, 0,0029 <0,1612/10) de donde ahora sıpodemos dar el algoritmo por terminado, siendo los valores propios 84.4991, 7.3396 y 0.1612.

Los vectores propios se plantean resolviendo los sistemas:

A · v1 = λ1v1

que es

60 30 2030 20 1520 15 12

·

vxvyvz

= 84,499

vxvyvz

o en forma de ecuaciones,

−24,5vx + 30vy + 20vz = 0

30vx − 64,5vy + 15vz = 0

20vx + 15vy − 72,5vz = 0

Como sabemos que este sistema es compatible indeterminado, escogeremos el valor de una delas incognitas, sea p. ej. vx = 1, con lo que se obtiene vy = 0,5560 y vz = 0,3909. Entonces,el vector propio v1 asociado al valor propio 84,4991 sera v1 = (1, 0,5560, 0,3909)T , o en formanormalizada, vn1 = (0,8270, 0,4599, 0,3233)T .

El siguiente sistema serıa

60 30 2030 20 1520 15 12

·

vxvyvz

= 7,3396

vxvyvz

Uso de la descomposicion QR en el problema de valores y vectores propios 87

que resuelto analogamente da v2 = (1,−0,9650,−1,1855)T , o en forma normalizada, vn2 =(0,5474,−0,5283,−0,6490)T . Y finalmente, el tercer sistema es

60 30 2030 20 1520 15 12

·

vxvyvz

= 0,1612

vxvyvz

cuya resolucion genera el ultimo vector propio, v3 = (1,−5,5910, 5,3946)T , o en forma norma-lizada, vn3 = (0,1277,−0,7137,−0,6887)T .

88