Está en la página 1de 84

Capítulo 4

Solución de sistemas de ecuaciones

Es usual encontrarse con la necesidad de resolver uno o más sistemas de ecuaciones cuando se
trabaja con algunos modelos matemáticas, generalmente provenientes de ecuaciones diferencia-
les. En muchos de los casos, estas ecuaciones tienen una gran cantidad de variables o una gran
cantidad de sistemas por resolver, lo cual genera un alto costo computacional. Por lo que las
técnicas que se utilicen para resolver dichos sistemas tienen que ser, computacionalmente, las
más eficientes.
En el caso particular que el sistema de ecuaciones sea lineal, la primer pregunta que se presenta
es si conviene utilizar un método directo o uno iterativo. La principal desventaja de los métodos
directos, como es el método de eliminación Gaussiana, es su complejidad computacional. Para
una matriz de tamaño n × n, el método de eliminación Gaussiana es de orden O(n3 ) lo que
para matrices muy grandes es bastante costoso.
Una solución a este inconveniente la dan los métodos iterativos, como por ejemplo: Jacobi,
Gauss-Seidel, SOR, Gradiente Conjugado, GMRES, entre otros, presentados en este capítulo.
Estos métodos poseen una complejidad menor a la de eliminación Gaussiana, lo que los hace
más eficientes. La desventaja de los métodos iterativos sobre los directos, como se ilustra en el
capítulo 3 (página 135), es que estos no calculan la solución del sistema de manera exacta (en
realidad nunca se hace, pues se trabaja en precisión finita), pero en la práctica no interesa tener
muchos de los dígitos de la solución, por lo que los métodos iterativos son más que suficientes.
Por otro lado, en la solución de sistemas de ecuaciones lineales, la matriz puede tener una
estructura que brinde gran ventaja, mejorando la eficiencia del método de solución. En muchas
de las discretizaciones de ecuaciones diferenciales parciales las matrices son esparcidas (ver
apéndice D) de gran tamaño, lo que permite mejorar la eficiencia (tiempos de ejecución) de los
métodos iterativos al diseñar una estructura adecuada para almacenar estas matrices.
Se aclara que en todo resultado presentado en este capítulo, estos se cumplen siempre que
se tengan todos los decimales de precisión en los valores. En la práctica, no necesariamente se
cumplen debido a que las computadoras trabajan con aritmética de precisión finita (ver capítulo
2).

185
186 Capítulo 4. Solución de sistemas de ecuaciones

4.1. Métodos directos


Los método directos para resolver un sistema de ecuaciones lineales Ax = b, con A la matriz
de coeficientes reales (aunque pueden ser complejos) de n × n, x el vector de incógnitas y b el
vector de la derecha (RHS, por sus siglas en íngles, “right-hand side”), calculan de manera exacta
(en precisión infinita) la solución del sistema, alcanzando la solución en sólo una iteración.
Un método directo muy conocido en Álgebra Lineal es la regla de Cramer (sección B.6.1), el
cual cumple que si det(A) 6= 0, es decir, si A es no singular, entonces la componente i del vector
x se calcula como sigue:
Di
xi = ,
det(A)
donde la notación Di consiste en el determinante de la matriz que se obtiene cuando se sustituye
la columna i-ésima de la matriz A por el vector b.
Nótese que el costo principal de resolver un sistema mediante la regla de Cramer, consiste en
calcular determinantes de matrices. Así, para calcular estos determinantes podemos utilizar la
regla de los menores (definición B.35), la cual establece que el determinante de una matriz se
obtiene multiplicando los elementos de una fila i o de una columna j por los determinantes
de los menores asociados a estos elementos. El menor mij (A) asociado al elemento aij , es una
matriz de dimensión (n − 1) × (n − 1) que se obtiene de la matriz original eliminando la fila i
y la columna j. De esta forma,
n
X n
X
det(A) = aik det(mik (A))(−1)i+k = akj det(mkj (A))(−1)k+j .
k=1 k=1

De lo anterior, se puede ver que el costo de calcular el determinante de una matriz de dimensión
n × n, denotado Cd (n), consiste en

Cd (n) = n · Cd (n − 1) = n · (n − 1) · Cd (n − 2) = . . . = n!

Luego, como en la regla de Cramer se deben calcular n + 1 determinantes y realizar n cocientes,


entonces el costo de la regla de Cramer es O ((n + 1)!). Dicho costo, es bastante alto incluso
cuando n no es grande, por ejemplo, para n = 100, (n + 1)! = 9.3 × 10157 . Por todo esto, la regla
de Cramer es un algoritmo poco utilizado numéricamente dado su alto costo computacional.
Otro método directo, se denomina eliminación Gaussiana o eliminación de Gauss (sección
4.1.1), el cual es un algoritmo más utilizado para matrices densas generales, a pesar de que
su complejidad limita ser aplicado a sistemas de como mucho miles de incógnitas, salvo que
la matriz de coeficientes sea esparcida. Es debido a su uso, que en esta sección se considera el
método de eliminación Gaussiana, así como algunas de sus modificaciones más conocidas.

4.1.1. Eliminación Gaussiana


El método de eliminación Gaussiana o reducción de Gauss (1809) consiste en transformar
la matriz de coeficientes de un sistema lineal Ax = b, en una matriz triangular superior
4.1. Métodos directos 187

realizando operaciones elementales de matrices sobre filas. La razón de hacer esto es que un
sistema triangular es fácil y rápido de resolver en comparación a uno donde la matriz es densa.
Esto se ilustra en el siguiente ejemplo.

Ejemplo 4.1.
Encuentre el conjunto solución del siguiente sistema


 x1 + x2 − x3 + 3x4 = 4,


−x2 − x3 − 5x4 = −7,

 3x3 + 13x4 = 13,

 −13x4 = −13.

Solución. La representación matricial del sistema es


    
1 1 −1 3 x1 4
 0 −1 −1 −5   x   −7 
  2   
   =  .
 0 0 3 13   x3   13 
0 0 0 −13 x4 −13
Se puede apreciar que la matriz de coeficientes es una matriz triangular superior, por lo que
aplicando sustitución hacia atrás, se tiene que la solución del sistema corresponde a:
−13
x4 = = 1,
−13
13 − 13x4 13 − 13(1)
x3 = = = 0,
3 3
−7 + 5x4 + x3 −7 + 5(1) + (0)
x2 = = = 2,
−1 −1
4 − 3x4 + x3 − x2
x1 = = 4 − 3(1) + (0) − (2) = −1.
1
Por lo tanto, x1 = −1, x2 = 2, x3 = 0 y x4 = 1. 

Resolver el sistema triangular superior, tal y como se ilustró en el ejemplo anterior, consiste en
un procedimiento rápido, denominado sustitución hacia atrás (“back substitution”) y se define
como: !
n
1 X
xi = bi − aij · xj , para i = n, n − 1, . . . , 2, 1.
aii j=i+1

Luego, para definir el método de eliminación Gaussiana de manera general, considere el sistema
lineal Ax = b escrito de la forma:
 (1) (1) (1) (1)
   (1) 
a11 a12 a13 · · · a1n x1 b1
 (1) (1) (1) (1)    (1) 
 a21 a22 a23 · · · a2n   x2    b2 
 (1) (1) (1)   
 a31 a32 a33 · · · a3n   x3  =  b(1)
(1) 
3
,
.
   
 .. .. .. .. .
..   .. 
 .
 .. 
  
 . . . .
(1) (1) (1) (1) (1)
an1 an2 an3 · · · ann xn bn
188 Capítulo 4. Solución de sistemas de ecuaciones

para convertir este sistema lineal denso en uno triangular superior equivalente, primero se
realizan las siguientes operaciones sobre filas:
(1)
−ai1
(1)
f1 + fi , para i = 2, . . . , n,
a11

donde fi corresponde a la fila i. Las operaciones anteriores hacen cero todas las entradas de la
primera columna por debajo de la diagonal, con ayuda del valor en la diagonal conocido como
el pivote, con lo que se obtiene un nuevo sistema de la forma:
 (1) (1) (1) (1)
   (1)

a11 a12 a13 · · · a1n x1 b1
 (2) (2) (2)   (2) 
 0 a22 a23 · · · a2n  x2 
  b2 
 (2) (2) (2)   (2) 
 0 a32 a33 · · · a3n  x3 
 =  b3 ,
..
   
 .. .. .. .. ..    .. 
 . . . . .  .   . 
(2) (2) (2) (2)
0 an2 an3 · · · ann xn bn
   
(1) (1)
(2) (1) ai1 (1) (2) (1) ai1 (1)
donde aij = aij − (1) a1j y bi = bi − (1) b1 . Siguiendo este proceso hasta la
a11 a11
columna n − 1, se obtiene el sistema:
 (n) (1) (1) (1)
   (1)

a11 a12 a13 ··· a1n x1 b1
 (2) (2) (2)   (2) 
 0 a22 a23 ··· a2n  x2 
  b2 
 (3) (3)   (3) 
 0 0 a33 ··· a3n  x3 
 =  b3 .

 .. .. .. ..

 ..  
 ..


 . . 0 . .  .   . 
(n−1) (n−1)
0 0 0 · · · ann xn bn
| {z } | {z } | {z }
B x y

Lo siguiente es resolver el sistema triangular superior Bx = y, por sustitución hacia atrás.

Ejemplo 4.2.
Resolver el siguiente sistema 4 × 4, mediante eliminación Gaussiana:

 2x1 − 6x2 + 12x3 + 16x4 =


70,

x1 − 2x2 + 6x3 + 6x4 = 26,

 −x1 + 3x2 − 3x3 − 7x4 = −30,

 4x2 + 3x3 − 6x4 = −26.

Solución. Considerando el sistema en notación matricial


    
2 −6 12 16 x1 70
 1 −2 6 6     
   x2   26 
   =  ,
 −1 3 −3 −7   x3   −30 
0 4 3 −6 x4 −26
4.1. Métodos directos 189

se tiene que
   
2 −6 12 16 70 1 −3 6 8 35
  1f   −f1 + f2
 1 −2 6 6 26  2 1  1 −2 6 6 26 
  −→   −−−−→
 −1 3 −3 −7 −30   −1 3 −3 −7 −30  f1 + f3
0 4 3 −6 −26 0 4 3 −6 −26
   
1 −3 6 8 35 1 −3 6 8 35
   
 0 1 0 −2 −9  −4f2 +f4  0 1 0 −2 −9  −f3 + f4
  −−−−−→   −−−−→
 0 0 3 1 5   0 0 3 1 5  1
f
3 3
0 4 3 −6 −26 0 0 3 2 10
   
1 −3 6 8 35 1 −3 6 0 −5
  − 13 f4 + f3  
 0 1 0 −2 −9   0 1 0 0 1  −6f3 +f1
 1 5  − −−−−→   −−−−−→
 0 0 1 3 3  2f4 + f2  0 0 1 0 0 
0 0 0 1 5 −8f4 + f1 0 0 0 1 5
   
1 −3 0 0 −5 1 0 0 0 −2
   
 0 1 0 0 1  3f2 +f1  0 1 0 0 1 
  −−−−→  .
 0 0 1 0 0   0 0 1 0 0 
0 0 0 1 5 0 0 0 1 5
Por lo tanto, la solución del sistema corresponde a x1 = −2, x2 = 1, x3 = 0 y x4 = 5. 

Observación: El método de sustitución hacia atrás (“back substitution”) tiene un costo de


orden O(n2 ), mientras que el proceso de eliminación Gaussiana un costo de O(n3 ). Pues al
hacer ceros por debajo de la diagonal en la primera columna, se producen (n + 1)(n − 1)
operaciones, ya que se realizan sumas sobre n − 1 filas y cada una con n + 1 entradas (n de la
matriz y una del vector b). Luego, para hacer ceros en la segunda columna se realizan n(n − 2)
operaciones. Siguiendo este proceso, el número total de operaciones para obtener el sistema
triangular superior es:
n−1 n−1
X X n(n − 1)(2n − 1) n(n − 1)(2n + 5)
k(k + 2) = (k 2 + 2k) = + n(n − 1) = ,
k=1 k=1
6 6

es decir, se tiene una complejidad de O(n3 ). A continuación se presenta un ejemplo que ilustra
el método de eliminación Gaussiana y sustitución hacia atrás para una matriz pequeña.

