Está en la página 1de 34

2.

Ecuaciones Algebraicas Lineales

2.1 Introducción
Se ha estimado que un 75% de los problemas de ingeniería se presenta, en alguna
etapa del trabajo, la solución de un sistema de ecuaciones lineales:
a11 x1  a12 x 2  a13 x3    a1n x n  b1
a 21 x1  a 22 x 2  a 23 x3    a 2 n x n  b2
a31 x1  a 32 x 2  a 33 x3    a 3n x n  b3 (2.1a)

a n1 x1  a n 2 x 2  a n3 x3    a nn x n  bn

o bien: Ax  b

 a11 a12 a13  a1n   x1   b1 


 
 a 21 a 22 a 23  a 2 n   x 2  b2 
a    
a 32 a 33  a 3n   x3   b3  (2.1b)
 31 
      
    
 a n1 an2 a n 3  a nn   x n  bn 

En las secciones siguientes se supone que el sistema de ecuaciones tiene solución


única, es decir, que det( A)  0 .

La solución de sistemas de ecuaciones es un buen ejemplo de las diferencias entre las


matemáticas “clásicas” y los métodos numéricos modernos. Así, la Regla de Cramer:

 a11 a12  b1  a1n 


 
 a 21 a 22  b2  a 2n 
det  a 31 a 32  b3  a 3n 
 
 
 
 a n1 an2  bn  a nn 
xj 
 a11 a12  a1 j  a1n  (2.2)
 
 a 21 a 22  a2 j  a 2n 
det  a 31 a 32  a3 j  a 3n 

 
 
 a n1 an2  a nj  a nn 

si bien proporciona fórmulas explícitas es tremendamente ineficiente cuando se trata de


resolver sistemas con más de 3 incógnitas (excepto para casos muy especiales de la
matriz de coeficientes).

Muchos métodos frecuentemente utilizados en ingeniería, como por ejemplo los métodos
de elementos finitos para la solución de ecuaciones en derivadas parciales, resultan en
el planteamiento de grandes sistemas de ecuaciones lineales. El costo de análisis y en
muchos casos la factibilidad de un modelo suficientemente preciso dependen en gran
medida de la forma de almacenamiento de las ecuaciones y de la eficiencia del algoritmo
utilizado en su solución.

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-1


2.2 Métodos Directos para la Solución
de Sistemas de Ecuaciones Lineales
Este acápite considera métodos que, de no haber errores de redondeo, producen la
solución exacta en un número finito de pasos. Para sistemas Ax = b, en los que A es de
alta densidad, los métodos directos son en general los más eficientes (para las
computadoras actualmente utilizadas). Sin embargo, cuando un gran número de
elementos de A son cero, y en especial cuando A es definida positiva ( x T Ax  0 para
cualquier x  0 ), puede ser más conveniente utilizar un método iterativo en que se
obtiene una secuencia de soluciones aproximadas que convergen a la solución exacta.

2.2.1. Sistemas Triangulares

La solución de sistemas de ecuaciones lineales es particularmente simple cuando la


matriz de coeficientes es triangular. Por ejemplo, considérese un sistema Ux = b en el
que U es triangular superior:
u11 x1  u12 x 2  u13 x3    u1n x n  b1
u 22 x 2  u 23 x3    u 2 n x n  b2
u 33 x3    u 3n x n  b3
(2.3)

u n 1,n 1 x n 1  u nn x n  bn
u nn x n  bn

Si U es no singular ( u ii  0 para todo i), las incógnitas pueden evaluarse en el orden: n,


n-1, n-2, n-3, ... 2, 1:
bn
xn  (2.4a)
u nn

 n


1  bi 
xi  u ik x k  (2.4b)
u ii  
 k i 1 
Este proceso se denomina “sustitución inversa”. Análogamente, para un sistema Lx = b,
en el que L es una matriz triangular inferior no singular ( l ii  0 para todo i), puede
utilizarse una sustitución directa o “reducción”:
b1
x1  (2.5a)
l11

 i 1

l
1  bi  
xi  ik x k (2.5b)
l ii  
 k 1 
En ambos casos, la solución del sistema requiere n divisiones y 1
2
n n  1 operaciones
de multiplicación y suma (casi lo mismo que para multiplicar una matriz triangular por un
vector).

2.2.2 Método de Gauss

Éste es el más importante de los métodos directos para la solución de sistemas de


ecuaciones lineales. La idea básica está en combinar las distintas ecuaciones para ir

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-2


eliminando incógnitas en forma sistemática y obtener finalmente un sistema triangular,
fácil de resolver. Considérese el sistema de orden n:
(1)
a11 x1  a12
(1)
x 2  a13
(1)
x3    a1(1n) x n  b1(1)
(1)
a 21 x1  a 22
(1)
x 2  a 23
(1)
x3    a 2(1n) x n  b2(1)
(1)
a 31 x1  a 32
(1)
x 2  a 33
(1)
x3    a 3(1n) x n  b3(1) (2.6)

a n(11) x1  a n(12) x 2  a n(13) x3    a nn
(1)
x n  bn(1)

o en forma compacta: Ax = b. En lo que sigue se supone que A es no singular.


Supóngase también que a11  0 . Puede entonces eliminarse x1 de la ecuación i si de
ésta se resta la ecuación 1 multiplicada por:

a i(11)
l i1  (1)
(2.7a)
a11
Con ello se obtiene:
(1)
a11 x1  a12
(1)
x 2  a13
(1)
x3    a1(1n) x n  b1(1)
( 2)
a 22 x 2  a 23
( 2)
x3    a 2( 2n) x n  b2( 2)
( 2)
a 32 x 2  a 33
( 2)
x3    a 3( 2n) x n  b3( 2) (2.7b)

a n( 22) x2  a n( 23) x3    ( 2)
a nn x n  bn( 2)
donde

a ij( 2)  a ij(1)  l i1 a1(1j)


(2.7c)
bi( 2)  bi(1)  l i1 b1(1)

En forma similar, puede eliminarse x2 de las ecuaciones i = 3,4,..n restando de la


ecuación i la ecuación 2 multiplicada por:

a i(22)
li 2  ( 2)
a 22

y así sucesivamente hasta obtener el sistema triangular:


(1)
a11 x1  a12
(1)
x 2  a13
(1)
x3    a1(1n) x n  b1(1)
( 2)
a 22 x 2  a 23
( 2)
x3    a 2( 2n) x n  b2( 2)
( 3)
a 33 x3    a 3(3n) x n  b3(3) (2.8)

(n)
a nn x n  bn( n )

o en notación matricial: Ux = b.

Los elementos a11 (1) ( 2)


, a22 (3)
, a33 an( n1,1n)1 que se usan como divisores en esta reducción
se llaman “pivotes”. El proceso – tal como ha sido planteado hasta el momento – falla si
alguno de estos es cero. Esto en general no ocurre si la matriz A tiene diagonal
dominante (es decir, si a ii  a
j i
ij ) o si A es simétrica (AT = A) y definida positiva
(vTAv > 0 para v arbitrario).

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-3


El siguiente ejemplo ilustra el proceso:

1 2 3 4   x1   2 
 
(1) 1 4 9 16   x 2   10 
  
(1) 1 8 27 64   x3   44 
 
(1) 1 16 81 256   x 4  190 

Los números indicados a la izquierda (entre paréntesis) son los factores li1 por los que es
necesario multiplicar la ecuación 1 antes de restarla de la ecuación i, para lograr el
objetivo de eliminar x1 de la segunda y las siguientes ecuaciones.

1 2 3 4   x1   2 
    
 0 2 6 12   x 2   8 
  
(3)  0 6 24 60   x3   42 
 
(7)  0 14 78 252   x 4  188 

Análogamente:

1 2 3 4   x1   2 
 
0 2 6 12   x 2   8 
0   
0 6 24   x3   18 
 
(6)  0 0 36 168   x 4  132 

1 2 3 4   x1   2 
 
0 2 6 12   x 2   8 
0   
0 6 24   x3  18 
 
0 0 0 24   x 4  24 

finalmente:
24 x 4  24 x4  1
6 x3  24 x 4  18 x3  1
2 x 2  6 x3  12 x 4  8 x2  1
x1  2 x 2  3 x3  4 x 4  2 x1  1

Para estimar el esfuerzo de cómputo es habitual referirse al número de "operaciones"


requeridas. La costumbre es contar como una operación a la combinación de una suma
(o resta, o simplemente una copia) con una multiplicación (o división). Esta práctica
proviene de las épocas en que el tiempo requerido para efectuar una multiplicación o una
división era un orden de magnitud mayor que el necesario para una suma o una resta,
pudiendo despreciarse estas últimas. La reducción de la matriz de coeficientes requiere
1 3
de un número de operaciones de orden 3n . La reducción del segundo miembro y la
2
sustitución inversa requieren aproximadamente n operaciones. Si se tuvieran varios
sistemas de ecuaciones con la misma matriz de coeficientes: Ax = b1, Ay = b2, ... sólo
se requeriría efectuar la reducción de A una vez, por lo que el número de operaciones
sería siempre aproximadamente 1
3n
3
. Más precisamente, se hacen 1
3n
3
 n2  13 n
