3
4
Capı́tulo 1
RESOLUCIÓN NUMÉRICA DE
SISTEMAS DE ECUACIONES
LINEALES
1.1. Introducción
En este tema consideramos el problema de resolver numéricamente un sistema de
ecuaciones lineales:
a11 x1 + a12 x2 + . . . + a1n xn = b1 ,
a21 x1 + a22 x2 + . . . + a2n xn = b2 ,
.................. = ...
an1 x1 + an2 x2 + . . . + ann xn = bn ,
Actividad de ampliación: leer las secciones 6.3.1 y 6.3.2 del libro de Datta [2]
(ejemplos de fı́sica y quı́mica).
5
6 C. Pola
Actividad de ampliación: Leer ejemplo 3.2.1 de Datta [2] sobre la estabilidad del
método.
Para k = 1, 2 . . . , n − 1
Para i = k + 1, . . . , n calcular
(k−1)
aik
mik = − (k−1) ,
akk
(k) (k−1) (k−1)
bi = b i + mik bk .
Para j = k + 1, . . . , n
(k) (k−1) (k−1)
aij = aij + mik akj .
(k)
siendo, para k ≥ 1, A(k) = (aij ) con:
(k−1)
aij si i = 1, 2, . . . , k y j = 1, 2, . . . , n,
0 si i = k + 1, . . . , n y j = 1, 2, . . . , k,
(k)
aij = (k−1)
(k−1) aik (k−1)
aij − a si i = k + 1, . . . , n y j = k + 1, . . . , n;
(k−1) kj
akk
(k)
y b(k) = (bi ) con:
(k−1)
bi si i = 1, 2, . . . , k
(k) (k−1)
bi = (k−1) aik (k−1)
bi
− b
(k−1) k
si i = k + 1, . . . , n.
akk
Interpretación matricial
Mn−1 . . . M1 A = U,
RESOLUCIÓN NUMÉRICA DE SISTEMAS DE ECUACIONES LINEALES 9
A = LU, (1.2.2)
Esta interpretación matricial de la eliminación gaussiana nos sirve de base para men-
cionar algunas variantes computacionales del método. En concreto, los métodos de Crout
y Doolittle proporcionan una factorización LU calculando los elementos de los factores a
través de ciertas fórmulas deducidas de la ecuación A = LU .
Si se completa la factorización LU de A, la solución del sistema Ax = b puede ser
obtenida resolviendo los siguientes sistemas triangulares:
Ly = b,
U x = y.
En el siguiente resultado se evalúa el coste operativo del método (página 118 de Datta
[2]):
Ejercicio 1.2.4 Leer la sección 6.5.1 del libro de Datta [2]) sobre cómo evitar el cálculo
explı́cito de la inversa de una matriz.
x1 + x2 = 0,5,
1 0,5
(1 − )x2 = 1 − .
RESOLUCIÓN NUMÉRICA DE SISTEMAS DE ECUACIONES LINEALES 11
1 1 0,5 0,5
Sobre el ordenador, para suficientemente pequeño, 1 − = − y 1− = − ,
(c) (c)
de donde obtenemos: x2 = 0,5 y x1 = 0, que es un mal resultado. Sin embargo, si
cambiamos (pivotamos) el orden de las ecuaciones la dificultad ya no aparece. Luego no
se trata de una dificultad intrı́nseca del problema si no del método. Esto es, la eliminación
gaussiana sin pivotación, en el caso general, es inestable.
Motivados por situaciones como las del ejemplo anterior surge el interés de tener una
cota del error de redondeo de la eliminación gaussiana. Para ello es de utilidad la siguiente
notación:
Sean A, B ∈ IRn×n . Entonces denotamos
Definición 1.2.1 Una matriz P es una matriz de permutación si sus columnas son
una reordenación de las columnas de la matriz identidad.
(k) (k)
|ap,k+1 | = máx |ai,k+1 |,
k+1≤i≤n
Ejercicio 1.2.5 Aplicar la eliminación gaussiana con pivotación parcial para resolver el
sistema siguiente:
2x − y − z = 1
−x + y − 3z = 0
3x − 3y + 4z = 2
Mn−1 Pn−1 . . . M1 P1 A = U.
Desde el punto de vista teórico, basta que A sea inversible para que la elimininación
gaussiana con pivotación parcial pueda llevarse a cabo.
La eliminación gaussiana con pivotación parcial consigue acotar los elementos del
factor L como vemos en el siguiente resultado (ver pag. 112 de Golub y Van Loan [3]):
Teorema 1.2.3 Si
Mn−1 Pn−1 . . . M1 P1 A = U
corresponde a la eliminación gaussiana con pivotación parcial de A, entonces
P A = L̃U,
Ejercicio 1.2.6 Ver en el ejercicio 9 de la hoja de prácticas un tipo de matrices para las
cuales el factor de crecimiento es menor o igual a 2.
Ejercicio 1.2.7 Aplica la eliminación gaussiana con pivotación total para resolver el
sistema planteado en el ejercicio anterior.
Ejercicio 1.2.8 Leer las páginas 116, 117 y 125 de Datta [2] sobre detalles computacio-
nales de la implementación de la factorización LU .
Escalamiento
A = LLT , (1.2.4)
2. ALGORITMO DE CHOLESKY:
√
PASO 1: Calcular l11 = a11 .
ai1
Para i = 2, . . . , n, calcular li1 = .
l11
PASO 2: Para j = 2 . . . , n,
v
u
u j−1
X
2
calcular ljj = ta
jj − ljk
k=1
Para i = j + 1, . . . , n calcular
j−1
X
aij − lik ljk
k=1
lij = .
ljj
De ahı́ que el tamaño de los elementos de L está acotado en función del tamaño de
los elementos de la matriz a factorizar.
En casos extremos pueden aparecer algunas dificultades cuando los errores de redon-
deo causan que el valor de
j−1
2
X
ajj − ljk (1.2.5)
k=1
1.2.4. La factorización QR
El último método directo de resolución numérica de sistemas de ecuaciones lineales
que vamos a considerar utiliza la factorización QR. Con las técnicas vistas hasta el
momento, el uso de matrices elementales nos permite reducir matrices inversibles a forma
triangular. Ahora obtendremos la triangularización a través de matrices ortogonales que
tienen la interesante propiedad de conservar el tamaño de los vectores:
a. Es simétrica y ortogonal;
b. Hh = −h y Hv = v si v T h = 0;
c. det(H) = −1.
Implementación:
Ejercicio 1.2.10 Leer en el libro de Datta [2] los algoritmos que se indican a continua-
ción:
1. El algoritmo 5.4.1 (página 135).
Coste:
En el siguiente resultado (página 144 de Datta [2]): queda de manifiesto que el método
QR resulta caro computacionalmente frente a la emininación gaussiana.
Proposición 1.2.5 La resolución de Ax = b utilizando el método QR precisa de 2n3 /3
+ O(n2 ) flops.
Ası́ que, en general, para resolver un sistema de ecuaciones lineales por un método
directo se suele elegir la eliminación gaussiana con pivotación parcial, a no ser que se
desee primar la estabilidad sobre el coste.
Ejercicio 1.2.11 Leer las tablas 6.1 y 6.2 de la página 237 de Datta [2] donde se hacen
comparaciones del coste, factor de crecimiento y estabilidad para los métodos considerados
en los casos de matriz del sistema general o caso especial.
Teorema 1.2.5 (factorización QR de una matriz) Sea A ∈ IRn×n . Entonces existe una
matriz ortogonal Q y una matriz triangular superior R tal que
A = QR.
Notemos que si A es inversible, puede obtenerse una factorización QR tal que Rii > 0
para i = 1, . . . , n.
Para finalizar consideraremos algunas funciones de MATLAB relativas a la resolu-
ción de sistemas de ecuaciones lineales:
18 C. Pola
Ejercicio 1.2.12 Leer las páginas 123-124 del libro Higham [4] sobre la función “slash”de
MATLAB.
1.3. Normas
El análisis de los algoritmos que involucran matrices suele hacer uso de las normas
matriciales. Por ejemplo, la calidad de la solución numérica de un sistema de ecuaciones
lineales puede ser pobre si la matriz de coeficientes es “casi singular”. Para cuantificar
esa noción de “casi singular”necesitamos medir distancias en el espacio de matrices. Para
esas mediciones nos serán de utilidad las normas matriciales.
Empezaremos repasando algunas cuestiones ya conocidas sobre normas vectoriales,
para después tratar el tema de normas matriciales.
1. f (x) ≥ 0, ∀ x ∈ IRn .
2. f (x) = 0 ⇒ x = 0.
Todas las normas vectoriales en IRn son equivalentes en el sentido de que dadas dos
normas distintas: k.kv y k.kw , existen constantes α, β > 0 tales que:
Definición 1.3.2 Se llama radio espectral de una matriz A y se denota por ρ(A) al
número:
ρ(A) = máx |λ|,
λ∈σ(A)
Definición 1.3.3 Una norma matricial es una norma en el espacio vectorial IRn×n que
además verifica la propiedad multiplicativa:
Ejemplo: Una norma matricial muy usada es la norma de Frobenius definida por:
n
a2ij )1/2 .
X
kAkF = (
i,j=1
Ejercicio 1.3.1 kAkM = máx |aij | no define una norma matricial en IRn×n .
1≤i,j≤n
Definición 1.3.4 Si sobre IRn×n tenemos definida una norma matricial k.kM y sobre IRn
una norma vectorial k.kv , se dice que ambas son compatibles si verifican:
El siguiente resultado establece cómo obtener una norma matricial compatible con una
norma vectorial dada (ver página 92 de Watkins [6]).
20 C. Pola
define una norma matricial que se llama norma matricial subordinada a la norma
vectorial k.kv . Además ambas normas son compatibles.
kxkv = kxuT kM
Ejercicio 1.3.2 Probar que las normas matriciales subordinadas verifican: kIkM = 1.
Deducir que la norma de Frobenius no es una norma matricial subordinada.
ρ(A) ≤ kAkM .
RESOLUCIÓN NUMÉRICA DE SISTEMAS DE ECUACIONES LINEALES 21
Definición 1.3.5 Diremos que una sucesión de matrices {A(k) }k∈IN ⊂ IRn×n converge a
una matriz A ∈ IRn si lı́m kA(k) − AkM = 0, siendo k.kM cualquier norma matricial 2 .
k→+∞
Ejercicio 1.4.2
a. Probar que si se verifica kAk < |z|, (siendo k.k una norma matricial y z ∈ IR), entonces
la matriz A − zI es inversible.
b. Sea A ∈ IRn×n una matriz inversible. Demostrar que si S es una matriz singular,
1 kA − Sk
≤ .
kAkkA−1 k kAk
Del Ejercicio 1.4.2 se puede deducir alguna relación entre los conceptos de número de
condición y singularidad de matrices. En realidad se puede establecer la relación entre
el condicionamiento de una matriz y la distancia de esa matriz al conjunto de matrices
singulares 3 :
( )
1 kA − Skp
= mı́n : S singular (p = 1, 2 o ∞).
Condp (A) kAkp
2
Todas las normas matriciales en IRn×n son equivalentes.
3
La demostración queda fuera del contenido del curso.
22 C. Pola
Ası́ que un condicionamiento grande implica que la matriz está cerca de ser singu-
lar. Esta medida de proximidad a la singularidad es mejor que la que proporciona el
determinante (ver los dos ejemplos dados en la página 254 de Datta [2]).
Observación 1.5.1 A continuación presentamos cotas para el error kAε k/kAk asociado
a distintos métodos de resolución de sistemas.
Método LU con pivotación parcial: kAε k∞ /kAk∞ ≤ cn3 ρεM , siendo c una constan-
te y ρ el factor de crecimiento (ver página 610 de Datta [2]).
A continuación consideramos el caso general: estimar los efectos que los cambios en
los datos del problema (la matriz A y el vector b) producen sobre la solución del sistema
Ax = b (ver página 249 del libro de Datta [2]).
Teorema 1.5.1 Sean A una matriz n × n inversible, b ∈ IRn , b 6= 0, x̄ y z̄ las soluciones
respectivas de los sistemas:
Ax = b,
(A + Aε )z = b + bε ,
Si kA−1 kkAε k < 1, entonces
!
kx̄ − z̄k Cond(A) kAε k kbε |
≤ + ,
kx̄k kAε k kAk kbk
1 − Cond(A)
kAk
donde las normas vectoriales y matriciales que aparecen son compatibles.
Notemos que si tenemos acotado el error relativo en los datos por una constante :
Para finalizar esta sección presentamos un resultado que relaciona el residuo, el número
de condición y la precisión de la solución computada (ver página 253 de Datta [2]).
Observación 1.5.2
1. Debemos precisar que Cond(A) es un buen indicador del condicionamiento de un
sistema lineal, no del condicionamiento de cualquier otro problema asociado a la
matriz A.
24 C. Pola
x(k) = F (x(k−1) ),
kx(k) − x(k−1) k
≤ ε1 ,
máx {1, kx(k) k}
kAx(k) − bk ≤ ε2 (kbk).
RESOLUCIÓN NUMÉRICA DE SISTEMAS DE ECUACIONES LINEALES 25
donde ε1 > 0 y ε2 > 0 son dos parámetros dados en función de la precisión de la máquina.
Además, incluso cuando no se haya obtenido una aproximación aceptable, es deseable
parar la computación cuando el progreso es irrazonablemente lento o cuando se ha con-
sumido una cantidad especı́fica de recursos (por ejemplo tiempo de CPU). Con este fin se
suele fijar un número máximo de iteraciones a realizar por el algoritmo.
La idea consiste en elegir matrices M sencillas que permitan resolver el sistema (1.6.9)
con facilidad. Para este fin introducimos la siguiente descomposición de la matriz A, que
se supone inversible: A = L̃ + D̃ + Ũ , donde
M = D̃, N = −L̃ − Ũ .
ALGORITMO de Jacobi:
n
(k)
−
X (k−1)
xi = aij xj + bi
/aii , i = 1, . . . , n.
j=1
j 6= i
4
En este caso, la función que define el método viene dada por: F (x) = M −1 N x + M −1 b.
26 C. Pola
M = D̃ + L̃, N = −Ũ .
Convergencia
Estudiemos la convergencia de los métodos que siguen el esquema:
Proposición 1.6.2 Si la matriz del sistema verifica alguna de las siguientes condiciones:
n
X aij
i. r = máx | | < 1,
1≤i≤n
j=1,j6=i aii
n
X aij
ii. r = máx | |<1,
1≤j≤n
i=1,i6=j aii
Para los sistemas de ecuaciones lineales cuyas matrices verifiquen una de las dos condi-
ciones del resultado anterior, el método de Jacobi es convergente. En particular podemos
aplicar el resultado a las matrices diagonalmente dominantes en sentido estricto.
A continuación presentamos un resultado de convergencia para el método de Gauss-
Seidel que puede ser aplicado en el caso particular de matrices diagonalmente dominantes
por filas en sentido estricto.
Proposición 1.6.3 Sean {x(k) }k∈IN una sucesión generada con el método de Gauss-
n
X aij
Seidel y e(k) = x(k) − x̄. Si la matriz del sistema verifica: r = máx | | < 1,
j=1,j6=i aii
1≤i≤n
como un valor intermedio, y se toma como valor final de la nueva aproximación para la
i-ésima componente a
(k) (k) (k−1)
xi = ωx̂i + (1 − ω)xi , con ω ∈ IR, ω > 0. (1.6.12)
Estos dos pasos constituyen el llamado método de relajación (SOR 5 ). En realidad
este método desde un punto de vista formal puede formularse como en (1.6.9), tomando
1 1−ω
M = L̃ + D̃ y N = D̃ − Ũ .
ω ω
La teorı́a clásica del método SOR fue desarrollada por Young en 1950 en su tesis.
En el siguiente resultado se analiza la convergencia del método SOR en el caso de que
la matriz A sea simétrica definida positiva.
Teorema 1.6.2 (Ostrowski). Si A simétrica y definida positiva y ω ∈ (0, 2), entonces
SOR es convergente.
Este resultado se aplica frecuentemente ya que muchas matrices que aparecen en la
resolución numérica de ecuaciones diferenciales son simétricas y definidas positivas. Para
su demostración es útil el siguiente teorema que presenta una hipótesis equivalente a la
dada en el Teorema 1.6.1.
Teorema 1.6.3 Sea B ∈ IRn×n . Son equivalentes:
a. lı́m B k = 0.
k→+∞
b. ρ(B) < 1.
Observación 1.6.1 La elección de un valor óptimo para ω es una tarea difı́cil en general.
Definición 1.6.3 La cantidad −log(ρ(B)) se denomina tasa de convergencia del
método iterativo cuya matriz es B.
5
Successive Over-Relaxation
28 C. Pola
donde d(k) es un vector, llamado dirección de descenso (por verificarse que a lo largo de esa
dirección la función f decrece, al menos para desplazamientos suficientemente pequeños)
y ρk es un escalar que indica la longitud del desplazamiento (o paso) en esa dirección.
Una vez calculada dk , una forma de elegir la longitud del paso consiste en minimizar f a
lo largo de la lı́nea xk + ρdk :
esto es:
(d(k) )T r(k)
ρk = , con r(k) = b − Ax(k) . (1.6.15)
(d(k) )T Ad(k)
Para determinar las direcciones de descenso será útil la siguiente definición.
Definición 1.6.4 Un conjunto de direcciones {d(0) , d(1) , . . . , d(k) } ⊂ IRn son A-conjugadas
si verifican:
(d(i) )T Ad(j) = 0, para i 6= j. (1.6.16)
Proposición 1.6.4 Las direcciones A-conjugadas distintas de cero son linealmente inde-
pendientes.
Teorema 1.6.5 del subespacio en expansión Sea {d(0) , d(1) , . . . , d(n−1) } ⊂ IRn un
conjunto de direcciones A-conjugadas. Entonces, para cualquier x(0) ∈ IRn , los puntos
{x(k) : k = 1, . . . , n} calculados con las fórmulas (1.6.14) y (1.6.15) verifican que x(k) es
la solución de
Minimizar f (x) = 1 xT Ax − xT b
2
(P ) k ,
sujeto a x ∈ x0 + Bk
Mientras r(k) 6= 0,
Cálculo de la dirección:
• Si k = 0, d(0) = r(0) .
−(r(k) )T Ad(k−1)
• Si k > 0, d(k) = r(k) + βk−1 d(k−1) con βk−1 = .
(d(k−1) )T Ad(k−1)
(d(k) )T r(k)
Cálculo del desplazamiento: ρk = .
(d(k) )T Ad(k)
k = k + 1.
Observación 1.6.2 1. Las direcciones generadas por el método anterior, d(k) = r(k) +
(k−1)
βk−1 d , son A-conjugadas. Por ello y por verificarse que r(k) = −∇f (x(k) ) siendo
f la función definida en (1.6.13), el método recibe el nombre de gradiente conjugado.
4. Este método, desde un punto de vista teórico puede considerarse un método directo
(obtiene la solución en n iteraciones). Sin embargo, en la práctica realizar n itera-
ciones puede resultar demasiado caro, por lo que se implementa como un esquema
iterativo con los correspondientes criterios de parada. La idea de trabajar con el
método de gradiente conjugado como método iterativo es debida a Reid (1971).
√
5. En cuanto a la convergencia, definiendo kxkA = xT Ax, se puede probar que:
q k
Cond2 (A) − 1
kxk − x̄kA ≤ 2 q kx0 − x̄kA .
Cond2 (A) + 1
(ti , yi ) ∈ IR2 , i = 1, . . . , m
obtenidos en algún experimento cientı́fico y para los que se tiene alguna base teórica
para suponer que debieran estar sobre una recta, se desea determinar dicha recta: p(t) =
x1 + x2 t. Si los datos no son exactos (por ejemplo debido a errores en las mediciones), los
puntos no estarán alineados y por tanto no será posible encontrar x1 y x2 tales que
p(ti ) = yi para i = 1, 2, . . . , m.
i=1 i=1
o lo que es lo mismo, (
mı́n kAx − bk22 ,
2
x ∈ IR
siendo A ∈ IRm×2 la matriz cuya fila i-ésima es: (1 ti ) y b ∈ IRm tal que bi = yi para
i = 1, 2, . . . , m.
n
X
En general, si el modelo para aproximar los datos toma la forma: p(t) = xj Φj (t),
j=1
se obtiene el siguiente problema:
(
mı́n kAx − bk22 ,
(P ) n (1.7.18)
x ∈ IR
32 C. Pola
Para nuestro propósito nos será de utilidad ampliar la factorización QR, ya vista en
este tema, a matrices no cuadradas (ver página 158 de Watkins [6] o la Sección 5.4.2 de
Datta [2]):
R̂x = c,
" #
n c
donde c ∈ IR es tal que = QT b, siendo Q y R̂ como en el teorema anterior.
d
Ejercicio 1.7.1 Leer la Sección 7.8.2 de Datta [2], hasta la página 337, donde se tra-
tan cuestiones de implementación del método de Golub-Householder, el coste y la
estabilidad del método.
Teorema 1.7.3 Sea A ∈ IRm×n , m ≥ n con rango(A) = r < n. Entonces existen una
matriz de permutación P ∈ IRn×n , una matriz ortogonal Q ∈ IRm×m tales que
!
T R̂ R̃
Q AP = ,
0 0
R̂y = c − R̃z,
" #
r c
donde c ∈ IR es tal que = QT b y Q, R̂ y R̃ son como en el teorema anterior.
d
donde
Cond(A) = kAkkA† k8 .
siendo x(E) y x(c) las soluciones respectivas del problema inicial y del problema per-
turbado y bR 6= 0 y δbR las proyecciones sobre el subespacio R(A) de los vectores b
y δb respectivamente.
En el caso más general de estimar los efectos que las perturbaciones en los datos del
problema (en la matriz A, δA , y en el vector b, δb ) producen sobre la solución del
problema mı́nimo cuadrático de rango máximo se obtiene (ver página 244 del libro
de Golub y Van Loan [3]) la siguiente acotación:
kx(E) − x(c) k2 ε
2
≤ √ 2Cond2 (A) + η(Cond2 (A)) + O(ε2 ),
kx(E) k2 1 − η2
kδA k2 kδb k2
donde < ε, < ε, εcond2 (A) < 1 y η = kAx(E) − bk2 /kbk2 . Notemos
kAk2 kbk2
que en el condicionamiento del problema, además del condicionamiento de la matriz,
interviene el tamaño del residuo. Si el residuo es pequeño, en la cota tendrá más
peso el término del condicionamiento de la matriz que el término donde aparece
dicho condicionamiento al cuadrado.
Por otro lado, en relación a los residuos de ambos problemas, r(E) = Ax(E) − b y
r(c) = (A + δA )x(c) − (b + δb ), se tiene la siguiente desigualdad:
kr(E) − r(c) k2
≤ ε(1 + 2Cond2 (A)) + O(ε2 ).
kbk2
7
A† = (AT A)−1 AT es lo que se llama la inversa generalizada.
8
Generalizando el concepto de norma matricial a matrices rectangulares.
RESOLUCIÓN NUMÉRICA DE SISTEMAS DE ECUACIONES LINEALES 35
Ejercicio 1.7.2 Ver la Tabla 7.2 de la página 361 de Datta [2] donde se comparan dife-
rentes métodos.
3. Se tratará de evitar el cálculo de la inversa de una matriz, siempre que sea posible
(para calcular A−1 b es aconsejable resolver el sistema: Ax = b).
[1] Å. Björck. Numerical Methods for Least Squares Problems. SIAM, Philadelphia, 1996.
[2] B.N. Datta. Numerical Linear Algebra and Applications. Brooks/Cole, 1995.
[3] G.H. Golub and C.F. Van Loan. Matrix Computations. The Johns Hopkins University
Press, Baltimore and London, 1989.
[4] D.J. Higham and N.J. Higham. MATLAB Guide. SIAM, 2005.
[6] D.S. Watkins. Fundamentals of Matrix Computations. John Wiley & Sons, New York,
1991.
37