Ejemplo 4.3.
Resuelva, en (10, 3, −2, 6) y utilizando redondeo, el sistema lineal:
(
0.100 × 10−2 x + 0.183 × 102 y = 0.183 × 102 ,
0.523 × 102 x + 0.796 × 103 y = 0.132 × 104 .
190 Capítulo 4. Solución de sistemas de ecuaciones

Solución. Lo primero consiste en escribir el sistema en notación matricial:


    
0.100 × 10−2 0.183 × 102 x 0.183 × 102
= .
0.523 × 102 0.796 × 103 y 0.132 × 104
Ahora, se aplica el método de eliminación Gaussiana para transformar la matriz en una trian-
gular superior, junto con sustitución hacia atrás para resolver el nuevo sistema. En este caso
particular, cada operación se representa en (10, 3, −2, 6) y el método de aproximación es por
redondeo.
 
0.100 × 10−2 0.183 × 102 0.183 × 102 (0.100×10−2 )−1 f1
−−−−−−−−−−→
0.523 × 102 0.796 × 103 0.132 × 104
 
0.100 × 101 0.183 × 105 0.183 × 105 −0.523×102 f1 +f2
−−−−−−−−−−→
0.523 × 102 0.796 × 103 0.132 × 104
 
0.100 × 101 0.183 × 105 0.183 × 105 (−0.956×106 )−1 f2
−−−−−−−−−−→
0.000 × 100 −0.956 × 106 −0.956 × 106
 
0.100 × 101 0.183 × 105 0.183 × 105 −0.183×105 f2 +f1
−−−−−−−−−−→
0.000 × 100 0.100 × 101 0.100 × 101
 
0.100 × 101 0.000 × 100 0.000 × 100
.
0.000 × 100 0.100 × 101 0.100 × 101
Por lo tanto, las soluciones del sistema corresponden a: x = 0 y y = 1. 

Observación: La solución obtenida en el ejemplo anterior, no es correcta, ya que:


      
0.100 × 10−2 0.183 × 102 0 0.183 × 102 0.183 × 102
= 6= .
0.523 × 102 0.796 × 103 1 0.796 × 103 0.132 × 104
La solución correcta corresponde a x = 10 y y = 1. Además, la razón de obtener una solución
errónea no sólo se debe a que se trabaja en precisión finita, sino que también el método de
eliminación Gaussiana es numéricamente inestable cuando no se cuenta con todos los decimales.
Es decir, que la propagación de errores de este método es muy elevada y por lo tanto, debe ser
utilizado con cautela.
Otro ejemplo, consiste en ingresar el siguiente fragmento de código en MATLAB:
A = 1/3 * [-20e03 - 1e20, 2e20 + 10e03;
-10e03 - 2e20, 4e20 + 5e03];
x = [1; 1]; % Solución exacta
b = A * x; % Vector de la derecha
A \ b % Eliminación Gaussiana

donde para este sistema lineal de 2 × 2, con solución exacta x = (1, 1)T , se obtiene una
aproximación incorrecta de
ans =

0.5000
0.7500
4.1. Métodos directos 191

Una forma de conseguir aproximaciones con mayor precisión, consiste en realizar técnicas de
pivoteo (operaciones elementales de intercambio de filas y columnas) durante el proceso de
eliminación Gaussiana, de entre las cuales se consideran las siguientes:
1. Pivoteo parcial: consiste en intercambiar filas, de manera que
n
|akk | = máx{|ajk |}, para k = 1, 2, . . . , n − 1,
j=k

al hacer ceros por debajo de la diagonal. Es decir, se toma como pivote el mayor valor
absoluto de los elementos de la columna, por debajo de la diagonal, antes de empezar a
hacer estos valores cero.

2. Pivoteo total: consiste en intercambiar filas y columnas de la matriz, de manera que

|akk | = máx{|aij | / j ≥ k ∧ i ≥ k}, para k = 1, 2, . . . , n − 1.

En otras palabras, se considera como pivote al mayor valor absoluto, dentro del rango
[k, n] × [k, n].
Así, si se considera el pivoteo parcial para resolver el sistema del ejemplo 4.3, entonces se debe
realizar un intercambio, entre la fila 1 y la fila 2 inicialmente y luego se continua con el método
con normalidad:

 
0.100 × 10−2 0.183 × 102 0.183 × 102 f1 ↔f2
−−−→
0.523 × 102 0.796 × 103 0.132 × 104
 
0.523 × 102 0.796 × 103 0.132 × 104 (0.523×102 )−1 f1
−−−−−−−−−→
0.100 × 10−2 0.183 × 102 0.183 × 102
 
0.100 × 101 0.152 × 102 0.252 × 102 −0.100×10−2 f1 +f2
−−−−−−−−−−−→
0.100 × 10−2 0.183 × 102 0.183 × 102
 
0.100 × 101 0.152 × 102 0.252 × 102 (0.183×102 )−1 f2
−−−−−−−−−→
0.000 × 100 0.183 × 102 0.183 × 102
 
0.100 × 101 0.152 × 102 0.252 × 102 −0.152×102 f2 +f1
−−−−−−−−−−→
0.000 × 100 0.100 × 101 0.100 × 101
 
0.100 × 101 0.000 × 100 0.100 × 102
.
0.000 × 100 0.100 × 101 0.100 × 101

Por lo que la solución del sistema corresponde a x = 10 y y = 1, la cual es la solución exacta.


192 Capítulo 4. Solución de sistemas de ecuaciones

Ejemplo 4.4.
Utilice eliminación Gaussiana con pivoteo parcial y total, para resolver el siguiente sistema
lineal con truncamiento al tercer dígito significativo.


 3.03x1 − 12.1x2 + 14x3 = −119,

−3.03x1 + 12.1x2 − 7x3 = 120,



6.11x1 − 14.2x2 + 21x3 = −139.
" T
Verifique cuál de los métodos es mejor, si la solución exacta es 0, 10, 17 .

Solución.
Pivoteo parcial:
   
3.03 −12.1 14 −119 6.11 −14.2 21 −139 1
 −3.03 12.1 −7
f1 ↔f3
120  −→  −3.03 12.1 −7 120  6−→ .11 f1
6.11 −14.2 21 −139 3.03 −12.1 14 −119
   
1 −2.32 3.43 −22.7 3.03f1 + f2
1 −2.32 3.43 −22.7 1
 −3.03 12.1 −7 120  −−−−−→  0 5.08 3.3 51.3  5−→ .08 f1
−3.03f1 + f3
3.03 −12.1 14 −119 0 −5.08 3.7 −50.3
   
1 −2.32 3.43 −22.7 1 −2.32 3.43 −22.7
5.08f2 +f3
1
 0 1 0.649 10  −−−−−−→  0 1 0.649 10  6−→.99 f3
0 −5.08 3.7 −50.3 0 0 6.99 0.5
   
1 −2.32 3.43 −22.7 1 −2.32 0 −22.9
−0.649f3 + f2 2.32f2 +f1
 0 1 0.649 10  −−−−−−→  0 1 0 9.95  −−−−−−→
−3.43f3 + f1
0 0 1 0.0715 0 0 1 0.0715
 
1 0 0 0.1
 0 1 0 9.95  .
0 0 1 0.0715
Por lo tanto, la solución obtenida corresponde a (0.1, 9.95, 0.0715)T .
Pivoteo total:
   
3.03 −12.1 14 −119 f1 ↔ f3
21 −14.2 6.11 −139 1
f
21 1
 −3.03 12.1 −7 120  −−−−→  −7 12.1 −3.03 120  −→
c1 ↔ c3
6.11 −14.2 21 −139 14 −12.1 3.03 −119
   
1 −0.676 0.29 −6.61 7f1 + f2
1 −0.676 0.29 −6.61 1
7.37 2
f
 −7 12.1 −3.03 120  −−−−→  0 7.37 −1 73.8  −→
−14f1 + f3
14 −12.1 3.03 −119 0 −2.64 −1.03 −26.5
   
1 −0.676 0.29 −6.61 1 −0.676 0.29 −6.61
2.64f2 +f3 1.38 3
−1
f
 0 1 −0.135 10  −−−−−−→  0 1 −0.135 10  −→
0 −2.64 −1.03 −26.5 0 0 −1.38 −0.1
4.1. Métodos directos 193
   
1 −0.676 0.29 −6.61 1 −0.676 0 −6.63
0.135f3 + f2 0.676f2 +f1
 0 1 −0.135 10  −−−−→  0 1 0 10  −−−−−−→
−0.29f3 + f1
0 0 1 0.0724 0 0 1 0.0724
 
1 0 0 0.13
 0 1 0 10 
0 0 1 0.0724
Como se intercambiaron la columna 1 con la columna 3, entonces la solución obtenida corres-
ponde a (0.0724, 10, 0.13)T . Así, lo siguiente será comparar los resultados con la respuesta
" T
correcta 0, 10, 17 , para lo cual se utilizará el error relativo, tal y como se muestra:
" T
T
0, 10, 17 − (0.1, 9.95, 0.0715)

2
"  = 0.01326207088
1 T
0, 10, 7
2
" 
1 T T
0, 10, 7 − (0.0724, 10, 0.13)
2
"  = 0.00735252532
1 T
0, 10, 7
2

Por lo tanto, como la norma del error es menor cuando se usa pivoteo total, entonces se puede
afirmar que este método es mejor, al menos para este sistema particular. 

Aspectos computacionales

Utilizar pivoteo parcial consiste en multiplicar el sistema lineal Ax = b, por una matriz P
de permutación, para luego aplicar eliminación Gaussiana al nuevo sistema (PA) x = Pb.
En el caso de pivoteo total, se consideran dos matrices de permutación P y Q, para aplicar
" 
eliminación Gaussiana al sistema equivalente (PAQ) QT x = Pb. En el ejemplo 4.4, se tiene:

0 0 1
P = Q =  0 1 0 .
1 0 0

Finalmente, a continuación se presenta la tabla 4.1, la cual compara el método de eliminación


Gaussiana y sus técnicas de pivoteo. Luego, se muestra el pseudocódigo del método de elimina-
ción Gaussiana con pivoteo parcial (Algoritmo 4.1), mientras que el método con pivoteo total se
deja como ejercicio para el lector (Ejercicio 7). Nótese que el vector p corresponde a la matriz
de permutación P, pero debido a la estructura de esta matriz, un vector es más que suficiente
para almacenar la misma.

4.1.2. Factorización LU
En el proceso de eliminación Gaussiana, sus operaciones entre filas se pueden justificar a través
de operaciones entre matrices, tal y como se describe a continuación, Para ello, considere la
194 Capítulo 4. Solución de sistemas de ecuaciones

Factorización Técnica Conteo de operaciones (aprox.) Estabilidad


2n3 No estable
A = LU Sin pivoteo
3 en general
Con pivoteo 2n 3 Estable en
PA = LU + O(n2 )
parcial 3 la práctica
Con pivoteo 2n 3
PAQ = LU + O(n3 ) Estable
total 3
Tabla 4.1: Tabla de comparaciones de los métodos directos.

matriz A ∈ n×n
de un sistema lineal, definida por:
 (1) (1) (1) (1)

a11 a12 a13 · · · · · · a1n
 (1) (1) (1) (1)

 a
 21 a22 a23 · · · · · · a2n 
 
 a(1) (1)
a32
(1)
a33
(1)
· · · · · · a3n 
A =  31
 
,
 ... ..
.
..
.
..
.
.. 
. 
 
 .. .. .. .. .. 
 . . . . . 
 
(1) (1) (1) (1)
an1 an2 an3 · · · · · · ann
siguiendo el método de eliminación Gaussiana, el primer paso consiste en realizar ceros por
debajo de la diagonal de la primera columna, para ello se realizan las operaciones:
(1)
ai1
− f
(1) 1
+ fi , para i = 2, . . . , n,
a11
(1)
ai1
denotando li1 = (1) , para i = 2, . . . , n, se puede apreciar que el primer paso de eliminación
a11
Gaussiana consiste de la operación matricial:
 (1) (1) (1) (1)

a11 a12 a13 · · · · · · a1n
 
 0 a(2) (2)
a23
(2)
· · · · · · a2n 
 22 
 
 0 a(2) (2)
a33
(2)
· · · · · · a3n 
 32 
L1 A =  . .. .. .. ..  ,
 .. . . . . 
 
 .. .. .. .. .. 
 . . . . . 
 
(2) (2) (2)
0 an2 an3 · · · · · · ann
donde  
1 0 ··· ··· ··· 0
. ..
1 ..
 
 −l21 . 

.. .. 

 −l31 0 1 . .


L1 =  . .. . . .. . . .. .
 .. . . . . . 
 
 .. .. .. 
 . . . 1 0 
−ln1 0 ··· ··· 0 1
4.1. Métodos directos 195

Algoritmo 4.1: EliminaciónGaussianaPivoteoParcial.


Recibe: A ∈ n×n no singular, b ∈ n vector de la derecha.
Retorna: x ∈ n solución del sistema lineal Ax = b.

1 Para i ← 1 hasta n hacer


2 pi ← i
3 Para j ← 1 hasta n − 1 hacer
4 % Pivoteo parcial
5 max ← 0
6 Para i ← j hasta n hacer
7 s ← pi
8 Si |asj | > max entonces
9 max ← |asj |
10 r←i

11 s ← pr
12 pr ← pj
13 pj ← s
14 % Eliminación Gaussiana
15 Para i ← j + 1 hasta n hacer
16 s ← pi
17 r ← pj
18 Si arj = 0 entonces
19 Imprimir: ¡Denominador cero!
20 Detener
asj
v←
21 arj
22 Para k ← j hasta n hacer
23 ask ← ask − v · ark
24 bs ← bs − v · br

25 % Sustitución hacia atrás


26 Para k ← 1 hasta n hacer
27 i← n+1−k
28 sum ← 0
29 s ← pi
30 Para j ← i + 1 hasta n hacer
31 sum ← sum + asj · xj
bs − sum
xi ←
32 asi
196 Capítulo 4. Solución de sistemas de ecuaciones

Continuando con este proceso hasta la n − 1 columna de A, se logra obtener la matriz U


triangular superior, tal y como se muestra:
 (1) (1) (1) (1)

a11 a12 a13 · · · · · · a1n
 
 0 a(2) a(2) · · · · · · (2)
a2n 
 22 23 
 
 0 (3) (3)
 0 a33 · · · · · · a3n 
Ln−1 · . . . · L1 A =  . .. .. ..  = U.
 .. . 0 . . 
 
 .. .
.. .
.. . .. ... .. 
 . . 
 
(n)
0 0 0 ··· 0 ann

Ahora, como las matrices Li con i = 1, . . . , n − 1, son no singulares, ya que el determinante de


una matriz triangular consiste en el producto de los valores en la diagonal, entonces se tiene la
identidad:
A = L−1 −1
1 · . . . · Ln−1 U,

nótese que las matrices L−1


j son triangulares inferiores, ya que Lj es triangular inferior y además
se puede verificar que son de la forma:
 
10 ··· ··· ··· ··· ··· 0
 0 ... ...
 .. 
 . 

 .. . . .. .. 
 . . 1 . . 
 . .
..

 . . ..
 .

0 1
L−1

j =  . .. .. .. ,
 .. . l(j+1)j 1 . . 
 
 .. .
.. .
.. .. .. .. 
 .
 0 . . . 

 .. .. .. .. .. 
 . . . . . 1 0 
0 ··· 0 lnj 0 ··· 0 1

Columna j

(j)
aij
donde lij = (j) . Luego, como el producto de matrices triangulares inferiores es también una
ajj
matriz triangular inferior, entonces la matriz L = L−1 −1
1 · . . . · Ln−1 es triangular inferior unitaria,
donde:  
1 0 ··· ··· ··· 0
 .. .. 
 l21 1 . . 

. .. .. 
 l
 31 l32 1 . 
L =  . . . . . . ,
 .. .. .. .. .. .. 
 
 . . .
. . .

 . . . 1 0 
ln1 ln2 · · · · · · ln(n−1) 1
es decir, se tiene que el método de eliminación Gaussiana es equivalente a realizar una factoriza-
ción o descomposición de la matriz del sistema, dada por el producto de una matriz triangular
4.1. Métodos directos 197

inferior unitaria y una matriz triangular superior, mejor conocida como factorización LU. Por
todo lo anterior, es claro que obtener la factorización LU de una matriz de orden n tiene un
costo de O(n3 ), ya que es equivalente a realizar la eliminación Gaussiana.

Ejemplo 4.5.
Considere la matriz  
2 −1 0 0
 
 −1 2 −1 0 
A =  ,
 0 −1 2 −1 
0 0 −1 2
determine, si existe, su factorización LU.

Solución. Realizando ceros debajo de la diagonal de la primera columna se tiene que:


   
2 −1 0 0 2 −1 0 0
   3 
 −1 2 −1 0  12 f1 +f2  0 2
−1 0 
  −−−−→  ,
 0 −1 2 −1   0 −1 2 −1 
0 0 −1 2 0 0 −1 2
por lo que se tiene que l21 = − 21 . Luego, se hacen ceros debajo de la diagonal en la segunda
columna:    
2 −1 0 0 2 −1 0 0
 3   3 
 0 2
−1 0  23 f2 +f3  0 2
−1 0 
  −−−−→  4 ,
 0 −1 2 −1   0 0 3
−1 
0 0 −1 2 0 0 −1 2
con lo que l32 = − 32 . Finalmente, se hacen ceros debajo de la diagonal en la tercera columna:
   
2 −1 0 0 2 −1 0 0
 3   3 
 0 2
−1 0  34 f3 +f4  0 2
−1 0 
 4  −−−−→  4 ,
 0 0 3
−1   0 0 3
−1 
5
0 0 −1 2 0 0 0 4

de donde l43 = − 34 . Por lo tanto, las matrices L triangular inferior unitaria y U triangular
superior que cumplen que A = LU, son dadas por:
   
1 0 0 0 2 −1 0 0
 1   3 
 − 1 0 0   0 −1 0 
L =  2  y U =  2
.
 0 − 23 1 0   0 0 4
3
−1 
0 0 − 34 1 0 0 0 5 
4

Ejemplo 4.6.
Considere la matriz  
1 2 3
B =  4 5 6 ,
0 3 6
determine, si existe, su factorización LU.
198 Capítulo 4. Solución de sistemas de ecuaciones

Solución. Realizando ceros debajo de la diagonal de la primera columna se tiene que:

   
1 2 3 1 2 3
−4f1 +f2
 4 5 6  −
−−−−→  0 −3 −6  ,
0 3 6 0 3 6

por lo que se tiene que l21 = 4. Luego, se hacen ceros debajo de la diagonal en la segunda
columna:
   
1 2 3 1 2 3
f2 +f3
 0 −3 −6  − −−→  0 −3 −6  ,
0 3 6 0 0 0

con lo que l32 = −1. Por lo tanto, las matrices L triangular inferior unitaria y U triangular
superior que cumplen que A = LU, son dadas por:

   
1 0 0 1 2 3
L =  4 1 0  y U =  0 −3 −6  .
0 −1 1 0 0 0


Observación: Si al tratar de resolver el sistema lineal Ax = b, se tiene que la factorización


LU de A es conocida, A = LU, entonces el sistema se puede reescribir como LUx = b y
realizando el cambio de variable y = Ux se obtiene un sistema triangular inferior Ly = b, el
cual se resuelve por medio de sustitución hacia adelante (“forward substitution”), de la forma:

i−1
!
1 X
yi = bi − lij · yj , para i = 1, 2, . . . , n − 1, n.
lii j=1

Luego, una vez encontrado el vector y, se encuentra la solución del sistema original mediante
el sistema triangular superior Ux = y, utilizando sustitución hacia atrás:

n
!
1 X
xi = yi − uij · xj , para i = n, n − 1, . . . , 2, 1.
uii j=i+1

Como, resolver sistemas triangulares tiene una complejidad de O(n2 ), entonces resolver un
sistema lineal donde se conoce la factorización LU de la matriz del sistema tiene una complejidad
de O(2n2 ), es decir, es de orden cuadrático, lo cual es menor al orden cúbico de la eliminación
Gaussiana.
4.1. Métodos directos 199

Ejemplo 4.7.
Resuelva el sistema lineal

 −15x1 − 6x2 + 9x3 = 0,
35x1 − 4x2 − 12x3 = −9,

−30x1 + 36x2 − 16x3 = −6,

teniendo en cuenta que:


    
−15 −6 9 1 0 0 −15 −6 9
 35 −4 −12  =  − 7
3
1 0  0 −18 9 .
−30 36 −16 2 − 38 1 0 0 −10

Solución. Primero se resuelve el sistema triangular inferior, con b como el vector de la derecha.
Así, aplicando sustitución hacia adelante se tiene que:

b1 0
y1 = = = 0,
l11 1
" 
1 −9 − − 73 · 0
y2 = (b2 − l21 · y1 ) = = −9,
l22 1
" 
1 −6 − 2 · 0 − − 83 · (−9)
y3 = (b3 − l31 · y1 − l32 · y2 ) = = −30.
l33 1

Ahora, se resuelve el sistema triangular superior, tomando como vector de la derecha a y =


(0, −9, −30)T y utilizando sustitución hacia atrás:

y3 −30
x3 = = = 3,
u33 −10
1 −9 − 9 · 3
x2 = (y2 − u23 · x3 ) = = 2,
u22 −18
1 0 − (−6) · 2 − 9 · 3
x1 = (y1 − u12 · x2 − u13 · x3 ) = = 1.
u11 −15

Por lo tanto, la solución del sistema corresponde a x = (1, 2, 3)T . 

Observación: Si no se conoce la factorización, calcularla tiene el mismo costo de realizar


eliminación Gaussiana, O(n3 ), por lo que resolver un sistema mediante el método del ejemplo
anterior no presenta mayor ventaja. Por otro lado, si se tienen varios sistemas lineales con
la misma matriz, es decir Axk = bk , lo cual ocurre al resolver ecuaciones diferenciales que
dependen del tiempo, entonces allí es donde se presenta mayor ventaja. Por ejemplo, considere
el vector canónico ei que tiene todas sus entradas cero, excepto la posición i la cual es un uno.
Si se resuelve el sistema Ax = ei , se encuentra la columna i de la matriz A−1 . Es decir, al
resolver los sistemas para i = 1, . . . , n, se determina la matriz A−1 completamente. Si estos
200 Capítulo 4. Solución de sistemas de ecuaciones

sistemas se resuelven cada uno por medio de eliminación Gaussiana, al método se le conoce
como método de Gauss-Jordan.
Por lo anterior, el método de Gauss-Jordan resuelve n sistemas lineales, con lo que el costo de
calcular A−1 es de O(n4 ), lo que hace muy poco eficiente calcular la inversa de una matriz.
Sin embargo, si se calcula la factorización LU de A, se realizan n3 operaciones. Luego, si se
resuelven los n sistemas con dicha factorización, se realizarán n2 operaciones por cada sistema.
Así, como se tienen n sistemas, el costo total es n3 + n · n2 operaciones, por lo que el costo es
de orden O(n3 ).
Finalmente en el algoritmo 4.2 se presenta el pseudocódigo para determinar la factorización
LU de una matriz A. El mismo algoritmo puede ser utilizado con pivoteo parcial o bien con
pivoteo total, al considerar las matrices PA y PAQ, respectivamente.

Algoritmo 4.2: FactorizaciónLU.


Recibe: A ∈ n×n con factorización LU existente.
Retorna: L ∈ n×n triangular inferior unitaria, U ∈ n×n
triangular superior, tal que
A = LU.

1 Para i ← 1 hasta n hacer


2 w ← ai∗ % fila i de A
3 Para k ← 1 hasta i − 1 hacer
4 Si wk 6= 0 entonces
wk
wk ←
5 ukk
6 Para j ← k + 1 hasta n hacer
7 wj ← wj − wk · uk,j

8 lii ← 1
9 Para j ← 1 hasta i − 1 hacer
10 lij ← wj
11 Para j ← i hasta n hacer
12 uij ← wj

Observación: De las matrices A y B de los ejemplos 4.5 y 4.6 se puede apreciar que el determi-
nante no juega un papel en la existencia de la factorización LU, ya que det(A) 6= 0 mientras que
det(B) = 0. Sin embargo, la existencia no siempre se puede garantizar, por ejemplo considere
la matriz  
0 1
C = ,
1 0
es claro que el método no se puede aplicar ya que la primera entrada de la diagonal es cero
y con ello no se puede cancelar la entrada por debajo de ella, así que la matriz C no tiene
factorización LU, a pesar de ser no singular. A continuación se presentan algunos resultados
que permiten conocer cuando la factorización LU existe e incluso sí esta es única.
4.1. Métodos directos 201

Definición 4.1.
Suponga que A ∈ n×n con n ≥ 2 y sea 1 ≤ k ≤ n. La submatriz principal de orden k
de A es definida como la matriz A(k) ∈ k×k que tiene por entradas, los elementos aij de
A con 1 ≤ i, j ≤ k. Es decir, A(k) es obtenida de A eliminando las últimas n − k filas y
columnas. En la figura 4.1 se ilustran estas submatrices.

Figura 4.1: Submatrices principales.

Teorema 4.1 (Existencia de la factorización LU).


Sea n ≥ 1, A ∈ n×n tal que para toda submatriz principal A(k) ∈ k×k con 1 ≤ k < n
es no singular, entonces existen matrices L triangular inferior unitaria y U triangular
superior, tales que A = LU.

Demostración(por inducción). Para n = 1 se tiene que A = (a11 ), de ella basta con tomar
L = ( 1 ) y U = (a11 ) y se cumple que A = LU. Asuma que la proposición es válida para
1, . . . , n (h.i.). Ahora, se debe probar que la proposición es válida para n + 1, para ello considere
A ∈ (n+1)×(n+1) tal que A(k) para 1 ≤ k ≤ n es no singular. Además, considere A como una
matriz por bloques de la siguiente manera:
 
A(n) α
A =  ,
βT an+1,n+1

con α, β ∈ n vectores y A(n) submatriz principal. El objetivo es factorizar A de la forma


LU, tal y como se muestra:
     
A(n) α L̃ 0 Ũ δ
  =  · ,
T T
β an+1,n+1 γ 1 0 p
| {z } | {z } | {z }
A L U
202 Capítulo 4. Solución de sistemas de ecuaciones

donde L̃ es una matriz triangular inferior unitaria, Ũ triangular superior, γ, δ ∈ n


vectores
y p ∈ . Al multiplicar L por U, se tiene la igualdad:
   
A(n) α L̃Ũ L̃δ
  =  ,
T T T
β an+1,n+1 γ Ũ γ δ+p

de donde se obtiene el sistema de ecuaciones:

A(n) = L̃Ũ, (4.1)


α = L̃δ, (4.2)
T T
β = γ Ũ, (4.3)
T
an+1,n+1 = γ δ + p, (4.4)

Luego, como A(n) es una matriz que tiene sus submatrices principales no singulares, entonces
por (h.i.), el sistema (4.1) tiene solución, debido a que L̃ y Ũ existen. Además, L̃ es triangular
inferior unitaria, por lo que el sistema (4.2) tiene solución única, con lo que el vector δ = L̃−1 α
existe. Ahora, nótese que
"       
0 6= det A(n) = det L̃Ũ = det L̃ · det Ũ , (4.5)

por lo que L̃ y Ũ son matrices no singulares. Así, el sistema (4.3) tiene solución única γ T =
β T Ũ−1 . Finalmente, ya que γ y δ existen, entonces se tiene que p = an+1,n+1 − γ T δ. Por lo
tanto, existen matrices L triangular inferior unitaria y U triangular superior, las cuales cumplen
que A = LU. 

Teorema 4.2 (Unicidad de la factorización LU).


Si A es no singular y se puede escribir como A = LU, con L triangular inferior unitaria
y U triangular superior, entonces la factorización es única.

Demostración. Sea A = L1 U1 y A = L2 U2 . Ya que A es no singular, entonces las matrices


L1 , L2 , U1 y U2 son no singulares, de una manera análoga a (4.5). Así, se tiene que:

L1 U1 = L2 U2 ⇔ U1 = L−1 −1 −1
1 L2 U2 ⇔ U1 U2 = L1 L2 .

De lo anterior se tiene que una matriz triangular superior (U1 U−1 2 ) es igual a una matriz
−1
triangular inferior (L1 L2 ), lo cual se cumple si ambas matrices son diagonales. Por otro lado,
ya que L1 y L2 son unitarias entonces U1 U−1 −1
2 = L1 L2 = I, donde I es la matriz identidad. De
esto, se tiene que L1 = L2 y U1 = U2 . Por lo tanto, la factorización LU es única. 

Observación: Del teorema 4.1 se puede observar que A no necesita ser no singular para que
la factorización LU exista. Ser no singular sólo garantiza la unicidad.
4.1. Métodos directos 203

Lema 4.1.
Suponga que n ≥ 2 y A ∈ n×n
simétrica definida positiva, entonces:

1. todos los elementos de la diagonal de A son positivos,

2. todos los valores propios de A son reales y positivos y los vectores propio de A están
en n − {0},

3. el determinante de A es positivo,

4. cada submatriz de A obtenida al eliminar cualquier conjunto de filas y el correspon-


diente conjunto de columnas de A es simétrica definida positiva, en particular, las
submatrices principales son definidas positivas,

5. el elemento de A con mayor valor absoluto se encuentra en la diagonal.

Demostración. (no se considera)

Corolario 4.1.
Una matriz simétrica definida positiva posee factorización LU y esta es única.

Demostración. (ejercicio)

Observación: En la práctica, debido a los errores provocados por el uso de precisión finita, es
mejor utilizar una estrategia de pivoteo, tal y como se muestra en el siguiente ejemplo.

Ejemplo 4.8.
Considere el siguiente sistema lineal, para ε > 0.

εx1 + x2 = 1,
x1 + x2 = 2.

1. Resuelva el sistema de manera exacta.

2. Resuelva el sistema para ε = 10−4 en (10, 3, −∞, +∞).

3. Repita el inciso anterior con pivoteo parcial.

Solución. Para resolverlo de manera exacta, considere la regla de Cramer, con lo que:


1 1 ε 1

2 1 1 1 2 1 − 2ε
x1 = = y x2 = = .
ε 1 1−ε 1−ε
ε 1


1 1 1 1

Nótese que cuando ε → 0 se tiene que x1 → 1 y x2 → 1.


204 Capítulo 4. Solución de sistemas de ecuaciones

Luego, aplicando la eliminación Gaussiana para ε = 10−4 en (10, 3, −∞, +∞) y utilizando
truncamiento, se tiene que:
 −4   −4   −4 
10 1 1 −104 f1 +f2 10 1 1 10 1 1
−−−−−−→ = .
1 1 2 0 f l(1 − 104 ) f l(2 − 104 ) 0 −9990 −9990
−9990
Así, se tiene que x2 = −9990 = 1, de donde se obtiene que x1 = 0. Se puede apreciar que el
resultado en precisión finita de la segunda parte, no es consistente con el resultado exacto de
la primera parte, lo que quiere decir que la solución por eliminación Gaussiana no es correcta.
Luego, aplicando pivoteo parcial sobre la matriz del sistema, se tiene que la primera fila se
intercambia con la segunda, con lo que:
     
1 1 2 −10−4 f1 +f2 1 1 2 1 1 2
−−−−−−−→ = ,
10−4 1 1 0 f l(1 − 10−4 ) f l(1 − 2 · 10−4 ) 0 0.999 0.999

de donde se tiene que x2 = 00..999


999
= 1, por lo que x1 = 1. 

Observación: No toda matriz admite una factorización LU, como se expresa en el teorema
4.1, sin embargo, existe una variante de esta factorización, la cual se puede determinar siempre
para cualquier matriz cuadrada. Dicha variante se presenta en el teorema 4.3.

Teorema 4.3 (Existencia de la factorización P A = LU).


Sea n ≥ 1 y A ∈ n×n . Existe una matriz de permutación P, una matriz triangular
inferior unitaria L y una matriz triangular superior U, tales que PA = LU.

Demostración(por inducción). Nótese que para n = 1 la factorización es trivial, basta tomar


P = ( 1 ), L = ( 1 ) y U = A = (a11 ). Asumiendo que la proposición es válida para 1, . . . , n
n+1
(h.i.), basta probar que es válida para n+1. Para ello, sea r ∈ el índice tal que ar1 = máx |ai1 |
i=1
y considere la permutación P(1r) , la cual intercambia la fila 1 con la fila r, y se tiene que:
 
ar1 wrT
P(1r) A =  ,
α Ã

donde wr ∈ n
es el vector que contiene los elementos de A de la fila r, sin incluir la primera
posición, α ∈ n
y à ∈ n×n . Considere ahora los dos posibles casos para ar1 :

Caso 1: Suponiendo que ar1 = 0, por definición de r se tiene que α = 0 y por (h.i.)
existen matrices P̃, L̃ y Ũ que cumplen que à = P̃T L̃Ũ, con ello:
       
0 wrT 1 0 1 0 0 wrT
(1r) · ·
P A =   =  ,
0 P̃T L̃Ũ 0 P̃T 0 L̃ 0 Ũ
| {z } | {z } | {z }
PT
1
L U

por lo que se tiene que P1 P(1r) A = LU, con lo que basta con tomar P = P1 P(1r) .
4.1. Métodos directos 205

Caso 2: Suponga ahora que ar1 =


6 0, con lo que:
     
ar1 wrT 1 0 ar1 wrT
(1r) ·
P A =   =  ,
α Ã β In 0 B
donde β = a1r1 α, In la matriz identidad de orden n y B = Ã− β wrT . Aplicando la (h.i.)
a B se tiene que B = P̃T L̃Ũ, con lo que:
     
1 0 1 0 ar1 wrT
P(1r) A =  · · 
T
β In 0 P̃ 0 L̃Ũ
     
1 0 1 0 ar1 wrT
=  · · 
T
β P̃ 0 L̃ 0 Ũ
       
1 0 1 0 1 0 ar1 wrT
=  · · · 
T
0 P̃ P̃β In 0 L̃ 0 Ũ
     
1 0 1 0 ar1 wrT
=  · · 
T
0 P̃ P̃β L̃ 0 Ũ
| {z } | {z } | {z }
PT
1
L U

similarmente, se tiene que P1 P(1r) A = LU, con lo que basta tomar P = P1 P(1r) .

Por lo tanto, se cumple que existen: P matriz de permutación, L matriz triangular inferior
unitaria y U triangular superior que tales que PA = LU. 

Observación: Nótese que el teorema anterior no pone condiciones sobre la matriz A, salvo
que esta sea cuadrada. Por lo tanto, se puede garantizar que toda matriz cuadrada admite su
factorización PA = LU.

Ejemplo 4.9.
Considere la siguiente matriz y determine su factorización P A = LU.
 
0 8 −2
A =  1 −3 6 .
5 −15 25

Solución. Nótese que no se puede calcular la factorización LU de A debido a que el primer


pivote es cero. Por tal razón, se recurre a la factorización P A = LU, con la cual primero se
realiza un cambio de filas para obtener un pivote no cero, en particular el más grande en valor
absoluto en su respectiva columna.
   
0 8 −2 5 −15 25
f1 ↔f3
 1 −3 6  −−−→  1 −3 6 .
5 −15 25 0 8 −2
206 Capítulo 4. Solución de sistemas de ecuaciones

Ahora, siguiendo con el proceso usual de eliminación Gaussiana, se tiene que:


   
5 −15 25 5 −15 25
− 15 f1 +f2
 1 −3 6  −−−−−→  0 0 1 ,
0 8 −2 0 8 −2

con lo que la matriz L, hasta el momento, es de la forma:


 
1 0 0
L =  15 1 0  .
1

Luego, como el siguiente pivote también es cero, entonces nuevamente se realiza un cambio de
filas:    
5 −15 25 5 −15 25
f2 ↔f3
 0 0 1  −−−→  0 8 −2  = U,
0 8 −2 0 0 1
el cual también se hace, de una manera no completa, a la matriz L, la cual ahora es de la forma:
 
1 0 0
L =  1 0 .
1
5
0 1

Nótese que ya no hay necesidad de realizar más operaciones, por lo que se obtienen:
   
1 0 0 5 −15 25
L =  0 1 0  y U =  0 8 −2  .
1
5
0 1 0 0 1

Además, observe que


 
5 −15 25
LU =  0 6 A,
8 −2  =
1 −3 6
lo cual se debe a los cambios de filas realizados: f1 ↔ f3 y f2 ↔ f3 , con los que se puede
construir la matriz de permutación:
 
0 0 1
P =  1 0 0 ,
0 1 0

de donde se satisface que PA = LU. 

4.1.3. Factorización de Cholesky


Nótese que la factorización LU no requiere que la matriz sea simétrica, por lo que esta puede
ser aplicada a matrices simétricas y no simétricas por igual. Sin embargo, trabajar con matrices
4.1. Métodos directos 207

simétricas brinda gran ventaja en cuanto a almacenamiento se refiere, ya que no se guardan


casi la mitad de las entradas de la matriz. Además, si se obtiene la factorización LU de una
matriz simétrica, esta consiste de matrices L y U no simétricas, por lo que se pierde la ventaja
del almacenamiento. Para corregir esto, cuando la matriz es simétrica, en la práctica, se utiliza
la factorización de Cholesky, la cual se describe a continuación.

Teorema 4.4.
Sea n ≥ 1 y A ∈ n×n una matriz simétrica definida positiva, entonces existe una matriz
L triangular inferior, tal que A = LLT .

Demostración. Como A es simétrica definida positiva, entonces existen L̃ y Ũ tal que A =


L̃Ũ, además esta factorización es única, por lo que uii 6= 0 para i = 1, . . . , n, con lo que
Ũ = D̃Ũ1 , donde:  
u11 0 · · · 0
 0 ... ...
 .. 
. 
D̃ = diag(Ũ) =  . .

..
,
 . . . . . 0 

0 · · · 0 unn
es decir, A = L̃D̃Ũ1 , además AT = ŨT1 D̃L̃T . Luego, como A = AT , ŨT1 es una matriz trian-
gular inferior unitaria y como L̃T es una matriz triangular superior, entonces por la unicidad
de la factorización LU se cumple que L̃ = ŨT1 , de donde se tiene que A = L̃D̃L̃T .
Finalmente, nótese que uii > 0 para i = 1, . . . , n, ya que uii = aii y como A es simétrica definida
1 1 1
positiva, entonces aii > 0, para todo i = 1, . . . , n. Así, considere D̃ = D̃ 2 · D̃ 2 y sea L = L̃D̃ 2 ,
con lo que se cumple que A = LLT . 

Ejemplo 4.10.
Para la matriz simétrica
 
4 −4 6 −6
 
 −4 20 −22 26 
A =  ,
 6 −22 61 −59 
−6 26 −59 108

se puede verificar que  


2 0 0 0
 
 −2 4 0 0 
L =  ,
 3 −4 6 0 
−3 5 −5 7
cumple que A = LLT .

Observación: La gran ventaja de esta factorización, consiste en que sólo es necesario almacenar
una sóla matriz triangular inferior L. Además, es importante notar que la factorización de
208 Capítulo 4. Solución de sistemas de ecuaciones

1 1
Cholesky no es única, ya que hay varias formas de descomponer la matriz D̃ = D̃ 2 · D̃ 2 .
Finalmente, en el algoritmo 4.3 se presenta el pseudocódigo para obtener la matriz L de la
factorización de Cholesky.

Algoritmo 4.3: FactorizaciónCholesky.


Recibe: A ∈ n×n simétrica definida positiva.
Retorna: L ∈ n×n triangular inferior, tal que A = LLT .

1 l11 ← a11
2 Para i ← 2 hasta n hacer
3 Para j ← 1 hasta i − 1 hacer
4 sum ← 0
5 Para k ← 1 hasta j − 1 hacer
6 sum ← sum + lik · ljk
1
lij ← (aij − sum)
7 ljj
8 sum ← 0
9 Para k ← 1 hasta i − 1 hacer
2
10 sum ← sum + lik

11 lii ← aii − sum

Ejercicios (sección 4.1)


♦ Tradicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

!
1. Utilizando eliminación Gaussiana en (10, 3, −∞, +∞) con truncamiento, encuentre una
aproximación a la solución de los siguientes sistemas:
 
0.03x1 + 58.9x2 = 59.2 58.9x1 + 0.03x2 = 59.2
a) b)
5.31x1 − 6.10x2 = 47.0 −6.10x1 + 5.31x2 = 47.0

