• No se han encontrado resultados

Resolución de sistemas lineales

N/A
N/A
Protected

Academic year: 2021

Share "Resolución de sistemas lineales"

Copied!
9
0
0

Texto completo

(1)

Cap´ıtulo 2

Resoluci´

on de sistemas

lineales

5 B´asico

2.1

Introducci´

on

La mayor parte de este escrito trata sobre la forma en que las ecuaciones de campo son aproximadas por sistemas de ecuaciones algebraicas. Estos sistemas son muy a menudo sistemas lineales. Cuando no son sistemas lineales, su reso-luci´on suele requerir la de varios sistemas lineales. Por todo ello, las t´ecnicas num´ericas de resoluci´on de estos sistemas son de una importancia crucial.

El tratamiento sistem´atico de estos procedimientos hace muy conveniente, de hecho casi imprescindible, el que estos sistemas lineales se planteen de forma matricial. As´ı pues, se puede reescribir el p´arrafo anterior diciendo que este cap´ıtulo trata de la resoluci´on del sistema

Ax=b (2.1)

A, la matriz del sistema, es una matriz cuadrada que depende de la ecuaci´on a resolver y, naturalmente, del m´etodo escogido. El t´ermino independiente b

depende del valor de las condiciones de contorno y de la densidad de carga (o de fuerzas volum´etricas, o de generaci´on de calor) dentro del dominio. x es, naturalmente, la inc´ognita, los valores del campo.

Una caracter´ıstica muy importante de la matriz A es que casi todos sus elementos son nulos. Por ejemplo, la figura 2.1 muestra la malla de elementos finitos utilizada para analizar el flujo alrededor del ala de un avi´on y la matriz

A que tiene asociada. Se ha dibujado un punto en la posici´on de todos los elementos de la matriz cuyo valor es distinto de cero. Obs´ervese que exigua minor´ıa constituyen.

Una matriz con esta caracter´ıstica es llamada rala o cuasivac´ıa1. Esta

carac-ter´ıstica ofrece la posibilidad de tratar matrices de mucha mayor dimensi´on de

1En ingl´es, sparse. Cierta similitud fon´etica parece haber llevado en ocasiones a traducirlo

(err´oneamente) como dispersa.

(2)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 500 1000 1500 2000 2500 3000 3500 4000 0 500 1000 1500 2000 2500 3000 3500 4000 nz = 28831 The adjacency matrix.

Figura 2.1: Ala de avi´on, su malla y su matriz asociadas.

lo que ser´ıa de otra forma posible. Por ejemplo, es posible almacenar solamente los elementos que sean distintos de cero, junto con sus posiciones. En el caso de la matriz del ejemplo, de dimensi´on 1700 y con 3500 elementos no nulos, no es necesario almacenar 1700×1700 = 3, 500, 000 posiciones de memoria, sino que bastan con 3500 ×3 = 10,500 posiciones (1 para el valor del elemento y dos para su posici´on en la matriz).

De hecho, no es solamente la necesidad de memoria la que se puede reducir de una forma muy marcada, sino tambi´en el tiempo de c´omputo requerido. Son as´ı las t´ecnicas de resoluci´on de sistemas ralos las que hacen posibles el tratamiento de problemas que no sean de dimensi´on muy reducida.

Existen tres tipos de m´etodos fundamentales para la resoluci´on de sistemas lineales: los directos, los iterativos y los semidirectos.

Los m´etodos directos resuelven las ecuaciones en un n´umero finito de pa-sos. Los m´etodos iterativos van mejorando una estimaci´on inicial de la soluci´on (a menudo x = 0), aunque sin llegar jam´as a la soluci´on exacta. Tienen, sin embargo, menores requerimientos de memoria que los m´etodos directos. Los se-midirectos pueden, en principio, resolver tambi´en el sistema en un n´umero finito de pasos, pero en su planteamiento y an´alisis son m´as parecidos a los iterativos. El resto del cap´ıtulo explicar´a alg´un m´etodo, o algunos m´etodos, pertene-cientes a cada categor´ıa. Son, de todas formas, los m´as usados en la resoluci´on num´erica de campos.

(3)