operaciones de multiplicación y división (y  1 2 n  5 6 n sumas o restas) para
1
3n
3 2

resolver un sistema de n ecuaciones lineales, pero si n es grande (que es el caso en el


que la estimación tiene interés) sólo el primer término es importante.

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-4


El proceso antes descrito falla cuando se presenta un pivote, a ii(i ) , igual a cero. Un
ejemplo simple de tal situación es el siguiente:

1 1 1   x1  1 
    
1 1 2   x 2   2 
1 2 2   x  1 
  3  
La matriz de coeficientes no es singular y el sistema tiene una solución única
x  1  1 1 . Sin embargo, después del primer paso (efectuado en el orden indicado
T

anteriormente), se obtiene:

 1 1 1  x1  1
    
 0 0 1  x 2   1
 0 1 1  x  0
  3  
y siendo a 22  0 , no es posible proseguir como habitualmente. La solución es en este
( 2)

caso obvia: intercambiar las ecuaciones (filas) 2 y 3. En general, si aii(i )  0 , algún otro
(i )
elemento de la misma columna, a ji , debe ser distinto de cero (lo contrario implicaría
una dependencia lineal de por lo menos dos de las ecuaciones, es decir la singularidad
de A). Intercambiando las filas j e i puede entonces continuarse la reducción. Dados los
(i )
elementos a ji de la columna i, es conveniente escoger como pivote aquel de máximo
valor absoluto, puesto que el uso de pivotes pequeños introduce fuertes errores en la
solución. El ejemplo siguiente es ilustrativo:

 3  10 11 1  x1  7 
   
 1  x 2  9
 1

Trabajando con 10 cifras significativas se obtiene:

 3.000 000 000  10 11 1   x1   7 


  

 0  
 3.333 333 333  10   x 2  7  3.333 333 333  10 
10

10 

de donde: x2  7
x1  0

La solución correcta es, sin embargo, x1  2 . Es fácil comprobar que no se presenta


este problema si se evita el pivote pequeño intercambiando previamente las ecuaciones:

 1 1  x1  9
   
 3  10
11
1  x 2  7

El intercambio de filas al que se ha hecho referencia se denomina “intercambio parcial”.


Alternativamente, puede pensarse en un “intercambio completo”, en que se selecciona el
siguiente pivote como el elemento de máximo valor absoluto entre todos los elementos
de la sub matriz por reducirse. Se intercambian entonces filas (ecuaciones) y columnas
(incógnitas) para continuar el proceso como se ha descrito.

El intercambio parcial es generalmente satisfactorio, desde el punto de vista de la


estabilidad numérica, y requiere bastante menos trabajo que el proceso con intercambio
total.

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-5


2.2.3 Descomposición A = LU

Supóngase que A es tal que el proceso de reducción del método de Gauss puede
efectuarse sin necesidad de intercambiar filas o columnas. En tal caso, la
descomposición A = LU donde L es una matriz triangular inferior con l ii  1 y U es una
matriz triangular superior, es única. Esto puede probarse fácilmente por inducción. Para
el caso del primer ejemplo:

1 2 3 4  1 0 0 0 1 2 3 4
    
1 4 9 16  1 1 0 0  0 2 6 12 
1 8 27 64   1 3 1 0  0 0 6 24 
    
1 16 81 256  1 1   0 0 24 
   7 6 0

Los elementos de L son justamente los coeficientes l ij usados durante la reducción; U


es en cambio ¡la matriz A reducida!

Se ha mencionado anteriormente que varios sistemas de ecuaciones con la misma


matriz de coeficientes pueden ser resueltos simultáneamente. Sin embargo, no siempre
se conocen desde un principio todos los vectores de coeficientes del segundo miembro.
Por ejemplo, puede querer resolverse Ax1 = b y Ax2 = x1. Aún en este caso, al resolver
el segundo sistema no es necesario volver a reducir la matriz A como al inicio. El
sistema Ax = b es equivalente a LUx = b, o bien a los dos sistemas triangulares: Ly = b
2
, Ux = y. Siendo L y U conocidos, estos dos sistemas pueden resolverse en O( n )
operaciones. L y U pueden almacenarse en las mismas posiciones de memoria que en
la matriz A: Como l ki  a ki aii(i ) se determina con el objeto de hacer a ki(i 1)  0 , l ki
(i )

puede almacenarse en las posición de a ki . Por otro lado, no es necesario almacenar los
elementos de la diagonal de L (que son todos iguales a 1). Dado que los elementos de
U son aquellos de la matriz reducida, el efecto de la reducción o descomposición en la
distribución de memoria es de la forma:

 a11 a12 a13  a1n   u11 u12 u13  u1n 


   
 a 21 a 22 a 23  a 2 n   l 21 u 22 u 23  u 2 n 
a a32 a33  a3n    l 31 l 32 u 33  u 3n 
 31   
   
   
 a n1 an2 a n3  a nn   l n1 l n 2 l n3  u nn 
Para el ejemplo precedente:

1 2 3 4  1 2 3 4
   
1 4 9 16  1 2 6 12 
1 8 27 64   1 3 6 24 
   
1 16 81 256  1 6 24 
   7

En los casos en los que se efectúan intercambios de filas y/o columnas es siempre
posible (si A no es singular) obtener factores triangulares L y U tales que LU = A’,
donde A’ es la matriz que resulta de efectuar los intercambios mencionados en la matriz
original A.

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-6


2.2.4 Otros Métodos Directos

Todos los métodos tratados en esta sección pueden considerarse como variantes del
método de Gauss.

Una posible alternativa es la de calcular los elementos de L y U mediante las fórmulas:


k 1
u k j  ak j  l
p 1
kp upj j  k , k  1,  n (2.9a)

 k 1 

1  ai k 
l ik  li p u p k  i  k  1,  n (2.9b)
u kk  
 p 1 

en lugar de efectuar “reducciones” como anteriormente. Esta modificación (Doolitle) es


conveniente cuando se usan calculadoras manuales, ya que evita la escritura de muchos
resultados intermedios. Su uso en computadoras es ventajoso si las operaciones se
hacen con una precisión mayor que aquella con la que se almacenan los resultados.

El método de Crout efectúa la factorización A = LDR, donde L es la misma matriz


triangular inferior obtenida durante el proceso de Gauss, D es una matriz diagonal y R es
una matriz triangular superior con coeficientes 1 en su diagonal principal. D y R están
relacionados con la U de Gauss.
d ii  u ii
u ij (2.10)
rij  j i
d ii

En particular, para A simétrica: R = LT. Este método no posee ventajas ni desventajas


con relación al de Gauss, bien sea en cuanto a estabilidad numérica y precisión, como
en el número de operaciones necesarias.

Si durante el proceso de reducción se usa la ecuación i para eliminar xi, no sólo de las
ecuaciones que siguen a la i sino también de la ecuaciones precedentes, se tiene el
método de Gauss – Jordan. Para el ejemplo antes considerado:

1 2 3 4   x1   2 
    
1 4 9 16   x 2   10 
1 8 27 64   x    44 
  3  
1 16 81 256   x  190 
  4  

1 2 3 4   x1   2 
    
 0 2 6 12   x 2   8 
 0 6 24 60   x    42 
  3  
 0 14 78 252   x  188 
  4  

1 0  3  8   x1    6 
 
0 2 6 12   x 2   8 
0   
0 6 24   x3   18 
 
0 0 36 168   x 4  132 

Nótese que se utilizó la segunda ecuación para reducir no solamente las ecuaciones 3 y
4, sino también la ecuación 1. Análogamente:

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-7


1 0 0 4   x1   3 
 
0 2 0  12   x 2   10 
0   
0 6 24   x3   18 
 
0 0 24   x 4   24 
 0

1 0 0   x1    1
0
    
0 2 0  x2   2 
0
0 0 6   x    6 de donde se obtiene fácilmente la solución.
0
  3  
0 0 0 24   x 4   24 

El método de Gauss- Jordan es más simple de programar, pero requiere casi 1.5 veces
el número de operaciones del método de Gauss tradicional.

Finalmente, para concluir esta sección, debe mencionarse que el método de Gauss es
aplicable también a sistemas de ecuaciones con coeficientes complejos. Por ejemplo:

 2 1 i 0  x1   4  2i 
    
1  i 2 1  i  x 2    8  4i 
 0 1 i 3  x3  11  2i 

2 1 i 0  x1   4  2i 
    
 0 1 1  i  x 2    5  3i 
0 1 i 3  x3  11  2i 

2 1 i 0  x1  4  2i 
    
 0 1 1  i  x 2   5  3i 
0 0 1  x3   3 