Solución exacta: (10, 1)T Solución exacta: (1, 10)T



 3.3330x1 + 15920x2 + 10.333x3 = 7953
c) 2.2220x1 + 16.710x2 + 9.6120x3 = 0.965

−1.5611x1 + 5.1792x2 − 1.6855x3 = 2.714
T
Solución exacta: 1, 12 , −1


 1.19x1 + 2.11x2 − 100x3 + x4 = 1.12


14.2x1 − 0.122x2 + 12.2x3 − x4 = 3.44
d)

 100x2 − 99.9x3 + x4 = 2.15

 15.3x + 0.110x − 13.1x − x = 4.16
1 2 3 4

Solución exacta: (0.17682530, 0.01269269, −0.02065405, −1.18260870)T


4.1. Métodos directos 209

2. Si entre las técnicas de pivoteo se considera el pivoteo parcial escalado, el cual consiste en
intercambiar filas según el mayor valor en la columna pivote, en relación con su fila (sólo
la matriz de coeficientes y de la diagonal hacia abajo). Así, cuando el pivote es akk , se
buscan en las filas i ≥ k los valores:
|aik |
ei = ,
máx{|aij | / j ≥ k}
luego, se intercambia la fila k con la fila con el mayor ei .

a) Utilice pivoteo parcial, pivoteo parcial escalado y pivoteo total, en (10, 5, −∞, +∞)
con redondeo, para resolver el sistema lineal:

 0.13x − 1.14y − 9.93z = −31.94,
−1.08x − 4.43y + 82.4z = 237.26,

−9.71x + 0.75y + 5.68z = 8.83.
Comente sus resultados, teniendo en cuenta que la solución exacta es dada por x = 1,
y = 2 y z = 3.
b) Considere el sistema

 2x1 + x2 + 3x3 = 1,
4x1 + 6x2 + 8x3 = 5,

6x1 + αx2 + 10x3 = 5,
con |α| < 10. ¿Para cuáles de los valores: α = 6, α = 9 o α = −3, no se requerirá
intercambio de filas al resolver el sistema anterior mediante pivoteo parcial escalado?

3. Encuentre la factorización LU de las siguientes matrices:


   
2 4 0 −2 1 1 −1 0
   
 1 −4 2 1   1 1 4 3 
A =   y B =  .
 2 1 −6 −8   2 −1 2 4 
−4 −8 2 0 2 −1 2 3
Utilizando las factorizaciones obtenidas, resuelva los sistemas Ax = b y By = b, donde
b = (−4, 6, −10, 20)T .

4. Ya que la factorización LU de la matriz A es dada por:


   
60 30 20 60 30 20
 30 20 15  = L ·  0 5 5 
20 15 12 0 0 31
a) Determine la matriz L.
b) Utilizando la factorización LU de A, resuelva el siguiente sistema:

 60x1 + 30x2 + 20x3 = 1
30x1 + 20x2 + 15x3 = 2

20x1 + 15x2 + 12x3 = 3
5. Obtenga las matrices P, L y U, tales que se cumpla que PA = LU, donde:
210 Capítulo 4. Solución de sistemas de ecuaciones
   
1 −2 3 0 1 −2 3 0
   
 1 −2 3 1   3 −6 9 3 
a) A =   b) A =  
 1 −2 2 −2   2 1 4 1 
2 1 3 −1 1 −2 2 −2

6. Use la factorización de Cholesky para resolver el sistema de ecuaciones:



 x1 − 2x2 + 2x3 = 4,
−2x1 + 5x2 − 3x3 = −7,

2x1 − 3x2 + 6x3 = 10.

♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7. Implemente en MATLAB el método de eliminación Gaussiana con pivoteo total.

8. Sea Tn una matriz tridiagonal no singular:


 
a1 b1 0 ··· 0
 .. .. 
 c1 a2
 b2 . . 

Tn =  0 . . . . . . ..
 
. 0 .
 
 .. . .
. cn−2 an−1 bn−1

 . 
0 ··· 0 cn−1 an

a) Diseñe un algoritmo eficiente basado en eliminación Gaussiana para resolver un


sistema lineal con la matriz Tn . El algoritmo debe tomar ventaja de la estructura
de la matriz.
b) Calcule el número total de operaciones algebraicas del algoritmo propuesto en el
inciso anterior.
c) Implemente el algoritmo en MATLAB, el nombre de la rutina será:
[x] = TriDiagGE(A, b).
Además, realice experimentos numéricos para el total del tiempo de ejecución como
función del tamaño del problema. Es decir, resuelva varios sistemas lineales de varios
tamaños: n = 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000 y para cada
sistema calcule el tiempo de ejecución. Realice una gráfica de tiempo versus tamaño.
Comente sus resultados.

9. Implemente en MATLAB una rutina que dada A ∈ n×n , retorne la matriz P de permu-
tación, L triangular inferior unitaria y U triangular superior, tales que PA = LU.

10. Implemente en MATLAB las siguientes rutinas:

a) El algoritmo 4.2 para determinar las matrices de la factorización LU.


4.1. Métodos directos 211

b) El método de sustitución hacia adelante,


! i−1
"
1 X
yi = bi − lij · yj , para i = 1, 2, . . . , n − 1, n.
lii j=1

c) El método de sustitución hacia atrás,


! n
"
1 X
xi = yi − uij · xj , para i = n, n − 1, . . . , 2, 1.
uii j=i+1

d ) El método para resolver un sistema lineal por el método de la factorización LU.


e) Un algoritmo para determinar la inversa de una matriz A no singular.

11. Implemente en MATLAB las siguientes rutinas:

a) El algoritmo 4.3 para determinar la matriz L de la factorización de Cholesky.


b) Un método similar a sustitución hacia atrás, para resolver el sistema LT x = b, con
L triangular inferior, pero que no determine la transpuesta de L explícitamente.
c) El método para resolver un sistema lineal simétrico por el método de la factorización
de Cholesky. Además, valide su implementación con los resultados del ejercicio 6.

♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

12. Una matriz triangular inferior elemental de orden n y de tipo k es una matriz de la forma
 
1 0 ··· ··· ··· ··· ··· 0
 0 ... ...
 .. 
 .  
 .. . . .. .. 
 . . 1 . . 
 . .. 
 . . ..
 . . 

0 1
Mk =  . .. .. ..  .
 .. . m 1 . . 
 k+1,k 
 .. .. .. .. . . .. 
 .
 . . 0 . . .  
 .. .. .. .. .. 
 . . . . . 1 0 
0 ··· 0 mn,k 0 ··· 0 1

a) Muestre que una matriz triangular inferior elemental de tipo k tiene la forma: Mk =
In + meTk , donde m = (0, 0, . . . , 0, mk+1,k , . . . , mn,k )T .
b) Muestre que la inversa de Mk es dada por M−1
k = In − mek .
T

13. Una matriz G de la forma


G = In − geTk ,
es llamada una matriz Gauss-Jordan.

a) Muestre que, dado un vector x con la propiedad que eTk x 6= 0, existe una matriz
Gauss-Jordan G tal que Gx es un múltiplo de ek .
212 Capítulo 4. Solución de sistemas de ecuaciones

b) Diseñe un algoritmo para construir matrices Gauss-Jordan G1 , G2 , . . ., Gn sucesi-


vamente tales que (Gn Gn−1 · · · G2 G1 ) A es una matriz diagonal. Este es conocido
como la reducción de Gauss-Jordan.
c) Derive condiciones para que la reducción de Gauss-Jordan pueda completarse con
éxito.

14. Sea A una matriz no singular de orden n y k ≥ 1 un entero. Dado un vector b ∈ n


, se
desea resolver el sistema

Ak x = b. (4.6)

a) Diseñe un algoritmo de complejidad aritmética O(kn3 ) para resolver el sistema (4.6).


Muestre explícitamente la complejidad de su algoritmo.
b) Suponiendo que A admite descomposición LU, diseñe un algoritmo para resolver el
sistema (4.6) que sea más eficiente que el presentado en el inciso anterior. Muestre la
complejidad aritmética. Diga porqué este algoritmo es más eficiente que el anterior.

15. Sea n ≥ 2 y la matriz A ∈ n×n . La permutación Q ∈ n×n revierte el orden de las filas
de A, de la manera (QA)ij = an+1−i,j . Si L ∈ n×n es una matriz triangular inferior.

a) ¿Qué estructura tiene la matriz de la matriz QLQ?


b) Muestre cómo factorizar la matriz A ∈ n×n
en la forma A = UL, donde U ∈ n×n

es triangular superior unitaria y L ∈ n×n


es triangular inferior.
c) ¿Qué condiciones sobre A se requieren para que la factorización del inciso anterior
exista? Dé un ejemplo de una matriz cuadrada A la cual no pueda ser factorizada
de la dicha forma.

16. Considere una matriz A ∈ n×n


, con n ≥ 2, en la cual cada submatriz principal de orden
menor que n es no singular.

a) Muestre que A puede ser factorizada en la forma A = LDU, donde L ∈ n×n es


triangular inferior unitaria, D ∈ n×n es diagonal y U ∈ n×n es triangular superior
unitaria.
b) Si la factorización A = LU es conocida, donde L es triangular inferior unitaria y U
triangular superior, muestre cómo encontrar los factores de la transpuesta AT .

17. Suponga que la matriz A ∈ n×n , con n ≥ 2, es no singular. Muestre por inducción, que
existe una matriz de permutación P ∈ n×n , una matriz triangular inferior L ∈ n×n , y
una matriz triangular superior unitaria U ∈ n×n tal que PA = LU. Encontrando una
adecuada matriz A de 2 × 2, muestre que esto no puede ser cierto si A es singular

18. La matriz tridiagonal T ∈ n×n , con n ≥ 3, tiene los elementos en la diagonal tii = 2,
i = 1, . . . , n y los elementos fuera de la diagonal ti,i+1 = ti+1,i = −1, i = 1, . . . , n − 1. En
4.2. Normas matriciales y número de condicionamiento 213

la factorización T = LU, donde L ∈ n×n


es triangular inferior unitaria y U ∈ n×n
es
triangular superior, muestre que:
−i
li+1,i = , para i = 1, . . . , n,
i+1
y encuentre expresiones para los elementos de U. ¿Cuál es el determinante de T?

19. Suponga que la factorización LU de A existe y diseñe un algoritmo para calcular U por
filas y L por columnas directamente de la ecuación A = LU. Este es conocido como la
reducción de Doolittle.

20. Diseñe un algoritmo para calcular la factorización A = LU, donde U es triangular supe-
rior unitaria y L triangular inferior. Este es conocido como la reducción de Crout.

4.2. Normas matriciales y número de condicionamiento


La norma de una matriz A cumple las mismas propiedades que la norma de un vector (ver
la sección B.1.2), lo cual es suficiente para establecer conceptos métricos como: distancia, con-
vergencia, entre otras. Sin embargo, desde el punto algebraico, el conjunto de matrices posee
una operación adicional, la multiplicación, por lo tanto se requiere una propiedad extra que
relacione la norma con esta operación, denominada propiedad de consistencia.

Definición 4.2.
Sea |||·||| : m×n → una función que satisface las siguientes propiedades, para todo
A, B ∈ m×n :

1. |||A||| ≥ 0, además |||A||| = 0 si y sólo si A = O (Positividad)

2. |||αA||| = |α| · |||A|||, para todo α ∈ (Homogéneidad)

3. |||A + B||| ≤ |||A||| + |||B||| (Desigualdad triangular)

Se dice que |||·||| es una norma matricial, o simplemente norma, en m×n . Además, se
dice que una norma |||·||| es consistente si satisface que |||AB||| ≤ |||A||| |||B|||, cuando el
producto AB esta bien definido.

Ejemplo 4.11.
Una de las normas matriciales usuales es la norma de Frobenius:
v
uX
u n X m
|||A|||F = t |aij |2 .
j=1 i=1

Verifique que |||·|||F es una norma consistente.


214 Capítulo 4. Solución de sistemas de ecuaciones

Solución. Las primeras tres propiedades, se deducen observando que la norma de Frobenius
2
no es otra cosa más que la norma k · k2 en n .
Luego, para demostrar la consistencia, se denota por ai∗ la i-ésima fila y por a∗j la j-ésima
columna de la matriz A. Aplicando la desigualdad de Cauchy-Schwarz a la entrada cij =
Pn
aik bkj de la matriz C = AB se tiene que:
k=1

|cij |2 = hai∗ , b∗j i2 ≤ kai∗ k22 kb∗j k22 ,


de donde se obtiene que:
n X
m
! m
"! n
"
X X X
|||AB|||2F ≤ kai∗ k22 kb∗j k22 = kai∗ k22 kb∗j k22 = |||A|||2F |||B|||2F .
j=1 i=1 i=1 j=1

Por lo tanto, |||·|||F es un norma consistente. 

Observación: La norma de Frobenius, cumple las siguientes propiedades:



1. Para la matriz identidad In , |||In |||F = n.

2. |||A|||2F = tr AT A , donde tr(B) = b11 + b22 + . . . + bnn es la traza de B.

Además, la norma matricial |||A||| = máx |aij | no es una norma consistente. Luego, a continua-
i,j
ción se demuestran dos propiedades importantes que se deducen de la propiedad de consistencia.

Teorema 4.5.
Sea |||·||| una norma matricial en n×n , entonces para todo A ∈ n×n
se cumple que:

1. Para todo k ∈ , Ak ≤ |||A|||k ,

2. ρ(A) ≤ |||A|||, donde ρ(A) corresponde al radio espectral (definición B.37). Es decir,
ρ(A) es el mayor módulo de los valores propios de A.

Demostración. La demostración de la propiedad (1) se obtiene fácilmente por la propiedad


de consistencia y se deja como ejercicio.
Para probar (2), considere λ ∈ σ(A) y x ∈ n un vector propio no nulo asociado a λ. Considere
además, la matriz X ∈ n×n , cuyas n columnas son precisamente el vector x. Luego se tiene
que:
|λ| |||X||| = |||AX||| ≤ |||A||| |||X||| ,
de donde |λ| ≤ |||A|||. Como esta desigualdad es válida para todo λ ∈ σ(A), en particular para
ρ(A). 

Observación: Del teorema anterior, se puede notar que la desigualdad, de la propiedad (2),
puede ser estricta. Para ilustrar esto, considere la siguiente matriz
 
0 1
A = .
0 0
4.2. Normas matriciales y número de condicionamiento 215

Como σ(A) = {0}, ρ(A) = 0 pero como A 6= O entonces |||A||| > 0 para cualquier norma
matricial |||·|||.

Definición 4.3.
Un bloque de Jordan Jk (λ) es una matriz de tamaño k×k cuya estructura es la siguiente
 
0 1 0 ... 0
 0 0 1 . . . ... 
 
 
Jk (λ) = λIk + Nk , donde Nk =  ... . . . . . . . . . 0 
 
 
 .. ..
.

 . 0 1 
0 ... ... 0 0

Teorema 4.6 (Forma canónica de Jordan).


Sea A ∈ n×n , entonces existe una matriz no singular S y una matriz diagonal por bloques
J tales que A = SJS−1 y cada bloque de J es un bloque de Jordan.

Demostración. (no se considera)

Ejemplo 4.12.
Encuentre la forma canónica de Jordan de la matriz
 
5 4 2 1
 
 0 1 −1 −1 
A =  
 −1 −1 3 0 
1 1 −1 2

Solución. Como el polinomio característico de A es dado por

det(λI4 − A) = λ4 − 11λ3 + 42λ2 − 64λ + 32 = (λ − 1)(λ − 2)(λ − 4)2 ,

entonces los valores propios de A son λ1 = 1, λ2 = 2, λ3 = 4 y λ4 = 4. Con lo que se definen


los bloques de Jordan:
 
4 1
J1 (λ1 ) = ( 1 ) , J1 (λ2 ) = ( 2 ) y J2 (λ3 ) = .
0 4

De esta forma, la matriz J de la forma canónica de Jordan es dada por:


 
1 0 0 0
 0 2 0 0 
 
J = J1 (λ1 ) ⊕ J1 (λ2 ) ⊕ J2 (λ3 ) =  ,
 0 0 4 1 
0 0 0 4
216 Capítulo 4. Solución de sistemas de ecuaciones

donde A ⊕ B = diag(A, B). Luego, nótese que v1 = (−1, 1, 0, 0)T y v2 = (1, −1, 0, 1)T son
vectores propios de λ1 y λ2 , respectivamente. Además, v3 = (1, 0, −1, 1)T es vector propio para
λ3 y v4 = (1, 0, 0, 0)T satisface que (A − λ4I4 )2 v4 = 0, el cual es linealmente independiente con
v1 , v2 y v3 . Por lo que se puede definir la matriz,
 
−1 1 1 1
 
 1 −1 0 0 
S = ( v1 , v2 , v3 , v4 ) =  .
 0 0 −1 0 
0 1 1 0

Finalmente, es posible verificar que las matrices J y S anteriores cumplen que A = SJS−1 ,
expresión que corresponde a la forma canónica de Jordan para A. 

Corolario 4.2.
Sea A ∈ n×n
, entonces ρ(A) < 1 si y sólo si Ak → O, cuando k → +∞.

Demostración. “⇐” Suponga que Ak → O. Sea λ ∈ σ(A), entonces existe xλ ∈ n con


xλ 6= 0, tal que Axλ = λxλ . Nótese que Ak xλ = λk xλ , λk ∈ σ(Ak ). Luego, por el resultado (2)
del teorema 4.5 se tiene que: k
λ ≤ Ak .