2.2

etodo directo: la factorizaci´

on LU

4 asico 5 Avanzado

Un m´etodo directo es un m´etodo que alcanza la soluci´on tras un n´umero finito de pasos. De todos ellos, el m´as empleado en el problema que aqu´ı se trata es una generalizaci´on del m´etodo de eliminaci´on de Gauss conocida como factorizaci´on LU.

En el resto de la secci´on se explica la factorizaci´on de Gauss en el contexto de las matrices llenas. Despu´es se exponen las modificaciones necesarias para su aplicaci´on a matrices ralas.

2.2.1

Factorizaci´

on LU de matrices llenas

La eliminaci´on de Gauss (y la factorizaci´on LU) se basan en una observaci´on aparentemente trivial: es muy f´acil resolver un sistema lineal cuando la matriz

Aes triangular. En efecto, si se tiene un sistema como

    2 0 0 0 3 1 0 0 −4 0 3 0 7 1 0 −4         x1 x2 x3 x4     =     3 −1 5 0     (2.2)

se puede resolver primerox1de la primera ecuaci´on (la primera fila), conocidox1

se resuelvex2de la segunda, conocidosx1yx2se puede resolverx3de la tercera,

y as´ı sucesivamente. Evidentemente, se puede proceder as´ı porque la matriz del sistema tiene elementos no nulos solamente por debajo de la diagonal principal (los elementos aij,coni≥j). Si la matriz fuera triangular superior (elementos

no nulos solamente por encima de la diagonal superior) se podr´ıa proceder de la misma forma, salvo que se tendr´ıa que comenzar por la ´ultima componente dex, en vez de por la primera (¡compru´ebese!).

Esta observaci´on no dejar´ıa de ser trivial sino fuera por que toda matrizA

no singular se puede escribir como el producto de una matriz triangular inferior por una superior:

A=LU (2.3)

Es costumbre denotar al factor triangular inferior porL(del ingl´es lower) y al superior porU (de upper). La factorizaci´on LU es, esencialmente, el procedi-miento de c´alculo de estos dos factores a partir de la matrizA.

Sup´ongase entonces que se ha logrado calcularL y U. Ahora la resoluci´on del sistema Ax=bes inmediata. En efecto, este sistema es equivalente a

LUx=b (2.4)

Consideremos tambi´en el sistema

Ly=b (2.5)

Como este es un sistema triangular inferior, es f´acil de resolver. La soluci´on esy=L−1b. Adem´as, de la ecuaci´on (2.4)

(4)

Ux=L−1b=y (2.6) ¡Pero esto vuelve a ser una ecuaci´on con matriz triangular!. Como y es conocida (se ha resuelto (2.5)), es ahora f´acil calcularx.

En resumen, se han resuelto sucesivamente los sistemas

Ly = b (2.7)

Ux = y (2.8)

El primer sistema es triangular inferior, luego las inc´ognitas se resuelven iendo de la primera a la ´ultima. El segundo es triangular superior, en el que las inc´ognitas se resuelven de la ´ultima a la primera. Es por esto que el procedi-miento completo se conoce por la substituci´on hacia delante y hacia atr´as.

El problema que queda es, naturalmente, el c´alculo de los factores L y U. Es esta la tarea, con mucho, m´as complicada y costosa del procedimiento.

La t´ecnica consiste en ir eliminado sucesivamente los elementos deAque se encuentren por debajo de la diagonal. Quiz´a la forma m´as sencilla de explicarlo es mediante un ejemplo. Sup´ongase as´ı que se desea factorizar la matriz

A=     3 1 0 1 1 4 2 0 0 2 5 2 1 0 2 6     (2.9)

Consid´erese el elemento (2,1) (segunda fila, primera columna). Este elemento (un 1) est´a por debajo de la diagonal principal e impide, por tanto, que la matriz

A sea diagonal superior. Para eliminar este elemento, se puede premultiplicar por una triangular inferior:

    1 0 0 0 −l2,1 1 0 0 0 0 1 0 0 0 0 1         3 1 0 1 1 4 2 0 0 2 5 2 1 0 2 6     =     3 1 0 1 1−l2,13 4−l2,1 2 −l2,1 0 2 5 2 1 0 2 6     (2.10) El t´erminol2,1 se escoge de manera que anule al t´ermino (2,1) de la nueva

