Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resolucion de Sistemas Lineales
Resolucion de Sistemas Lineales
Resolución de sistemas
lineales
5 Básico
2.1 Introducción
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ón suele requerir la de varios sistemas lineales. Por todo ello, las técnicas
numéricas de resolución de estos sistemas son de una importancia crucial.
El tratamiento sistemático 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árrafo anterior diciendo que este
capı́tulo trata de la resolución del sistema
Ax = b (2.1)
A, la matriz del sistema, es una matriz cuadrada que depende de la ecuación
a resolver y, naturalmente, del método escogido. El término independiente b
depende del valor de las condiciones de contorno y de la densidad de carga (o
de fuerzas volumétricas, o de generación de calor) dentro del dominio. x es,
naturalmente, la incógnita, 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ón y la matriz
A que tiene asociada. Se ha dibujado un punto en la posición de todos los
elementos de la matriz cuyo valor es distinto de cero. Obsérvese 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ón de
1 En inglés, sparse. Cierta similitud fonética parece haber llevado en ocasiones a traducirlo
3
4 CAPÍTULO 2. RESOLUCIÓN DE SISTEMAS LINEALES
500
0.9
0.8 1000
0.7 1500
0.6
2000
0.5
2500
0.4
3000
0.3
0.2 3500
0.1 4000
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ón 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ón en la matriz).
De hecho, no es solamente la necesidad de memoria la que se puede reducir
de una forma muy marcada, sino también el tiempo de cómputo requerido.
Son ası́ las técnicas de resolución de sistemas ralos las que hacen posibles el
tratamiento de problemas que no sean de dimensión muy reducida.
Existen tres tipos de métodos fundamentales para la resolución de sistemas
lineales: los directos, los iterativos y los semidirectos.
Los métodos directos resuelven las ecuaciones en un número finito de pa-
sos. Los métodos iterativos van mejorando una estimación inicial de la solución
(a menudo x = 0), aunque sin llegar jamás a la solución exacta. Tienen, sin
embargo, menores requerimientos de memoria que los métodos directos. Los se-
midirectos pueden, en principio, resolver también el sistema en un número finito
de pasos, pero en su planteamiento y análisis son más parecidos a los iterativos.
El resto del capı́tulo explicará algún método, o algunos métodos, pertene-
cientes a cada categorı́a. Son, de todas formas, los más usados en la resolución
numérica de campos.
2.2. MÉTODO DIRECTO: LA FACTORIZACIÓN LU 5
Un método directo es un método que alcanza la solución tras un número finito 5 Avanzado
de pasos. De todos ellos, el más empleado en el problema que aquı́ se trata es una
generalización del método de eliminación de Gauss conocida como factorización
LU.
En el resto de la sección se explica la factorización de Gauss en el contexto
de las matrices llenas. Después se exponen las modificaciones necesarias para su
aplicación a matrices ralas.
7 1 0 −4 x4 0
se puede resolver primero x1 de la primera ecuación (la primera fila), conocido x1
se resuelve x2 de la segunda, conocidos x1 y x2 se puede resolver x3 de 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 , con i ≥ 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 última componente
de x, en vez de por la primera (¡compruébese!).
Esta observación no dejarı́a de ser trivial sino fuera por que toda matriz A
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 por L (del inglés lower) y
al superior por U (de upper). La factorización LU es, esencialmente, el procedi-
miento de cálculo de estos dos factores a partir de la matriz A.
Supóngase entonces que se ha logrado calcular L y U . Ahora la resolución
del sistema Ax = b es inmediata. En efecto, este sistema es equivalente a
LU x = b (2.4)
Consideremos también el sistema
Ly = b (2.5)
Como este es un sistema triangular inferior, es fácil de resolver. La solución
es y = L−1 b. Además, de la ecuación (2.4)
6 CAPÍTULO 2. RESOLUCIÓN DE SISTEMAS LINEALES
U x = L−1 b = y (2.6)
¡Pero esto vuelve a ser una ecuación con matriz triangular!. Como y es
conocida (se ha resuelto (2.5)), es ahora fácil calcular x.
En resumen, se han resuelto sucesivamente los sistemas
Ly = b (2.7)
Ux = y (2.8)
1 0 0 0 3 1 0 1 3 1 0 1
−l2,1 1 0 0 1 4 2 0 1 − l2,1 3 4 − l2,1
2 −l2,1
=
0 0 1 0 0 2 5 2 0 2 5 2
0 0 0 1 1 0 2 6 1 0 2 6
(2.10)
El término l2,1 se escoge de manera que anule al término (2, 1) de la nueva
matriz, es decir
1
1 − 3l2,1 = 0 ⇒ l2,1 = (2.11)
3
Luego,
1 0 0 0 3 1 0 1 3 1 0 1
−1 1 0 0 1 4 2 0 0 11
2 − 31
3 = 3 (2.12)
0 0 1 0 0 2 5 2 0 2 5 2
0 0 0 1 1 0 2 6 1 0 2 6
2.2. MÉTODO DIRECTO: LA FACTORIZACIÓN LU 7
3 1 0 1 1 0 0 0 3 1 0 1
1 4 2 0 1 1 0 0 0 11
2 − 31
A= = 3 3 = L1 A1 (2.14)
0 2 5 2 0 0 1 0 0 2 5 2
1 0 2 6 0 0 0 1 1 0 2 6
3 1 0 1 1 0 0 0 3 1 0 1
0 11
2 − 13 0 1 0 0 0 11 2 − 31
A1 = 3 = 3 = L2 A2
0 2 5 2 0 0 1 0 0 2 5 2
1
1 0 2 6 3 0 0 1 0 − 13 2 173
(2.15)
Nótese que la matriz L2 no afecta más que a la cuarta fila de A2 . 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 de A2 .
En la segunda columna el elemento (3, 2) es distinto de cero (2). Ası́, se tiene:
3 1 0 1 1 0 0 0 3 1 0 1
0 11 2 − 13 0 1 0 0 0 11 2 − 31
A2 = 3 = 3
24 = L3 A3
6
43
0 2 5 2 0 1 0 0 0
11 11 11
0 − 31 2 17
3 0 0 0 1 0 − 13 2 17
3
(2.16)
Hay que notar ahora que la matriz L3 no afecta a la primera columna de A3 .
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á por la tercera. Las matrices L’s
que afectan a cada columna no pueden modificar las columnas anteriores.
En A3 el elemento (4, 2) es distinto de cero. Por tanto, se elimina:
8 CAPÍTULO 2. RESOLUCIÓN DE SISTEMAS LINEALES
3 1 0 1 1 0 0 0 3 1 0 1
0 11 2 − 31 0 1 0 0 0 11
2 − 31
A3 = 3 3
24 = 24 = L4 A4
43
43
0 0
11 11 0 0 1 0 0 0 11 11
1
0 − 13 2 17
3 0 11 0 1 0 0 24
11
62
11
(2.17)
Finalmente, solo queda eliminar el término (4, 3) de A4 . De aquı́ resulta:
3 1 0 1 1 0 0 0 3 1 0 1
11
0
3 2 − 13 0 1 0 0 0 11
3 2 − 13
A4 = 43 24 =
43 24 = L5 U
0 0 11 11 0 0 1 0 0 0 11 11
24 62 24 2048
0 0 11 11 0 0 43 1 0 0 0 473
(2.18)
U es una matriz triangular superior. Ahora, de todo lo anterior se sigue:
A = L1 A1 = L1 L2 A2 = L1 L2 L3 A3 = L1 L2 L3 L4 A4 = L1 L2 L3 L4 L5 U (2.19)
Por otra parte, el producto de matrices triangulares inferiores es triangular
inferior. Luego L1 L2 L3 L4 L5 es una triangular inferior que se llamará L. Es,
además, muy fácil de calcular. En efecto
1 0 0 0
1 1 0 0
L= 3 (2.20)
0 6 1 0
11
1 1 24
3 11 43 1
Es decir, el efecto de cada Li es añadir su término fuera de la diagonal.
Esto es válido en general, para matrices Li como las que resultan del proceso
de factorización (una diagonal de 1’s más un término fuera de diagonal).
Nótese que para calcular cada matriz Li hay que resolver la ecuación
1 1
3 1 0 1 3 0 0 0 1 3 0 3
11
0
3 2 − 31 0 11
3 0 0 0 1 6
11
1
11 = DLT
U =
0 43 24 =
43
24
0 11 11 0 0 11 0 0 0 1 43
2048 2048
0 0 0 473 0 0 0 473 0 0 0 1
(2.22)
2.2. MÉTODO DIRECTO: LA FACTORIZACIÓN LU 9
Luego
A = LU = LDLT (2.23)
Esta expresión es conocida como la factorización triple LDLT . Es posible
llevarla a cabo si la matriz A es simétrica (¡pruébese!). Esta simetrı́a se pre-
senta a menudo en problemas de campos, y se puede explotar para mejorar el
procedimiento de factorización LU arriba explicado.
( 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 )
2. Existe una lógica que determina las operaciones y sumas que es preciso
realizar, saltándose 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én 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érese la matriz
10 CAPÍTULO 2. RESOLUCIÓN DE SISTEMAS LINEALES
20 15 6 4
15 6 0 0
A=
6
0 4 0
4 0 0 10
4 6 15 20
se obtiene el factor L
1 0 0 0
0 1 0 0
0 0 1 0
0,4 1,5 2,5 1
Nótese que ahora el factor L tiene tantos ceros como la matriz B. Por otra
parte, las matrices A y B representan al mismo sistema lineal. En efecto, lo único
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 última, 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ón de Gauss, estos elementos ya no requieren
ser eliminados.
Existen una serie de algoritmos que buscan el orden óptimo en el que colo-
car ecuaciones y variables. Matemáticamente, este es un problema para el que
todavı́a no se ha encontrado solución, aunque la experiencia demuestra que al-
gunos de los algoritmos propuestos son muy eficaces.
En el ejemplo anterior se ve como lo más eficaz es colocar la fila con más
elementos no nulos al final de la matriz. Esta es la idea subyacente al algoritmo
del grado mı́nimo, quizá el más popular de los algoritmos de reordenación. Por
ejemplo, la figura 2.2 muestra la reordenación que este algoritmo da para la
matriz de la figura 2.1. Obsérvense las estructuras en forma de flecha que se
forman, que recuerdan lo obtenido en el ejemplo.
2.3. MÉTODOS ITERATIVOS 11
Minimum degree
0
500
1000
1500
2000
2500
3000
3500
4000
Ax = b (2.24)
calculando una serie {x0 , x1 , . . . , xk , . . .} que aproxima cada vez mejor la solu-
ción
Los dos métodos iterativos de uso más frecuente en el cálculo de campos son
el de Jacobi y el de Gauss-Seidel, que se estudian en la siguiente sección. Después,
se expone una mejora a estos métodos, importante para obtener la convergencia
de la serie a una velocidad razonable, conocida como sobrerelajación sucesiva.
Ax − b = 0 (2.26)
Sumando un término P x a cada término, siendo P una matriz que se defi-
nirá más tarde, de la misma dimensión que A:
(A + P )x − b = P x (2.27)