Por la hipótesis se tiene λk → 0 de donde |λ| < 1. Como esto es cierto para cualquier valor
propio, entonces se tiene ρ(A) < 1.
“⇒” Para demostrar que la condición es necesaria se utilizará la descomposición de una matriz
en su forma canónica de Jordan (teorema 4.6), la cual establece que existe una matriz diagonal
por bloques J donde los bloques Ji son bloques de Jordan y una matriz no singular S tales
que A = SJS−1 . Luego para todo k ≥ 1, se tiene que Ak = SJk S−1 . Por lo tanto es suficiente
probar que Jk converge a O. Nótese que cada bloque de Jordan Ji es de la forma

Ji = λi I + N i

donde Ni es una matriz nilpotente de grado ki , es decir Nki i = O. De acuerdo a la expansión


binomial se deduce que para k ≥ ki
i −1
kX
k!
Jki = (λi I + Ni )k = λk−j Nji ,
j=0
j!(k − j)! i

por lo tanto
i −1
kX
k k!
Ji ≤ |λi |k−j Nji .
j=0
j!(k − j)!

La convergencia Jki → 0 se deduce observando que para todo j ∈ fijo, la sucesión (xjk )
cuyo término k se define por
k!
xjk = |λi |k−j ,
j!(k − j)!
converge a cero, debido a que ρ(A) < 1. 
4.2. Normas matriciales y número de condicionamiento 217

Lema 4.2.
Sea A ∈ n×n y k · k una norma vectorial en n , entonces existen números reales no
negativos C1 y C2 tales que para todo x ∈ B̄(0,1) = {x ∈ n / kxk ≤ 1} se tiene que:

C1 ≤ kAxk ≤ C2 .

Demostración. Debido a que para todo x, y ∈ se tiene que: n


Xn

kAxk − kAyk ≤ kA(x − y)k ≤ (xj − yj )a∗j ≤ Mkx − yk∞ ,

j=1

n
P n
P
donde M = ka∗j k = kAej k. De lo anterior, se tiene que la función x 7→ kAxk es continua
j=1 j=1
en el espacio normado ( , k · k∞ ) y como todas las normas son equivalentes en n , entonces
n

también es continua en el espacio ( n , k · k). Además, ya que la bola cerrada es un conjunto


compacto en ( n , k · k), entonces C2 = máx {kAxk} y C1 = mı́n {kAxk} existen. 
x∈B̄(0,1) x∈B̄(0,1)

4.2.1. Norma inducida


El lema 4.2, permite justificar la siguiente definición, la cual expresa una norma matricial
consistente inducida por una norma vectorial.

Teorema 4.7.
Sea k · k una norma vectorial en n
, entonces la función |||·||| : n×n
→ definida por

kAxk
|||A||| = máx = máx kAxk,
x∈ n−{0} kxk kxk=1

es una norma matricial consistente en n×n . Se dice que la norma matricial |||·||| es indu-
cida o subordinada por la norma vectorial k · k.

Demostración. Nótese primero que |||A||| está bien definida, ya que para todo x ∈ n
− {0}
1
se tiene que kxk x ∈ B̄(0,1) y por el lema 4.2, se tiene que:

x kAxk
sup kxk =
A sup < ∞.
x∈ n −{0} x∈ n −{0} kxk

Luego, probar que es una norma matricial es sencillo utilizando el hecho de que k · k es una
norma vectorial, por lo que se deja como ejercicio para el lector. A continuación se realiza la
prueba de la propiedad de consistencia.
De la definición de norma inducida, se tiene que
kAxk kAxk n
|||A||| = máx ≥ , para todo x ∈ − {0},
x∈ n−{0} kxk kxk
218 Capítulo 4. Solución de sistemas de ecuaciones

por lo que se tiene que kAxk ≤ |||A||| kxk, para todo x ∈ n − {0}. Así, se tiene que
kABxk = kA(Bx)k ≤ |||A||| kBxk, para todo x ∈ n − {0}, con lo que aplicando la definición
de norma inducida nuevamente, se tiene que
kABxk |||A||| kBxk kBxk
|||AB||| = máx ≤ máx = |||A||| máx = |||A||| |||B||| .
x∈ n −{0} kxk x∈ n −{0} kxk x∈ n −{0} kxk


Corolario 4.3.
Para el caso de normas inducidas por una norma vectorial, de acuerdo a su definición se
verifican las siguientes propiedades adicionales.

1. kAxk ≤ |||A||| · kxk, para todo x ∈ n


.

2. Sea In la matriz identidad en n×n


, entonces |||In ||| = 1.

Demostración. (ejercicio)

Observación: De la proposición (2) del corolario anterior, se puede deducir que la norma de

Frobenius no puede ser una norma inducida por una norma vectorial, ya que |||A|||F = n.
Además, la norma matricial inducida por la norma vectorial k · kp , con 1 ≤ p ≤ ∞, es denotada
por |||·|||p . De esta forma, la norma inducida puede ser explícitamente calculada en términos de
las entradas de la matriz, como se muestra en los siguientes resultados.

Teorema 4.8.
La norma matricial inducida a la norma k · k∞ para una matriz A ∈ n×n
, puede ser
expresada como:
n
n X
|||A|||∞ = máx |aij |.
i=1
j=1

Es decir, la máxima suma de los valores absolutos de sus filas.

Demostración. Dado x un vector cualquiera en n − {0}, considere K = kxk∞ , es decir


|xj | ≤ K para j = 1, 2, . . . , n. Así, nótese que:

X n Xn n
X

|(Ax)i | = aij xj ≤ |aij ||xj | ≤ K |aij |, para i = 1, 2, . . . , n.

j=1 j=1 j=1

Ahora, definiendo
n
n X
C = máx |aij |,
i=1
j=1

se tiene que para i = 1, 2, . . . , n se cumple que


n
máx |(Ax)i | ≤ KC,
i=1
4.2. Normas matriciales y número de condicionamiento 219

de donde se puede apreciar que:


n n
kAxk∞ máx |(Ax)i | máx |(Ax)i |
i=1 i=1 n
= = ≤ C, para todo x ∈ − {0}.
kxk∞ kxk∞ K
De lo anterior se verifica que |||A|||∞ ≤ C, por lo que ahora se debe probar que |||A|||∞ ≥ C. Para
ello, suponga que en la definición de C, m es el valor de i donde se alcanza el máximo, o bien
cualquiera de los índices donde se alcanza, en el caso de haber más de uno. Luego, considere
el vector v ∈ n − {0} definido por vj = sgn(amj ) para j = 1, . . . , n. En caso de que algún
amj = 0, se puede tomar vj = 1 o vj = −1, irrelevantemente. Con la definición de v, denotada
(∗), se tiene:
n n n n
n X X
(∗) X X
kAvk∞ = máx aij vj ≥ amj vj = |amj ||vj | = |amj | = C.
i=1
j=1 j=1 j=1 j=1

Luego, como kvk∞ = 1, se tiene que

kAvk∞ ≥ Ckvk∞ ,
n n
P
lo cual significa que |||A|||∞ ≥ C. Por lo tanto, |||A|||∞ = C = máx |aij |. 
i=1 j=1

Teorema 4.9.
La norma matricial inducida a la norma k · k1 para una matriz A ∈ n×n
, puede ser
expresada como:
n
n X
|||A|||1 = máx |aij |.
j=1
i=1

Es decir, la máxima suma de los valores absolutos de sus columnas.

Demostración. (ejercicio)

Lema 4.3.
Si A ∈ n×n es una matriz simétrica, entonces todos los valores propios de A son reales,
mientras que los vectores propios de A pertenecen a n − {0}.

Demostración. Suponga que λ ∈ es un valor propio de A y x ∈ n − {0} un vector propio


asociado. Además, sea x el vector en n −{0}, cuyo i-ésimo elemento corresponde al conjugado
del i-ésimo elemento de x, para i = 1, 2, . . . , n. Luego, como Ax = λx, entonces se tiene que

xT Ax = λ xT x . Por lo tanto, ya que A es simétrica, se cumple que:
T T 
xT Ax = xT AT x = xT Ax =λ xT x = λ xT x .

Ahora, aplicando el conjugado se obtiene que: xT Ax = λ xT x , de donde se establece que
 
λ xT x = λ xT x . Así, ya que x 6= 0, se tiene que λ = λ, es decir, λ es un número real.
220 Capítulo 4. Solución de sistemas de ecuaciones

El hecho de que el vector propio asociado a λ tenga valores reales, proviene de que todos los
elementos de la matriz singular A − λIn son números reales. Por lo tanto, los vectores columnas
de A − λIn son linealmente dependientes en n , ya que existen n números reales x1 , . . . , xn
tales que (A − λIn ) x = 0, donde x = (x1 , . . . , xn )T . 

Teorema 4.10.
Dada A ∈ n×n y denotando los valores propios de la matriz B = AT A por λi , para
i = 1, 2, . . . , n, entonces se cumple que:
n p
|||A|||2 = máx λi .
i=1

Demostración. Nótese que la matriz B es simétrica, por lo que sus valores propios son reales
y sus vectores propios asociados pertenecen a n − {0}, según el lema 4.3. Adicionalmente, se
puede apreciar que todos los valores propios de B son no negativos, ya que si v ∈ n − {0} es
un vector propio de B y λ el valor propio asociado, entonces

AT Av = Bv = λv ⇒ vT AT Av = λvT v,

de donde se obtiene que:


(Av)T Av hAv, Avi kAvk22
λ = = = ≥ 0.
vT v hv, vi kvk22
Ahora, suponga que los vectores wi ∈ n − {0}, para i = 1, 2, . . . , n, son vectores propios de
B, asociados a los valores propios λi , con i = 1, 2, . . . , n. Luego, como B es simétrica, se puede
asumir que los vectores wi son ortogonales, es decir, wiT wj = 0 para i 6= j, además se pueden
normalizar tal que wiT wi = 1, para i = 1, 2, . . . , n.
Luego, tomando u ∈ n − {0} un vector cualquiera y expresándolo como una combinación
lineal de los vectores wi :
u = c1 w 1 + c2 w 2 + . . . + cn w n ,
se tiene que:
Bu = c1 λ1 w1 + c2 λ2 w2 + . . . + cn λn wn .
Asumiendo, sin pérdida de generalidad, que

(0 ≤) λ1 ≤ λ2 ≤ . . . ≤ λn ,

así usando la ortonormalidad de los vectores wi , i = 1, 2, . . . , n, se obtiene que:



kAuk22 = uT AT Au = uT Bu = c21 λ1 + . . . + c2n λn ≤ c21 + . . . + c2n λn = λn kuk22 ,

para cualquier vector u ∈ n − {0}. Finalmente, se tiene que |||A|||22 ≤ λn y para probar la
igualdad, basta tomar u = wn en kAuk22 ≤ λn kuk22 , de donde c1 = . . . = cn−1 = 0 y cn = 1. 

Observación: La raíz cuadrada de los valores propios (no negativos) de AT A son denominados
como valores singulares de A. Así, el teorema anterior establece que la norma-2 de una matriz
4.2. Normas matriciales y número de condicionamiento 221

A es igual al mayor valor singular de A. Además, en el caso de que A sea simétrica, entonces
B = AT A = A2 y los valores propios de B corresponden al cuadrado de los valores propios de
A, por lo que la norma-2 de A sería el mayor valor absoluto de sus valores propios.
Por otro lado, denotando por σ1 ≥ σ2 ≥ . . . ≥ σp ≥ 0 a los valores singulares de A ∈ m×n ,
con p = mı́n{m, n}, entonces existen matrices ortogonales U ∈ m×m y V ∈ n×n tales que

A = UΣVT ,

donde Σ = diag(σ1 , . . . , σp ) ∈ m×n


. A esta descomposición se le denomina como descomposi-
ción en valores singulares.

Teorema 4.11 (Equivalencia entre normas matriciales).


Sea A ∈ m×n
, entonces se cumple que:

1. √1n |||A|||∞ ≤ |||A|||2 ≤ m |||A|||∞

2. |||A|||2 ≤ |||A|||F ≤ n |||A|||2

3. √1m |||A|||1 ≤ |||A|||2 ≤ n |||A|||1
p
4. |||A|||2 ≤ |||A|||1 |||A|||∞

Demostración. (ejercicio)

4.2.2. Número de condicionamiento

El número de condición o número de condicionamiento de una matriz fue introducido por


Alan Turign en 1948 utilizando la norma de Frobenius, con el objetivo de medir la sensibilidad
de la perturbación en el problema de inversión de matrices. Este proviene de la discusión de
“condicionamiento” en un contexto más general del análisis matemático [44].

Definición 4.4.
El número de condicionamiento de una matriz no singular A, se define por

κ(A) = A · A−1 .

Claramente, se puede verificar que κ(A−1 ) = κ(A). Además, dado que AA−1 = I, entonces
utilizando la consistencia de la norma |||·|||, se tiene que κ(A) ≥ 1 para cualquier matriz A.
Luego, se denota por κp (·) al número de condicionamiento cuando se utiliza la norma matricial
|||·|||p , donde en el caso particular κ2 (·) se denomina el número de condicionamiento espectral.
222 Capítulo 4. Solución de sistemas de ecuaciones

Teorema 4.12.
Dada A ∈ n×n
no singular, se cumplen las siguientes proposiciones:

1. κ(αA) = κ(A), α ∈ − {0}.

2. κ(AB) ≤ κ(A) · κ(B).

3. κ2 (A) = 1 si y sólo si AT A = αIn , α 6= 0.

4. κ2 (AT A) = (κ2 (A))2 .

5. κ2 (A) = κ2 (AT ) y κ1 (A) = κ∞ (AT ).

Demostración. (ejercicio)

Definición 4.5.
Si κ(A) ≫ 1, se dice que la matriz A es mal condicionada. En otro caso, se dice que A
es bien condicionada.

El símbolo ≫ se lee “mucho mayor que” y significa lo mismo que el símbolo mayor que, pero
resalta el hecho de que ambos valores no están muy cerca el uno del otro, por ejemplo, 523 > 5
y 523 ≫ 5, además 523 > 520, pero 523 6≫ 520.
Luego, un ejemplo de una matriz mal condicionada es la matriz de Hilbert Hn de orden n,
cuyos elementos son
1
hij = , para i, j = 1, 2, . . . , n.
i+j−1
Esta matriz es simétrica definida positiva, por lo que sus valores propios son reales. Además, Hn
es cercana a una matroz singular cuando n → +∞. En la tabla 4.2 se puede apreciar κ2 (Hn )
para varios valores de n.

n λmáx λmı́n κ2 (Hn )


5 1.6 3.3 × 10−6 4.8 × 105
10 1.8 1.1 × 10−13 1.6 × 1013
15 1.8 3.0 × 10−21 6.1 × 1020
20 1.9 7.8 × 10−29 2.5 × 1028
25 2.0 1.9 × 10−36 1.0 × 1026

Tabla 4.2: Valores propios y κ2 de una matriz de Hilbert.

Si se realiza la gráfica del comportamiento n versus κ2 (Hn ) (figura 4.2), se puede apreciar que
el condicionamiento espectral crece de manera exponencial. Además, se puede probar que
√ 4n+4
2+1
κ2 (Hn ) ∼ 15 √ , cuando n → +∞.
2 4 πn
Por lo tanto, cuando n es grande, la matriz Hn es mal condicionada.
4.2. Normas matriciales y número de condicionamiento 223

Figura 4.2: Número de condicionamiento espectral de la matriz de Hilbert.

Definición 4.6.
El sistema Ax = b esta mal condicionado si A es mal condicionada. De manera similar,
se define un sistema bien condicionado.

Ejemplo 4.13.
Verifique que el siguiente sistema es mal condicionado.
    
7 10 x 1
= .
5 7 y 0.7

Solución. La inversa de la matriz del sistema es dada por:


 
−1 −7 10
A = ,
5 −7

por lo que la solución del sistema es dada por x = 0 y y = 0.1. Además, el número de
condicionamiento de este sistema en norma-1 es

κ1 (A) = A · A−1 = 17 · 17 = 289.

De esta manera, se tiene que la matriz es mal condicionada, por lo que se puede presentar
errores en los cálculos. Por ejemplo, si se considera un diferente vector de la derecha, con un
error absoluto de 0.01, es decir,
    
7 10 x 1.01
= ,
5 7 y 0.69

entonces al resolver este sistema, se tiene la nueva solución x = −0.17 y y = 0.22, la cual
muestra un error relativo superior al 100 %. 
224 Capítulo 4. Solución de sistemas de ecuaciones

Ejercicios (sección 4.2)

♦ Tradicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1. Considere la matriz  
3 −2 3
A =  1 6 −3  .
1 2 1

a) Calcule los valores propios de A.


b) Determine el valor de ρ(A).
c) Determine el valor de kAk2 .

♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. Implemente funciones en MATLAB que permitan calcular las normas matriciales:


( m ) ( n )
n X m X
|||A|||1 = máx |aij | y |||A|||∞ = máx |aij | .
j=1 i=1
i=1 j=1

♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Determine si las siguientes definiciones son normas matriciales en n×n


.
n n
X
a) |||A||| = máx |aij | b) |||A||| = |aij |
i,j=1
i,j=1

En caso de ser normas, ¿son estas consistentes?

4. Realice la demostración del teorema 4.11, de la página 221.

5. Pruebe que para cualquier matriz A ∈ n×n


no singular,
  12
λn
κ2 (A) = ,
λ1

donde λ1 es el menor y λn es el mayor valor propio de la matriz AT A.

6. Dada A ∈ n×n
, muestre que si λ es un valor propio de AT A, entonces

0 ≤ λ ≤ AT A ,

suponiendo que la misma norma inducida es usada para A y AT . Además, muestre que
para cualquier matriz A ∈ n×n no singular, se cumple que:
1
κ2 (A) ≤ [κ1 (A)κ∞ (A)] 2 .
4.3. Métodos iterativos 225

7. Dado que |||E||| < 1, entonces (I − E) es no singular y



(I − E)−1 ≤ 1
.
1 − |||E|||

8. Pruebe que si Q es una matriz ortogonal, entonces


a) |||Q|||2 = 1 b) |||AQ|||2 = |||A|||2 c) |||AQ|||F = |||A|||F

4.3. Métodos iterativos


Los métodos iterativos para sistemas lineales, tratan de aproximar la solución del sistema
Ax = b, mediante el cálculo de algunos de los términos de una sucesión que converge a la
solución del sistema. Esta es la gran desventaja que tienen en comparación a los métodos
directos, los cuales buscan resolver el sistema en una sóla iteración. Sin embargo, la gran
ventaja y el porqué de su uso en la práctica es que los métodos iterativos son útiles para
resolver problemas que involucran un gran número de variables (del orden de millones), lo que
los métodos directos no podrían debido a su alto costo computacional. Los método iterativos
parten de una aproximación inicial x0 a la solución del sistema lineal y obtienen un conjunto
de aproximaciones sucesivas de soluciones xk .

4.3.1. Iteración de punto fijo