de donde:
x3  3
x 2  (5  3i )  3(1  i )  2
x1  1
2
(4  2i)  2(1  i)  1
2.2.5 Inversión de Matrices
-1
Si la inversa, A , de una matriz A se conoce, la solución de un sistema Ax = b puede
-1 -1
escribirse x = A b. Podría entonces parecer conveniente determinar A , en especial si
se tienen varios sistemas de ecuaciones con la misma matriz de coeficientes. Sin
embargo, la solución puede ser obtenida con mucho menos operaciones – y en general
con mucha más precisión – utilizando la descomposición A = LU. La solución de los dos
2
sistemas triangulares Ly = b y Ux = y requiere sólo O(n ) operaciones (por cada
columna de b ó x). Por otro lado, la multiplicación A-1b también demanda O(n2)
-1
operaciones. Sin embargo, la determinación de A requiere aproximadamente el triple
de trabajo que para obtener L y U. El número de operaciones (multiplicaciones o
divisiones) necesarias para obtener la inversa de una matriz cuadrada (no simétrica) de
orden n es n 3  2 n 2  n  1 .

No obstante esto, en algunos casos se necesita la inversa en forma explícita. La inversa


puede obtenerse de un modo eficiente resolviendo n sistemas de ecuaciones lineales:

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-8


AX = In, donde X = A-1. El siguiente ejemplo utiliza una variante del método de Gauss
con este objeto:

1 1 1
 
A   2 1 3
 3 1 4
 
En la columna de la izquierda se tienen la matriz A y sus sucesivas modificaciones. A la
derecha se presentan la matriz I y las modificaciones obtenidas efectuando sobre las
filas las mismas operaciones que en A:

1 1 1 1 0 0
   
 2 1 3  0 1 0
 3 1 4 0 0 1
   
 1 1 1  1 0 0
   
 0  1 1   2 1 0
 0  2 1   3 0 1
   
1 0 2    1 1 0
   
 0 1  1  2  1 0
 0 0  1  1  2 1
   
1 0 0  1 3 2 
   
 0 1 0 1 1  1  A 1
0 0 1   1 2  1
   
Alternativamente, si la descomposición A = LU de una matriz A se conoce, la inversa
-1 -1 -1 2
puede obtenerse de A = U L , también en O(n ) operaciones. Si en los cómputos
-1 -1
para L y U se hacen intercambios de filas, el producto U L resulta la inversa de una
-1 -1
cierta matriz A’. La matriz A puede obtenerse a partir de (A’) intercambiando
columnas en secuencia inversa a los cambios de fila durante el proceso.
Para la matriz antes considerada:

 1 1 1  1 0 0 1 1 1
    
 2 1 3   2 1 0  0  1 1 
 3 1 4   3 2 1   0 0  1
    
A  LU

La inversa de una matriz triangular es otra matriz del mismo tipo, fácil de determinar.

Para una matriz triangular inferior, L, cada columna de la matriz inversa L-1 puede ser
obtenida por sustitución directa o “reducción”: LY = In.

y ij  0 i j (2.11a)

 i 1 

1   ij 
y ij  l ik y kj  i j (2.11b)
l ii  
 k j 

En forma análoga, la inversa, U-1, de una matriz triangular superior, U, es también una
matriz triangular superior. Cada fila i, puede determinarse mediante UZ = In:

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2-9


 j 1

z
1   ij  
z ij   ik u kj 
i j (2.12a)
u jj  k i 
z ij  0 i j (2.12b)

Para las matrices L y U del ejemplo considerado:

 1 0 0 1 1 2

1
 1
 
L    2 1 0 U   0  1  1
 1  2 1  0 0  1
   
 1 3 2 
1
 1
 1
A U L  1 1  1
  1 2  1
 

2.2.6 Casos Especiales

Matrices Simétricas Definidas Positivas.

Para una matriz simétrica: a (jk1)  a kj(1) . Si se efectúa la reducción de Gauss sin
intercambio de filas y/o columnas se tiene también que: a (jki )  a kj(i ) para i  j , k  n .
En otras palabras, la sub – matriz que debe aún reducirse en un paso dado es también
simétrica. Esto puede probarse por inducción, teniendo en cuenta las condiciones
iniciales de simetría y además que:

a ki(i )
a kj(i 1)  a kj(i )  l ki aij(i )  a kj(i )  aij(i ) (2.13a)
aii(i )

a (jii )
a (jki 1)  a (jki )  l ji aik(i )  a (jki )  aik(i ) (2.13b)
aii(i )

Puede observarse que, si los coeficientes en la etapa i son simétricos, aquellos en la


etapa i  1 también lo son, puesto que se obtienen operando del mismo modo con
números iguales.

Considérese, por ejemplo, el sistema de ecuaciones con coeficientes simétricos:

 4 2 1 0  x1  0
 
 2 6 2 1  x2  1
 1   
2 6  2  x3  0
 
 0 2 4  x4  0
 1

En las sucesivas etapas del proceso de eliminación, las sub matrices que quedan por
reducir siguen siendo simétricas:

4 2 1 0  x1  0
 
0 5  1.5 1  x2  1
0   
 1.5 5.75  2  x3  0
 
0 2 4  x4  0
 1

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 10


4 2 1 0  x1   0 
 
0 5  1.5 1   
 x2   1 

0     
0 5.3  1.7  x3   0.3 
 
0 3.8 
 0  1.7  x4 
   0.2

4 2 1 0  x1   0   x1   0.0986 
   x   0.2203 
0 5  1.5 1   
 x2   1

  2  
0     de donde   
0 5.3  1.7  x3   0.3   x3   0.0464 
 
0 3.2547   x4   0.0319 
 0 0  x4 
 
 0.1038 

La simetría de la matriz por reducirse permite hacer: l ki  aik


(i ) (i )
aii(i ) (utilizando a ik en
( i 1)
(i )
lugar de a ki ) y restringir los cálculos de: a kj  a kj(i )  l ki aij(i ) a las columnas k  j  n ,
en lugar de i  j  n . El número de operaciones para la reducción (contando solo
multiplicaciones y divisiones) es entonces O( 1 6 n 2 ) , aproximadamente la mitad que
para el caso general.

También los requerimientos de memoria pueden reducirse, almacenando los coeficientes


de la matriz en un arreglo monodimensional. Para el caso de una matriz simétrica de
alta densidad el siguiente esquema de numeración de los coeficientes es apropiado:

 1 2 4 7 11   
 
 3 5 8 12   
 6 9 13   
 
 10 14   
 
 15   
   
 

1
2
n (n  1) 

Es evidente que intercambios de filas y columnas destruyen la simetría, a menos que se


tome siempre como pivote un elemento de la diagonal principal. Tales intercambios no
son necesarios si la matriz es definida positiva (xTAx > 0 para x arbitraria, no nula), ya
que en tal caso:

aii( k )  0 i  1, k  n
2
aij( k )  aii( k ) a (jjk ) k  i, j  n (2.14)

aii( k 1)  2aii( k ) k i n


Estas condiciones garantizan que no se presentan pivotes pequeños.

Para el caso de matrices simétricas definidas positivas puede también utilizarse el


método de Cholesky. Éste método efectúa la descomposición A = RTR, donde R es una
matriz triangular superior cuyos elementos pueden obtenerse (por filas) de:
1

 i 1 2
rii   aii   rpi 
 2
(2.15a)
 p 1 

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 11


1  i 1 
rij   aij   rpi rpj  j  i  1, i  2,
  (2.15b)
rii  p 1 
Para el ejemplo anterior se obtiene:

r11  a11  2  2.0000


1

r12  a12 r11  -1.0000


r13  a13 r11  0.5000

r14  a14 r11  0

 
1

r22  a22  r122 2


 2.2361
r23  a 23  r12 r13  r22  -0.6708

r24  a24  r12 r14  r22  0.4472

 
1

r33  a33  r132  r232 2


 2.3022
r34  a34  r13 r14  r23 r24  r33  -0.7384

 
1

r44  a44  r142  r242  r342 2


 1.8041

es decir:

 2.0000  1.0000 0.5000 0 


 
 0 2.2361  0.6708 0.4472 
R 
0 0 2.3022  0.7384 
 
 0 1.8041 
 0 0

El sistema Ax = b puede entonces rescribirse como RTRx = b o bien RTy = b; Rx = y

Resolviendo el primer sistema triangular:

 0 
 0.4472 
 
y 
 0.1303 
 0.0575 

y finalmente:

 x1   0.0986 
 x   0.2203 
 2  
  
 x3   0.0464 
 x4   0.0319 

Puede anotarse que R está relacionada con las L y U de Gauss mediante RT= LD;
R = D –1U; donde D = diag  u11 u 22  
u nn .

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 12


Matrices Banda.

Los sistemas de ecuaciones en que los coeficientes forman matrices banda son
frecuentes. Tales sistemas se resuelven eficientemente por el método de Gauss y otros
similares, ya que éstos conservan la estructura de banda de las matrices: A = LU:

1 1 0 0 0 1 0 0 0 0  1 1 0 0 0
    
1 2 1 0 0  1 1 0 0 0  0 1 1 0 0
 0 1 2 1 0  0 1 1 0 0  0 0 1 1 0
    
 0 0 1 2  1  0 0 1 1 0  0 0 0 1  1
    
 0 0 0 1 2  0 0 0 1 1  0 0 0 0 1