matriz, es decir 1−3l2,1= 0⇒l2,1= 1 3 (2.11) Luego,     1 0 0 0 −1 3 1 0 0 0 0 1 0 0 0 0 1         3 1 0 1 1 4 2 0 0 2 5 2 1 0 2 6     =     3 1 0 1 0 113 2 −1 3 0 2 5 2 1 0 2 6     (2.12)

(5)

Ahora, obs´ervese que     1 0 0 0 −1 3 1 0 0 0 0 1 0 0 0 0 1     −1 =     1 0 0 0 1 3 1 0 0 0 0 1 0 0 0 0 1     (2.13)

En realidad, es en general cierto para todas las matrices triangulares infe-riores formadas por una diagonal de 1’s y un solo elemento adicional debajo de la diagonal, que su inversa es ella misma salvo por el elemento adicional que cambia signo.

Se sigue as´ı de (2.12) que:

A=     3 1 0 1 1 4 2 0 0 2 5 2 1 0 2 6     =     1 0 0 0 1 3 1 0 0 0 0 1 0 0 0 0 1         3 1 0 1 0 11 3 2 − 1 3 0 2 5 2 1 0 2 6     =L1A1 (2.14)

La matrizA1tiene todav´ıa un elemento en la primera columna por debajo de

la diagonal distinto de 0: el 1 de la cuarta fila. Procediendo de manera an´aloga a la anterior se tiene: A1=     3 1 0 1 0 113 2 −1 3 0 2 5 2 1 0 2 6     =     1 0 0 0 0 1 0 0 0 0 1 0 1 3 0 0 1         3 1 0 1 0 11 3 2 − 1 3 0 2 5 2 0 −1 3 2 17 3     =L2A2 (2.15) N´otese que la matrizL2no afecta m´as que a la cuarta fila deA2. Por tanto,

no puede cambiar los ceros de las filas segunda y tercera a algo no nulo. Esto es, naturalmente, lo que se pretende.

En todo caso, ya no hay elementos a eliminar en la primera columna deA2.

En la segunda columna el elemento (3,2) es distinto de cero (2). As´ı, se tiene:

A2=     3 1 0 1 0 113 2 −1 3 0 2 5 2 0 −1 3 2 17 3     =     1 0 0 0 0 1 0 0 0 116 1 0 0 0 0 1         3 1 0 1 0 113 2 −1 3 0 0 4311 2411 0 −1 3 2 17 3     =L3A3 (2.16) Hay que notar ahora que la matrizL3no afecta a la primera columna deA3.

Es por esto que se ha comenzado por eliminar la primera columna, y por lo que una vez que se elimine la segunda se comenzar´a por la tercera. Las matricesL’s que afectan a cada columna no pueden modificar las columnas anteriores.

(6)

A3=     3 1 0 1 0 113 2 −1 3 0 0 4311 2411 0 −1 3 2 17 3     =     1 0 0 0 0 1 0 0 0 0 1 0 0 1 11 0 1         3 1 0 1 0 113 2 −1 3 0 0 4311 2411 0 0 2411 6211     =L4A4 (2.17) Finalmente, solo queda eliminar el t´ermino (4,3) deA4. De aqu´ı resulta:

A4=     3 1 0 1 0 113 2 −1 3 0 0 4311 2411 0 0 2411 6211     =     1 0 0 0 0 1 0 0 0 0 1 0 0 0 2443 1         3 1 0 1 0 113 2 −1 3 0 0 4311 2411 0 0 0 2048473     =L5U (2.18)

U es una matriz triangular superior. Ahora, de todo lo anterior se sigue:

A=L1A1=L1L2A2=L1L2L3A3=L1L2L3L4A4=L1L2L3L4L5U (2.19)

Por otra parte, el producto de matrices triangulares inferiores es triangular inferior. Luego L1L2L3L4L5 es una triangular inferior que se llamar´a L. Es,

adem´as, muy f´acil de calcular. En efecto