Similar al caso en , si se desea encontrar la solución de f (x) = 0 para f : n
→ n
, se puede
considerar la sucesión
xk+1 = g(xk ),
la cual converge a ξ ∈ n , punto fijo de g (es decir, g(ξ) = ξ), tal que f (ξ) = 0. Nótese que
esta iteración permite resolver sistemas no lineales en general, ya que en caso de un sistema
lineal, se considera f (x) = Ax − b. Por ejemplo, considere el siguiente sistema no lineal
(
x21 + x22 = 1,
5x21 + 21x22 = 9.

Así, se tiene que x = (x1 , x2 )T y f = (f1 , f2 )T donde

f1 (x1 , x2 ) = x21 + x22 − 1,


f2 (x1 , x2 ) = 5x21 + 21x22 − 9.

En la figura 4.3 se muestran las curvas f1 (x1 , x2 ) = 0 y f2 (x1 , x2 ) = 0, donde se puede apreciar
que la ecuación f (x) = 0 posee cuatro soluciones, las cuales vienen dadas por:
 √   √   √   √ 
1 − 3 1 3 1 − 3 1 3
ξ1 = , ξ2 = , ξ3 = y ξ4 = .
2 1 2 1 2 −1 2 −1
226 Capítulo 4. Solución de sistemas de ecuaciones

Figura 4.3: Gráficas de las curvas x21 + x22 = 1 y 5x21 + 21x22 = 9.

Definición 4.7.
Suponga que g : n → n está definida en un subconjunto cerrado D de n
. Si existe
una constante positiva L tal que,

kg(x) − g(y)k∞ = Lkx − yk∞ ,

para todo x, y ∈ D, entonces se dice que g satisface la condición de Lipschitz sobre D


en la norma k · k∞ . En particular, si L ∈ ]0, 1[, se dice que g es una contracción sobre D
en la norma k · k∞ .

Observación: Una función g que satisface la condición de Lipschitz en la norma-∞, también


1
lo hace en la norma-p, ya que kwk∞ ≤ kwkp ≤ n p kwk∞ . Sin embargo, el valor de L depende
de la norma. Por ejemplo, considere la función g(x) = Ax, para A ∈ 2×2 definida por
 3 1

A = 4 3 .
3
0 4

Esta función g satisface la condición de Lipschitz sobre 2 en k · kp para cualquier 1 ≤ p ≤ ∞


y si L es la constante de Lipschitz para g en la norma-p, entonces |||A|||p ≤ L. Así, se tiene que
|||A|||1 = |||A|||∞ = 13
12
, mientras que |||A|||2 ≈ 0.935. Por lo tanto, la función g es una contracción
en la norma-2, pero no en la norma-1 o la norma-∞.
Finalmente, el siguiente resultado es una generalización del teorema 3.3 para el caso en el
que ϕ = g : n → n . La demostración es casi una copia de la versión en , salvo por la
existencia del punto fijo, debido a que el teorema de valores intermedios no aplica para funciones
vectoriales.
4.3. Métodos iterativos 227

Teorema 4.13 (Mapeo de contracción).


Suponga que D es un subconjunto cerrado de n , g : D → D una contracción sobre D en
la norma k · k∞ . Entonces, g tiene un único punto fijo ξ ∈ D, y la sucesión (xk ) definida
como xk+1 = g(xk ) converge a ξ para cualquier valor inicial x0 ∈ D.

Demostración. Primero se debe probar que existe ξ ∈ D punto fijo de g, para ello, hay que
mostrar que (xk ) es de Cauchy. Nótese que para m ≥ k se cumple que
kxm − xk k∞ ≤ kxm − xm−1 k∞ + kxm−1 − xm−2 k∞ + . . . + kxk+1 − xk k∞ , (4.7)
por otro lado, por definición de g y por ser contracción con constante L, se tiene
kxm − xm−1 k∞ = kg(xm−1 ) − g(xm−2 )k∞ ,
≤ Lkxm−1 − xm−2 k∞ ,
.. ..
≤ . .
≤ Lm−1 kx1 − x0 k∞ . (4.8)
Sustituyendo (4.8) en (4.7) se obtiene
kxm − xk k∞ ≤ Lm−1 kx1 − x0 k∞ + Lm−2 kx1 − x0 k∞ + . . . + Lk kx1 − x0 k∞

= Lm−1 + Lm−2 + . . . + Lk kx1 − x0 k∞

= Lk Lm−k−1 + Lm−k−2 + . . . + 1 kx1 − x0 k∞
! +∞ "
X
k
≤ L Li kx1 − x0 k∞
i=0
m−k−1
P +∞
P
En la última línea se cumple la desigualdad Li ≤ Li , debido a que 0 < L < 1. Por la
i=0 i=0
misma razón, la serie existe y se cumple que:
Lk
kxm − xk k∞ ≤ kx1 − x0 k∞ , para m ≥ k,
1−L
de lo anterior, se puede apreciar que cuando k → +∞ entonces kxm − xk k∞ → 0, por lo que la
sucesión (xk ) es de Cauchy, para cualquier x0 ∈ D.
Como la sucesión (xk ) ⊂ D ⊂ n , n completo y D cerrado, entonces D es completo, por lo
que la sucesión (xk ) converge a algún ξ ∈ D, es decir, ξ = lı́m xk . Además, g es continua
k→+∞
pues es contracción, y se tiene
 
ξ = lı́m xk+1 = lı́m g(xk ) = g lı́m xk = g(ξ),
k→+∞ k→+∞ k→+∞

por lo tanto, se cumple que la función g tiene un punto fijo en D y que además, la sucesión
(xk ) converge a ese punto fijo. Finalmente, falta probar la unicidad del punto fijo de g, para
ello, considere ξ y η puntos fijos de g, con los cuales:
kξ − ηk∞ = kg(ξ) − g(η)k∞ ≤ Lkξ − ηk∞ ,
de donde se tiene que kξ − ηk∞ = 0, por lo que ξ = η. 
228 Capítulo 4. Solución de sistemas de ecuaciones

Teorema 4.14.
Sea D un conjunto cerrado de n y g : D → D una contracción. Entonces la sucesión
obtenida por la iteración de punto fijo converge hacia el punto fijo de g por lo menos de
orden lineal para cualquier valor inicial x0 ∈ D.

Demostración. Sea ξ el único punto fijo de g, cuya existencia y unicidad están garantizadas
por el teorema 4.13 del mapeo de contracción. Se puede probar por inducción que

kxk − ξk ≤ Lk kx0 − ξk.

Además se tiene

kx0 − ξk ≤ kx0 − x1 k + kx1 − ξk ≤ kx0 − x1 k + Lkx0 − ξk,

luego
1
kx0 − ξk ≤ kx1 − x0 k,
1−L
por lo tanto, para todo k ≥ 1
Lk
kxk − ξk ≤ kx1 − x0 k.
1−L
Lk
Ahora, considere la sucesión εk = 1−L
kx1 − x0 k, como L < 1, entonces εk → 0 y además
εk+1
lı́m = L < 1,
k→+∞ εk

por lo tanto la sucesión (xk ) converge por lo menos de orden lineal. 

Definición 4.8.
Suponga que g = (g1 , . . . , gn )T : n → n es una función definida y continua sobre un
vecindario (abierto) Nξ de ξ ∈ n . Suponga además que las primeras derivadas parciales
∂gi
∂xj
, j = 1, . . . , n de gi , existen en ξ para i = 1, . . . , n. La matriz jacobiana o simplemente
el jacobiano Jg de g en ξ es una matriz n × n con elementos

∂gi
[Jg (ξ)]ij = (ξ), para i, j = 1, . . . , n.
∂xj

Teorema 4.15.
Suponga que g = (g1 , . . . , gn )T : n → n es continua sobre un conjunto cerrado D ⊂ n .
∂gi
Sea ξ ∈ D un punto fijo de g y suponga que las primeras derivadas parciales ∂x j
, j =
1, . . . , n de gi , i = 1, . . . , n, son continuas en algún vecindario (abierto) Nξ ⊂ D de ξ, con

|||Jg (ξ)|||∞ < 1.



Entonces, existe ε > 0 tal que g B̄(ξ,ε) ⊂ B̄(ξ,ε) y la sucesión de punto fijo converge a ξ
para todo x0 ∈ B̄(ξ,ε) .
4.3. Métodos iterativos 229

Demostración. Por continuidad de la función |||Jg (x)|||∞ en x = ξ, existe B̄(ξ,ε) ⊂ Nξ ⊂ D,



de radio ε = 21 1 − |||Jg (ξ)|||∞ y centro ξ, tal que para todo z ∈ B̄(ξ,ε) , se cumple que

1 
|||Jg (z)|||∞ ≤ 1 + |||Jg (ξ)|||∞ = L < 1. (4.9)
2
Suponiendo que x ∈ B̄(ξ,ε) y para i = 1, . . . , n fijos, se define la función ϕi : [0, 1] → tal que

ϕi (t) = gi (tx + (1 − t)ξ),

esta función esta bien definida por convexidad de la bola cerrada. Luego, aplicando el teorema
del valor medio,

gi (x) − gi (ξ) = ϕi (1) − ϕi (0) = ϕ′i (ηi )(1 − 0) = ϕ′i (ηi ),

para algún ηi ∈ ]0, 1[. Pero, por regla de la cadena,

gi (x) − gi (ξ) = ∇gi (ηi x + (1 − ηi )ξ) · (x − ξ),


n
X ∂gi
= (xj − ξj ) (ηi x + (1 − ηi )ξ),
j=1
∂xj

así, tomando valor absoluto a ambos lados, se tiene que:


n
X ∂gi
|gi (x) − gi (ξ)| ≤ |xj − ξj |
(ηi x + (1 − ηi )ξ) ,
j=1
∂xj
n
X ∂gi
≤ kx − ξk∞
∂xj (η i x + (1 − ηi )ξ) ,

j=1
≤ Lkx − ξk∞ , por (4.9).

Ya que |gi (x) − gi (ξ)| ≤ Lkx − ξk∞ para todo i = 1, . . . , n, entonces se cumple que

kg(x) − g(ξ)k∞ ≤ Lkx − ξk∞ ,

luego, como g(ξ) = ξ, observe que

kg(x) − ξk∞ ≤ Lkx − ξk∞ ,

y ya que L ∈ ]0, 1[ y x ∈ B̄(ξ,ε) , entonces kg(x) − ξk∞ < ε, por lo tanto



g B̄(ξ,ε) ⊂ B̄(ξ,ε).

Finalmente, por el teorema 4.13 se cumple la convergencia de la sucesión. 

Observación: Es importante recalcar que el teorema anterior sólo garantiza convergencia de


manera local, es decir en una vecindad del punto fijo, por lo que su aplicación práctica para la
aproximación del punto fijo es muy limitada.
230 Capítulo 4. Solución de sistemas de ecuaciones

4.3.2. Aplicación del método de punto fijo a sistemas lineales


Dado el sistema lineal Ax = b, considere la matriz del sistema como la diferencia de dos nuevas
matrices, es decir,
A = M − N,
donde M es no singular, entonces sustituyendo esta descomposición en el sistema, se tiene que:

Ax = b,
(M − N)x = b,
Mx = b + Nx,
x = M−1 (b + Nx).

Así, considerando g : n → n tal que g(x) = M−1 (b + Nx), se puede apreciar que la solución
del sistema Ax = b es equivalente a encontrar un punto fijo de g, es decir, x = g(x). Además
nótese que

x = g(x) = M−1 b + M−1 Nx = M−1 b + M−1 (M − A)x,


= M−1 b + x − M−1 Ax = x + M−1 (b − Ax),
= x + M−1 r.

donde r = b − Ax se conoce como el residuo. Con ello, en el algoritmo 4.4 se presenta el


algoritmo para el método de punto fijo en n , aplicado a sistemas lineales.
Algoritmo 4.4: PuntoFijo.
Recibe: A y M no singulares, b ∈ n , x0 ∈ n valor inicial, tol ∈ , iterMax ∈ !.
Retorna: k número de iteraciones usadas y x tal que Ax = b.

1 k←0
2 x ← x0
3 r ← b − Ax
4 Mientras que k < iterMax ∧ krk ≥ tol hacer
5 x ← x + M−1 r
6 r ← b − Ax
7 k ←k+1

Observación: En la línea 5, x ← x+M−1 r, se considera la inversa de la matriz M, sin embargo


en la práctica, nunca se determina dicha inversa, ya que:

M−1 r = y ⇔ r = My,

es decir, que en lugar de calcular M−1 , se resuelve un sistema lineal, lo cual es una forma más
eficiente de realizar el producto M−1 r. De esta forma, la línea 5 usualmente es sustituida por
las instrucciones:
Resolver el sistema: My = r
x←x+y
4.3. Métodos iterativos 231

Para que lo anterior tenga sentido, se debe eligir M de tal forma que resolver el sistema My = r
sea sumamente sencillo, en comparación al sistema Ax = b, mediante alguno de los métodos
directos, por ejemplo, nótese que la factorización LU sería de gran utilidad.

Teorema 4.16.
Sean A, M, N ∈ n×n tales que A = M − N, con A y M matrices no singulares y b ∈ n
.
Entonces si |||M−1 N|||∞ < 1, la sucesión de punto fijo definida por

xk+1 = M−1 Nxk + M−1 b,

converge hacia la solución del sistema lineal Ax = b, para cualquier valor inicial x0 ∈ n
.

Demostración. Nótese que g(x) = M−1 Nx + M−1 b es una transformación lineal, por lo tanto
g es diferenciable en todo n ; además para todo x ∈ n , se cumple que Jg (x) = M−1 N. Luego,
como |||Jg |||∞ = |||M−1 N|||∞ < 1, por el teorema 4.15 la sucesión converge hacia ξ para cualquier
x0 ∈ n . 

Observación: Observe que el teorema anterior garantiza la convergencia de la iteración de


punto fijo, para todo valor inicial x0 en el dominio, lo que lo hace un resultado más general que
el presentado en el teorema 4.15, donde la seguridad de convergencia es exclusiva para valores
iniciales cercanos a la solución exacta. Además, observe el vector de la derecha b, no afecta en
la convergencia de la sucesión, por lo que dicha convergencia está garantizada exclusivamente
por las propiedades de la matriz de iteración M−1 N = I − M−1 A.
Por otro lado, el criterio de convergencia del teorema 4.16 es muy restrictivo debido a que se
basa particularmente en la norma: |||·|||∞ . Lo ideal es expresar la convergencia del método en
términos de las propiedades intrínsecas de la matriz, por ejemplo, el siguiente resultado expresa
la convergencia en términos de su espectro (definición B.36).

Teorema 4.17.
Sean A, M, N ∈ n×n tales que A = M − N, con A y M matrices no singulares y b ∈ n
.
Entonces si ρ(M−1 N) < 1, la sucesión de punto fijo definida por

xk+1 = M−1 Nxk + M−1 b,

converge hacia la solución del sistema lineal Ax = b, para cualquier valor inicial x0 ∈ n
.

Demostración. Sea ek el error acumulado en la k-ésima iteración en la iteración de punto


fijo, definido como ek = x − xk , donde x es la solución exacta del problema Ax = b y xk la
aproximación de la k-ésima iteración, así como x es punto fijo, nótese que:
 
ek+1 = x − xk+1 = M−1 Nx + M−1 b − M−1 Nxk + M−1 b ,
= M−1 N(x − xk ) = M−1 Nek ,
232 Capítulo 4. Solución de sistemas de ecuaciones

k
siguiendo este proceso recursivo se tiene que ek = (M−1 N) e0 . Luego, por el corolario 4.2 y la
hipótesis ρ(M−1 N) < 1, se tiene que M−1 N → O, por lo que
k
ek = M−1 N e0 → 0.

Por lo tanto, la sucesión (xk ) converge a x para cualquier valor de x0 ∈ n


. 

En lo anterior se ha mostrado que los métodos iterativos basados en la sucesión de punto fijo
convergen cuando ρ (M−1 N) < 1, donde A = M − N. Sin embargo, aún no se ha definido como
elegir la matriz M de manera apropiada. Algunas elecciones para M son dadas en las siguientes
secciones, considerando la descomposición:

A = L + D + U, (4.10)

donde L y U son las matrices formadas por la parte estrictamente triangular inferior y superior
de A, respectivamente; mientras que D es la matriz formada por la diagonal principal, D =
diag(A), como se muestra en la figura 4.4.

Figura 4.4: Descomposición A = L + D + U.

( ( (
aij si i > j aij si i = j aij si i < j
lij = , dij = , uij = .
0 si i ≤ j 0 si i 6= j 0 si i ≥ j

Ejemplo 4.14.
Encuentre la descomposición (4.10) para la matriz
 
1 2 3 4
 
 5 6 7 8 
A =  .
 9 10 11 12 
13 14 15 16
4.3. Métodos iterativos 233

Solución. Considere las matrices


     
0 ··· ··· 0 1 0 ··· 0 0 2 3 4
 5 ...
 ..   .. ..   .. . . 
.   0 6 . .   . . 7 8 
L =  . . ..  , D =
 
 .. . .

 y U = 
 .. ..
,

 9 10 . .   . . 11 0   . . 12 
13 14 15 0 0 ··· 0 16 0 ··· ··· 0

con las cuales, se cumple que A = L + D + U. 

4.3.3. Iteración de Jacobi


La iteración de Jacobi o método de Jacobi, se obtiene al eligir M = D = diag(A), en la
descomposición (4.10) y en consecuencia N = −(L + U). Debido a que M es una matriz
diagonal, entonces su matriz inversa puede ser calculada de manera exacta, donde (M−1 )ii = a1ii .
Con ello, la iteración de Jacobi es dada por:

xk+1 = D−1 (b − (L + U)xk ), para k = 1, 2, . . .

Ejemplo 4.15.
Utilizando la iteración de Jacobi, determine la aproximación x5 , del sistema

 5x1 + x2 + x3 = 7,
x + 5x2 + x3 = 7,
 1
x1 + x2 + 5x3 = 7,

con valor inicial x0 = (0, 0, 0)T . Nótese que la solución exacta es dada por x = (1, 1, 1)T .

Solución. Para el sistema dado, se tiene que:


  

5 1 1 7
A =  1 5 1  y b =  7 .
1 1 5 7

De esta forma la iteración de Jacobi viene dada por:


        (k) (k)

1
0 0
5
7 0 1 1 7 − x2 − x3
1
xk+1 =  0 15 0   7  −  1 0 1  xk  =  7 − x(k) (k) 
1 − x3 , (4.11)
1 5 (k) (k)
0 0 5 7 1 1 0 7 − x1 − x2
 T
(k) (k) (k)
con xk = x1 , x2 , x3 . Luego, como x0 = (0, 0, 0)T , entonces se tiene que:

 T
7 7 7
x1 = , , = (1.4, 1.4, 1.4)T ,
5 5 5
234 Capítulo 4. Solución de sistemas de ecuaciones

 T
21 21 21
x2 = , , = (0.84, 0.84, 0.84)T ,
25 25 25
 T
133 133 133
x3 = , , = (1.064, 1.064, 1.064)T ,
125 125 125
 T
609 609 609
x4 = , , = (0.9744, 0.9744, 0.9744)T ,
625 625 625
 T
3157 3157 3157
x5 = , , = (1.01024, 1.01024, 1.01024)T .
3125 3125 3125

Por lo tanto, se obtiene una aproximación x5 = (1.01024, 1.01024, 1.01024)T , la cual produce
un error relativo:
kx − x5 k2
= 0.01024.
kxk2 

Para efectos de implementación, nótese que para el sistema lineal




 a11 x1 + a12 x2 + . . . + a1n xn = b1 ,

 a21 x1 + a22 x2 + . . . + a2n xn = b2 ,
.. .. .. ..


 . . . .

an1 x1 + an2 x2 + . . . + ann xn = bn ,
la iteración de Jacobi es una iteración de punto fijo, que consiste en despejar los términos de
la diagonal del lado derecho, es decir,


 x1 = a111 (b1 − a12 x2 − a13 x3 − . . . − a1n xn ) ,

 x2 = 1 (b2 − a21 x1 − a23 x3 − . . . − a2n xn ) ,
a22
.. .. .. ..


 . . . .
 1
xn = ann (bn − an1 x1 − an2 x2 − . . . − an−1,n−1 xn−1 ) .
De esta manera, la iteración de Jacobi se puede escribir como:
 
n
(k+1) 1  X 
(k) 
xi = bi − aij xj , para i = 1, 2, . . . , n,
aii  j=1
j6=i

tal y como se muestra en la expresión (4.11). Además, como criterio de parada, cuando se tiene
una tolerancia tol, considere la norma relativa del residuo dada por:
kb − Axk k
< tol,
kbk
la cual es equivalente a escribir
krk k < tolkbk,
donde rk = b − Axk es el residuo en la iteración k y para k · k usualmente se toma la norma-2.
De esta manera, en el algoritmo 4.5 se considera el pseudocódigo del método de Jacobi.
4.3. Métodos iterativos 235

Algoritmo 4.5: Jacobi.


Recibe: A ∈ n×n no singular, b ∈ n , x0 ∈ n valor inicial, tol ∈ , iterMax ∈ .
Retorna: k número de iteraciones usadas y x tal que Ax = b.

1 k←0
2 x ← x0
3 r ← kb − Axk2
4 tol ← tol · r
5 w∈ n
6 Mientras que k < iterMax ∧ r ≥ tol hacer
7 Para i ← 1 hasta n hacer
8 sum ← 0
9 Para j ← 1 hasta n hacer
10 sum ← sum + aij · xj
11 sum ← sum − aii · xi
12 wi ← a1ii (bi − sum)
13 x←w
14 r ← kb − Axk2
15 k ←k+1

Definición 4.9.
Una matriz A ∈ n×n
se dice diagonalmente dominante si para i = 1, . . . , n, se cumple
n
X
|aii | ≥ |aij |.
j=1
j6=i

Si además esta desigualdad es estricta para todo i = 1, . . . , n, entonces se dice que A es


estrictamente diagonal dominante.

Nótese que si A es una matriz estrictamente diagonal dominante entonces A es no singular,


pues de lo contrario, existiría x ∈ n , x 6= 0, tal que Ax = 0. Sea i0 un índice para el cual se
tiene |xi0 | = kxk∞ , entonces, v = x1i x satisface Av = 0. Así, la componente i0 del vector Av
0
satisface la igualdad:
0 −1
iX n
X
ai0 j vj + ai0 i0 + ai0 j vj = 0.
j=1 j=i0 +1

Luego, tomando valor absoluto se tiene que


n
X
|ai0 i0 | ≤ |ai0 j |,
j=1
j6=i0

lo cual contradice el ser estrictamente diagonal dominante.


236 Capítulo 4. Solución de sistemas de ecuaciones

Teorema 4.18 (Convergencia de la iteración de Jacobi).


Sea A una matriz estrictamente diagonal dominante de tamaño n × n y b ∈ n . Entonces
la iteración de Jacobi converge hacia la solución del sistema Ax = b para cualquier valor
inicial x0 ∈ n .

Demostración. De acuerdo al teorema 4.16 es suficiente con probar que |||M−1 N|||∞ < 1. Para
ello, nótese que M−1 N = I − M−1 A = I − D−1 A, es decir,
 
0 −a 12
a11
· · · −a1n
a11
 −a21 .. .. 
−1
 a22
0 . . 
M N =   .. .. .. −an−1,n 
.
 . . . an−1,n−1 
−an1 −an,n−1
ann
··· ann
0

De esta forma, para todo i = 1, . . . , n se tiene que:


n n n
X
−1
X aij 1 X
(M N)ij = aii = |aii |
|aij |,
j=1 j=1 j=1
j6=i j6=i

luego, como A es estrictamente diagonal dominante, se cumple que


n n
X 1 X 1
(M−1 N)ij = |aij | < · |aii | < 1, para i = 1, . . . , n.
j=1
|aii | j=1 |aii |
j6=i

Por lo tanto, |||M−1 N|||∞ < 1, de donde se concluye que la iteración de Jacobi converge para
cualquier x0 ∈ n . 

Observación: Tal como se había mencionado anteriormente, el criterio de la norma es muy


restrictivo. Sin embargo, el teorema 4.17, el cual analiza el radio espectral de la matriz M−1 N,
permite mostrar que la iteración de Jacobi converge aún para matrices que no son estrictamente
diagonal dominante, tal y como se ilustra en el siguiente ejemplo.

Ejemplo 4.16.
Muestre que la iteración de Jacobi converge para el sistema lineal Ax = b donde
 
2 −1 0
A =  −1 2 −1  .
0 −1 2

Solución. Nótese que la matriz A no es estrictamente diagonal dominante ni tampoco lo es la


matriz de iteración del método de Jacobi
 
0 12 0
M−1 N = I3 − M−1 A =  12 0 21  .
0 12 0
4.3. Métodos iterativos 237

Además |||M−1 N|||∞ = 1. Por otro lado, M−1 N es diagonalizable (por ser una matriz simétri-
ca), entonces existen matrices X (matriz de vectores propios) y Λ (matriz diagonal de valores
k
propios), tales que M−1 N n= XΛX−1 . oPor lo tanto (M−1 N) = XΛk X−1 . Mediante un sim-
√ √
ple cálculo, σ (M−1 N) = − 22 , 0, 22 , por lo que ρ(M−1 N) < 1. De aquí se deduce que
k
(M−1 N) → O y por consiguiente la iteración de Jacobi converge para cualquier x0 ∈ 3
. 

4.3.4. Iteración de Gauss-Seidel


La iteración de Gauss-Seidel o el método de Gauss-Seidel posee dos variantes, la primera es
conocida como Gauss-Seidel hacia adelante (“Forward Gauss-Seidel”), la cual se obtiene
al hacer M = L + D, según la descomposición (4.10). Esta matriz es triangular inferior por
lo que la acción de M−1 sobre un vector no es otra cosa más que la resolución de un sistema
triangular inferior mediante sustitución hacia adelante, de ahí su nombre. La segunda, conocida
como Gauss-Seidel hacia atrás (“Backward Gauss-Seidel”) se obtiene al escoger M = D + U.
En este caso la matriz M es triangular superior. De esta forma se tiene que:

Gauss-Seidel hacia adelante: M = L + D (parte triangular inferior de A),

xk+1 = (L + D)−1 (b − Uxk ), para k = 1, 2, . . .

Gauss-Seidel hacia atrás: M = D + U (parte triangular superior de A),

xk+1 = (D + U)−1 (b − Lxk ), para k = 1, 2, . . .

Ejemplo 4.17.
Repita el ejemplo 4.15, pero utilizando Gauss-Seidel hacia adelante.

Solución. La iteración de Gauss-Seidel hacia adelante viene dada por:


 −1     
5 0 0 7 0 1 1
xk+1 =  1 5 0   7  −  0 0 1  xk  ,
1 1 5 7 0 0 0
  (k) (k)

25 0 0 7 − x2 − x3
1   (k) 
= −5 25 0   7 − x3 ,
125
−4 −5 25 7
 (k) (k)

175 − 25x2 − 25x3
1  (k) (k) 
=  140 + 5x2 − 20x3  .
125 (k) (k)
112 + 4x2 + 9x3

Luego, como x0 = (0, 0, 0)T , entonces se tiene que:


 T
7 28 112
x1 = , , = (1.4, 1.12, 0.896)T ,
5 25 125
238 Capítulo 4. Solución de sistemas de ecuaciones

x2 = (0.9968, 1.0214, 0.9964)T ,

x3 = (0.9964, 1.0014, 1.0014)T ,

x4 = (0.9996, 1.0000, 1.0010)T ,

x5 = (1.0000, 1.0000, 1.0000)T .

Por lo tanto, se obtiene una aproximación x5 = (1, 1, 1)T , la cual produce un error relativo de
cero. 

Para efectos de implementación, nótese que para el sistema lineal




 a11 x1 + a12 x2 + . . . + a1n xn = b1 ,

 a21 x1 + a22 x2 + . . . + a2n xn = b2 ,
 ...

..
.
..
.
..
.


an1 x1 + an2 x2 + . . . + ann xn = bn ,

la iteración de Gauss-Seidel hacia adelante consiste en reescribir el sistema de la forma:




 a11 x1 = b1 − a12 x2 − . . . − a1n xn ,

 a21 x1 + a22 x2 = b2 − a23 x3 − . . . − a2n xn ,
.
.. .. ..


 . .

an1 x1 + an2 x2 + . . . + ann xn = bn ,

es decir,

(k+1) (k) (k)


 a11 x1 = b1 − a12 x2 − . . . − a1n xn ,

 a x(k+1) + a x(k+1) (k) (k)
21 1 22 2 = b2 − a23 x3 − . . . − a2n xn ,
.. .. ..


 . . .

 a x(k+1) + a x(k+1) + . . . + a x(k+1) = b .
n1 1 n2 2 nn n n

(k+1)
Luego, despejando los términos xi de la diagonal se tiene que:
  
(k+1) 1 (k) (k)


 x1 = a11
b1 − a12 x2 − . . . − a1n xn ,

  

 x(k+1) = 1 (k+1) (k) (k)
2 a22
b2 − a21 x1 − a23 x3 − . . . − a2n xn ,
.. .. ..
. . .



 

 (k+1) (k+1) (k+1) (k+1)
1
 xn = ann
bn − an1 x1 − an2 x2 − . . . − an−1,n−1 xn−1 .

De esta manera, la iteración de Gauss-Seidel hacia adelante se puede escribir como:


! i−1 n
"
(k+1) 1 X (k+1)
X (k)
xi = bi − aij xj − aij xj , para i = 1, 2, . . . , n.
aii j=1 j=i+1
4.3. Métodos iterativos 239

En el caso del ejemplo 4.17, la expresión anterior es dada por:


 h i 
(k) (k)  (k) (k) 
 (k+1)  7 − 0 − x2 + x3 7 − x2 − x3
x1
 (k+1)  1 (k+1) (k)

 1 (k+1) (k)

 x2  =  7 − x1 − x3  =   7 − x1 − x3 .
(k+1) 5  h i  5 
x3 7 − x1
(k+1)
+ x2
(k+1)
−0
(k+1)
7 − x1
(k+1)
− x2

Análogamente, la iteración de Gauss-Seidel hacia atrás es dada por:


! i−1 n
"
(k+1) 1 X (k)
X (k+1)
xi = bi − aij xj − aij xj , para i = n, n − 1, . . . , 1.
aii j=1 j=i+1

De esta forma, en los algoritmos 4.6 y 4.7 se presentan los pseudocódigos de los métodos de
Gauss-Seidel hacia adelante y Gauss-Seidel hacia atrás, respectivamente. La diferencia básica
entre ambos algoritmos se presenta en la línea 6, donde el ciclo de Gauss-Seidel hacia atrás se
recorre de manera inversa al de Gauss-Seidel hacia adelante.

Algoritmo 4.6: ForwardGaussSeidel.


Recibe: A ∈ n×n no singular, b ∈ n , x0 ∈ n valor inicial, tol ∈ , iterMax ∈ .
Retorna: k número de iteraciones usadas y x tal que Ax = b.

1 k←0
2 x ← x0
3 r ← kb − Axk2
4 tol ← tol · r
5 Mientras que k < iterMax ∧ r ≥ tol hacer
6 Para i ← 1 hasta n hacer
7 sum ← 0
8 Para j ← 1 hasta n hacer
9 sum ← sum + aij · xj
10 sum ← sum − aii · xi
11 xi ← a1ii (bi − sum)
12 r ← kb − Axk2
13 k ←k+1

El análisis de convergencia es similar para ambas versiones por lo que en los resultados si-
guientes solamente se presentará la demostración para Gauss-Seidel hacia adelante. El primer
resultado de convergencia es para matrices estrictamente diagonal dominantes. Sin embargo la
demostración se basará en el análisis del radio espectral.

Teorema 4.19 (Convergencia de la iteración de Gauss-Seidel #1).


Sea A ∈ n×n una matriz estrictamente diagonal dominante y b ∈ n . Entonces la
iteración de Gauss-Seidel converge hacia la solución del sistema Ax = b para cualquier
valor inicial x0 ∈ n .
240 Capítulo 4. Solución de sistemas de ecuaciones

Algoritmo 4.7: BackwardGaussSeidel.


Recibe: A ∈ n×n no singular, b ∈ n , x0 ∈ n valor inicial, tol ∈ , iterMax ∈ !.
Retorna: k número de iteraciones usadas y x tal que Ax = b.

1 k←0
2 x ← x0
3 r ← kb − Axk2
4 tol ← tol · r
5 Mientras que k < iterMax ∧ r ≥ tol hacer
6 Para r ← 1 hasta n hacer
7 i←n+1−r
8 sum ← 0
9 Para j ← 1 hasta n hacer
10 sum ← sum + aij · xj
11 sum ← sum − aii · xi
12 xi ← a1ii (bi − sum)
13 r ← kb − Axk2
14 k ←k+1

Demostración. Por el teorema 4.17 es suficiente con demostrar que para todo valor propio
λ∈ " "
de M−1 N se tiene |λ| < 1. Sea v ∈ n , v 6= 0, un vector propio asociado a λ, como
M−1 N = (L + D)−1 (−U) entonces se tiene que:

(M−1 N)v = λv ⇒ −(L + D)−1 Uv = λv ⇒ −Uv = λ(L + D)v.

Sea i0 tal que |vi0 | = kvk∞ y considere el vector x = v1i v, el cual satisface que kxk∞ = 1 y
0
xi0 = 1. Luego, al considerar el sistema −Ux = λ(L + D)x, la fila i0 viene dada por
! i " ! "
n
X X 0 0 −1
iX
− ai0 j · xj = λ ai0 j · xj = λ ai0 i0 + ai0 j · xj .
j=i0 +1 j=1 j=1

De la ecuación anterior, al despejar λ y tomar módulo a ambos lados se obtiene la expresión:



P
n n
P
ai0 j |ai0 j |
j=i0 +1 j=i0 +1
|λ| = ≤

.
(4.12)
0 −1
iP 0 −1
iP

ai0 i0 + ai0 j · xj ai0 i0 + ai0 j · xj
j=1 j=1

Por otro lado, nótese que


i −1
0 −1
iX 0 −1
iX 0 −1
iX X 0

|ai0 i0 | = ai0 i0 + ai0 j · xj − ai0 j · xj ≤ ai0 i0 + ai0 j · xj + |ai0 j |.

j=1 j=1 j=1 j=1
4.3. Métodos iterativos 241

Luego, como A es estrictamente diagonal dominante se tiene que



0 −1
iX 0 −1
iX

0 < |ai0 i0 | − |ai0 j | ≤ ai0 i0 + ai0 j · xj ,

j=1 j=1

y sustituyendo este resultado en la desigualdad (4.12) se concluye que


n
P
|ai0 j |
j=i0 +1
|λ| ≤ .
0 −1
iP
|ai0 i0 | − |ai0 j |
j=1

Ahora, nuevamente utilizando el hecho de que A es estrictamente diagonal dominante se obtiene


n
X 0 −1
iX n
X
|ai0 i0 | > |ai0 j | = |ai0 j | + |ai0 j |,
j=1 j=1 j=i0 +1
j6=i0

de donde
0 −1
iX n
X
|ai0 i0 | − |ai0 j | > |ai0 j |.
j=1 j=i0 +1

Finalmente, de lo anterior se obtiene que


n
P n
P
|ai0 j | |ai0 j |
j=i0 +1 j=i0 +1
|λ| ≤ < n = 1.
0 −1
iP P
|ai0 i0 | − |ai0 j | |ai0 j |
j=1 j=i0 +1

Por lo tanto, para cualquier valor propio λ de M−1 N, se tiene que |λ| < 1, por lo que en
particular se cumple que ρ(M−1 N) < 1. Con lo que se concluye que la iteración de Gauss-
Seidel hacia adelante converge para cualquier valor inicial x0 ∈ n . 

Teorema 4.20 (Convergencia de la iteración de Gauss-Seidel #2).


Sea A ∈ n×n una matriz simétrica definida positiva y b ∈ n . Entonces la iteración de
Gauss-Seidel converge hacia la solución del sistema Ax = b para cualquier valor inicial
x0 ∈ n .

Demostración. Sin pérdida de generalidad se analiza el método Gauss-Seidel hacia adelante,


la prueba para el método Gauss-Seidel hacia atrás se deja como ejercicio. Por el teorema 4.17
es suficiente con demostrar que ρ(M−1 N) < 1.
Sea λ ∈ un valor propio de M−1 N y x ∈ n , x 6= 0, un vector propio asociado a λ. Como
A es simétrica se tiene que A = L + D + LT , por lo que M−1 N = −(L + D)−1 LT , para la
iteración de Gauss-Seidel hacia adelante. Luego,

M−1 Nx = λx ⇒ −(L + D)−1 LT x = λx ⇒ −LT x = λ(L + D)x.


242 Capítulo 4. Solución de sistemas de ecuaciones

Sea x∗ ∈ n
la transpuesta conjugada de x, multiplicando la ecuación anterior por x∗ se tiene:

−x∗ LT x = λx∗ (L + D)x,

luego, como A = L + D + LT , entonces LT = A − (L + D) y con ello:

−x∗ Ax + x∗ (L + D)x = λx∗ (L + D)x,


x∗ Ax = (1 − λ)x∗ (L + D)x. (4.13)

Ahora, como A ∈ n×n , entonces L, D ∈ n×n


y por la simetría de A, tomando la transpuesta
conjugada en la ecuación (4.13) se tiene

(x∗ Ax)∗ = ((1 − λ)x∗ (L + D)x)∗ ,


x∗ Ax = (1 − λ)x∗ (LT + D)x. (4.14)

Nótese que λ 6= 1, por lo que sumando (4.13) con (4.14) se tiene que
 
1 1
+ x∗ Ax = x∗ (L + D)x + x∗ (LT + D)x,
1−λ 1−λ
= x∗ (L + D + LT )x + x∗ Dx,
= x∗ Ax + x∗ Dx,

Luego, ya que A es simétrica definida positiva, se tiene que x∗ Ax > 0 y x∗ Dx > 0, para todo
x 6= 0, entonces de la igualdad anterior
 
1 1
+ − 1 x∗ Ax = x∗ Dx > 0.
1−λ 1−λ
Por lo que,
1 1 2 − (λ + λ) − (1 − λ)(1 − λ) 1 − |λ|2
+ −1 = = > 0,
1−λ 1−λ |1 − λ|2 |1 − λ|2
de donde |λ| < 1, con λ cualquier valor propio de M−1 N, entonces se concluye que ρ(M−1 N) <
1. Por lo tanto, la iteración de Gauss-Seidel hacia adelante converge. 

Teorema 4.21 (Stein-Rosenberg).


Denotando por MJ y NJ a la descomposición dada por la iteración de Jacobi y a MGS y
NGS a la de Gauss-Seidel. Sea A una matriz tal que todas las entradas de M−1 J NJ son no
negativas, entonces una y sólamente una de las siguientes proposiciones se cumple:

1. ρ(M−1 −1
GS NGS ) = ρ(MJ NJ ) = 0,

2. ρ(M−1 −1
GS NGS ) = ρ(MJ NJ ) = 1,

3. ρ(M−1 −1
GS NGS ) < ρ(MJ NJ ) < 1,

4. 1 < ρ(M−1 −1
J NJ ) < ρ(MGS NGS ).

Demostración. (no se considera)


4.3. Métodos iterativos 243

Observación: Del teorema anterior, es importante resaltar que la proposición 3 muestra que la
iteración de Gauss-Seidel converge más rápido que la de Jacobi, mientras que la proposición 4
dice que, si la iteración de Jacobi diverge, entonces la iteración de Gauss-Seidel también diverge.

4.3.5. Iteración de Sobre relajación


La iteración de sobre relajación o método SOR (por su siglas en inglés, “Succesive Over Rela-
xation”) consiste en una variante de la iteración de Gauss-Seidel, para aproximar la solución
del sistema lineal Ax = b, cuya idea es acelerar la convergencia del método. Para definir la
iteración, considere ω ∈ , ω 6= 0, con lo que se tiene el sistema equivalente ωA = ωb y
descomponiendo A como en (4.10) se tiene que

ωA = ω(L + D + U) = (ωL + D) + ((ω − 1)D + ωU),

luego, dividiendo entre ω,


    
1 1−ω
A = L+ D − D−U .
ω ω
| {z } | {z }
M N

Nótese que M es triangular inferior, mientras que N es triangular superior. Además, cuando
ω = 1 la descomposición anterior es la obtenida de Gauss-Seidel hacia adelante, por lo que este
método es conocido como SOR hacia adelante (“Forward SOR”), cuya iteración es dada por:
 −1     
1 1−ω
xk+1 = L + D b+ D − U xk .
ω ω
Una versión SOR hacia atrás (“Backward SOR”) se puede obtener de manera análoga.

Ejemplo 4.18.
Repita el ejemplo 4.15, pero utilizando SOR hacia adelante para ω = 1.2.

Solución. La iteración de SOR hacia adelante viene dada por:


 25 −1    5  
6
0 0 7 6
1 1
xk+1 =  1 25 6
0   7  −  0 56 1  xk  ,
1 1 25 6
7 0 0 56
  (k) (k) (k)

3750 0 0 7 − 56 x1 − x2 − x3
1   (k) (k) 
= −900 3750 0  7 − 56 x2 − x3 ,
15625 (k)
−684 −900 3750 5
7 − 6 x3
 (k) (k) (k)

26250 − 3125x1 − 3750x2 − 3750x3
1  (k) (k) (k) 
=  19950 + 750x1 − 2225x2 − 2850x3  .
15625 (k) (k) (k)
15162 + 570x1 + 1434x2 − 1541x3

Luego, como x0 = (0, 0, 0)T , entonces se tiene que:


244 Capítulo 4. Solución de sistemas de ecuaciones

x1 = (1.6800, 1.2768, 0.9704)T , x4 = (1.0022, 1.0620, 1.0006)T ,


x2 = (0.8047, 0.9986, 1.0531)T ,
x3 = (1.0266, 0.9811, 0.9875)T , x5 = (0.9979, 0.9991, 1.0070)T .

Por lo tanto, se obtiene una aproximación x5 = (0.9979, 0.9991, 1.0070)T , la cual produce un
error relativo:
kx − x5 k2
= 0.0042512 . . .
kxk2 

Similar a la iteración de Gauss-Seidel, la iteración de SOR hacia adelante puede ser escrita de
la forma:
! i−1 n
"
(k+1) ω X (k+1)
X (k) (k)
xi = bi − aij xj − aij xj + (1 − ω)xi , para i = 1, 2, . . . , n,
aii j=1 j=i+1

de esta forma en el algoritmo 4.8 se presenta el pseudocódigo de SOR hacia adelante, el cual
es similar al de Gauss-Seidel hacia adelante, salvo por la actualización xi en la línea 11, la
cual nótese, consiste en un promedio ponderado de la aproximación anterior, con la actual.
Similarmente se puede escribir el algoritmo de SOR hacia atrás.

Algoritmo 4.8: ForwardSOR.


Recibe: A ∈ n×n no singular, b ∈ n , ω ∈ , x0 ∈ n , tol ∈ , iterMax ∈ !.
Retorna: k número de iteraciones usadas y x tal que Ax = b.

1 k←0
2 x ← x0
3 r ← kb − Axk2
4 tol ← tol · r
5 Mientras que k < iterMax ∧ r ≥ tol hacer
6 Para i ← 1 hasta n hacer
7 sum ← 0
8 Para j ← 1 hasta n hacer
9 sum ← sum + aij · xj
10 sum ← sum − aii · xi
11 xi ← (1 − ω)xi + aωii (bi − sum)
12 r ← kb − Axk2
13 k ←k+1

Con respecto al análisis de convergencia de la iteración de SOR hacia adelante (la hacia atrás
es análoga), a continuación se demostrarán algunos resultados importantes, de entre los cuales
el primero de ellos establece un rango para la constante ω.
4.3. Métodos iterativos 245

Lema 4.4 (Kahan).


El radio espectral de M−1 N de la iteración de SOR satisface

ρ(M−1 N) ≥ |1 − ω|.

Demostración. Se sabe que det(M−1 N) = det(M−1 ) · det(N), pero


 −1  −1
−1 1 1 −1
det(M ) = det L + D = det D(wD L + In ) ,
ω ω
 −1
1
= · det(D)−1 · det( In + ωD−1L )−1 = ω n · det(D)−1 .
ωn | {z }
triangular inferior
unitaria

Por otro lado se tiene


        
1−ω 1−ω ω −1
det(N) = det D − U = det D In − D U ,
ω ω 1−ω
 n      n
1−ω ω −1 1−ω
= · det(D) · det In − D U = · det(D).
ω 1−ω ω
| {z }
triangular superior
unitaria

1
n
Luego, det(M−1 N) = ω n ω
−1 = (1 − ω)n . Ahora, sean λ1 , . . . , λn los valores propios de
M−1 N entonces
n
Y
−1

ρ(M N) n
≥ |λi | = det(M−1 N) = |1 − ω|n ,
i=1

por lo que se cumple que ρ(M−1 N) ≥ |1 − ω|. 

Observación: Al final de la demostración del lema de Kahan, se utiliza el hecho de que el


producto de todos los valores propios de una matriz es igual al determinante de la misma, lo
cual se puede verificar considerando A ∈ n×n y p(z) = det(zIn − A), z ∈ , su polinomio
característico. Sean además, λ1 , . . . , λn las raíces de p, λi ∈ , los cuales son los valores propios
de A. Como los λi son raíces de p, entonces se tiene que:
n
Y
p(z) = an (z − λi ),
i=1

luego, como el polinomio característico es canónico, es decir an = 1, se cumple que


n
Y
p(0) = (−1)n λi ,
i=1

pero además, p(0) = det(0 · In − A) = det(−A) = (−1)n det(A). Igualando ambos resultados
para p(0), se concluye que
Yn
λi = det(A).
i=1
246 Capítulo 4. Solución de sistemas de ecuaciones

Por otro lado, nótese que para tener convergencia en la iteración de SOR, debe ocurrir que
ρ(M−1 N) < 1. Así, por el lema de Kahan, cuando |1 − ω| ≥ 1 no hay convergencia. Con lo que
se puede concluir que no hay convergencia cuando ω ∈ ] − ∞, 0] ∪ [2, +∞[, por lo tanto, si el
método de SOR converge, entonces ω ∈ ]0, 2[.

Lema 4.5 (Householder-John).


Sea A ∈ n×n una matriz simétrica definida positiva, M, N ∈ n×n tales que A = M − N
y M no singular. Si la matriz MT + M − A es simétrica definida positiva, entonces
ρ(M−1 N) < 1.

Demostración. Sea λ ∈ σ(M−1 N), entonces existe x ∈ n


, x 6= 0, tal que M−1 Nx = λx.
Además, como M−1 N = In − M−1 A, entonces

λx = M−1 Nx = (In − M−1 A)x = x − M−1 Ax,

de donde, al despejar Ax se obtiene

Ax = (1 − λ)Mx.

Sea hx, Axi = x∗ Ax, entonces

hx, Axi = hx, (1 − λ)Mxi = (1 − λ) hx, Mxi .

Además por la simetría de A también se tiene




hx, Axi = hA∗ x, xi = hAx, xi = h(1 − λ)Mx, xi = (1 − λ) x, MT x ,

Ahora, ya que A y M son ambas no singulares, entonces λ 6= 1, luego,





x, (M + MT − A)x = hx, Mxi + x, MT x − hx, Axi ,
1 1
= hx, Axi + hx, Axi − hx, Axi ,
1−λ 1 −λ

1 1
= + − 1 hx, Axi ,
1−λ 1−λ
1 − |λ|2
= hx, Axi .
|1 − λ|2
Finalmente, como A y MT + M − A son ambas simétricas definidas positivas, entonces se
cumple hx, Axi > 0 y

1 − |λ|2 x, (M + MT − A)x
= > 0,
|1 − λ|2 hx, Axi
de donde 1 > |λ|2 , para λ cualquier valor propio de M−1 N, por lo tanto, ρ(M−1 N) < 1. 

Observación: Según el lema de Householder-John, basta probar que para A ∈ n×n , simétrica
definida positiva, se cumple que MT +M−A también es simétrica definida positiva, para probar
que la iteración de SOR converge, cuando 0 < ω < 2, según el lema de Kahan. De esta manera,
el siguiente resultado verifica la convergencia de la iteración de SOR.
4.3. Métodos iterativos 247

Teorema 4.22 (Ostrowski-Reich).


Sea A ∈ n×n una matriz simétrica positiva definida, entonces la iteración de SOR con-
verge, siempre que 0 < ω < 2.

Demostración. Nótese que para la iteración de SOR se tiene que

 T    
T 1 1 T 2−ω
M +M−A = L+ D + L + D − (L + D + L ) = D,
ω ω ω

luego, para x 6= 0, se tiene que


   

T
2−ω 2−ω
x, (M + M − A)x = x, Dx = hx, Dxi .
ω ω

Ya que A es simétrica definida positiva, entonces D es positiva, así, para que MT + M − A sea
simétrica definida positiva, basta que 2−ω
ω
> 0, lo cual se cumple pues 0 < ω < 2. Por lo tanto,
por el lema de Householder-John (lema 4.5), se tiene que la iteración de SOR converge, para
cualquier valor inicial x0 ∈ n . 

Observación: Algunas matrices admiten un valor óptimo para ω denominado ωopt . Por ejem-
plo, para matrices consistentemente ordenadas [34], con entradas en la diagonal distintas de
cero, el valor óptimo viene dado por:

2
ωopt = q ,
1+ 1− [ρ(M−1
J NJ )]
2

donde MJ y NJ corresponden a la descomposición de la iteración de Jacobi. Además, se cumple


que ρ(M−1 SOR NSOR ) = ωopt − 1. Una matriz se dice consistentemente ordenada si los vértices
de su grafo adyacente pueden ser particionados en p conjuntos S1 , S2 , . . ., Sp con la propiedad
de que cualquier par de vértices adyacentes i y j en el grafo, pertenecen a dos particiones
consecutivas Sk y Sk′ , donde k ′ = k − 1 si j < i y k ′ = k + 1 si j > i. Donde, el grafo
adyacente de una matriz A ∈ n×n consiste en el par G = (V, E), donde V = {1, 2, . . . , n} son
los vértices y E ⊆ V × V son las aristas. Además, existe una arista del vértice i al vértice j si y
sólo si aij 6= 0. Según esto, las matrices tridiagonales definidas positivas son consistentemente
2 2
ordenadas, al igual que la matriz Mn ∈ n ×n definida por bloques como:

   
Tn −In 4 −1
 −In Tn −In   −1 4 −1 
   
 .. .. .. 
donde Tn
 . .. ... .. 
Mn =  . . . , =  . .
   
 −In Tn −In   −1 4 −1 
−In Tn −1 4
248 Capítulo 4. Solución de sistemas de ecuaciones

Ejemplo 4.19.
Encuentre el ω óptimo para la matriz
 
4 3 0
A =  3 4 −1  .
0 −1 4

Solución. La matriz A es definida positiva y tridiagonal, de modo que el ω óptimo es dado


por:
2
ωopt = q ,
1 + 1 − [ρ(M−1 J N J )] 2

donde
 1   
0 0 4
0 −3 0 0 − 34 0
M−1
J NJ = D−1 (−L − U) =  0 14 0   −3 0 1  =  − 43 0 14 
0 0 14 0 1 0 0 1
4
0
 q
Así, se cumple que det(M−1
J NJ − λI3 ) = −λ λ − 2 5
8
, por lo que ρ(M−1
J NJ ) = 5
8
y con ello:

2
ωopt = q ≈ 1.24.
5
1+ 1− 8

Además, se tiene que ρ(M−1


SOR NSOR ) = ωopt − 1 ≈ 0.24. 

Ejemplo 4.20.
Con ayuda de MATLAB, encuentre el ω óptimo para la matriz
 
4 −1 0 −1 0 0
 −1 4 −1 0 −1 0 
 
 
 0 −1 4 0 0 −1 
M =  .
 −1 0 0 4 −1 0 
 
 0 −1 0 −1 4 −1 
0 0 −1 0 −1 4

Solución. Utilizando MATLAB y el fragmento de código:


M = [ 4 -1 0 -1 0 0; -1 4 -1 0 -1 0; 0 -1 4 0 0 -1
-1 0 0 4 -1 0; 0 -1 0 -1 4 -1; 0 0 -1 0 -1 4];
D = diag( diag( M ) ); % Diagonal de M
L = tril( M ) - D; % Parte triangular inferior
U = triu( M ) - D; % Parte triangular superior
Bj = inv(D) * ( -L-U ); % Matriz de Jacobi
p = max( abs(eig(Bj)) ) % Radio espectral de Bj
4.3. Métodos iterativos 249

se puede verificar que ρ(M−1


J NJ ) ≈ 0.6036, con lo que

2
ωopt = p ≈ 1.1128.
1+ 1 − (0.6036)2

Además, se tiene que ρ(M−1 SOR NSOR ) = ωopt − 1 ≈ 0.1128, lo cual se puede verificar con el
siguiente fragmento de código de MATLAB:
M = [ 4 -1 0 -1 0 0; -1 4 -1 0 -1 0; 0 -1 4 0 0 -1
-1 0 0 4 -1 0; 0 -1 0 -1 4 -1; 0 0 -1 0 -1 4];
D = diag( diag( M ) ); % Diagonal de M
L = tril( M ) - D; % Parte triangular inferior
U = triu( M ) - D; % Parte triangular superior
w = 2 / (1 + sqrt(1 - (0.6036)^2));
Bsor = inv(L + 1/w*D) * ( (1-w)/w*D-U ); % Matriz de SOR
p = max( abs(eig(Bsor)) ) % Radio espectral de Bsor

El cual produce el resultado: 0.1127881441779497. 

4.3.6. Iteración de Newton

En esta sección se analiza un método de punto fijo de alto orden, por lo menos de orden
cuadrático, para aproximar las soluciones de la ecuación f (x) = 0 donde f : n → n .
Primero se reformula el problema original como un problema de punto fijo. Esto se puede realizar
observando que ξ satisface f (ξ) = 0 si y sólo si es un punto fijo de la función g λ (x) = x−λf (x)
donde λ ∈ y λ 6= 0.
Nótese que Jgλ (x) = I−λJf (x) por lo que escogiendo λ de tal manera que |||I − λJf (ξ)|||∞ < 1,
por el teorema 4.15 la iteración de punto fijo asociada a g λ converge. Por otro lado, siguiendo
la iteración de Newton en , se puede escoger λ, de tal manera que se considere la iteración:

xk+1 = xk − [Jf (xk )]−1 f (xk ), para k = 0, 1, 2, . . . ,

la cual se conoce como la iteración de Newton en n


.

Ejemplo 4.21.
Use la iteración de Newton para aproximar la solución del sistema no lineal:
 2 2 2
 f1 (x, y, z) = x + y + z − 1 = 0,
f (x, y, z) = 2x2 + y 2 − 4z = 0,
 2
f3 (x, y, z) = 3x2 − 4y + z 2 = 0.

1 1 1 T
Utilice x0 = , ,
2 2 2
.
250 Capítulo 4. Solución de sistemas de ecuaciones

Solución. Tomando f = (f1 , f2 , f3 )T y x = (x, y, z)T . Nótese que la matriz jacobiana de f en


x ∈ 3 es dada por
 
2x 2y 2z
Jf (x) =  4x 2y −4  .
6x −4 2z
 T T
Dado que x0 = 21 , 12 , 12 , se tiene que f (x0 ) = − 41 , − 54 , −1 y
 
1 1 1
Jf (x0 ) =  2 1 −4  .
3 −4 1
Lo siguiente es realizar la operación y = [Jf (x0 )]−1 f (x0 ), la cual es equivalente a resolver el
sistema lineal
Jf (x0 )y = f (x0 ),
donde se obtiene que y = (−0.375, 0, 0.125)T , luego x1 = x0 − y = (0.875, 0.5, 0.375)T . Similar-
mente, se obtienen las aproximaciones:
x2 = (0.78981, 0.49662, 0.36993)T ,
x3 = (0.78521, 0.49662, 0.36992)T .

Así, como f (x3 ) = 10−5 (1, 4, 5)T , el vector x3 puede ser considerado como una aproximación
satisfactoria a la solución ξ. 

Observación: Nótese que para resolver un sistema no lineal por medio de la iteración de
Newton, es necesario resolver un sistema lineal en cada iteración, por lo que se puede
hacer uso de las técnicas directas de la eliminación Gaussiana, o bien si se conoce alguna
propiedad de Jf , como ser simétrica definida positiva, se pueden utilizar las técnicas iterativas
de las secciones anteriores.
Algoritmo 4.9: Newton.
Recibe: f ∈ C 1 ( n ), Jf ∈ n×n , x0 ∈ n valor inicial, tol ∈ , iterMax ∈ !.
Retorna: k número de iteraciones usadas y x tal que f (x) = 0.

1 k←0
2 x ← x0
3 err ← tol + 1
4 Mientras que k < iterMax ∧ err ≥ tol hacer
5 b ← f (x)
6 A ← Jf (x)
7 Resolver el sistema: Ay = b
8 x←x−y
kx − x0 k2
err ←
9 kxk2
10 x0 ← x
11 k ←k+1
4.3. Métodos iterativos 251

Teorema 4.23 (Convergencia de la iteración de Newton).


Suponga que f (ξ) = 0, en alguna vecindad (abierta) Nξ de ξ, donde f es definida y
continua, todas las segundas derivadas parciales de f son definidas y continuas y la matriz
jacobiana Jf (ξ) de f en el punto ξ es no singular. Entonces, existe δ > 0 tal que la
sucesión, (xk ), generada por el método de Newton converge hacia ξ para todo valor inicial
x0 ∈ B̄(ξ,δ) . Además la convergencia es por lo menos cuadrática.

Demostración. (ejercicio)

Observación: Similar a la versión en , la iteración de Newton no converge para cualquier


valor inicial x0 ∈ n , sino para cualquier valor inicial cercano a la solución exacta.

Ejercicios (sección 4.3)

♦ Tradicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1. Utilizando los métodos de Jacobi y Gauss-Seidel hacia adelante, realice dos iteraciones
para aproximar la solución de los siguientes sistemas lineales, donde x0 = 0. Determine
el error absoluto en cada caso.
 
 3x1 − x2 + x3 = 1,  10x1 − x2 = 9,
a) 3x + 6x2 + 2x3 = 0, b) −x1 + 10x2 − 2x3 = 7,
 1 
3x1 + 3x2 + 7x3 = 4. −2x2 + 10x3 = 6.

2. Encuentre ωopt de la iteración de SOR, para la matriz


 
2 −1 0 0
 
 −1 2 −1 0 
T =  .
 0 −1 2 −1 
0 0 −1 2

3. Construya un ejemplo que muestre que la convergencia del método de Jacobi no necesa-
riamente implica que el método de Gauss-Seidel convergerá.

4. Considerando la matriz M del ejemplo 4.20, junto con el vector b = (1, 0, 0, 0, 0, 0)T ,
resuelva el sistema Mx = b con los métodos de Jacobi, Gauss-Seidel y SOR (con ωopt ),
utilizando x0 = 0. Haga una comparación entre los métodos, la cual incluya una gráfica
del comportamiento de las normas de los residuos en cada iteración.

5. Dada x la solución exacta de Ax = b, cualquiera de los métodos iterativos brinda la


aproximación x1 , donde r1 = b − Ax1 es el residuo. Así, la solución exacta cumple

Ax = b = Ax1 + r1 = A(x1 + y),


252 Capítulo 4. Solución de sistemas de ecuaciones

donde Ay = r y con ello x = x1 + y. De esta manera se puede mejorar la aproximación


obtenida en la primera iteración y sucesivamente se puede realizar este proceso en cada
iteración del método usado. Esta estrategia se conoce como refinamiento iterativo y se
detiene cuando krk o kyk son valores suficientemente pequeños. Nótese que se resuelven
varios sistemas con la misma matriz, por lo que la factorización LU, en teoría, sería de
gran utilidad.

a) Defina la matriz A ∈ 5×5 por aij = 0.9ij y el vector b = (1, 1, 1, 1, 1)T . Para el
sistema Ax = b, haga tres iteraciones, a partir de x0 = 0, de refinamiento iterativo
!
en (10, 5, −∞, +∞).
b) Implemente en MATLAB un rutina que realice el refinamiento iterativo.

6. Encuentre una solución aproximada de los sistemas dados, con al menos cuatro dígitos
significativos.
( 3x (
3(x − 2y)2 = qe y + 5 cos(x), x sen(y) + 2xy = 2π,
a) y 3
b)
4 ln(xy) = x
. ex−1 − x cos(y) = 2.

7. Verifique que la iteración xk+1 = g(xk ), k = 0, 1, 2, . . ., donde g = (g1 , g2)T , con g1 y g2


son funciones definidas por:
1 2 1
g1 (x1 , x2 ) = (x − x22 + 3), g2 (x1 , x2 ) = (2x1 x2 + 1),
3 1 3

tiene un punto fijo x = (1, 1)T . Luego, utilice el método de Newton para obtener una
aproximación, con una tolerancia de 10−6 .

8. Utilizando la iteración de Newton, diseñe un método que permita encontrar los extremos
relativos de una función. Luego, utilícelo para minimizar las funciones:

a) f (x, y) = ex (4x2 + 2y 2 + 4xy + 2y + 1)


b) f (x, y) = ex+y−1 + ex−y−1 + e−x−1

♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9. Implemente en MATLAB los métodos de Jacobi, Gauss-Seidel hacia adelante y SOR hacia
adelante. Luego, utilícelos para aproximar la solución de los siguientes sistemas lineales,
con x0 = 0, tol = 10−13 , iterMax = 1000 y ω = 1.1. Construya, en un mismo sistema de
coordenadas, una gráfica con el recorrido de la norma de los residuos en cada iteración,
para cada método y en cada sistema.
 

 4x1 + x2 − x3 + x4 = −2, 
 4x1 + x2 + x3 + x5 = 6,

 
x1 + 4x2 − x3 − x4 = −1, 

 −x 1 − 3x 2 + x 3 + x 4 = 6,
a)

 −x1 − x2 + 5x3 + x4 = 0, b) 2x1 + x2 + 5x3 − x4 − x5 = 6,
 
 x − x + x + 3x =
1 2 3 4 1. 

 −x1 − x2 − x3 + 4x4 = 6,


2x2 − x3 + x4 + 4x5 = 6.
4.3. Métodos iterativos 253

10. Diseñe una versión simétrica del método de Gauss-Seidel y de SOR. Sugerencia: considere
la iteración hacia adelante y hacia atrás a la vez.

♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11. Para el sistema no lineal (


x21 + x22 = 1,
5x21 + 21x22 = 9.
encuentre la función g que satisface las condiciones del teorema 4.15.

12. Suponga que la función g es una contracción en la norma-∞. Usando el hecho de que
1
kg(x) − g(y)kp = n p kg(x) − g(y)k∞ ,
−1
muestre que g es una contracción en la norma-p si L < n p .

13. Considere la iteración


xk+1 = xk + M−1 (b − Axk ), (4.15)
1
la cual aproxima la solución del sistema lineal Ax = b con A ∈ n×n
, M = I ,
α n
α ∈ − {0} y In la matriz identidad de orden n.

a) Suponga que A ∈ n×n es una matriz diagonalizable, cuyos valores propios son
positivos. Entonces, la iteración (4.15) converge para cualquier valor inicial x0 ∈ n
si y sólo si
2
0 < α < .
λmáx
b) Encuentre el valor αopt , el cual es el valor óptimo para α.