– – –1
Nótese que A 1 = U 1L no es una matriz banda:

5 4 3 2 1
 
4 4 3 2 1
A 1
 3 3 3 2 1
 
2 2 2 2 1
 
1 1 1 1 1

y por lo tanto no conviene hallar A 1 en forma explícita.

Particularmente simples de tratar son los sistemas con matrices banda simétricas y
definidas positivas (no se requieren intercambios de filas y/o columnas). Dos posibles
esquemas para almacenar los coeficientes en un arreglo monodimensional son en este
caso:
 1 8 15 
 
  2 9 16 
   3 10 17 
 
A   4 11 18 
   5 12 19 
 
   6 13 (20)
 
   7  (14) (21)

Las posiciones tales como 14, 20 y 21 no se usan, pero se requieren para tener un
número fijo de coeficientes en cada codiagonal, lo que facilita la programación. Siendo
el ancho de la semibanda, m, mucho menor que el número de ecuaciones, n, las
posiciones de memoria “perdidas” son despreciables. Este esquema de almacenamiento
(y su variante por filas) es apropiado cuando el ancho de banda es aproximadamente
constante.

Otra posibilidad es:


1 2 4 
 
 3 5 7 13 
   6 8 10 14 
 
A   9 11 15 
   12 16 18 

     17 19 
 
   20 

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 13


Esta forma de almacenamiento es más eficiente cuando el ancho de banda es variable
(como ocurre en la mayor parte de los problemas reales). Se guardan los coeficientes
por columnas, desde el “perfil” superior a la diagonal principal. Se requiere un arreglo de
apuntadores o índices que indican las posiciones ocupadas por los coeficientes de la
diagonal principal (que son los más referidos durante el proceso de solución). Nótese
que al aplicar el método de Gauss (o cualquier variante de ese procedimiento) no se
producen valores significativos por encima del perfil original y por lo tanto no se requiere
más memoria que aquella en la situación inicial.

Se necesitan nm posiciones de memoria (donde n es el orden de la matriz y m << n el


2
ancho de semibanda), mucho menos que las n posiciones para la matriz completa o las
1
2n n  1 para una matriz simétrica de alta densidad. Por otro lado, la reducción de la
matriz de coeficientes demanda sólo O 1
2 nm
2
 operaciones, ya que:
l ij  0 excepto para j i  jm

u ij  0 excepto para i  j  i  m

Esto debe compararse con O  1


6n
3
 operaciones para reducir una matriz simétrica de
alta densidad. La reducción del segundo miembro y la sustitución inversa requieren
 
O 2 nm  , en lugar de O n 2 operaciones. En la práctica, rara vez se tiene un ancho de
banda constante, pero aún así estos estimadores son útiles, si se considera m como la
media cuadrática de los anchos de semibanda en las ecuaciones.

Un caso especial es aquel en que la matriz de coeficientes es “tridiagonal”:

 a1 b1   x1   c1 
    
 b1 a2 b2   x2   c2 
  x   c 
  3    3 
b2 a3 b3
 (2.16)
       
 
 bn  2 a n 1 bn 1   x n 1  c n 1 
    
 bn 1 a n   x n   c n 

Los únicos coeficientes significativos son aquellos de la diagonal principal y de dos


codiagonales, es decir, dos líneas paralelas a la referida diagonal.

Se observa que al descomponer la matriz de coeficientes, A, en sus factores triangulares


LU los factores mantienen la estructura banda:

 a1 b1  1   r1 b1 
    
 b1 a2 b2   q1 1  r2 b2 
 b2 a3 b3   q2 1  r3 b3 
   
       r4  
    
 bn  2 a n 1 bn 1   q n2 1   bn 1 
 a n   1   rn 
 bn 1 q n 1

La determinación de los q i y ri es muy simple:

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 14


r1  a1
qi  bi / ai i  1,2, n  1 (2.17a)
ri 1  ai 1  qi bi
y, considerando L y = c:
y1  c1
(2.17b)
y i 1  ci 1  qi y i i  1,2, n  1
de donde se obtiene x resolviendo U x = y:
x n  y n / rn
xi  ( y i  bi xi 1 ) / ri i  n  1, 2, 1

Para resolver un sistema de n ecuaciones lineales con matriz de coeficientes tridiagonal


se requieren sólo 5n  4 operaciones. Como se indicó anteriormente, se cuenta como
una operación la combinación de una multiplicación o división con una suma, resta o
almacenamiento del resultado.

Grandes sistemas de ecuaciones lineales

(con matrices de coeficientes banda, simétricas y definidas positivas).

Cuando la memoria de la computadora es insuficiente para almacenar todos los


coeficientes del sistema de ecuaciones, se recurre al disco. El acceso a este medio es
(en términos relativos) muy lento y en lo posible debe tratar de minimizarse su uso.

Es frecuente subdividir la información de sistemas de ecuaciones excesivamente


grandes en “bloques” de una o más ecuaciones (o columnas).

Los datos de cada bloque se almacenan en disco. Éstos son leídos a la memoria
principal conforme van siendo utilizados y regrabados en la memoria auxiliar una vez
operados. La solución del sistema de ecuaciones por el método de Gauss (u otro similar)
requiere mantener en memoria principal la información de por lo menos dos bloques en
forma simultánea. Así por ejemplo, durante el proceso de reducción, las ecuaciones del
bloque k deben ser utilizadas para reducir ecuaciones del mismo bloque y de los bloques
sucesivos k+1, k+2, ...., k+n (n en general es pequeña), lo que implica que, estando el
bloque k en memoria, los bloques sucesivos deben ser leídos, parcialmente reducidos, y
regrabados en secuencia. Algo similar ocurre con el proceso de sustitución inversa.

2.3. Errores en la Solución de


Sistemas de Ecuaciones Lineales
En la solución práctica de grandes sistemas de ecuaciones lineales se realizan millones
de operaciones y en cada una ocurren errores de redondeo, ¿Cómo afectan estos
errores a los resultados? ¿Cómo puede estimarse la magnitud del error en la solución?
Podría pensarse que, habiendo resuelto el sistema A x = b, la magnitud del residuo
r = b – A x sea una buena medida del error introducido en x. !Esto es falso!
Considérese por ejemplo:

 0.780 0.563  0.217 


A =   b=  
 0.913 0.659  0.254 

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 15


T
Y supóngase que se ha resuelto A x = b obteniendo x1 = (0.341 -0.087) ¿Qué tan
buena es esta solución?
r1 = b – A x1 = (10-6 0)T
T
Por otro lado si se afirma que la solución es x2 = (0.999 -1.001) se obtiene el residuo.
r2 = b – A x2 = (1.343x10-3 1.572x10-3)T
T
¿Es x1 mejor solución que x2? No. La solución exacta es x = (1 -1) .

Aunque la magnitud del vector residuo r = b – A x no da una indicación directa del error
en x, es posible utilizar residuos para estimar el error e incluso para corregir la solución.
Esto se discute más adelante.

2.3.1 Normas de Vectores y Matrices

Con el propósito de discutir los errores al resolver sistemas de ecuaciones lineales, se


define como norma (o medida) de un vector:

x p
 ( x1p  x2p  )1 / p 1 p   (2.18a)

Dos casos particulares son de interés:

x 2
 ( x12  x22  )1 / 2 (norma Euclidiana) (2.18b)

x 
 máx x i (máximo valor absoluto) (2.18c)

Es relativamente fácil probar que:

x 0 sólo hay igualdad si x = 0

ax  a x (2.19)

xy  x  y

Estas propiedades son familiares en relación a la norma Euclidiana o “longitud” de un


vector.

La norma de una matriz cuadrada, A , puede ser definida en forma consistente con la
definición de norma de un vector:

Ax
A p
 máx
p
x  0  (2.20a)
x p

 máx ,  máx
1/ 2 T
La norma A 2
es donde es el máximo valor característico de A A (ver
capítulo 3). Por otro lado:
n
A 
 máx
i
j 1
a ij (2.20b)

Estas normas satisfacen condiciones similares a las normas de vectores. Además:

AB  A B (2.21)

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 16


2.3.2 Condicionamiento de una matriz:

En esta sección se analizan los efectos de una pequeña perturbación A en la matriz A,


o de una perturbación b en b.

Si x es la solución exacta de A x = b, cuando se considera la matriz de coeficientes


A  A la solución resulta x  x :
(A  A) (x  x)  b (2.22)

de donde:

x   A 1A (x  x)

tomando normas:

x  A 1 A x  x

y dividiendo entre x  x :
x A
  A  (2.23)
x  x A

donde K A   A A 1 (2.24)
1 / 2
es el número de condicionamiento de la matriz A. Dado que A 1   mín , donde
2

 min T
es el menor valor característico de la matriz A A, puede escribirse:


K 2 A   máx /  mín 1/ 2
(2.25)

Por otro lado: para una perturbación b en b:


A (x  x)  b  b (2.26)

de donde:

 x  A 1b

x  A 1 b

b
y dado que b = A x, lo que implica x 
A

se obtiene:

x b
 K A  (2.27)
x b

Las ecuaciones (2.23) y (2.27) indican que, si K A  es grande, pequeños cambios en A


o en b pueden originar cambios importantes en la solución.

Si se tienen errores relativos de orden  tanto en A como en b, (2.23) y (2.27) pueden


combinarse, para escribir:

 x  2  K ( A) x (2.28)

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 17


Los errores de redondeo introducidos en el proceso de solución pueden ser
considerados como equivalentes a perturbaciones en las matrices A y b iniciales. K A 
es también un buen indicador de los efectos de los errores de redondeo en la solución.

La expresión (2.28) implica que si A y b están dadas con t cifras significativas, el número
de cifras que puede esperarse sean correctas en la solución, s, puede estimarse
mediante:
s  t  log 10 K ( A ) (2.29)

Para el ejemplo precedente: A 


= 0.913 + 0.659 = 1.572

 0.659  0.563 
además: A 1  10 6  
  0.913 0.780 
de donde A 1 = 0.913 x 106 + 0.780 x 106 = 1.693 x 106

K  A   A 
A 1 = 1.572 x 1.693 x 106 = 2.7 x 106

Alternativamente, trabajando con normas Euclidianas:

1.441969 1.0040807 
A T A   
1.040807 0.751250 

cuyos valores característicos son  máx = 2.1932,  mín = 4.56 x 10


-13

de donde K 2 A    máx /  mín 


1/ 2
= 2.2 x 106
Ambos resultados indican un mal condicionamiento de la matriz A.

Note que en el ejemplo anterior la matriz A no era simétrica, por lo que fue necesario
evaluar los valores característicos de A T A . Si A fuera simétrica, los valores
característicos de A T A serían exactamente los cuadrados de los valores característicos
de A.

2.3.3 Errores de redondeo en la solución de sistemas de ecuaciones lineales


por el método de Gauss (y otros métodos de eliminación similares)

Las relaciones teóricas utilizadas en la reducción son:

l ki  a ki(i ) / aii(i )

a kj(i 1)  a kj(i )  l ki aij(i ) (2.30)

bk(i 1)  bk(i )  l ki bi(i )

Sin embargo, como resultado de los errores de redondeo, los valores calculados (aquí
indicados en barras) satisfacen:
(i ) (i )
l ki  (a ki / a ii )(1  1 )
( i 1) (i ) (i )
a kj  (a kj  l ki a ij (1   2 ))(1   3 ) (2.31)

(i 1) (i ) (i )
bk  (b k  l ki b i (1   4 ))(1   5 )

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 18


donde  i   , siendo  el máximo error relativo de redondeo. Alternativamente puede
escribirse:
(i ) (i )
l ki  (a ki  e ki(i ) ) / a ii
( i 1) (i ) (i )
a kj  a kj  l ki a ij  ekj(i ) (2.32)

(i 1) (i ) (i )
bk  b k  l ki b i  ek(i )

y puede probarse que:


(i )
eki(i )   a ki

 (i ) ( i 1) 
ekj(i )  3  .máx  a kj , a kj 
  (2.33)

 (i ) (i 1) 
c k(i )  3  .máx  b k , b k 
 

Por otro lado, considerando que . a kj  a kj , l kk  1 , pueden utilizarse las expresiones


(1)

(1)
precedentes para escribir a kj en función de los l ki , a ij . (es decir los elementos de las
matrices L y U). Se obtiene así:
r s

 e kji   l
(i )
a kj  ki a ij (2.34a)
i 1 i 1

donde r = min (k-1,j), s = min (k, j). Por otro lado, teniendo en cuenta que b k  b k , se
(1)

obtiene:
k 1 k

 c ki   
(i )
bk  l ki b i (2.34b)
i 1 i 1

Esto demuestra que las matrices calculadas:


(i )
L  (l ki ) U  ( a ij ) y  (bi(i ) )

No son factores exactos de A y b sino de A + A y b + b:

A  A  L U

b  b  L y

Los elementos de A son sumatorias de los e kji  ; los elementos de b son sumatorias
i 
de los c k . Las expresiones (2.33) dan una medida de estas perturbaciones. Obsérvese
que las expresiones (2.23) y (2.27) son aplicables también en este caso, y un valor de
K (A) alto indica que los errores de redondeo tendrán efectos importantes en la
solución.
Por otro lado, las expresiones (2.33) y (2.34) indican que es conveniente limitar el
crecimiento de los a kj(i ) , bk(i ) . Este es el propósito al realizar intercambios de filas y/o
columnas.

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 19


Finalmente, debe mencionarse que en el proceso de sustitución inversa, para obtener x
resolviendo U x  y , los errores acumulados son despreciables en términos relativos a
los que resultan de la reducción.

Las ecuaciones precedentes permiten una estimación a-posteriori de la magnitud del


(1)
error. A-priori puede establecerse :

máx a ij( k )
gn 
i , j ,k
(2.35)
máx a ij(1)
i, j

teniendo que:

g n  2 n 1 para intercambio parcial (filas)


g n  1.8 n 0.25 Ln n para intercambio total.
Estos límites son teóricos. Nótese por ejemplo que para un sistema de orden 100 se
tendría g n  6.3x10 29 para intercambio parcial y g n  18 para intercambio completo, lo
que justificaría el trabajo adicional necesario para la segunda alternativa. Sin embargo,
en la práctica al hacer intercambios rara vez se observa un g n mayor que 10, aún con
intercambio parcial. Para matrices simétricas definidas positivas se tiene que g n  1 .

2.3.4 Algunas consideraciones relativas a unidades.


Equilibrio de las ecuaciones.

En un sistema de ecuaciones A x = b... los aij, bi, xj pueden expresarse en diversos


sistemas de unidades. Un cambio de unidades equivale a considerar b = D1 b’; x = D2 x’
y por lo tanto (D1 A D2) x’ == D1 b’. En estas expresiones las matrices D1 y D2 son
diagonales. Puede demostrarse que, si se utilizan los mismos pivotes y las D1 y D2 solo
contienen potencias enteras de la base del sistema de numeración utilizado, los
resultados son los mismos (habida cuenta de los cambios de unidades).

Sin embargo las unidades utilizadas pueden afectar la selección de pivotes,


especialmente si sólo se hace intercambio parcial.

En tal caso, es recomendable equilibrar las ecuaciones. Para las incógnitas deben
seleccionarse escalas que reflejen su importancia relativa. Las ecuaciones deben
multiplicarse por factores D1 tales que:

máx a ij  1 i=1,2,3,...n
1 j  n

2.3.5 Método iterativo para mejorar la solución

Considérese el sistema de ecuaciones Ax  b para el que se tiene la solución


aproximada x (0) . Si x es la solución exacta, se tiene que:

x  x (0)  x (0)
y entonces:

A x (0)  r ( 0)

donde: r ( 0)  b  Ax ( 0)

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 20


Al determinar . x (0) . se obtienen los factores triangulares aproximados L y U tales que
L U  A  A , siendo A pequeño. Esta descomposición requiere aproximadamente
O 
1
3n
3
 operaciones.
 
A partir de x (0) puede determinarse r (0) en O n 2 operaciones y resolverse:

L z r
U x  z

 
también en O n 2 operaciones. Dado que L y U no son los factores exactos de A , y
además se introducen nuevos errores de redondeo, es necesario iterar:

r (i )  b  A x (i )
L z (i )  r (i ) (2.36)

U x (i )  z (i )
x( k 1)  x( k )  x( k )
Pero nada se ganaría si las operaciones se hicieran siempre con el mismo número de
cifras significativas empleadas en los cómputos originales. Si los aij bi xi están dados
con t dígitos, el cómputo de los residuos:
n
ri( k )  bi  a x
j 1
ij
(k )
j

debe hacerse con 2 t dígitos (para minimizar errores de cancelación). Sin embargo, el
almacenamiento de los resultados puede hacerse en precisión simple, es decir, con t
dígitos.

Los vectores x(1) y x( 2) permiten también estimar el número de condicionamiento:

1 x
(1)

A   (2.37)
n x ( 2)

donde n es el orden del sistema y  es el máximo error relativo de redondeo (al operar
en precisión simple). Si x(1) no es mucho menor que x (1) , o lo que es lo mismo,
si A  n  no es mucho menor que 1, el proceso iterativo no es adecuado. En tal caso,
la única alternativa sería operar con mayor precisión en toda la solución.

Considérese, por ejemplo, el sistema de ecuaciones:

5 7 3   x1   0. 
    
7 11 2   x2    1
3 6   x3   0. 
 2

y supóngase que la computadora opera en base 10 con 3 cifras significativas. La


factorización de la matriz de coeficientes, A  L U , resulta en:

5 7 3   1.00   5.00 7.00 3.00 


    
7 11 2    1.40 1.00  1.20  2.20 
3 6   0.60  1.83 1.00   0.17 
 2

De la reducción del segundo miembro, es decir la solución de L y  b se obtiene:

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 21


y  0.00  1.00  1.83 
T

Finalmente por sustitución inversa, es decir resolviendo U x  y , se determina