L=     1 0 0 0 1 3 1 0 0 0 6 11 1 0 1 3 1 11 24 43 1     (2.20)

Es decir, el efecto de cada Li es a˜nadir su t´ermino fuera de la diagonal.

Esto es v´alido en general, para matrices Li como las que resultan del proceso

de factorizaci´on (una diagonal de 1’s m´as un t´ermino fuera de diagonal). N´otese que para calcular cada matrizLi hay que resolver la ecuaci´on

−li,(k,l)ai−1,(l,l)+ai−1,(k,l)= 0 (2.21)

siendo (k, l) el t´ermino a eliminar. Para resolver esta ecuaci´on en (li,(k,l) es

preciso que el t´ermino de la diagonalai−1,(l,l)6= 0. Este t´ermino es llamado el

pivote. Caso de ser nulo, se puede intentar permutar la fila l-´esima por otra situada m´as abajo. Esto equivale a reordenar las variables del sistema lineal. Si no hubiera ninguna permutaci´on que resolviera el problema (que todas dieran pivotes nulos) es que la matriz es singular y no hay, por tanto, soluci´on ´unica.

Por otra parte, en el ejemplo que se estudia, se puede comprobar que

U =     3 1 0 1 0 113 2 −1 3 0 0 4311 2411 0 0 0 2048 473     =     3 0 0 0 0 113 0 0 0 0 4311 0 0 0 0 2048 473         1 1 3 0 1 3 0 1 6 11 1 11 0 0 1 24 43 0 0 0 1     =DLT (2.22)

(7)

Luego

A=LU =LDLT (2.23)

Esta expresi´on es conocida como la factorizaci´on triple LDLT. Es posible

llevarla a cabo si la matriz A es sim´etrica (¡pru´ebese!). Esta simetr´ıa se pre-senta a menudo en problemas de campos, y se puede explotar para mejorar el procedimiento de factorizaci´on LU arriba explicado.

2.2.2

Factorizaci´

on LU de matrices ralas

La factorizaci´on LU expuesta arriba tiene el inconveniente de que las operaciones se realizan sobre matrices llenas, es decir, sin tener en cuenta que la mayor parte de los elementos de la matriz son nulos.

Esencialmente, la factorizaci´on LU con matrices ralas procede de la misma forma que la factorizaci´on con matrices llenas. Las diferencias que existen son las siguientes:

1. Solamente se almacenan los elementos no nulos de las matrices, junto con su localizaci´on. As´ı, por ejemplo, en Matlab, la matriz:

    2 1 0 0 1 2 1 0 0 1 2 1 0 0 1 2    

se almacena en tres vectores, un primero que almacena los valores no nulos, y otros dos que almacenan las posiciones (fila y columna) donde se encuentran:

( 2 1 1 2 1 1 2 1 1 2 ) ( 1 1 2 2 2 3 3 3 4 4 ) ( 1 2 1 2 3 2 3 4 3 4 )

Existen otras formas de codificar la posici´on m´as eficientes que la anterior, aunque m´as complejas.

2. Existe una l´ogica que determina las operaciones y sumas que es preciso realizar, salt´andose todas las operaciones que consistan en multiplicar por cero, o sumar cero. Esto es posible porque se saben los elementos que son nulos (los que no est´en codificados en los vectores anteriores).

En cualquier caso, es claro que interesa conseguir que los factores LU que resulten tengan tantos elementos nulos como sea posible. En este sentido, el orden que adopten las variables y ecuaciones es de crucial importancia. Por ejemplo, consid´erese la matriz

(8)

A=     20 15 6 4 15 6 0 0 6 0 4 0 4 0 0 10    

Al ser sim´etrica, admite una descomposici´onLDLT. Es f´acil comprobar que

el factorLes     1 0 0 0 0,75 1 0 0 0,30 0,8571 1 0 0,20 0,5714 0,2264 1    

Es decir, a´un cuando la matriz original ten´ıa bastantes ceros, el factor L

tiene todos los elementos posibles (los de debajo de la diagonal) no nulos. En cambio, si se factoriza la matriz

B=     10 0 0 4 0 4 0 6 0 0 6 15 4 6 15 20     se obtiene el factorL     1 0 0 0 0 1 0 0 0 0 1 0 0,4 1,5 2,5 1    

N´otese que ahora el factorL tiene tantos ceros como la matrizB. Por otra parte, las matricesAyBrepresentan al mismo sistema lineal. En efecto, lo ´unico que se ha hecho es cambiar el orden de ecuaciones (filas) y variables (columnas), de manera que la que antes era la primera es ahora la ´ultima, y viceversa.

Por tanto, es importante ordenar adecuadamente las ecuaciones y las varia-bles al formar la matriz del sistema lineal a resolver. “A grosso modo”, el mejor sitio para los ceros es al principio de las filas, antes de los elementos no nulos. Esto es porque al hacer la eliminaci´on de Gauss, estos elementos ya no requieren ser eliminados.

Existen una serie de algoritmos que buscan el orden ´optimo en el que colo-car ecuaciones y variables. Matem´aticamente, este es un problema para el que todav´ıa no se ha encontrado soluci´on, aunque la experiencia demuestra que al-gunos de los algoritmos propuestos son muy eficaces.

En el ejemplo anterior se ve como lo m´as eficaz es colocar la fila con m´as elementos no nulos al final de la matriz. Esta es la idea subyacente al algoritmo del grado m´ınimo, quiz´a el m´as popular de los algoritmos de reordenaci´on. Por ejemplo, la figura 2.2 muestra la reordenaci´on que este algoritmo da para la matriz de la figura 2.1. Obs´ervense las estructuras en forma de flecha que se forman, que recuerdan lo obtenido en el ejemplo.

(9)

0 500 1000 1500 2000 2500 3000 3500 4000 0 500 1000 1500 2000 2500 3000 3500 4000 nz = 28831 Minimum degree

Figura 2.2: Reordenaci´on de la matriz.

2.3

etodos iterativos

Los m´etodos iterativos resuelven el sistema lineal

Ax=b (2.24)

calculando una serie{x0,x1, . . . ,xk, . . .} que aproxima cada vez mejor la

solu-ci´on

l´ım

k→∞xk=x=A

−1b (2.25)

Los dos m´etodos iterativos de uso m´as frecuente en el c´alculo de campos son el de Jacobi y el de Gauss-Seidel, que se estudian en la siguiente secci´on. Despu´es, se expone una mejora a estos m´etodos, importante para obtener la convergencia de la serie a una velocidad razonable, conocida como sobrerelajaci´on sucesiva.

2.3.1

Los m´

etodos de Jacobi y Gauss-Seidel

Escr´ıbase de nuevo la ecuaci´on (2.24):

Ax−b=0 (2.26)

Sumando un t´ermino Px a cada t´ermino, siendoP una matriz que se defi-nir´a m´as tarde, de la misma dimensi´on queA:

Referencias

Documento similar

a) Todos los elementos de la diagonal principal deben ser nulos. b) Todos los elementos de la diagonal principal deben ser iguales. c) Todos los elementos de la diagonal

I Matriz triangular , es una matriz cuadrada que tiene nulos todos los elementos que están a un mismo lado de la diagonal principal.. Puede ser superior

Matriz Triangular Superior: una matriz cuadrada en la que todos sus elementos por debajo de la diagonal principal son cero, se denomina matriz triangulas superior..

- Matriz Triangular Superior: es una matriz cuadrada en la cual los elementos por debajo de la diagonal principal son cero.. En forma análoga, se define matriz

MATRIZ TRIÁNGULAR INFERIOR : Elementos sobre la Diagonal principal son ceros.. MATRIZ ESCALAR : Matriz Diagonal

Se transforma la matriz b 12 en una matriz U triangular superior por el método de Gauss y en la matriz b 11 se van colocando por debajo de la diagonal principal

Matriz triangular: Es una matriz cuadrada en la que todos los elementos situados por debajo (o por encima) de la diagonal principal son cero.. Otros tipos de matrices

MATRIZ TRIANGULAR: Es una matriz cuadrada que tiene nulos todos los elementos que están a un mismo lado de la diagonal principal. Las matrices triangulares pueden ser de