14. Considere una matriz tridiagonal n × n de la forma


 
α −1 0 ··· 0
 .. .. 
 −1
 α −1 . . 

 .. .. .. 
Tα =  0 . . . 0 ,
 
 .. ..
. −1

 . α −1 
0 ··· 0 −1 α
donde α es un parámetro real.

a) Verifique que los valores propios de Tα están dados por


 

λj = α − 2 cos , j = 1, . . . , n,
n+1
y un vector propio asociado para cada λj es
      T
jπ 2jπ njπ
qj = sen , sen , . . . , sen .
n+1 n+1 n+1
Bajo qué condiciones sobre α la matriz es definida positiva.
254 Capítulo 4. Solución de sistemas de ecuaciones

b) Ahora considere α = 2. ¿Las iteraciones de Jacobi y Gauss-Seidel convergen para


esta matriz? ¿Cuáles son los factores de convergencia?

15. Sea A ∈ n×n una matriz particionada de la forma A = (Aij ), donde se tienen N bloques
diagonales y cada bloque diagonal Aii es cuadrado y no singular.

a) Escriba las iteraciones de Jacobi, Gauss-Seidel y SOR en su versión por bloques para
el sistema lineal Ax = b. Sugerencia: considere A = L + D + U a nivel de bloques.
b) Si A es simétrica definida positiva, entonces muestre que U = LT y D es definida
positiva.

16. Considere la función vectorial f = (f1 , f2 )T , donde

f1 (x1 , x2 ) = x21 + x22 − 2, f2 (x1 , x2 ) = x1 − x2 .

a) Verifique que la ecuación f (x) = 0 tiene dos soluciones, x1 = x2 = 1 y x1 = x2 = −1.


 T
(1) (1)
b) Muestre que la primera iteración de Newton, x1 = x1 , x2 , es dada por:
 2  2
(0) (0)
x1 + x2 +2
(1) (1)
x1 = x2 =   .
(0) (0)
2 x1 + x2

(0) (0) (0) (0)


c) Deduzca que la iteración converge a (1, 1)T si x1 + x2 es positivo, y si x1 + x2
es negativo, la iteración converge a la otra solución.
d ) En el inciso anterior, verifique que la convergencia es cuadrática.
2 2
17. Sea f una función de a definida por
   2 
x x + y2 − 2
f = .
y x+y−2

a) Sea (x0 , y0 )T = (1 + α, 1 − α)T . Muestre que la sucesión (xn , yn )T generada por la


iteración de Newton, usando (x0 , y0)T como valor inicial, converge para α 6= 0.
b) ¿Cuál es el orden de convergencia de esta sucesión? ¿Corresponde al orden esperado?

18. Utilice el teorema 4.15, para demostrar el teorema 4.23.

4.4. Otros métodos iterativos


Los métodos iterativos considerados en la sección 4.3, se denominan los métodos iterativos
tradicionales y están basados en la sucesión de punto fijo. Sin embargo, existen otros métodos
que se basan en proyectar la solución del sistema Ax = b en el subespacio de Krylov, definido
por
Kk (A, v) = span{v, Av, . . . , Ak−1v}
4.4. Otros métodos iterativos 255

de dimensión k, asumiendo que que los vectores son linealmente independientes.


Uno de los métodos de proyección sobre el subespacio de Krylov, bastante utilizado por su
facilidad de implementación y alto orden de convergencia, principalmente en matrices grandes,
es conocido como el método de Gradiente Conjugado (CG por sus siglas en inglés, “Conjugate
Gradient”), el cual se considera en esta sección. Otro método igualmente famoso, pero para otro
tipo de matrices, es el método GMRES, el cual también se describe brevemente en esta sección.

4.4.1. Gradiente Conjugado (CG)


Antes de definir el método CG, primero se presentan algunas definiciones necesarias.

Definición 4.10.
Sea A una matriz simétrica definida positiva, se dice que los vectores u y v son A-
ortogonales si y sólo si

hu, viA = hAu, vi = hu, Avi = 0.

Nótese que si {d0 , . . . , dn−1 } es una familia de vectores A-ortogonales no nulos, entonces son
linealmente independiente, ya que para αi ∈ , i = 0, . . . , n−1, se puede considerar la ecuación
n−1
X
αi di = 0,
i=0

y multiplicando ambos lados de la igualdad por Adj , se tiene que


* n−1 +
X
αi di , dj = h0, dj i ,
i=0 A

de donde se obtiene que para todo j = 0, . . . , n − 1 se cumple que

αj hdj , dj iA = 0,

luego, como h·, ·iA es un producto interior y dj 6= 0, para j = 0, . . . , n − 1, entonces hdj , dj iA 6=


0, por lo que αj = 0 para j = 0, . . . , n − 1. Por lo tanto, la familia es linealmente independiente.
Por otro lado, si x̂ es la solución del sistema lineal Ax = b, entonces para todo j = 0, . . . , n − 1,
se cumple que
* n−1 + n−1
X X
hx̂, dj iA = αi di , dj = αi hdi , dj iA = αj hdj , dj iA ,
i=0 A i=0

ya que hdj , dj iA 6= 0 pues dj 6= 0, entonces se tiene que

hx̂, dj iA hAx̂, dj i hb, dj i


αj = = = .
hdj , dj iA hdj , dj iA hdj , dj iA
256 Capítulo 4. Solución de sistemas de ecuaciones

En resumen: una familia de n vectores A-ortogonales es una base de n , por lo que la solución
del sistema lineal Ax = b puede ser escrita como una combinación lineal de los elementos de
esta base.

Lema 4.6.
Sea {d0 , . . . , dn−1 } una base A-ortogonal y x0 ∈ n
arbitrario. Entonces la sucesión gene-
rada por
hdk , rk i
xk+1 = xk + αk dk , donde αk = ,
hAdk , dk i
determina la solución x̂ del sistema lineal Ax = b en a lo más n pasos.
n−1
P
Demostración. Considere x̂ − x0 = βi di , para βi ∈ , i = 0, . . . , n − 1. Luego, nótese que
i=0
xk ∈ x0 + span{d0 , . . . , dk−1 }, ya que
xk = xk−1 + αk−1 dk−1 = (xk−2 + αk−2 dk−2 ) + αk−1 dk−1 ,
k−1
X
= . . . = x0 + αi di .
|i=0{z }
∈ span{d0 ,...,dk−1 }
Luego, se tiene que
hAdk , xk − x0 i = hdk , A(xk − x0 )i = 0,
además,
0 = hAdk , xk − x0 i = hAdk , xk − x̂i + hAdk , x̂ − x0 i = hAdk , xk − x̂i + βk hAdk , dk i ,
por lo que,
hAdk , xk − x̂i hdk , A(xk − x̂)i hdk , rk i
βk = − = − = = αk .
hAdk , dk i hAdk , dk i hAdk , dk i
Como αk = βk , entonces eso quiere decir que en cada iteración se calcula de manera exacta
los coeficientes de la combinación lineal de la solución, por lo que en n iteraciones se habrá
calculado la solución exacta. 

Observación: Observe que si se tiene una familia de vectores A-ortogonales {d0 , . . . , dn−1 },
entonces la iteración xk+1 = x0 + αk dk definida en el lema 4.6, converge a la solución exacta
del sistema lineal Ax = b en no más de n iteraciones, donde A ∈ n×n . Por ejemplo, considere
   
2 −1 −7
A = y b = ,
−1 2 14
donde la solución del sistema Ax = b es dada por x = (0, 7)T . Luego, nótese que d0 = (1, 1)T
y d1 = (−1, 1)T son vectores A-ortogonales, por lo que considerando x0 = (0, 0)T , se tiene que:
     7 
hd0 , r0 i 0 7 1 2
x1 = x0 + d0 = + = 7 ,
hAd0 , d0 i 0 2 1 2
 7     
hd1 , r1 i 2
7 −1 0
x2 = x1 + d1 = 7 + = .
hAd1 , d1 i 2
2 1 7
4.4. Otros métodos iterativos 257

Por lo tanto, se alcanza la solución exacta en la segunda iteración, lo cual refleja la utilidad de
esta sucesión finita. Sin embargo, el problema de esta iteración yace en el alto costo de obtener
la familia A-ortogonal, pues implica realizar un proceso de ortogonalización (ver Gram-Schmidt
en la página 130). Así, una estrategia para reducir este costo computacional, utilizada en la
práctica, consiste en ir calculando dichos vectores, es decir ir ortogonalizando (con Gram-
Schmidt modificado, para evitar problemas de precisión finita), en cada iteración de la sucesión.
A este proceso se le conoce como el método de Gradiente Conjugado, el cual se define a
continuación:

1. r0 ← b − Ax0
2. d0 ← r0
3. Para k ← 0 hasta converger hacer
hrk , rk i
4. αk ←
hAdk , dk i
5. xk+1 ← xk + αk dk
6. rk+1 ← rk − αk Adk
hrk+1, rk+1 i
7. βk ←
hrk , rk i
8. dk+1 ← rk+1 + βk dk
9. Fin

Lema 4.7.
Muestre que en la iteración k del pseudocódigo anterior, los vectores {d0 , . . . , dk }, deno-
minados vectores directores, son A-ortogonales.

Demostración(por inducción). Para k = 1, se tiene que d0 = r0 y que


hr1 , r1 i
d1 = r1 + β0 d0 = (r0 − α0 Ad0 ) + d0 ,
hr0 , r0 i
hr0 − α0 Ad0 , r0 − α0 Ad0 i
= r0 − α0 Ad0 + d0 ,
hr0 , r0 i
luego, sustituyendo d0 = r0 y simplificando se obtiene que:
 
hr0 , Ar0i 2 hAr0 , Ar0 i
d1 = r0 − α0 Ar0 + 1 − 2α0 + α0 r0 ,
hr0 , r0 i hr0 , r0 i
   
1 2 hAr0 , Ar0 i
= r0 − α0 Ar0 + 1 − 2α0 + α0 r0 ,
α0 hr0 , r0 i
 
2 hAr0 , Ar0 i
= r0 − α0 Ar0 + −1 + α0 r0 ,
hr0 , r0 i
hAr0 , Ar0 i
= r0 − α0 Ar0 − r0 + α02 r0 ,
hr0 , r0 i
hAr0 , Ar0i
= α02 r0 − α0 Ar0.
hr0 , r0 i
258 Capítulo 4. Solución de sistemas de ecuaciones

Con esta forma para d1 , se tiene que


 
2 hAr0 , Ar0 i hAr0 , Ar0i
hd1 , d0 iA = α0 r0 − α0 Ar0, Ar0 = α02 hr0 , Ar0 i − α0 hAr0 , Ar0 i .
hr0 , r0 i hr0 , r0 i
hr0 ,r0 i
Ahora, sustituyendo por α0 = hAr0 ,r0 i
se tiene que:

hr0 , r0 i2 hAr0, Ar0 i hr0 , r0 i