x (1)  35 .3  20 .6  10 .8


T

Para esta solución aproximada se tiene el residuo:

r (1)  b  A x (1)  0.100 0.100 


T
0.100

El cómputo de los bi  a ij x j deben hacerse en doble precisión, almacenándose los


resultados ri en precisión simple.

Resolviendo los dos sistemas triangulares: L z  r (1) y U x (1)  z se obtiene:

x (1)  0.685  0.391  0.195 


T

Y entonces:

x ( 2)  x (1)  x (1)  36 .0  21 .0  11 .0


T

(redondeado a 3 cifras significativas). Este resultado es mejor que x (1) (en este caso el
resultado es exacto, aunque debería decirse que por accidente).

Puede verificarse fácilmente que la matriz A del ejemplo anterior es bien condicionada.

Por otro lado, considérese nuevamente el sistema:

 0.780 0.563   x1  0.217 


   
 0.913 0.659   x2  0.254 

para el cual se obtuvo anteriormente A  de orden 2 x 106. Supóngase que se opera
en base 10 con 6 cifras significativas:

 0.780 0.563  1.00 000   0.780 000 0.563 000 


   
 0.913 0.659   1.17 051 1.00 000   3  10 6 

se pierden cifras significativas en el elemento a 22 de esta última matriz al restar dos


números que solo difieren en la última cifra almacenada). De aquí resultan:

x (1)  0.518 803  0.333 333 


T


r (1)  0.139  10 6 0.692  10 6  T

No obstante ser este residuo “pequeño”, se obtiene la corrección:

x (1)   0.127 348 0.176 433 


T

x ( 2)  x (1)  x (1)  0.391 455  0.156 900 


T

y es obvio que este resultado difiere más de la solución exacta x  1  1


T
que la
(1)
aproximación x antes obtenida. ¡Para resolver este sistema de ecuaciones se
requiere trabajar con un mínimo de 8 cifras significativas!

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 22


2.4.Métodos Iterativos para la Solución
de Sistemas de Ecuaciones Lineales
En los acápites siguientes se tratan dos tipos distintos de métodos iterativos. Estos
procesos pueden ser muy eficientes cuando la matriz de coeficientes, A , es de baja
densidad, más aún si la evaluación de productos de la forma Av no requiere la previa
determinación y el almacenamiento de A en forma explícita.

2.4.1 Métodos de Relajación

Estos procedimientos son adecuados sólo cuando la diagonal principal de la matriz de


coeficientes es dominante. En general, se considera una aproximación inicial, tal como
x ( 0)  0 , y ésta es sucesivamente mejorada hasta obtener una solución suficientemente
precisa.

Considérese el sistema de orden n : A x  b , con aii  0 para todo i . En el método de


(1) ( 2) (3)
Jacobi se calculan las aproximaciones x , x , x  mediante:

1  
xi( k 1) 
aii 
bi  a ij x (jk ) 

(2.38)
j i 
La aproximación es arbitraria; con frecuencia x ( 0)  0 . Si los xi( k 1) se determinan en el
orden habitual, al determinar xr( k 1) ya se han previamente obtenido las nuevas
aproximaciones x1( k 1) , x2( k 1)  xr( k11) . Sin embargo, en el método de Jacobi no se hace
uso de estas nuevas aproximaciones hasta la iteración siguiente, difiriendo en esto del
método de Gauss - Seidel:

1  
i 1 n
xi( k 1) 
aii 
bi   aij x (jk 1)  a ij x (jk ) 

(2.39)
j 1 j  i 1 
Nótese que sólo se requiere almacenar las últimas aproximaciones a los xi .

En el ejemplo siguiente se usan las dos alternativas:

5 1 1 0   x1   1 
 
 1 5 0  1  x2   2.75 
 1   
0 5  1  x3    1 
 
0 1 1 5   x4   2.75 

La solución exacta es

x  0.25  0.25  0.50 


T
0.50

Con el método de Jacobi se obtienen las sucesivas aproximaciones:

k x1( k ) x2( k ) x3( k ) x4( k )

0 0 0 0 0
1 0.2 0.55 -0.2 -0.55
2 0.27 0.48 -0.27 -0.48
3 0.242 0.508 -0.242 -0.508
4 0.2532 0.4968 -0.2532 -0.4968
5 0.24872 0.50128 -0.24872 -0.50128

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 23


6 0.250512 0.499488 -0.250512 -0.499488
7 0.249795 0.500205 -0.249795 -0.500205
8 0.250082 0.499918 -0.250082 -0.499918
9 0.249967 0.500033 -0.249967 -0.500033
10 0.250013 0.499987 -0.250013 -0.499987
11 0.249995 0.500005 -0.249995 -0.500005
12 0.250002 0.499998 -0.250002 -0.499998
k x1( k ) x2( k ) x3( k ) x4( k )
13 0.249999 0.500001 -0.249999 -0.500001
14 0.250000 0.500000 -0.250000 -0.500000
15 0.250000 0.500000 -0.250000 -0.500000

La convergencia es mejor con el método de Gauss – Seidel:

k x1( k ) x2( k ) x3( k ) x4( k )

0 0 0 0 0
1 0.2 0.59 -0.16 -0.464
2 0.286 0.5144 -0.2356 -0.49424
3 0.255760 0.502304 -0.247696 -0.499078
4 0.250922 0.500369 -0.249631 -0.499853
5 0.250147 0.500059 -0.249941 -0.499976
6 0.250024 0.500009 -0.249991 -0.499996
7 0.250004 0.500002 -0.249998 -0.499999
8 0.250001 0.500000 -0.250000 -0.500000
9 0.250000 0.500000 -0.250000 -0.500000

En algunos casos la convergencia puede acelerarse con sobrerelajación:

xi( k 1)  xi( k )   ri( k ) (2.40a)

1  
i 1 n
ri (k )
  bi 
aii   aij x (jk 1)   aij x (jk ) 

(2.40b)
j 1 j i 

El valor óptimo de  depende de A e incluso de la aproximación x(k ) . Cuanto mayores


sean los valores absolutos de los términos de la diagonal principal, respecto a la suma
de los valores absolutos de los restantes coeficientes de la misma fila, más se aproxima
 a 1. Para el ejemplo precedente, utilizando   1.05 se obtienen:

k x1( k ) x2( k ) x3( k ) x4( k )

0 0 0 0 0
1 0.210000 0.621600 -0.165900 -0.481803
2 0.295197 0.507233 -0.240892 -0.497478
3 0.251172 0.500414 -0.249680 -0.499972
4 0.250096 0.500005 -0.249990 -0.499998
5 0.249998 0.500000 -0.250000 -0.500000

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 24


6 0.250000 0.500000 -0.250000 -0.500000

Estos métodos no son necesariamente más precisos que los procesos de eliminación. El
ejemplo al inicio de la sección 2.6 muestra que si el sistema es mal condicionado puede
aceptarse como correcta una solución totalmente equivocada, pero con la que se tiene
un residuo “pequeño”.

2.4.2 Convergencia

En esta sección se analiza la convergencia de los métodos de relajación. Un paso típico


en la solución de A x  b puede escribirse como:

x ( k 1)  G x ( k )  f (2.41)

Esto puede verse más fácilmente si se considera la descomposición:


A  D Ti  I  Ts  (2.42)

donde D es una matriz diagonal, con elementos a ii ; Ti y Ts son matrices triangulares,


inferior y superior respectivamente, con ceros en la diagonal principal, cuyos coeficientes
son los aij aii . Por ejemplo:

2  1  2 0   0 0  1 0  0  12 
      
 1 2   0 2    12 0   0 1   0 0 

Con esta notación, para el método de Jacobi se tiene:

x ( k 1)  Ti  Ts  x ( k )  D 1b (2.43a)

es decir: G  Ti  Ts  (2.43b)

mientras que para el método de Gauss-Seidel puede escribirse:

x ( k 1)  Ti x ( k 1)  Ts x ( k )  D 1b (2.44a)

y por lo tanto: G  I  Ti 


1
Ts (2.44b)

De modo similar, para el método de sobre relajación se tiene:

G  I   Ti 
1
 1  I   Ts  (2.45)

Por otro lado, dado, que la solución exacta, x , debe cumplir la ecuación (2.41), se tiene
que:
x G xf (2.46)

y restando (2.46) de (2.41):

x ( k 1)
 
 x  G x(k )  x  (2.47a)

de donde:

x ( k 1)
    
 x  G x( k )  x  G 2 x( k 1)  x    G k 1 x( 0)  x   (2.47b)

Además, si 1 ,  2 , 3   n son los vectores característicos de la matriz G , a los que


corresponden los valores característicos 1 ,  2 ,  3   n , puede escribirse:

x ( 0)

 x  1 1   2 2  3 3     n n

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 25


ya que los vectores característicos constituyen una base completa. Es relativamente
fácil probar que:

x (k )
  
 x  G k x(0)  x  1 k1 1   2 k2 2  3 k3 3     n kn n (2.47c)

Para tener convergencia:


Lim x(k )  x  0  (2.48a)
k 