hd1 , d0 iA = 2 hr0 , Ar0 i − hAr0 , Ar0i ,
hAr0 , r0 i hr0 , r0 i hAr0 , r0 i
hr0 , r0 i hAr0 , Ar0 i hr0 , r0 i hAr0 , Ar0i
= − = 0.
hAr0 , r0 i hAr0 , r0 i

Por lo tanto, d0 y d1 son A-ortogonales. Asumiendo que la familia {d0 , . . . , dk } son A-ortogonales,
falta probar que la familia {d0 , . . . , dk+1 } también lo es. Para ello, basta probar que hAdk , dk+1i =
0, pues para hAdi , dk+1 i, con i = 0, . . . , k − 1, se hace de manera análoga. Así,

hAdk , dk+1 i = hAdk , rk+1 + βk dk i = hAdk , rk+1i + βk hAdk , dk i ,


= hAdk , rk − αk Adk i + βk hAdk , dk i ,
= hAdk , rk i − αk hAdk , Adk i + βk hAdk , dk i ,
hrk , rk i hrk+1 , rk+1i
= hAdk , rk i − · hAdk , Adk i + · hAdk , dk i , (4.16)
hAdk , dk i hrk , rk i
| {z } | {z }
αk βk

luego, nótese que

hrk+1, rk+1 i = hrk − αk Adk , rk − αk Adk i = hrk , rk i − 2αk hAdk , rk i + αk2 hAdk , Adk i ,

por lo que

hrk+1, rk+1 i hAdk , rk i hAdk , Adk i


= 1 − 2αk + αk2 ,
hrk , rk i hrk , rk i hrk , rk i
hrk , rk i hAdk , rk i hrk , rk i2 hAdk , Adk i
= 1−2 · + 2 · ,
hAdk , dk i hrk , rk i hAdk , dk i hrk , rk i
hAdk , rk i hrk , rk i hAdk , Adk i
= 1−2 + . (4.17)
hAdk , dk i hAdk , dk i2

Luego, sustituyendo (4.17) en (4.16) se obtiene que:

hrk , rk i hAdk , Adk i


hAdk , dk+1 i = hAdk , rk i − +
hAdk , dk i
 
hAdk , rk i hrk , rk i hAdk , Adk i
1−2 + · hAdk , dk i ,
hAdk , dk i hAdk , dk i2
hrk , rk i hAdk ,✘Adki
✘✘✘
hrk , rk i hAd k ,✘
Adki
✘✘✘
= hAdk , rk i − ✘ ✘✘ + hAdk , dk i − 2 hAd ,
k k r i + ✘ ✘✘
,
✘✘✘hAdk , dk i ✘✘✘hAdk , dk i
✘ ✘

= hAdk , dk i − hAdk , rk i .
4.4. Otros métodos iterativos 259

Finalmente, por (h.i.), hAdk , dk−1 i = 0, por lo que


✿0
✘✘
hAdk , dk i = hAdk , rk + βk−1 dk−1 i = hAdk , rk i + βk−1✘
hAd
✘✘k , dk−1 i = hAdk , rk i ,
✘✘

por lo tanto, hAdk , dk+1 i = 0, con lo que los vectores son A-ortogonales. 

Observación: Otra forma de probar el lema anterior, es considerar la ortogonalización de


Gram-Schmidt sobre la base del subespacio de Krylov: Kk (A, r0 ). Por otro lado, en el algoritmo
4.10 se presenta el pseudocódigo del método de Gradiente Conjugado.

Algoritmo 4.10: CG.


Recibe: A ∈ n×n no singular, b ∈ n , x0 ∈ n valor inicial, tol ∈ , iterMax ∈ .
Retorna: k número de iteraciones usadas y x tal que Ax = b.

1 k←0
2 x ← x0
3 r ← b − Ax
4 d←r
5 tol ← tol · kbk2
6 nR ← krk2
7 Mientras que k < iterMax ∧ nR ≥ tol hacer
8 nR ← nR2 % producto interior: hr, ri
9 v ← Ad
nR
α←
10 hv, di
11 x←x+α·d
12 r←r−α·v
hr, ri
13 β←
nR
14 d←r+β·d

15 nR ← β · nR % norma del siguiente residuo
16 k ←k+1

Lema 4.8.
Sea A una matriz simétrica definida positiva y x0 un vector arbitrario en n . Si existe un
polinomio p(t) ∈ Pk tal que p(0) = 1 y |p(λ)| ≤ r, para todo λ ∈ σ(A), entonces el vector
xk de la iteración de Gradiente Conjugado satisface

kxk − x̂kA ≤ rkx0 − x̂kA ,

donde x̂ es la solución de Ax = b.

Demostración. (no se considera)


260 Capítulo 4. Solución de sistemas de ecuaciones

Definición 4.11.
El polinomio de Chebyshev Tn de grado n es definido para x ∈ [−1, 1] de la forma

Tn (x) = cos (n arc cos(x)) , para n = 0, 1, 2, . . .

En el ejercicio 6, se espera que el lector verifique que el polinomio de Chebyshev es realmente


un polinomio, además nótese que para todo n ≥ 0 y para todo x ∈ [−1, 1] se cumple que

Tn (1) = 1 y |Tn (x)| ≤ 1.

Finalmente, con este resultado y los lemas anteriores, a continuación se prueba la convergencia
del método de Gradiente Conjugado.

Teorema 4.24 (Convergencia de Gradiente Conjugado).


Sea A una matriz simétrica definida positiva y x0 ∈ n . El método de Gradiente Conju-
gado genera una sucesión (xm ) tal que
√ m
κ−1
kxm − x̂kA ≤ 2 √ kx0 − x̂kA ,
κ+1

donde κ es el condicionamiento espectral en la norma k · k2 y x̂ es la solución de Ax = b.

Demostración. Considere el polinomio de Chebyshev,

Tm (t) = cos (m arc cos(t)) , para todo t ∈ [−1, 1],

y nótese que para todo m, Tm (1) = 1 y |Tm (t)| ≤ 1, siempre que t ∈ [−1, 1]. Ahora, sea λmı́n el
menor valor propio de A, λmáx el mayor valor propio de A y φ : [λmı́n , λmáx ] → [−1, 1], tal que

λmáx + λmı́n − 2λ
φ(λ) = .
λmáx − λmı́n
Con esta definición, considere además,
1
p(λ) = · (Tm ◦ φ(λ)) ,
Tm ◦ φ(0)
1
y nótese que p(λ) es un polinomio, tal que p(0) = 1 y |p(λ)| ≤ Tm ◦φ(0) , para todo λ ∈ σ(A).
Luego, se tiene que
   
λmáx + λmı́n κ+1
Tm ◦ φ(0) = Tm = Tm ,
λmáx − λmı́n κ−1

donde κ = κ2 (A) = λλmáx

mı́n
, pues A es simétrica (ver ejercicio 5 de la página 224) y como A es
λmáx
definida positiva, entonces κ = λmı́n
.
4.4. Otros métodos iterativos 261

Luego, por el lema 4.8, se tiene que


1
kxm − x̂kA ≤ κ+1
 kx0 − x̂kA ,
Tm κ−1

así, para todo z ∈ [1, +∞[ se puede verificar que


1 √ m
Tm (z) ≥ 2
z+ z +1 ,
2

ya que para |t| ≥ 1 se tiene que Tm (t) = cosh m cosh−1 (t) , así luego se utiliza la identidad
cosh(θ) = 12 (eiθ + e−iθ ) para concluir la desigualdad.
κ+1
De esta forma, como κ−1
∈ [1, +∞[, entonces se cumple que
√ m
1 κ−1
κ+1
 ≤ 2 √ ,
Tm κ−1 κ+1
por lo tanto, finalmente se obtiene que
√ m
κ−1
kxm − x̂kA ≤ 2 √ kx0 − x̂kA . 
κ+1

Observación: Se puede apreciar que cuando κ ≫ 1, el término √κ−1 κ+1
se comporta como 1 −
2

κ+1
, el cual converge hacia 1, por lo que en este caso se predice una convergencia lenta del
método de Gradiente Conjugado. Además, la convergencia del algoritmo 4.10 no tiene porqué
seguir este estimado, ya que el residuo en el algoritmo 4.10 se calcula con la norma k · k2 , en
lugar de con la norma k · kA como sugiere el teorema anterior.

4.4.2. Residual mínimo generalizado (GMRES)


El método “Generalized Minimal Residual” (GMRES) fue presentado por Saad y Schutlz en [35]
y tiene por objetivo encontrar una aproximación a la solución del sistema lineal no simétrico
Ax = b de la forma xk = x0 + zk , de tal manera que la norma del residuo rk = b − Axk
sea minimizada en cada iteración, bajo una selección apropiada de zk . Para dicha selección se
considera el método de Arnoldi [3], el cual utiliza el método de Gram-Schmidt para calcular
una base l2 -ortonormal {v1 , v2 , . . . , vm } del subespacio de Krylov Km (A, rk ). En la práctica,
no se usa Gram-Schmidt debido a problemas de precisión, por tal razón en el algoritmo 4.11 se
presenta el método de Arnoldi utilizando el método de Gram-Schmidt modificado.
El método de Arnoldi produce m + 1 vectores l2 -ortonormales, almacenados como las columnas
de la matriz V, con los cuales se puede extraer una factorización de la matriz A, conocida como
la factorización de Arnoldi, dada por:
AVm = Vm+1 H̃m , (4.18)
donde Vm = ( v1 v2 . . . vm ) es la matriz n × m, cuyas columnas son la base l2 -ortonormal.
De igual manera Vm+1 = ( v1 v2 . . . vm vm+1 ). En el caso de la matriz H̃m de (m + 1) × m,
al eliminar su última fila, la cual es de la forma eTm+1 · hm+1,m , se puede extraer una matriz de
Hessenberg Hm de m × m, donde Hm = Vm T
AVm (Hm es matriz similar a A).
262 Capítulo 4. Solución de sistemas de ecuaciones

Algoritmo 4.11: Arnoldi.


Recibe: A ∈ n×n no singular (las columnas forman una base), q ∈ n vector inicial,
m ∈ cantidad de vectores a ortonormalizar, con m ≤ n.
Retorna: V ∈ n×(m+1) matriz ortonormal cuyas columnas son {v1 , v2 , . . . , vm },
H ∈ (m+1)×m matriz de Hessenberg superior.

1 d ← kqk2
2 Para i ← 1 hasta n hacer
3 t ← 1d · qi
4 qi ← t
5 vi1 ← t
6 w∈ n
7 Para k ← 1 hasta m hacer
8 w ← Aq
9 Para j ← 1 hasta k hacer
10 d←0
11 Para i ← 1 hasta n hacer
12 d ← d + vij · wi
13 Para i ← 1 hasta n hacer
14 wi ← wi − d · vij
15 hjk ← d
16 d ← kwk2
17 hk+1,k ← d
18 Si |d| = 0 entonces
19 Detener
20 Para i ← 1 hasta n hacer
21 t ← d1 · wi
22 qi ← t
23 vi,k+1 ← t

Ejemplo 4.22.
Dada la matriz  
2 −1 0
A =  −1 2 −1  ,
0 −1 2
el vector q = (1, 0, 0)T y m = 2. Encuentre las matrices Vm , Vm+1 , H̃m y Hm .
4.4. Otros métodos iterativos 263

Solución. Aplicando el algoritmo 4.11 a los datos dados, se obtiene que


   
1 0 0 2 1
V = Vm+1 =  0 −1 0  y H = H̃m =  1 2  .
0 0 1 0 1

De donde se obtiene que:



1 0  
2 1
Vm =  0 −1  y Hm = .
1 2
0 0

Luego, nótese que


  
  2 −1 0 1 0  
T 1 0 0  −1 2 1
Vm AVm = 2 −1   0 −1  = = Hm .
0 −1 0 1 2
0 −1 2 0 0


Volviendo con el método de GMRES, se desea resolver el problema de minimización mı́n krm k2 ,
zm ∈Km
para ello nótese que:

mı́n krm k2 = mı́n kb − Axm k2 = mı́n kb − A(x0 + zm )k2 = mı́n kr0 − Azm k2 ,
zm ∈Km zm ∈Km zm ∈Km zm ∈Km

realizando la factorización (4.18) tomando q = r0 y considerando zm = Vm ym , se tiene que:

mı́nm kr0 − AVmym k2 = mı́nm kr0 − Vm+1 H̃m ym k2 ,


ym ∈ ym ∈

1
como Vm+1 e1 = v1 = r,
entonces r0 = Vm+1 e1 kr0 k2 y con ello se tiene
kr0 k2 0


mı́nm kr0 − Vm+1 H̃m ym k2 = mı́nm Vm+1 (e1 kr0 k2 − H̃m ym ) .
ym ∈ ym ∈ 2

Debido a que las columnas de Vm+1 son ortonormales, entonces se obtiene el siguiente problema
de minimización:


mı́nm kJ (y)k2 , donde J (y) = kr0 k2 e1 − H̃m y . (4.19)
y∈ 2

Luego, para resolver el problema de cuadrados mínimos (4.19) se puede usar la factorización
QR, tomando en cuenta que el método de rotaciones de Givens [34, 12] es el más apropiado ya
que el problema (4.19) es lo que se denomina un problema de cuadrados mínimos de Hessenberg.
De esta manera se obtiene que Qm H̃m = R̃m y se denomina como Rm a la matriz que se obtiene
al eliminar la última fila de la matriz R̃m , de esta forma se tiene que resolver el problema de
cuadrados mínimos es equivalente a resolver el sistema triangular superior

Rm ym = gm ,

donde gm ∈ m es el vector obtenido al eliminar la última entrada del vector g̃ ∈ m+1 , con
g̃m = Qm kr0 k2 e1 . Así, en el algoritmo 4.12 se presenta el método de las rotaciones de Givens, el
264 Capítulo 4. Solución de sistemas de ecuaciones

Algoritmo 4.12: RotacionesGivens.


Recibe: x, y ∈ valores reales.
Retorna: c, s ∈ valor del coseno y del seno.

1 Si |y| ≥ |x| entonces


x
t←
2 y
1
s← √
3 1 + t2
4 c←s·t
5 Sino
y
6 t←
x
1
c← √
7 1 + t2
8 s←c·t

Algoritmo 4.13: Argmin.


Recibe: H ∈ (m+1)×m matriz de Hessenberg de Arnoldi, d = krk k2 .
Retorna: y ∈ m+1 aproximación al mínimo de J (x).

1 y1 ← d
2 % Factorización QR
3 Para i ← 1 hasta m hacer
4 q ← hii
5 k ← hi+1,i
6 c, s ← RotacionesGivens(q, k)
7 Para j ← i hasta m hacer
8 q ← hij
9 k ← hi+1,j
10 hij ← c · q + s · k
11 hi+1,j ← −s · q + c · k
12 yi+1 ← −s · yi
13 yi ← yi · c
14 % Resolver el sistema triangular superior
15 Para r ← 1 hasta m hacer
16 i← m+1−r
17 sum ← 0
18 Para j ← i + 1 hasta m hacer
19 sum ← sum + hij · yj
1
20 yi ← hii
(yi − sum)
4.4. Otros métodos iterativos 265

cual contibuirá en la construcción del sistema lineal Rm ym = gm , mientras que en el algoritmo


4.13 se ensambla y revuelve dicho sistema, con el fin de obtener el valor de ym .
Una vez calculado el vector ym se procede a corregir la aproximación xm de la forma

xm = x0 + Vm ym .

En el algoritmo 4.14 se presenta el método de GMRES reanudado (“Restarted GMRES”), el


cual es una variante del método GMRES que no ortonormaliza todos los vectores columnas de
A, si no unos cuantos (m), para que el costo computacional se disminuya.

Algoritmo 4.14: RestartedGMRES.


Recibe: A ∈ n×n no singular, b ∈ n , x ∈ n valor inicial, m ∈ cantidad de vectores
ortonormales, tol ∈ , iterMax ∈ .
Retorna: k número de iteraciones usadas y x tal que Ax = b.

1 k←0
2 r ← b − Ax
3 nrm ← krk2
4 tol ← tol · kbk2
5 Mientras que k < iterMax ∧ nrm ≥ tol hacer
6 V, H ← Arnoldi(A, r, m)
7 y ← Argmin(H, nrm)
8 nrm ← |ym+1 |
9 V ← Quitarle a V su última columna
10 y ← Quitarle a y su última entrada
11 x ← x + Vy
12 r ← b − Ax
13 k ←k+1

Observación: La gran ventaja que tiene el método GMRES sobre los métodos previamente
descritos, es que permite resolver sistemas lineales donde la matriz no necesariamente es simé-
trica. De hecho, en la práctica cuando se desea resolver un sistema lineal de manera eficiente,
es común utilizar Gradiente Conjugado cuando este es un sistema simétrico, mientras que si el
sistema no es simétrico se utiliza GMRES.
Finalmente, a continuación se presentan dos resultados útiles con respecto al manejo del método
GMRES reanudado. Donde las demostraciones de ambos resultados se pueden apreciar en [34].

Lema 4.9.
Sea A una matriz no singular, entonces el algoritmo de GMRES se interrumpe en el paso
j, es decir, hj+1,j = 0, si y sólo si la aproximación xj es la solución exacta.

Demostración. (no se considera)


266 Capítulo 4. Solución de sistemas de ecuaciones

Teorema 4.25.
Si A es una matriz definida positiva, entonces la iteración de GMRES(m) converge para
cualquier m ≥ 1.

Demostración. (no se considera)

Observación: Entre más grande es el valor de m, menor es el número de iteraciones que le


toma a GMRES converger, sin embargo, el costo es más alto debido a que debe ortonormalizar
y almacenar más vectores. Por eso en la práctica se utilizan valores pequeños de m. Para ilustrar
esto, considere una matriz simétrica definida positiva A ∈ 23652×23652 esparcida (ver apéndice
D), obtenida de discretizar una ecuación diferencial parcial por técnicas de elemento finito
discontinuo [8], la cual cuenta con 499418 entradas distintas de cero y el patrón de esparcidad
de la figura 4.5.

Figura 4.5: Patrón de esparcidad de una matriz esparcida.


Luego, resolviendo un sistema lineal con esta matriz, utilizando el método de Gradiente Conju-
gado tal y como se muestra en el algoritmo 4.10, con x0 = 0, iterMax = 1000 y tol = 10−6 se
obtiene convergencia en la iteración 368, con un tiempo de ejecución de 0.468 segundos. Ahora,
resolviendo el mismo sistema con GMRES, para varios valores de m y con el algoritmo 4.14, se
obtienen los resultados presentes en la tabla 4.3. De esta tabla se puede apreciar que cuando m
crece las iteraciones decrecen, sin embargo, el tiempo que se tarda para realizar una iteración
aumenta.
Finalmente, nótese que a pesar de que Gradiente Conjugado le tome tantas iteraciones, estas son
realizadas a mayor velocidad que GMRES y sin utilizar mucho almacenamiento de memoria.
Por lo que se puede intuir que para matrices simétricas Gradiente Conjugado es mejor que
GMRES, lo cual es cierto, pero se debe tener en cuenta que la ventaja de GMRES no es ser
4.4. Otros métodos iterativos 267

más rápido que CG, sino que es más general, debido a que permite trabajar con matrices no
simétricas, lo que no permite CG.

Número de Norma del Tiempo por Tiempo total


m
iteraciones (k) residuo (krk k2 ) iteración (seg.) (seg.)
5 827 7.053 × 10−8 0.041 33.571
−8
10 199 6.959 × 10 0.116 23.400
−8
15 89 6.590 × 10 0.231 20.561
−8
20 43 5.329 × 10 0.382 16.427
−8
25 27 6.392 × 10 0.570 15.397
−8
30 20 6.415 × 10 0.777 15.538
−8
35 16 6.938 × 10 1.037 16.599
−8
40 14 2.872 × 10 1.320 18.486
−8
45 11 5.035 × 10 1.634 17.971
−8
50 9 6.547 × 10 2.002 18.018

Tabla 4.3: Tabla de resultados obtenidos por GMRES.

Ejercicios (sección 4.4)

♦ Tradicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1. Considere el sistema lineal 


1 5
x1 + x2 = ,

2 21
 1 x1 + 1 x2 = 11 ,

2 3 84
T
el cual tiene solución (x1 , x2 )T = 16 , 17 .

a) Resuelva el sistema lineal mediante eliminación Gaussiana en (10, 2, −∞, +∞),


utilizando redondeo.
b) Repita el inciso anterior, pero utilizando CG.
c) ¿Cuál método da mejor resultado? Justifique a qué se debe que dé mejor resultado.

2. Suponga que A ∈ !805×805 es simétrica, con valores propios 1.00, 1.01, 1.02, . . ., 8.98,
8.99, 9.00 y también 10, 12, 16, 24. ¿Cuántas iteraciones del método de CG son necesarias,
para asegurar que el error inicial kx0 − x̂kA es reducido por un factor de 106 ?

♦ De programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Implemente en MATLAB el método GMRES (algoritmo 4.14) y realice algunos experi-


mentos numéricos que validen su implementación.
268 Capítulo 4. Solución de sistemas de ecuaciones

4. Considere el siguiente sistema lineal


    
1010101 −1009899 −990099 989901 x1 3009905
    
 −1009899 1010101 989901 −990099  x2   −3010095 
   =  .
 −990099 989901 1010101 −1009899  x3   −2989895 
989901 −990099 −1009899 1010101 x4 2990105

a) Utilice la instrucción: eig() de MATLAB, para determinar los valores propios de A.


b) Resuelva este sistema utilizando x0 = (0, 0, 0, 0)T , tol = 10−6 y iterMax = 1000.
Anote la solución obtenida y el número de iteraciones realizadas por los métodos:
Jacobi, Gauss-Seidel hacia adelante, Gradiente Conjugado y GMRES (m = 4).
c) Comente significativamente (para este problema), a qué se deben los resultados obte-
nidos por cada método en el inciso b).

♦ Avanzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5. Sea A ∈ n×n
una matriz simétrica definida positiva y sea b ∈ n
. Defina la función
cuadrática
1 T
z Az − zT b, z ∈ n ,
φ(z) =
2
y demuestre que donde se alcanza el mínimo de φ(z), es solución del sistema Ax = b.

6. La idea de este ejercicio es mostrar que el polinomio de Chebyshev es efectivamente un


polinomio, para ello primero pruebe la identidad trigonométrica:

cos ((n + 1)θ) + cos ((n − 1)θ) = 2 cos(θ) cos(nθ),

luego, demuestre que para x ∈ [−1, 1], se cumple la recursión:

Tn+1 (x) = 2xTn (x) − Tn−1 (x), n = 1, 2, 3, . . .

y utilice este resultado, junto a inducción matemática, para concluir que Tn es un polino-
mio de grado n.

7. Para n ≥ 1, verifique que los ceros del polinomio de Chebyshev Tn son de la forma:
 
(2j − 1)π
xj = cos , para j = 1, . . . , n.
2n

8. Sea {d0 , . . . , dn−1 } los vectores directores generados por el algoritmo de CG. Sea rk =
b − Axk , k = 0, . . . , n − 1. Entonces pruebe que

a) rk ∈ span{d0 , . . . , dn−1 }.
b) span{d0 , . . . , dn−1 } = span{r0 , Ar0 , . . . , An−1 r0 }.
c) r0 , . . . , rn−1 son mutuamente ortogonales.

También podría gustarte