y por tanto se requiere  i  1 para todo i , o lo que es lo mismo:

G   máx i  1 (2.48b)


i

G  se denomina el radio espectral de la matriz G .


Para k suficientemente grande el error se multiplica por G  en cada paso, es decir se
tiene aproximadamente  log 10 G  cifras decimales exactas adicionales en cada
paso.

No es práctico determinar con gran precisión los valores característicos de G (esto


significaría más trabajo que resolver el sistema de ecuaciones), pero ciertos límites
pueden ser fácilmente establecidos.

Para el método de Jacobi: g ij   aij aii si i  j (2.49a)

g ii  0

y utilizando el teorema de Gerschgorin (véase el capítulo relativo a la evaluación de


valores y vectores característicos):

G   máx  i  máx


i i
g j
ij o bien máx
j

i
g ji (2.49b)

con lo que la condición de convergencia G   1 puede rescribirse:


n n
a jj  
i 1
aij aii  a j 1
ij (2.49c)

i j j i

Estas son condiciones suficientes pero no necesarias. La convergencia es más rápida


cuanto más fuertes son las desigualdades.

Para el método de Gauss – Seidel G   máx ri 1  si  (2.50a)


i

donde:
n aij i 1 aij
ri  
j i 1
aii
si  
j 1
aii
(2.50b)

y finalmente se concluye que las condiciones para la convergencia son las mismas que
para el método de Jacobi (aunque en general el método de Gauss -Seidel converge más
rápidamente).

Un análisis similar del método de sobre relajación permite establecer la condición


adicional: 0    2

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 26


2.4.3 Métodos de Máxima Gradiente y de Gradiente Conjugada

En la primera parte de esta sección se consideran métodos para la solución de sistemas


de ecuaciones A x  b con matriz A simétrica y definida positiva, es decir, vT A v  0
para todo vector v no nulo.

Considérese la función:

f (x)  12 xT A x  xT b (2.51)

Si x es la solución exacta de A x  b se tiene que:

f ( x)  f ( x )   1
2
xT A x  xT b    1
2
xT A x  xT b 
 12 x  x  A x  x 
T

Pero, siendo A definida positiva: 1


2
x  xT A x  x  0
Y por lo tanto f (x)  f (x)  0 , es decir, f (x)  f (x) (2.52)

La igualdad solo se da si x  x . Se concluye que la solución de A x  b equivale a una


minimización de f (x) .

Dada la aproximación inicial x(0) , a la que corresponden el residuo r ( 0)  b  A x ( 0) y el


valor f (x) , debe determinarse una nueva aproximación, x(1) , tal que f (x(1) )  f (x( 0) ) .
Para reducir el valor de f (x) lo más rápidamente posible, la corrección debe hacerse en
la dirección de máxima gradiente. Debe entonces determinarse esta dirección, z , tal
que:

d
f (x ( 0)   z )
d  0

sea máxima (en valor absoluto). Siendo f (x)  12 x A x  x b , puede escribirse:


T T

f (x ( 0)   z )  12 (x ( 0)   z )T A (x ( 0)   z )  (x ( 0)   z )T b
(2.53a)
 12  2 z T A z   z T r ( 0)  f (x ( 0) )
de donde:
d
f (x ( 0)   z )  z T r ( 0)
d  0

Esto significa que debe tomarse la dirección z  r ( 0) (2.53b)

Ahora puede determinarse  0 de modo que f (x( 0)   0 r (0) ) sea un mínimo.


Rescribiendo (2.53a) con z  r ( 0)
y derivando con respecto a  :
d T T
f (x ( 0)   r ( 0) )   r ( 0) A r ( 0)  r ( 0) r ( 0)  0
d
de donde:
T
r (0) r (0)
0  T
r (0) A r (0)
( 0) T
(dado que A es definida positiva, nunca se presenta el caso r A r (0)  0 , excepto si
se hubiera llegado a la solución exacta)

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 27


Finalmente:

x (1)  x ( 0)   0 r ( 0)

El proceso puede repetirse en sucesivos ciclos:

r (k )  b  A x(k ) (2.54a)

T
r (k ) r (k )
k  T
(2.54b)
r (k ) A r (k )

x ( k 1)  x ( k )   k r ( k ) (2.54c)

Este método es siempre convergente, pero no puede conocerse a priori en cuantos


ciclos se tendrá la precisión requerida.

En los párrafos siguientes se estudia una modificación de este proceso, el método de


Gradiente Conjugada, para el que – al usar una aritmética perfecta - puede garantizarse
la convergencia en un número de pasos igual o inferior al orden del sistema de
ecuaciones.
Considérese el sistema de ecuaciones de orden n , A x  b . Dada una solución
( 0)
aproximada, x , la solución exacta, x , puede escribirse como:

x  x (0)  x
x puede expresarse como combinación lineal de
n vectores linealmente
independientes. En particular, si se consideran vectores 0 , s1 , s 2  s n  2 , s n 1 , que
s
satisfacen las relaciones de ortogonalidad:

s Ti A s j  ci  ij

puede escribirse:

x (1)  x ( 0)   0 s 0
x ( 2 )  x (1)   1 s1

x ( k 1)  x ( k )   k s k

x  x ( n )  x ( n 1)   n 1 s n 1

alternativamente:
n 1
x  x ( 0)  
k 0
k sk (2.55)

Suponiendo que los vectores s k son conocidos, los coeficientes  k pueden obtenerse
utilizando las relaciones de ortogonalidad ya mencionadas. Dado que:
n 1

r (i )  b  A x (i )  A x  x (i )    k A sk (2.56)
k i

T
premultiplicando por s j se obtiene:

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 28


n 1
s Tj r (i )  
k i
k s Tj A s k  0 si j  i (2.57)

  j s Tj A s j si j  i
de donde puede escribirse:

s Tj r ( j )
j  (2.58a)
s Tj A s j

Alternativamente, puede utilizarse


T
r ( j) r ( j)
j  T (2.58b)
s j As j

La expresión alternativa  j  (s j r
T ( 0)
) (s Tj A s j ) no es conveniente, por la acumulación
de errores de redondeo.

Dado que los s 0 , s1 , s 2  s n  2 , s n 1 son n vectores linealmente independientes en un


espacio n -dimensional, el error siempre puede ser expresado como una combinación
lineal de estos vectores , es decir el proceso debería llegar a la solución exacta (salvo
errores de redondeo) en n pasos.

El vector s k 1 se obtiene eliminando de r ( k 1) la componente según A s k :

s k 1  r ( k 1)   k s k (2.59)

donde:
s Tk A r ( k 1)
k  (2.60)
s Tk A s k

Es relativamente fácil probar que si s 0 , s1 , s 2  s k son A -ortogonales, entonces s k 1


calculado con (2.59) resulta también A -ortogonal a todos los vectores previamente
hallados. Para empezar, con s k :

s Tk A r (´1)
 
s Tk 1 A s k  s Tk A r ( k 1)   k s k  s Tk A r ( k 1)  s T
k A sk  0
s Tk A s k

Por otro lado, de (2.57) se concluye que:


T
s Tk 1 A s j  r ( k ) A s j
y

As j 
1
j

r ( j 1)  r ( j ) 
y por lo tanto, para j  k :

1  ( k ) T ( j 1)  1  ( k ) T ( j ) 
s Tk 1 A s j  r r  r r 0
j   j  

El método de gradiente conjugada puede resumirse en los pasos siguientes:

Dado x(0) , determinar r ( 0)  s 0  b  A x ( 0)

Y luego para k  0,1, 2  n  1 :

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 29


qk  A sk (no se requiere A en forma explícita)
T
r (k ) r (k )
k  T
sk qk
x ( k 1)  x ( k )   k s k (2.61)

r ( k 1)  r ( k )   k q k
T
r ( k 1) q k
T
r ( k 1) r ( k 1)
k  
s Tk q k T
r (k ) r (k )
s k 1  r ( k 1)   k s k

Puede demostrarse que, operando con una aritmética perfecta:


k
   1  ( 0)
(x (k )
 x) A ( x
T (k )
 x)  2   ( x  x) T A ( x ( 0 )  x)
  1
 
siendo x la solución exacta, x (k ) la aproximación en el paso k y   n ( A) / 1 ( A) el
número de condicionamiento de la matriz de coeficientes. La solución exacta debería
obtenerse en no más de n pasos, pero con la aritmética imperfecta de las computadoras
digitales pueden requerirse muchos más, especialmente si la matriz A está mal
condicionada.

Como ejemplo, considérese la solución del sistema de ecuaciones A x  b definido por


(la matriz de coeficientes A es simétrica y definida positiva):

10 5 0 1 24 
   
5 8 4 0   9 
A   b 
 0  4 10  1
  18 
   
1 0 1 8  30 

Con la aproximación inicial x  0 se obtienen r ( 0)  s 0  b  Ax ( 0)  b (con lo que


(0)

r  43 .370 ) y en sucesivos pasos:

k q  As  x  x  s r  r  q r  s r   s
1 315.00 0.104 2.498 -8.786 12.097 0.078 -6.919
120.00 0.937 -3.490 -2.790
114.00 1.874 6.134 7.535
246.00 3.123 4.395 6.729
2 -76.413 0.089 1.880 -1.959 4.897 0.164 -3.093
-87.055 0.687 4.288 3.831
79.778 2.547 -0.994 0.241
39.380 3.724 0.877 1.980
3 -9.792 0.226 1.180 0.258 3.268 0.445 -1.119
14.221 1.555 1.069 2.775
-14.893 2.601 2.378 2.486
12.503 4.172 -1.954 -1.072
k q  As  x  x  s r  r  q r  s r   s
4 1.611 0.160 1.000 0.000 0.000

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 30


6.663 2.000 0.000
14.827 3.000 0.000
-12.184 4.000 0.000

El método de gradiente conjugada puede ser generalizado para resolver cualquier


sistema de ecuaciones A x  b (con A no singular):

Con x(0) arbitrario, se obtiene r ( 0)  s 0  b  A x ( 0)

Y luego para k  0,1, 2  n  1 :

q k  AT s k (no se requiere A en forma explícita)


( k )T
r r (k )
k 
q Tk q k
x ( k 1)  x ( k )   k q k (2.62)

r ( k 1)  r ( k )   k A q k
T
r ( k 1) r ( k 1)
k   T
r (k ) r (k )
s k 1  r ( k 1)   k s k

Precondicionamiento

El término precondicionamiento se refiere a la conversión del sistema de ecuaciones


A x  b en otro que puede ser resuelto más eficientemente, por ejemplo haciendo:
M 1A x  M 1b

La matriz no singular M es el precondicionador. Se requieren pocas modificaciones al


procedimiento de gradiente conjugada antes descrito. Con la aproximación inicial
x 0  0 y por lo tanto r0  b  A x 0  b se determina s 0  p 0  M 1r0 y luego se itera
para k  0,1, 2n  1 con:

qk  A sk

p Tk rk
k 
sTk q k

x k 1  x k   k s k

rk 1  rk   k q k

p k 1  M 1 rk 1 (no se requiere M 1 , más bien se resuelve M p k 1  rk 1 )

p Tk 1rk 1
k 
p Tk rk

s k 1  p k 1   k s k

El precondicionador debe ser tal que se satisfagan las condiciones:

 M 1 A  I  R siendo R pequeño

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 31


 Las ecuaciones lineales de la forma M u  v deben resolverse fácilmente

 Las demandas de memoria adicional deben ser poco significativas

Nótese que estas condiciones son en alguna medida contradictorias. Por ejemplo, si
M  A se cumple la primera condición (y en tal caso  (M 1A)  1 ) pero no la segunda.
En cambio el precondicionador diagonal M  diag (A) puede implementarse muy
fácilmente, pero en general solo produce mejoras muy modestas.

El pre condicionador de Gauss-Seidel se basa en la descomposición A  L  D  U


donde D es una matriz diagonal con los coeficientes de la diagonal principal de A y las
matrices L y U son triangulares, inferior y superior respectivamente, con ceros en la
diagonal principal. Por ejemplo:

10 5 0 1  0 0 0 0  10 0 0  0
0 5 01
       
 5 8  4 0  5 0 0 0  0 8 0 0  0 0 4 0 
    
 0  4 10  1  0  4 0 0  0 0 10 0   0 0 0  1
       
       
1 0 1 8   1 0 1 0  0 0 0 8 0 0 0 0

Entonces se obtiene: M  (LD 1  I) (D  U) Nótese que p k 1  M 1 rk 1 puede


efectuarse fácilmente, en dos pasos que involucran matrices de coeficientes triangulares:

(LD 1  I) z  rk 1
(D  U) p k 1  z

Para el mismo sistema de ecuaciones lineales antes considerado:

k q  As  x  x  s r  r  q r p  M 1r   s ps

0 0 24 43.370 1.718 1.718


0 9 0.633 0.633
0 18 2.016 2.016
0 30 3.656 3.656

1 24.000 1.079 1.854 -1.895 4.745 -0.548 0.024 -0.506


5.590 0.683 2.969 0.730 0.746
13.969 2.175 2.928 0.482 0.531
28.952 3.945 -1.238 -0.070 0.019

2 -1.310 1.651 1.019 0.267 1.236 -0.004 0.020 -0.014


1.314 1.914 0.800 0.057 0.072
2.306 3.051 -0.877 -0.053 -0.042
-0.883 3.977 0.220 0.017 0.018

3 0.240 1.201 1.002 -0.022 0.030 -0.002 0.001 -0.002


0.675 2.000 -0.011 0.000 0.000
-0.726 3.000 -0.006 0.000 0.000
0.170 3.998 0.015 0.002 0.002

k q  As  x  x  s r  r  q r p  M 1r   s ps

4 -0.022 1.010 1.000 0.000 0.000


-0.011 2.000 0.000

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 32


-0.006 3.000 0.000
0.015 4.000 0.000

También en este caso se obtiene la solución exacta en n  4 pasos, pero puede


observarse que el error en el tercer paso, r  0.030 , es mucho menor que el que se
tenía cuando el proceso se aplicó sin precondicionador, r  3.268 .

Un precondicionador que por lo general es más efectivo cuando la matriz A es dispersa


(es decir, con baja densidad de coeficientes significativos) se obtiene de la factorización
incompleta de la matriz:

A  LU  R y R pequeño

Los factores L y U se determinan en forma similar al algoritmo de eliminación de


Gauss, pero sus coeficientes se suponen iguales a cero en todas las posiciones en las
que A (o en algunos casos una potencia de A ) no tiene un coeficiente significativo.

2.5 Sistemas Sobre-Determinados de Ecuaciones Lineales


El problema de determinación de los parámetros de un modelo lineal para aproximar un
conjunto de datos es frecuente. A fin de reducir la influencia de errores de medición, es
habitual hacer más mediciones que las estrictamente necesarias, de donde resultan más
ecuaciones que incógnitas.

Dada una matriz A de orden m n ( m  n ) y un vector b de orden m , se requiere


determinar x de modo tal que A x sea la mejor aproximación posible a b .

Un proceso simple (y muy adecuado si los errores en los bi son estadísticamente


independientes) es el método de mínimos cuadrados, que consiste en minimizar la
2
magnitud del residuo r  b  A x (o minimizar r  r r ) con respecto a las x . Dado
T

que:
f  r T r  b T b  2 xT A T b  x T A T A x (2.63)

y por lo tanto:
f
 2 AT b  2 AT A x  0
x
el método de mínimos cuadrados puede formularse como la solución del sistema de
ecuaciones normales:

A A  x  A b
T T
(2.64)

Si A   a1 a2 a 3  a n  , la matriz simétrica C  AT A tiene elementos cij  aTi a j .


La matriz C es no singular sólo si todas las columnas a k de la matriz A son
linealmente independientes.

Para formar las ecuaciones normales se requieren 1


2 mn n  3 operaciones. Para
resolver el sistema O  1
6n
3
 operaciones. La mayor parte del trabajo está en formar las
ecuaciones normales.

Considérese por ejemplo

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 33


 1 0 0 1
  2 
 0 1 0
 0  1  
x
0 1    3
  x2    
 1 1 0    1
  x3
 0 1 1    2 
 1  
 0 1  1
las ecuaciones normales son en este caso:

 3 1  1   x1   1
    
1 3  1  x2    1 
1 1 3   x 3   6 

de donde:

x   1.25 3
T
1.75
Un método alternativo (y numéricamente mejor condicionado) se basa en al
descomposición de la matriz de coeficientes, A , en el producto de una matriz ortogonal,
Q , y una matriz triangular superior, R (en el capítulo relativo a valores y vectores
característicos se describen procedimientos que pueden ser empleados para esto).

Al tenerse A  Q R (2.65)
 
las ecuaciones normales A T A x  A T b pueden rescribirse:

A T  b  Ax   0
RT QT  b  Q R x   0

y dado que Q Q  I se obtiene:


T


R T QT b  R x  0 
La matriz R no es singular y por tanto:

R x  QT b (2.66)

La matriz R es la misma que se obtendría al descomponer AT A en dos factores


triangulares por el método de Cholesky. Para el ejemplo precedente:

 1 0 0  0.5774 0.2041 0.3536 


   
 0 1 0  0 0.6124 0.3536 
 0   1.7321  0.5774  0.5774 
0 1 0 0 0.7071   
A   QR    0 1.6330  0.8165 
1 1 0   0.5774 0.4082 0 
    1.4142 
0.3536  
0 0
 0 1 1  0  0.6124
 1   0.3536 
 0 1   0.5774  0.2041

de donde:

1.7321  0.5774  0.5774   x1   0.5774 


    
Rx 0 1.6330  0.8165   x 2   Q b   0.4082 
T

 0 1.4142   x3   4.2426 
 0  
y finalmente: x   1.25 3
T
1.75

H. Scaletti - Métodos Numéricos: Ecuaciones Algebraicas Lineales 2 - 34

También podría gustarte