Sunteți pe pagina 1din 101

Análisis Numérico I

Apuntes de clase

por Pedro Merino


Semestre 2017A
Índice general

1 Introducción 1

2 Nociones preliminares 3
2.1 Normas vectoriales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Normas matriciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3 Introducción al análisis de errores 11


3.1 Análisis de condición normado . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Condicionamiento de un problema . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 Análisis de condición normado para la ecuación lineal: Ax = b . . . . . . . 19
3.4 Análisis de condición por componentes . . . . . . . . . . . . . . . . . . . . 22
3.5 Análisis de condición por componentes para una ecuación lineal: Ax = b . . 24
3.6 Estabilidad de un algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.7 Análisis progresivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.8 Análisis regresivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.9 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

4 Métodos directos para la resolución de sistemas lineales 35


4.1 Resolución de sistemas lineales triangulares . . . . . . . . . . . . . . . . . . 35
4.2 Eliminación Gaussiana y factorización LU . . . . . . . . . . . . . . . . . . 36
4.3 Estrategias de pivoteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Estrategias de escalonamiento . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.5 Refinamiento iterativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.6 Análisis de estabilidad del algoritmo de sustitución regresiva . . . . . . . . 45
4.7 Análisis de estabilidad del algoritmo de factorización LU . . . . . . . . . . 46
4.8 Algoritmo de Doolitle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.9 Método de Choleski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.10 Factorización QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.10.1 Reflexiones de Househölder . . . . . . . . . . . . . . . . . . . . . . . 51
4.10.2 Rotaciones de Givens . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.11 Mínimos cuadrados (aplicación de la factorización QR) . . . . . . . . . . . 57
4.12 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5 Resolución de sistemas a gran escala 63


5.1 Motivación: resolución de ecuaciones diferenciales parciales . . . . . . . . . 63
5.2 Métodos iterativos para sistemas lineales . . . . . . . . . . . . . . . . . . . 65
5.2.1 Métodos Iterativos Clásicos . . . . . . . . . . . . . . . . . . . . . . 66
5.3 Análisis de la convergencia de los métodos iterativos estacionarios. . . . . . 66
5.4 Convergencia de los métodos iterativos clásicos . . . . . . . . . . . . . . . . 68
5.5 Criterios de Parada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

iii
iv Apuntes de clase de Análisis Numérico I

5.6 Métodos de sobrerelajación sucesiva (SOR) . . . . . . . . . . . . . . . . . . 73


5.7 Aceleración Polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.8 Métodos descenso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.9 Algoritmo del Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . . . 79
5.10 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

6 Cálculo de Valores y Vectores Propios 87


6.1 Condicionamiento del cálculo de valores propios . . . . . . . . . . . . . . . 87
6.2 Resolución numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.1 Método de la potencia . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.2 Algoritmo QR para problemas simétricos . . . . . . . . . . . . . . . 90
6.3 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Capítulo 1

Introducción

El análisis numérico es un área de las matemáticas que tiene por objeto el desarrollo de
métodos para resolver numéricamente problemas matemáticos en diferentes areas de la
matemática, así como el estudio profundo de las propiedades analíticas de dichos métodos.
Los métodos numéricos se expresan mediante algoritmos, los cuales usualmente se
implementan usando un lenguaje de programación y se ejecutan en un computador elec-
trónico, el cual realiza un número finito de operaciones numéricas y lógicas, con el fin
de aproximar la solución de un problema matemático mediante una respuesta numérica.
Dado que un computador electrónico no puede representar de forma adecuada las can-
tidades que considera la teoría, y los métodos pueden tener comportamientos anómalos,
parte de la teoría del análisis numérico corresponde a el análisis de errores y al estudio
de la estabilidad de los algoritmos. La teoría del análisis de errores es indispensable para
conocer a fondo la naturaleza de un problema y las limitaciones de los métodos desarrolla-
dos para resolverlo. Mediante la caracterización del comportamiento de los errores de un
método, podemos identificar si una respuesta numérica es confiable o no. Además, que la
compresión de los errores generados nos permiten avizorar posibles soluciones y mejoras
a los problemas algorítmicos.
En este curso, nos centraremos principalmente en el estudio de las ecuaciones lineales
y los métodos numéricos asociados para resolver numéricamente dos tipos de problemas
importantes que provienen del álgebra y análisis lineal.

• Ax − b = 0 donde A es una matriz y b es un vector, ambos conocidos, y x es la


variable desconocida del problema. Este problema es conocido como una ecuación
lineal.

• (A−λI)x = 0, donde nuevamente A es una matriz dada y las variables desconocidas


son: un valor λ real o complejo, y el vector x. Este problema es conocido como
problema de valores propios.

Ambos problemas son de gran importancia en aplicaciones reales de la matemática. La


mayoría de métodos numéricos para resolver diversos problemas matemáticos (incluyendo
problemas no lineales) involucra la resolución de sistemas lineales y valores propios, o
versiones generalizadas de éstos como son los problemas de mínimos cuadrados y el cálculo
de valores singulares.
La mayoría de problemas en matemáticas no tienen una solución explícita y, si la
tienen, tales soluciones requieren ser implementadas por un computador para que sean
aprovechadas en la práctica. De aquí la importancia el análisis numérico, ya que este
aporta la teoría necesaria para aprovechar los resultados teóricos en aplicaciones prácti-
cas en la ingeniería, la medicina computacional, la simulación computacional y el cálculo

1
2 Apuntes de clase de Análisis Numérico I

científico en general. El análisis numérico cubre la necesidad de obtener métodos para re-
solver un problema matemático en particular; además, al mismo tiempo muchos métodos
desarrollados en el análisis numérico proveen técnicas poderosas para analizar problemas
teóricos. La generalidad de los resultados teóricos no es el único objetivo del análisis nu-
mérico. Los métodos estudiados en el análisis numérico son susceptibles de ser modificados
para aprovechar las particularidades de cada problema, con el fin de desarrollar métodos
que sean aplicables, más eficientes computacionalmente, más rápidos, más estables, etc;
y que tomen en cuenta las limitaciones tecnológicas para su aplicación.
Capítulo 2

Nociones preliminares

Una de las estructuras más comunes en análisis numérico es la matriz. Para dos enteros
positivos m y n, el conjunto de las matrices (compuestas por elementos reales) de tamaño
m×n será notado por Rm×n o Cm×n si los elementos de las matrices son números complejos.
A los elementos de Rn×1 los llamaremos vectores columna (o simplemente vectores si no
hay riesgo de confusión) y lo identificaremos con el espacio vectorial Rn . Rm×n tiene
una estructura de espacio vectorial lineal, por tanto utilizaremos las operaciones usuales
que proporciona dicha estructura: suma de vectores, multiplicación de un vector por un
escalar, etc.
La transpuesta de una matriz A se notará por A> , en particular, el transpuesto de un
vector columna x está dado por x> ∈ R1×n , el cual será llamado vector fila.
Si A tiene entradas complejas notaremos por A∗ o AH la matriz transpuesta y conju-
gada compleja de A.
Si A ∈ Rn×m diremos que es cuadrada si n = m, caso contrario diremos que A es
rectangular.
de una matriz cuadrada A ∈ Rn×n es la suma de los elementos de su diagonal,
La traza P
i.e. tr(A) = ni=1 aii .
La multiplicación de dos matrices A ∈ Rm×n y B ∈ Rn×p está definida por C = AB,
donde C ∈ Rm×p es un matriz cuyas entradas están definidas por
n
X
cij = aik bkj , i = 1, . . . , m, y j = 1, . . . , p. (2.1)
k=1

Definición 1. Un espacio (real) normado es un espacio lineal V sobre R, equipado con


una función k · kV : V −→ R+ ∪ {0} llamada norma, la cual satisface:

(a) kvkV ≥ 0, ∀v ∈ V , No negativa,

(b) kvkV = 0, ⇐⇒ v = 0,

(c) kαvkV = |α|kvkV , ∀v ∈ V y ∀α ∈ R, Homogeneidad,

(d) kv + wkV ≤ kvkV + kwkV , ∀v, w ∈ V . Desigualdad Triangular.

Si sólo se cumplen (a), (c) y (d), se dice que k · kV es una seminorma.


Recordemos que un espacio normado completo se llama espacio de Banach. A un
espacio normado V se lo nota por (V, k · k), o simplemente V si no hay ningún riesgo de
confusión.

3
4 Apuntes de clase de Análisis Numérico I

Definición 2. Sea V un espacio, donde se han definido dos normas: k · kp y k · kq . Se dice


que, éstas son normas equivalentes si existen dos constantes: αpq y βpq en R+ , tales
que:

αpq kxkq ≤ kxkp ≤ βpq kxkq , ∀x ∈ V. (2.2)

En espacios normados de dimensión finita, todas las normas son equivalentes.


Definición 3. Un operador lineal es una aplicación (V, k · kV ) → (X, k · kX ) que cumple
la propiedad:

A(αv + βw) = αAv + βAw, ∀v, w ∈ V y ∀α, β ∈ R.

Definición 4. Además, A es un operador acotado si existe una constante K > 0,independiente


de v, tal que
kAvkX ≤ KkvkV , ∀v ∈ V.
Recordemos que en dimensión finita, una aplicación lineal Ā : Rn → Rm , siempre está
representada por una única matriz A ∈ Rm×n , y viceversa. Por esta razón no se diferencia
en la notación Ā y A.
En particular, si {vi } y {wi }, con i = 1, . . . , n son bases de los espacios vectoriales
V y W , entonces existe una única aplicación lineal A : V → W tal que Avi = wi con
i = 1, . . . , n.
Además, se definen los siguientes subespacios asociados a A.

Ker(A) = {v ∈ V : Av = 0} ⊂ V,
Rang(A) = {w ∈ W : w = Av, v ∈ V } ⊂ W.

Recordemos brevemente que A es inyectiva si y sólo si Ker(A) = {0} y es sobreyectiva


si y sólo si Rang(A) = W . Además, si V es de dimensión finita, se cumple el uno de los
teoremas fundamentales del álgebra lineal:

dim(V ) = dim(Ker(A)) + dim(Rang(A)) (2.3)

Definición 5. Sea V un espacio (real) lineal. Una aplicación a : V × V → R es llamada


forma bilineal si cumple las siguientes propiedades:

a) a(αv + βw, x) = αa(v, z) + β(w, z), ∀(v, w, x) ∈ V × V × V y ∀(α, β) ∈ R × R,

b) a(v, αx + βy) = αa(v, x) + β(v, y), (v, w, x) ∈ V × V × V y ∀(α, β) ∈ R × R.

Si a es una forma bilineal en (V, k · k) entonces, a es:

1. acotada: si existe una constante k > 0, tal que: |a(v, w)| ≤ kkvkkwk, ∀(v, w) ∈
V × V.

2. simétrica: si a(v, w) = a(w, v), ∀(v, w) ∈ V × V.

3. antisimétrica: si a(v, w) = −a(w, v), ∀(v, w) ∈ V × V.

4. semidefinida positiva: si a(v, v) ≥ 0, ∀v, ∈ V.

5. definida positiva: si a(v, v) > 0, ∀v ∈ V, v 6= 0.


Nociones preliminares 5

6. coerciva: si existe una constante c > 0 tal que a(v, v) > ckvk2 , ∀v ∈ V.
7. producto escalar si a es simétrica y definida
p positiva, y en este caso se escribe h·, ·i
en lugar de a(·, ·). La aplicación: x 7→ hx, xi definida en un espacio con producto
escalar X, define una norma en X, llamada norma inducida.
Una propiedad muy importante de un producto escalar es la desigualdad de Cauchy-
Schwarz :
|hv, wi| ≤ kvkkwk, ∀v, w ∈ V.
donde la norma utilizada en el lado derecho corresponde a la norma inducida por el
producto escalar.

Observación 1.

• Un espacio donde se ha definido un producto escalar se llama espacio con producto


escalar o espacio pre-Hilbert. Si en un espacio con producto escalar todas las suce-
siones de Cauchy convergen; es decir, si el espacio es completo, el espacio se llama
espacio de Hilbert.
• El ángulo entre dos elementos no nulos de un espacio normado x y y se define como:
hx, yi
cos(θ) = ,
kxkkyk
por lo que dos vectores v y w se dicen ortogonales si cumplen que hv, wi = 0. Además,
se dice que dos espacios son ortogonales si los elementos de sus bases respectivas
son ortogonales entre si.

Ejemplo 1. Considere forma bilineal a definida en Rn como:


a(x, y) = x> y,
la cual coincide con el producto escalar usual de Rn . Si B ∈ Rn×n , se define a la forma
bilineal:
a(x, y) = x> By,

2.1 Normas vectoriales


En Rn se definen las siguientes normas.
n
! p1
X
• Normas Hölderianas: kxkp = |xi |p , con 1 ≤ p < ∞. (k · k2 corresponde
i=1
a la norma Euclideana usual en Rn ).
• Norma uniforme: kxk∞ = máx |xi |.
1≤i≤n

Lema 1. (Desigualdad de Young) Sean dos números reales no negativos a y b entonces


ap b q
ab ≤ + , (2.4)
p q
1 1
para cualesquiera p y q no negativos tales que + = 1.
p q
6 Apuntes de clase de Análisis Numérico I

p q
Demostración. Dado que log(ab) = log(a) + log(b) = log(a p ) + log(b q ) , entonces tenemos
que en virtud de la monotonía y la convexidad de la función exponencial se sigue que

1 1
log(ap ) + log(bq )
ab ≤ e p q
1 p 1 q
≤ elog(a ) + elog(b )
p q
1 1
= ap + bq .
p q

Dos desigualdades importantes corresponden a la desigualdad de Hölder y de


Minkowsky; la primera corresponde a:

|hx, yi| ≤ kxkp kykq , ∀(x, y) ∈ Rn × Rn , (2.5)

1 1
con p y q tales que + = 1.
p q

La conclusión es directa si p = 1 o p = ∞ o si uno de los vectores es nulo, por tanto


excluimos estos casos. Si consideramos los vectores x y y no nulos, podemos estimar


Xn
|hx, yi| = xi y i


i=1
n
X |xi | |yi |
≤ kxkp kykq
i=1
kxkp kxkq
aplicando la desigualdad de Young, se tiene
n
X |xi |p |yi |q
≤ kxkp kykq
i=1
pkxkpp qkxkqq
 
1 1
≤ kxkp kykq + = kxkp kykq ,
p q

La desigualdad de Minkowsky establece que:

kx + ykp ≤ kxkp + kykp , ∀(x, y) ∈ Rn × Rn y para p ∈ [1, +∞], (2.6)


en efecto
n
X
kx + ykpp = |xi + yi |p
i=1
Xn
= |xi + yi |p−1 |xi + yi |
i=1
n
X n
X
p−1
≤ |xi + yi | |xi | + |xi + yi |p−1 |yi |.
i=1 i=1
Nociones preliminares 7

Aplicando la desigualdad de Hölder en los productos anteriores tenemos que:


n
! 1q n
! p1 n
! 1q n
! p1
X X X X
kx + ykp ≤ |xi + yi |(p−1)q |xi |p + |xi + yi |(p−1)q |yi |p .
i=1 i=1 i=1 i=1

1 1 p+q p
y como 1 = + = implica que pq − q = p de donde q
= p − 1. Consecuentemente
p q pq
n
! 1q
X  
kx + ykpp ≤ p
|xi + yi | kxkp + kykp
i=1
 
= kx + ykpp−1 kxkp + kykp ,

de donde se obtiene (2.6).


Las constantes de equivalencia αpq y βpq que satisfacen (2.2), para diferentes normas
vectoriales definidas en Rn , se encuentran en la siguiente tabla:
αpq q=1 q=2 q=∞ βpq q=1 q=2 q=∞

p=1 1 1 1 p=1 n
1
1 √n
p=2 √
n
1 1 p=2 1 1 n
1 1
p=∞ n

n
1 p=∞ 1 1 1

2.2 Normas matriciales


En Rn×m se definen las siguientes normas:
kAxkp kAxk
• Normas Hölderianas (inducida) kAkp = sup , en general, kAk = sup
x6=0 kxkp x6=0 kxk
define una norma en Rn×m .
v v
umin{m,n}
u n
uX u X
p
• Norma de Frobenius kAkF = t |aij |2 = tr(AH A) = t σi 2 , donde
i,j i=1
σi valor singular de A (las raíces cuadradas de los valores propios de A> A).
p p
• Norma espectral kAk = ρ(AH A) = máx σ(A), donde σ(A) := conjunto de
todos los valores singulares de A.
n
X
• kAk∞ = máx |aij |. (inducida por la norma vectorial k · k∞ )
i=1,...,m
j=1

m
X
• kAk1 = máx |aij |.(inducida por la norma vectorial k · k1 )
j=1,...,n
i=1

Definición 6. Sea k · kM una norma matricial, y k · kV1 , k · kV2 dos normas vectoriales,
entonces decimos que k · kM es compatilbe o consistente con con la normas vectoriales
k · kVi , i = 1, 2 si,
kAxkV1 ≤ kAkM kxkV2 ,
y decimos que k · kM es submultiplicativa si
kABkM ≤ kAkM kBkM , para cualquier par de matrices A, B.
Tenemos las siguientes observaciones respecto de la definición anterior:
8 Apuntes de clase de Análisis Numérico I

• Las normas matriciales inducidas por una norma vectorial son siempre compatibles.

• Si k · k es una norma matricial inducida, entonces kIk = 1.

• Si k · k es una norma matricial inducida, entonces kABk ≤ kAkkBk (i.e. k · k es


submultiplicativa).

En lo que sigue, salvo que se especifique lo contrario, trabaremos con normas consisten-
tes y submultiplicativas. La equivalencia de normas matriciales, representada por una
desigualdad análoga a (2.2):

αpq kAkq ≤ kAkp ≤ βpq kAkq , ∀A ∈ Rm×n . (2.7)

Las constantes de equivalencia para los casos especiales se listan a continuación:

αpq q=1 q=2 q=∞ βpq q=1 q=2 q=∞


√1 1 √
p=1 1 p=1 n
n n
√1 √m
p=2 √1 1 √1 p=2 n 1 m
m
1
n √
p=∞ √1 1 p=∞ n n 1
m m

2.3 Ejercicios
kAxk
1. Demuestre que si k · k es una norma vectorial, entonces |kAk| := sup define
x6=0 kxk
una norma sobre el espacio de las matrices Rm×n .

2. Demuestre que una norma matricial inducida por una norma vectorial es compatible
con la norma vectorial que la induce.

3. Demuestre que la norma matricial inducida kAk∞ se puede calcular como kAk∞ =
n
X
máx |aij |.
i=1,...,m
j=1

4. Demuestre que para A ∈ Rn×m , kAk1 = kA> k∞ .

5. Pruebe que para una norma matricial inducida k · k, se tiene siempre que kIk = 1,
donde I denota la matriz identidad, y que kABk ≤ kAkkBk. ¿Para qué norma
matricial no se cumple kIk = 1?.

6. Verifique los axiomas de norma para la norma espectral.


kAxk2 p
7. Demuestre la identidad kAk2 := sup = ρ(AAH ).
x6=0 kxk2

8. Verifique los axiomas de norma para la norma de Frobenius y verifique que además
es submultiplicativa.

9. ¿Cómo se caracteriza la norma de Frobenius para una matriz simétrica definida


positiva?
P  1q
m×n m Pn q
10. Demuestre que si A ∈ R entonces kAk`q := i=1 j=1 |aij | define una
norma matricial, para q ≥ 1.
Nociones preliminares 9

11. Demuestre que la norma kAk∆ := máx(|aij |) es una norma, y además que no es
i,j
submultiplicativa.

12. Considere las siguientes funciones:


m
X
N1 : Rm×n → R : A 7→ máx |aij |
1≤j≤n
i=1
1
N2 : R → R : x 7→ (x> Bx) 2 ,
n

donde B ∈ Rn es una matriz simétrica definida positiva.

(a) ¿Es N1 una norma matricial?


(b) ¿Es N2 una norma vectorial?
(c) ¿Satisfacen la propiedad de compatibilidad N2 (Ax) ≤ N1 (A)N2 (x) para cual-
quier matriz A ∈ Rn×n y todo x ∈ Rn ?

13. Para enteros m y n se cosidera el espacio E := Rn × Rm . Para (x, y) ∈ E se define


la función Np,q (x, y) := k(kxkp , kykq )kR2 , donde la norma de R2 se toma como la
norma uniforme y p, q ≥ 1. Demuestre que Np,q define una norma en E.
10 Apuntes de clase de Análisis Numérico I
Capítulo 3

Introducción al análisis de errores

El análisis de errores es uno de los puntos nodales del análisis numérico. No solamente
es necesario establecer métodos para la resolución numérica de un problema, sino que es
necesario investigar su naturaleza numérica y los métodos creados para su resolución. De
este estudio se derivan dos conceptos muy importantes en el análisis de errores: el condi-
cionamiento de un problema y la estabilidad de un algoritmo, lo cuales introducimos
formalmente durante el desarrollo de este capítulo. El principal propósito del análisis nu-
mérico es desarrollar y estudiar métodos eficientes para resolver numéricamente problemas
matemáticos que surgen de las aplicaciones prácticas. Esto no sería posible sin la teoría
de perturbación y análisis de errores ya que al conocer los posibles errores se cometen y
su caracterización podemos pensar en estrategias para minimizarlo.
Lo que entendemos por error es la distancia que existe entre la solución de un problema
y un elemento “cercano” a dicha solución. A éste elemento “cercano” será llamado solución
aproximada. Los resultados numéricos son afectados por diferentes fuentes de error que
se propagan durante la resolución de un problema y finalmente provocan errores en las
respuestas. Como veremos, en general no es posible evitar el error, pero en muchos casos
es posible establecer cotas superiores e inferiores.

Ejemplo 2. Imaginemos por un momento que disponemos de un calculador con 4 dígitos


y queremos resolver con éste el siguiente sistema de ecuaciones lineales:

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

El sistema anterior en nuestro calculador se representaría como:

(1e − 4)z x1 + 1,0000 x2 = 1,0000,


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

La solución exacta con 4 dígitos es x1 = 1,0000 y x2 = 0,9999. Verifiquemos que


satisfacen nuestros sistema.

1e − 4 · 1,0000 + 1,0000 · 0,9999 = 0,0001 + 0,9999 = 1,0000


y
1,0000 · 1,0000 + 1,0000 · 0,9999 = 1,9999 ≈ 2,0000

Si multiplicamos la primera ecuación por −1e+4 y la sumamos con la segunda obtenemos:

11
12 Apuntes de clase de Análisis Numérico I

−1,0000 x1 −1e + 4 x2 = −1e + 4,


+ 1,0000 x1 +1,0000 x2 = 2,0000.
(3.1)
= −9999 x2 = −9998,

de donde tenemos la solución aproximada x̂2 = 9999/9998 ≈ 1,0000 (usando 4 dígitos de


precisión) y por tanto de reemplazando este valor en la primera ecuación se tiene

1e − 4 x1 + 1,0000 · 1,0000 = 1,0000

de donde la solución aproximada para x1 es x̂1 = 0,0000 6= x1 = 1,0000. Esta discrepancia


de resultados nos lleva a la pregunta de si el problema es la forma en que resolvemos
el sistema o es un problema de los datos. Después de todo, el coeficiente de la primera
1
ecuación de este ejemplo: 10000 parecería estar en otra escala respecto de los demás. Ve-
remos más adelante que al resolver un problema numérico los errores cometidos pueden
ser analizados estudiando, por un lado, la naturaleza del problema; y por otro, el método
de su solución.
Comencemos entonces por entender la naturaleza de las diferentes posibles fuentes de
error.

DATOS −→ ALGORITMO −→ RESULTADOS


Errores de redondeo Errores de redondeo
Errores de truncamiento Errores de truncamiento Errores en los
Suposiciones ideales Errores de convergencia resultados
Mediciones imprecisas Errores de discretización
Errores pequeños + Errores pequeños = Errores pequeños?

Para responder a la pregunta de cuan pequeños son los errores en los resultados, si se
comenten errores pequeños en los datos primero precisemos lo que entendemos por error.
Sea x̄ ∈ R una solución exacta y x̂ un valor que aproxima a x̄, entonces se definen los
siguientes errores:

Error absoluto: |x̄ − x̂|,


|x̄ − x̂|
Error relativo: , x 6= 0.
|x̄|

En espacios normados se definen estos errores análogamente, reemplazando el valor ab-


soluto por la norma del espacio. Al valor e(x̂) := x̄ − x̂ nos referiremos simplemente como
error. En general, no es fácil calcular un error “exacto” o simplemente no es posible cono-
cerlo a priori en todos los casos. Por esta razón, a menudo el objetivo principal es buscar
las “mejores” cotas superiores e inferiores para los tipos de error definidos anteriormente.
Observemos que el error relativo suele ser más significativo que el error absoluto, en
el sentido de que el error relativo se interpreta como un error en porcentaje. Este está en
relación al tamaño del dato con respecto al cual medimos el error.
Consideremos el siguiente ejemplo:

Ejemplo 3. Tomemos los valores exactos y aproximados como sigue:


Introducción al análisis de errores 13

A) B)
x̄ = 0,5 × 10−4 x̄ = 5000
x̂ = 0,4 × 10−4 x̂ = 4950
Error absoluto 0,1 × 10−4 50
Error relativo 0,2(20 %) 0,01(1 %)

Continuando con la discusión sobre el análisis de errores consideramos una de las prin-
cipales fuentes de error en los datos: la representación de un número en un computador
electrónico. En un computador no tenemos a disposición todos los números reales. Es-
ta limitación de orden tecnológico se debe que la capacidad de almacenamiento de un
computador es finita, pero por otro lado sabemos que no en general los números reales
no tiene una representación finita común. Al no tener todos los números reales se hace
necesario la consideración de problemas matemáticos adicionales. En particular, surge el
problema de cómo representar un número real tomando en cuenta la disponibilidad de
memoria de computador electrónico y la forma en que se almacenan los números en ésta.

Representación en punto flotante


Un número z de punto flotante tiene la forma

z = ade , (3.2)

donde:
`
X
a=v ai d−i , : es llamada mantisa y v ∈ {1, −1}, a es 0 o un número tal que
i=1
ai ∈ {0, 1, . . . , d − 1}, a1 6= 0 (normalizado) y d−1 < |a| < 1.

d : es la base y en general es: una potencia de 2, o 10.


e : es el exponente, tal que e ∈ {emin , . . . , emax } ⊂ Z.
`∈N : determina la precisión de la representación.
Es común usar la notación abreviada

± 0.a1 a2 a3 · · · a` · de (3.3)

Los números: `, emax , y emin determinan los números que se pueden representar en un
computador. En base a estos parámetros se define el conjunto de los números representa-
bles notado por F, el cual consiste en el conjunto de todos los números de punto flotante
que tienen la forma (3.2).
Todo número x ∈ R que satisface:

demin −1 ≤ |x| ≤ (1 − d−` )demax , (3.4)

puede ser representado por un número en F, y ésta se conoce conoce como representación
de punto flotante de x y se notará por x̂ o f l(x).
Si |x| es menor que el número representable más pequeño, es decir, |x| < demin −1 , se
llama “underflow”, mientras que si |x| > demax (1 − d−` ), se llama “overflow”. En ambos
casos se excede la capacidad de representación de una máquina.
Es usual también representar a la mantisa a como:

a = (0.a1 a2 . . . a` )
14 Apuntes de clase de Análisis Numérico I

donde la posición de cada coeficiente ai indica que éste multiplica a la d−i para i =
1, 2 . . . , `.

Ejemplo 4. Por ejemplo, si queremos representar el número π con una precisión eps =
10−7 entonces se tiene que:

π 7→ f l(π) = 3,141593, ⇒ |f l(π) − π| ≤ π · eps,

con lo cual π no se diferencia de otro valor, por ejemplo de 3,14159265.


Si un número que es el resultado de una operación no es representable en la máquina,
entonces existen dos formas de ser representado:

• Truncamiento: en este método, el número con z = (0.a1 a2 . . . a` a`+1 . . .)de , se


representa por ẑ = f l(z) = (0.a1 a2 . . . a` )de , y por otro lado

• Redondeo: éste método consiste en sumar 5 en la posición `+1: (0.a0 a1 . . . a` a`+1 +


5 . . .)de y luego aplicar el método de truncamiento.

De estos métodos, el método del redondeo es el que produce menos error, pero a cambio
introduce una operación adicional y por tanto un costo computacional mayor.
De la relación (3.4), el error relativo de la representación en punto flotante se puede
estimar como:

d1−`

|x − f l(x)| para redondeo simétrico (rounding),
≤ eps := 2
1−`
|x| d para truncamiento (chopping).

Por convención se considera 00 = 0 y x0 = inf , para x 6= 0. A eps se le conoce


como la precisión de la máquina o épsilon de la máquina y es el número más pequeño
que pertenece a F. Sin embargo, en muchos sistemas se utiliza una precisión relativa; es
decir eps depende del número representado. Por ejemplo, en MATLAB, el comando eps
devuelve por defecto tal que 1 + eps es el número representable más cercano mayor que
1. Por ejemplo, en MATLAB:

>> (1+eps)-1
ans =
2.220446049250313e-16

mientras que la misma operación con 2 resulta en:

>> (2+eps)-2
ans =
0

es decir, MATLAB no distingue 2 + eps de 2, pero si distingue 1 + eps de 1.

La “palabra” o número usual en el sistema estándar de punto flotante, que es el que


MATLAB usa por defecto, tiene 64 bits; de éstos, 52 bits son dedicados a la representación
de la mantissa, mientras que el resto se usan para almacenar el signo y el exponente. Por
tanto el eps es
d1−` 21−52
eps = = ≈ 2,2 × 10−16 .
2 2
Introducción al análisis de errores 15

Operaciones de punto flotante


Consideremos el siguiente ejemplo:
Pn
Ejemplo 5. Sea a = 10, queremos realizar la operación a + i=0 ε. Para la cual, sabemos
que:

((((a + ε) + ε) + ε) + · · · + ε) = a + (ε + · · · + ε).

Ahora, si se implementan estas dos operaciones en dos funciones distintas en Matlab,


se observarán resultados distintos para cada una de ellas. Esto ocurre debido a que las
operaciones que se efectúan en un computador no son exactas, y por lo tanto no satisfacen
la propiedad de asociatividad.
Consideramos entonces las operaciones aritméticas {+, −, ·, /} y sus versiones respec-
tivas, llamadas de punto flotante: {+̂, −̂,ˆ·, /̂}.
En general, supondremos que el error relativo que se comete al realizar una operación
aritmética de punto flotante ◦ ∈ {+, −, ·, /} entre dos números x y y en F es de  = (x, y),
satisface el siguiente modelo operacional estándar:

xˆ◦y − x ◦ y
= ⇐⇒ xˆ◦y − x ◦ y = (x ◦ y),
x◦y

de donde se concluye que la operación no es asociativa. En general, se puede evitar la


propagación de errores en la suma si se la realiza tomando un orden ascendente en valor
absoluto.

Acumulación de errores de redondeo


Además de los efectos de overflow y underflow que ocurren cuando excedemos la capacidad
de representación de la máquina; es decir cuando un resultado no se encuentra en F, en
general podemos identificar tres situaciones que magnifican los errores de redondeo cuando
utilizamos operaciones de punto flotante:

1. Si dos números x y y en F difieren significativamente en magnitud x + y tiene un


error absoluto grande.

2. Si |y| << 1, entonces x/y puede provocar errores absolutos y relativos muy grandes.
Lo mismo ocurre para x · y y |y| >> 1.

3. Si x ≈ y y tienen mismo signo x − y tiene un error relativo muy grande, conocido


como error de cancelación.

Ejemplo 6. Si x es un número real suficientemente mayor que 1. ¿Cómo debería calcularse


la expresión r r
1 1
x+ − x−
x x
para que ésta sea numéricamente más estable?

2
1. q q 
1 1
x x+ x
+ x− x
16 Apuntes de clase de Análisis Numérico I
r r
1 1
2. x + − x −
x x
s r r
1 1
3. 2x − 2 x + x−
x x
√ √
x2 + 1 − x2 − 1
4. √
x

Ejemplo 7. Overflow en el cálculo de la norma. La fórmula para calcular la norma


euclidiana de un vector es:
q
kxk2 = x21 + x22 + . . . + x2n

La cual fácilmente puede incurrir en overflow a pesar de que las componentes del vector
estén en F. Por ejemplo, si x1 = 1060 , en el proceso de cálculo tendremos que calcular x21 =
10120 que no puede ser representado y nos lleva a un cometer un overflow. Sin embargo,
este problema puede ser fácilmente solucionado parcialmente si usamos la fórmula calcular
la norma euclidiana de un vector es:
p
kxk2 = s (x1 /s)2 + (x2 /s)2 + . . . + (xn /s)2 ,

con s = 1060 , u otro valor normalizante. Note que si existen valores pequeños en las
componentes xi . Por ejemplo si xi = 1 entonces xi /s puede, por otro lado, incurrir en un
underflow, i.e. xi /s = 10−60 ≤ eps y se reconoce como 0.

3.1 Análisis de condición normado


Notación de las cantidades o y O
Sean f y g dos funciones definidas en un abierto U = B(a, δ) subconjunto de un espacio
normado V en otro espacio normado X. Utilizaremos la siguientes notaciones :

• f (x) = O(g(x)), cuando x → a; si se verifica que f (x) = Cg(x) para cierta


constante C y |x − a| < δ.
kf (x)k
• f (x) = o(g(x)), cuando x → a; significa que lı́m = 0.
x→a kg(x)k

Igualdad en orden: =
˙
Considere la expansión en serie de Taylor de orden 2 de la función seno, notada por sin,
alrededor de 0. Esto es
1 1
sin(x) = sin(0) + cos(0)x − sin(ξ)x2 = x − sin(ξ)x2 , con ξ ∈ [0, x].
2 |2 {z }
=o(|x|)=O(|x|2 )

De lo anterior concluimos que sin(x) → x cuando x → 0, en otras palabras, la función seno


se comporta como la función x alrededor del punto 0, excepto por el residuo 21 sin(ξ)x2 que
es una cantidad que podemos considerar como el error de orden cuadrático al aproximar
la función sin(x) por la función identidad cerca de 0.
Introducción al análisis de errores 17

Utilizaremos la notación:

sin(x)=x
˙ ⇐⇒ sin(x) = x + o(|x|).

Definición 7. Dadas dos funciones g, h : Rn → Rm , se dice que son iguales en


orden para x → x0 , si, y sólo si

g(x) = h(x) + o(kh(x)k), y se nota g(x)=h(x),


˙ para x → x0 ,

kg(x)k
donde o(kh(x)k) significa que lı́m =0.
x→x0 kh(x)k

˙ se tiene que ϕ(x) = 12 sin(ξ)x2 es un o(|x|) pues se verifica:


Ejemplo 8. Dado sin(x)=x,

1 | sin(ξ)x2 | 1
= | sin(ξ)||x| → 0, cuando x → 0, para todo x ∈ [0, x], pues | sin(ξ)| ≤ 1
2 |x| 2

˙ 0 (x)(x̂ − x),
Si f es differenciable en x, entonces f (x̂) − f (x)=f cuando x → x̂.

Definición 8. Análogamente a la igualdad en orden, para funciones g, h : Rn → Rm


se escribe:
˙
g(x)≤h(x) para x → x0 ⇐⇒ g(x) ≤ h(x) + o(kh(x)k).

3.2 Condicionamiento de un problema


El condicionamiento de un problema se refiere al efecto que cambios en los datos se reflejan
en los resultados, independientemente de la forma en que estos últimos son obtenidos.
Uno de los problemas más sencillos para ilustrar el concepto de condicionamiento es
el de hallar el punto de intersección r de dos rectas: R1 y R2 en un plano. Como ilustra la
figura, en el primer caso (bien condicionado) es fácil determinar el punto de intersección
a simple vista, mientras que en el segundo caso (mal condicionado) a penas podemos
determinar el punto de contacto. La conclusión es clara, mientras uno de los ángulos
entre ambas rectas es cada vez más pequeño, las variaciones que pueden ocurrir en los
datos tienen un efecto más visible en los resultados. En este caso es el ángulo el que
caracteriza este comportamiento. La condición de un problema corresponde, justamente,
a un número que nos indique cómo la variación de los datos influye en los resultados.
Para x ∈ F, consideremos el conjunto de datos con precisión relativa
|x̃ − x|
E = {x̃ ∈ R : ≤ eps},
|x|
o el conjunto de datos con precisión absoluta

E = {x̃ ∈ R : |x̃ − x| ≤ δx },

en el caso de que x esté en función de una tolerancia δx > 0. Sea f : E ⊂ Rn −→ R,


una función tal que asocia a cada x en E la solución de un problema que se encuentra
en R := f (E), entonces la condición del problema (f, x) es una medida que caracteriza la
relación entre E y R.
18 Apuntes de clase de Análisis Numérico I

Ejemplo 9. En el caso del problema de intersección de dos rectas se tiene que E =


{(R̃1 , R̃2 ) : k(R̃1 , R̃2 ) − (R1 , R2 )k ≤ k(R1 , R2 )keps}, donde k · k es alguna norma definida
en el espacio producto del espacio formado por todas las rectas en el plano consigo mismo.
R corresponde al conjunto de todos los posibles puntos de intersección de las rectas que
pertenecen a E, y la relación entre E y R está determinada por el ángulo de las rectas
que se cortan.
Definición 9. Sea U un conjunto en un espacio normado. La precisión relativa (o abso-
luta) en norma del dato x̄ ∈ U se define por el valor más pequeño δ tal que

kx − x̄k ≤ δkx̄k, ∀x ∈ U,

(o kx − x̄k ≤ δ, para todo x ∈ U ).

Definición 10. La condición absoluta en norma del problema (f, x) es la cons-


tante más pequeña, Kabs , tal que

˙ Kabs kx̂ − xk,


kf (x̂) − f (x)k≤ para x̂ → x, (3.5)

de la misma forma, la condición relativa en norma es la constante más pequeña,


Krel , tal que

kf (x̂) − f (x)k ˙ kx̂ − xk


≤ Krel , para x̂ → x. (3.6)
kf (x)k kxk

Observación 2.

• Si no existe Kabs finito entonces se dice que el problema está mal definido.

• Los números de condición Kabs y Krel son una medida de proporcionalidad de los
errores en las soluciones con respecto a los errores en los datos.

• Un problema es bien condicionado cuando su número de condición absoluto o relativo


es “pequeño”. La noción de pequeño está determinado por las aplicaciones.

Si f es diferenciable en x se puede caracterizar Kabs de manera más precisa como:

Kabs = kf 0 (x)k, (3.7)


Introducción al análisis de errores 19

donde kf 0 (x)k es la norma de la matriz jacobiana de f , usando la norma matricial. Es


decir:
kf 0 (x) · yk
kf 0 (x)k = sup
y6=0 kyk
.
Por otro lado, Krel se caracteriza como sigue:

kf 0 (x)kkxk Kabs kxk


Krel = = . (3.8)
kf (x)k kf (x)k

Ejemplo 10. (Condición de la suma y la resta en k · k1 |) el problema de sumar dos números


reales dado por (f, x), donde

f: R2 −→ R
 >
a
7→ x = a + b.
b
 
0 1
Solución. Para este problema se tiene que: f (a, b) = , entonces
1
   
0
 x 1
x1
Kabs,1 = kf (a, b)k = sup 1 1
/
(x1 ,x2 )6=(0,0) x2 1 x2 1
|x1 + x2 |
= sup = 1. (3.9)
(x1 ,x2 )6=(0,0) |x1 | + |x2 |

k(a, b)k1 |a| + |b|


Por otro lado, de (3.8) se tiene directamente que Krel,1 = = , para
|f (a, b)| |a + b|
f (a, b) 6= 0.
Se mencionó anteriormente que la resta de dos números cercanos (de mismo signo)
provoca un Krel,1 grande por el efecto de cancelación. Por lo que si a → b (con el mismo
signo) entonces Krel,1 → ∞. Tomemos por ejemplo,

a = 0,123467∗ (error en el séptimo puesto)


b = 0,123456 (error en el séptimo puesto)
a − b = 0. 0000
|{z} 11 ∗ |{z}
000 (error en el tercer puesto)

En este ejemplo, se observa que un error en el séptimo puesto decimal de a y b conduce


a un error en el tercer puesto de la representación de punto flotante de a − b. Se tiene
Krel ≈ 104 . Se debe, por tanto, ¡evitar la resta de dos números cercanos!

3.3 Análisis de condición normado para la ecuación li-


neal: Ax = b
Consideramos ahora el problema de resolver una ecuación lineal. Dada una matriz inver-
tible A ∈ Rn×n y un vector b ∈ Rn , encontrar x en Rn tal que

Ax = b. (3.10)
20 Apuntes de clase de Análisis Numérico I

Note que este problema tiene solución única si, y sólo si: det(A) 6= 0. En general, A y b
son los datos de una ecuación lineal, por lo que notamos a este problema como (f, (A, b)),
y su función solución f : Rn×n × Rn −→ Rn está dada por:

f (A, b) := A−1 b = x.

En este caso, el análisis de condición relativo busca la menor constante Krel tal que

kx̂ − xk kÂ−1 b̂ − A−1 bk ˙ k(Â, b̂) − (A, b)k


= −1
≤Krel ,
kxk kA bk k(A, b)k

para (Â, b̂) → (A, b) y x̂ = Â−1 b̂. Donde la norma del último término está definida en
Rn×n × Rn .
Puesto que éste problema depende de dos parámetros: A y b, por lo que conviene
analizarlo en dos etapas:

Los errores ocurren en el dato b


Es decir, se asume por ahora que no ocurre ningún error con respecto a A, por tanto f
depende sólo de b, mientras que A es constante. Así tenemos que la función a ser analizada
es: b 7→ A−1 b.
Como la función anterior es diferenciable en Rn , podemos utilizar (3.7), para calcular
Kabs , entonces se tiene:
Kabs = kf 0 (b)k = kA−1 k.
Por otro lado, utilizando (3.8), se tiene:
kf 0 (b)kkbk kA−1 kkbk kA−1 kkAxk kA−1 kkAkkxk
Krel = = −1
= ≤ = kA−1 kkAk.
kf (b)k kA bk kxk kxk
Nótese que x 6= 0.

Los errores ocurren en el dato A

Definición 11. Sean V y W espacios de Banach. Dada la función f : U ⊂ V → W ,


decimos que f es diferenciable en el punto v ∈ U , en el sentido fuerte o de Fréchet si
existe una aplicación lineal y continua Df (v) : V → W , tal que

f (v + h) = f (v) + Df (v)h + o(h), (3.11)

o equivalentemente:
kf (v + h) − f (v) − Df (v)hk
lı́m =0 (3.12)
khk→0 khk

Observación 3.
• Note que f está definida en U , mientras que Df (v) está definida en todo V .
• f es Fréchet-diferenciable en U si f es Fréchet-diferenciable en todo punto v ∈ U .
• En general se aplican los mismos resultados conocidos que para la derivada de
funciones vectoriales.1 .
1
Ver por ejemplo: Donato, P. Calcul differentiel pour la license: Cours, exercises et problèmes résolus,
Dunod, 2000.
Introducción al análisis de errores 21

• Si f es Fréchet-diferenciable en v ∈ U , su derivada fuerte coincide con la derivada


direccional f 0 (v; h) definida por

0 d f (v + th) − f (v)
f (v; h) := f (v + th) = lı́m ,
dt t=0
t↓0 t
pero el recíproco no es cierto.
Ahora podemos calcular la derivada de la función A 7→ A−1 b. Para lo cual, necesitamos
un candidato para la derivada (fuerte o de Fréchet) de la función g(A) = A−1 .

I = (A + tC)(A + tC)−1
dI d
⇔ = [(A + tC)(A + tC)−1 ]
dt dt
d(A + tC) −1 d(A + tC)−1
= (A + tC) + (A + tC)
dt dt
−1
d(A + tC)
= C(A + tC)−1 + (A + tC)
dt

d(A + tC)−1

0 −1 −1

⇒ g (A, C) = = −(A + tC) C(A + tC) t=0
dt
t=0
= −A−1 CA−1

Sabemos que si g es Fréchet diferenciable, entonces Dg(A)C = g 0 (A, C) = −A−1 CA−1 .


Para probar que es Fréchet diferenciable debemos verificar (3.12), i.e.
k(A + C)−1 − A−1 + A−1 CA−1 k
→0 (kCk → 0),
kCk
lo cual se verifica utilizando la desigualdad de Kailath2 : (A + BC)−1 = A−1 − A−1 B(I +
CA−1 B)CA−1 . Ahora, como b es constante y f = gb ⇒ f 0 (A) = g 0 (A)b,

Kabs = kf 0 (A)k = kDf (A)k


kDg(A)C bk
= sup
C6=0 kCk
k − A−1 Cxk
= sup
C6=0 kCk
≤ kA−1 kkxk.

Por otro lado:


Kabs kAk kA−1 kxkkkAk
Krel = ≤ ≤ kAkkA−1 k
kA−1 bk kxk
En las dos etapas anteriores se probó que Krel = kAkkA−1 k, independientemente de
la norma matricial utilizada. Dicho resultado motiva la siguiente definición:

Definición 12. La cantidad :

K(A) := kAkkA−1 k,

se llama número de condición de la matriz A.

2
Ver Brandt, K. and Syskind M., The Matrix Cookbook, 2008, http://matrixcookbook.com .
22 Apuntes de clase de Análisis Numérico I

El número de condición de una matriz es una medida de perturbación en la solución


del sistema Ax = b provocada por perturbaciones en los datos A o b. Se dice que una
matriz es mal condicionada si K(A) es “grande”. El sentido de que un número de condición
es grande o pequeño está dado por las aplicaciones prácticas.
De la discusión anterior conocemos que si x̄ es solución de Ax = b, y  y b̂ son los
datos que contienen errores de A y b respectivamente, entonces:

kx̄ − x̂b k ||b − b̂||


1. ≤ K(A) , donde x̂b representa la solución aproximada cuando so-
kxk kbk
lamente b está considerado como dato.

kx̄ − x̂A k ||A − Â||


2. ≤ K(A) , donde x̂A representa la solución aproximada cuando
kxk kAk
solamente A está considerado como dato.

es decir, x̂b es la solución de Ax = b̂ y x̂A es la solución de ÂxA = b.

Observación 4.

• K(A) ≥ 1.

• K(αA) = K(A).

• det(A) = 0 ⇐⇒ K(A) = ∞.

máx kAxk
kxk=1
• K(A) = , generaliza el número de condición para matrices que no son
mı́n kAxk
kxk=1
cuadradas.

Es interesante notar que la condición de un sistema lineal recae escencialmente en la


matriz A, incluso cuando sólo el dato del lado derecho b del sistema varía. En otras
palabras, es la estructura de la matriz A la que determina si el sistema está bien o
mal condicionado.

Ejemplo 11. Número de condición del producto matrix por vector

3.4 Análisis de condición por componentes


El análisis de condición normado toma en cuenta el problema en forma global, sin embargo
suelen ocurrir ciertas particularidades que requieren un análisis más específico. El análisis
de condición componente-a-componente sirve para éste propósito pues está basado en la
estimación de las cantidades que intervienen usando la norma uniforme. Pueden existir
fenómenos particulares causados por errores en las las componentes individuales de la
matriz, no visibles en el análisis normado usual.
 
1 0
Ejemplo 12. Sea A = , con 0 < ε << 1.
0 ε
Introducción al análisis de errores 23

1
Solución. Podemos observar que: K(A)∞ = kA−1 k∞ kAk∞ = , que según el análisis
ε
normado, la matriz A es mal condicionada para valores pequeños de ε. Por otro lado,
resolviendo el sistema:     
1 0 x1 b
= 1
0 ε x2 b2
se tiene que:
    
1 0 x1 b1
= −1 ,
0 1 x2 ε b2
 
−1 1 0
y que A = . Dado que el sistema de ecuaciones es fácilmente resuelto sin
0 1ε
incurrir en mayores problemas causados por las pequeñas variaciones del dato ε, parece
que la matriz es “artificialmente” mal condicionada dado que los errores en los datos no
se “amplifican” en los resultados.

Definición 13. La condición absoluta por componentes del problema (f, x) es


la constante más pequeña, kabs , tal que

˙ kabs máx |x̂i − xi |,


kf (x̂) − f (x)k∞ ≤ para x̂ → x, (3.13)
i

de la misma forma, la condición relativa por componentes es la constante más


pequeña, krel , tal que

kf (x̂) − f (x)k∞ ˙ |x̂i − xi |


≤ krel máx , para x̂ → x. (3.14)
kf (x)k∞ i |xi |

Para f diferenciable, con derivada continua (ie. f de clase C 1 ) caracterizamos la condi-


ción por componentes como

kabs = k |f 0 (x)| k∞ , (3.15)

k |f 0 (x)| |x| k∞
krel = . (3.16)
kf (x)k∞

Aquí |f 0 (x)| corresponde a la matriz cuyas componentes son los valores absolutos de
la matriz |f 0 (x)|.

Ejemplo 13. (Condición por componentes para la multiplicación). El problema de mul-


tiplicar dos números reales dado por (f, (a, b)), con:

f : R2 →R
(a, b)7→a · b.

Para este problema se tiene que kabs ≤ |a| + |b| y krel ≤ 2 (en norma uniforme).
Por tanto la multiplicación componente-a-componente es una operación bien condicio-
nada en el sentido del análisis componente-acomponente.
24 Apuntes de clase de Análisis Numérico I

3.5 Análisis de condición por componentes para una


ecuación lineal: Ax = b
Los errores ocurren en b
Nuevamente, la función a ser analizada es: b 7→ A−1 b y por (3.16), se tiene:

k|A−1 ||b|k∞ k|A−1 ||b|k∞


krel = = ≤ k|A||A−1 |k∞ .
kA−1 bk∞ kxk∞

Los errores ocurren en A y b simultáneamente


Ahora, la función solución f : Rn×n × Rn −→ Rn está dada por (A, b) 7→ A−1 b. Usando
las reglas de cálculo en espacios de Banach se puede calcular la derivada de f :

f 0 (A, b)(C, d) = −A−1 Cx + A−1 d,

entonces:
k|f 0 (A, b)(|C|, |d|)|k∞ k| − A−1 ||C||x| + |A−1 ||d|k∞

kA−1 bk∞ kxk∞
por lo tanto, tomando (|C|, |d|) = (|A|, |b|), se tiene:

k|f 0 (A, b)(|A|, |B|)|k∞ 2k|A||A−1 ||x|k∞


krel = ≤
kA−1 bk∞ kxk∞
≤ 2k|A||A−1 |k∞ .

La cantidad KC (A) := k|A||A−1 |k∞ se denomina condición de Skeel de la matriz A.


Este es el criterio que buscamos para observar particularidades en la estructura interna
de una matriz aparentemente mal condicionada en el sentido normado.

Ejemplo 14. Para la matriz A del Ejemplo 12,


      
1 0 1 0 |1| 0 |1| 0

KC (A) = = = kIk∞ = 1

0 ε 0 1/ε 0 |ε| 0 |1/ε|

∞ ∞

Nota: Comparar con el número de condición normado K(A).

3.6 Estabilidad de un algoritmo


La estabilidad de un algoritmo, se refiere al efecto que produce en las soluciones del pro-
blema (f, x), el reemplazo de f por fˆ, donde fˆ se asume que contiene todos los errores
numéricos cometidos al resolver dicho problema. Es inevitable que existan errores nu-
méricos al resolver un problema mediante algún método en particular. Los algoritmos
numéricos en general se reducen a operaciones aritméticas y lógicas recurrentes, que son
implementadas mediante operaciones de punto flotante en un computador electrónico.
Intuitivamente, consideramos que un algoritmo es inestable si se producen “grandes”
errores en los resultados debido a los errores que provienen del redondeo, en operaciones
de punto flotante, truncamiento, etc.
Cabe destacar que la estabilidad es una propiedad exclusiva del algoritmo
mientras que el condicionamiento es una propiedad del problema.
Introducción al análisis de errores 25

Ejemplo 15. (Ceros de un polinomio) Considere el siguiente polinomio con coeficientes


reales

pn (x) = a0 + a1 x + a2 x2 + · · · + an xn ,

y su versión aproximada:

p̂n (x) = a0 + a1ˆ·f l(x) + a2ˆ·f l(x2 ) + · · · + anˆ·f l(xn ).

Si notamos por αi , i = 1, . . . , n a los ceros de pn y α̂i , i = 1, . . . , n a los ceros de p̂n , calcu-


lados mediante algún algoritmo numérico, ilustramos los conceptos de análisis progresivo
y regresivo en la siguiente manera:
1. Análisis Progresivo: consiste en estimar el error: αi − α̂i , en términos del error en
los coeficientes: ai − âi (datos).
2. Análisis Regresivo: En lugar de preguntarnos sobre el error de los resultados, nos
preguntamos ¿Para qué datos exactos corresponderían las soluciones que acabamos
de calcular? En nuestro ejemplo, si los α̂i , i = 1, . . . , n son los resultados calculados.
¿Existe algún polinomio qn para el cual α̂i , i = 1, . . . , n son soluciones exactas?

Figura 3.1: Análisis de estabilidad progresivo y regresivo

3.7 Análisis progresivo


Para caracterizar un algoritmo fˆ, se toman en cuenta todas las operaciones elementales ◦ ∈
{+, −, ·, ÷} y su versión de punto flotante tales que satisfacen nuestro modelo operacional:

aˆ◦b = (a ◦ b)(1 + ),

donde  = (a, b) es tal que || ≤ eps. Hay que notar que éste reemplazo, no es único
y en consecuencia se tiene una familia de funciones {fˆ}, que se representa por por fˆ y
R̂ = fˆ(E) = ∪φ∈{fˆ} φ(E) es la imagen del conjunto de datos E por fˆ.

Ejemplo 16. (Promedio de dos números)

f a+b
(a, b) 7→ .
2

Por ejemplo, dos elementos de la familia {fˆ} son:

fˆ fˆ
ˆ
(a, b) 7→ (a+̂b)÷2 y ˆ +̂ (b÷2).
(a, b) 7→ (a÷2) ˆ
26 Apuntes de clase de Análisis Numérico I

El análisis progresivo consiste en determinar cuan diferentes son R = f (E) y R̂ = fˆ(E)


(los conjuntos de los resultados posibles para un conjunto de datos E) Por otro lado, la
estabilidad de un algoritmo también está influenciada por la condición del problema.

Definición 14. Sean E el conjunto de datos y fˆ la evaluación en punto flotante de


un algoritmo para resolver un problema (f, x) que tiene condición relativo normado:
Kf := Krel . El indicador de estabilidad del análisis progresivo normado es el
valor σf ≥ 0 más pequeño tal que:

kfˆ(x) − f (x)k ˙
≤ σf Kf eps, para eps → 0 y x ∈ E.
kf (x)k

Se dice que un algoritmo fˆ es estable en el sentido del análisis progresivo si σf es


menor o igual que el número de operaciones que se efectúan al evaluar fˆ.

ˆ de las operaciones elementales


Ejemplo 17. La evalucación en punto flotante: {+̂, −̂,ˆ·, ÷}
verifican que:

|a ◦ b − aˆ◦b| |a ◦ b − a ◦ b(1 + )| |||a ◦ b|


= = = || ≤ eps.
|a ◦ b| |a ◦ b| |a ◦ b|

Por lo tanto, σK ≤ 1.

Teorema 1. Un problema (f, x) con indicador de estabilidad σf , el cual se subdivide


en subproblemas (g, x) y (h, g(x)), con f = h ◦ g, con indicadores de estabilidad σh y
σg , y numeros de condición relativos normados Kh y Kg respectivamente, entonces

σf Kf ≤ σh Kh + σg Kg Kh .

Demostración.

kf (x) − fˆ(x)k =kh(g(x)) − ĥ(ĝ(x)))k


≤ kh(g(x)) − h(ĝ(x))k + kh(ĝ(x)) − ĥ(ĝ(x))k
| {z } | {z }
cond. establ.

˙ h kh(g(x))k kg(x) − ĝ(x)k + σh Kh epskh(g(x))k


≤K
kg(x)k
˙ h kh(g(x))kσg Kg eps + σh Kh epskh(g(x))k
≤K
=kh(g(x))k(σg Kg Kh + σh Kh ) eps
=kf (x)k(σg Kg Kh + σh Kh ) eps

Por lo tanto,

kf (x) − fˆ(x)k ˙
≤(σg Kg Kh + σh Kh ) eps, para eps → 0.
kf (x))k
Introducción al análisis de errores 27

Utilicemos el resultado anterior en el siguiente ejemplo:


Ejemplo 18. (Algoritmo de la suma) El algoritmo más simple para efectuar una suma
de números es el siguiente
n
X
Sn : R n → R : Sn (x1 , . . . , xn ) = xi ,
i=1

operación que se realiza recursivamente, para ésto definimos la función


αn : Rn → Rn−1 : αn (x1 , x2 , . . . , xn ) = (x1 + x2 , x3 , . . . , xn ),
la cual nos permite expresar Sn recursivamente como la composición de dos funciones:
Sn = Sn−1 ◦ αn para n ≥ 2, tal que S2 = α2 .
• Observe que σαn = σ+ , y que Kαn = K+ , ya que para evaluar αn solo se
requiere realizar una suma (de las dos primeras componentes de x).
• Notamos σj := σsj y Kj := KSj = Krel,Sj , para j = 2, . . . , n.
• Sn = Sn−1 ◦αn ⇒ σn Kn ≤ Kn−1 (σn−1 +σ+ K+ ), pues se demostró anteriormente
que:
|a| + |b|
K+ = .
|a + b|
• Kn−1 ≤ Kn , hacer una suma menos es un problema mejor condicionado, por lo que:
|x1 + x2 | + ni=3 |xi |
P Pn
|xi |
Kn−1 = Pn ≤ Pi=1
n = Kn
| i=1 xi | | i=1 xi |

• Recordemos que, K+ ≥ 1 (ver el Ejemplo 10), y que σ+ K+ ≤ 1.


De los puntos anteriores deducimos que
σn Kn ≤ Kn−1 (σn−1 + σ+ K+ )
≤ Kn (σn−1 + σ+ K+ ),

con lo cual
σn ≤ σn−1 + 1 (3.17)
1
Como σ2 = σ+ ≤ ≤ 1. La relación de recurrencia (3.17) implica que σn ≤ n − 1=
K+
número de operaciones realizadas para hacer una suma. En conclusión, el algoritmo Sn
para la suma es estable.

Definición 15. Sea fˆ la evaluación en punto flotante de un algoritmo para resolver


un problema (f, x), que tiene condición por componentes: kf := krel . El indicador
de estabilidad del análisis progresivo componente-a-componente es el valor σf ≥ 0
más pequeño tal que:

ˆ
fi (x) − fi (x)

máx ˙ σf kf eps,
≤ para eps → 0,
i |fi (x)|

y, al igual que en el análisis progresivo normado, se dice que un algoritmo fˆ es estable


en el sentido del análisis progresivo si σf es menor que el número de operaciones que
28 Apuntes de clase de Análisis Numérico I

se efectúan al efectuar el algoritmo.

3.8 Análisis regresivo


El análisis regresivo consiste en analizar los errores, no en los resultados sino de los datos;
es decir en las preimágenes de las funciones f y fˆ, donde fˆ contiene todos los errores de
redondeo y aproximación que ocurren al resolver el problema (f, x).

Definición 16. Sea fˆ la evaluación en punto flotante de un algoritmo para resolver un


problema (f, x), donde f : E → R. El error de estabilidad del análisis regresivo
normado es el menor número ηf ≥ 0, tal que para cada x ∈ E existe x̌ tal que
f (x̌)y̌ = fˆ(x), se cumple que:

kx − x̌k ˙
≤ηf , para eps → 0. (3.18)
kxk

Análogamente, se define el error de estabilidad del análisis regresivo por com-


ponentes es el menor número ηf ≥ 0 tal que para cada x ∈ E, existe x̌ tal que

|xi − x̌i | ˙
máx ≤ηf , para eps → 0. (3.19)
i |xi |

El análisis regresivo tiene la ventaja de que no depende de la condición del problema.


El algoritmo fˆ se dice estable en el sentido del análisis regresivo con respecto
a un error relativo δ > 0 si, y sólo si ηf ≤ δ. El indicador del análisis regresivo
(normado o por componentes según corresponda) se define por:
ηf
σr = .
eps

Los indicadores de estabilidad del análisis progresivo y regresivo verifican para un proble-
ma (f, x):
σf ≤ σr , (3.20)

pues se tiene que, para cada x ∈ E, existe x̌ tal que f (x̌) = fˆ(x) que verifica (3.19), por
lo tanto:
kf (x) − fˆ(x)k kf (x) − f (x̌)k ˙ kx − x̌k ˙
= ≤krel ≤krel ηf ≤ krel σr eps, para eps → 0.
kf (x)k kf (x)k kxk
Finalmente, por la definición de σf , se tiene que, σr ≤ σf .
Por tanto, si un problema es estable en el sentido del análisis regresivo, también es
estable en el sentido del análisis progresivo.

Ejemplo 19. (Análisis regresivo del producto escalar) El producto escalar en Rn está
definido por:
n
X
h·, ·i : Rn × Rn → R : hx, yi := xi y i ,
i=1

el cual puede ser escrito mediante una fórmula recursiva como sigue
hx, yi := xn yn + hx̄, ȳi,
Introducción al análisis de errores 29

donde x̄ := (x1 , . . . , xn−1 ) y ȳ := (y1 , . . . , yn−1 ).


Notemos por h·, ·if l a la evaluación en punto flotante del producto escalar h·, ·i. Pri-
mero, debemos demostrar que existe x̌ ∈ Rn tal que: hx, yif l = hx̌, yi y que:
|xi − x̂i | ˙
≤n eps, i = 1, . . . , n. (3.21)
|xi |
Argumentando por inducción sobre n, consideramos los casos:
i. Caso n = 1. Es inmediato basándonos en nuestro modelo de punto flotante:
xˆ·y = (x · y)(1 + ), || ≤ eps
= (1 + )(x · y),
así definimos x̌ = (1+)x que satisface directamente la estimación del error relativo.
ii. Ahora supondremos que la propiedad es verdadera para (n − 1) y verificamos que
ésto implica que (3.21) es verdadera para n.
Hipótesis inductiva: Existe ž ∈ Rn−1 tal que
|ži − x̄i | ˙
hx̄, ȳif l = hž, ȳi, ≤(n − 1)eps, para eps → 0.
|x̄i |
Para n > 1 se tiene que:
hx, yif l = [xn yn (1 + 1 ) + hx̄, ȳif l ] (1 + 2 ), |i | ≤ eps, i = 1, 2

Tomando x̌n := xn (1 + 1 )(1 + 2 ) y gracias a nuestra hipótesis inductiva tenemos:


hx, yif l = xn yn (1 + 1 )(1 + 2 ) + hx̄, ȳif l (1 + 2 )
= xn (1 + 1 )(1 + 2 ) yn + h ž(1 + 2 ) , ȳi
| {z } | {z }
=x̌n =:(x̌1 ,...,x̌n−1 )

= hx̌, yi, con x̌ := (ž(1 + 2 ), x̌n ) = (x̌1 , . . . , x̌n−1 , x̌n ).

|x̌i − xi | ˙
Nos queda por verificar que ≤n eps, para toto i = 1, . . . , n con n ∈ N y n ≥
|xi |
2. En efecto, tomando en cuenta nuestra hipótesis inductiva, para i = 1, . . . , n − 1:
|xi − x̌i | =|xi − ži (1 + 2 )|
≤|xi − ži | + 2 |ži |
≤|xi − ži | + eps|ži |
˙ i − ži | + eps|xi | + (n − 1)eps2 |xi |,
≤|x para eps → 0.
| {z }
=o(eps)

(hip. ind.) ˙ − 1)eps|xi | + eps|xi |,


≤(n para eps → 0.
=n eps|xi |, para eps → 0.
y para i = n, se tiene que |xn − x̂n | ≤ 2 eps. De esta manera, conseguimos establecer
que
|xi − x̌i | ˙
máx ≤n eps, para eps → 0.
i |xi |
Por tanto, se verifica que η ≤ n eps. Luego, con ésta última relación y observando que
el producto escalar involucra 2n − 1 operaciones para su cálculo, concluimos que éste es
estable en el sentido del análisis regresivo por componentes.
30 Apuntes de clase de Análisis Numérico I

3.9 Ejercicios
1. Considere una matriz real de tamaño 2 × 2. Considere una fórmula exacta para la
inversa y analice los errores de punto flotante que ocurren en la evaluación de las
operaciones de dicha matriz.
2. La mayoría de computadores electrónicos utiliza un dígito extra para realizar las
operaciones de punto flotante llamado dígito guardián, para éstas máquinas, se vió en
clase que fl(x±y) = (x+y)(1+), con || ≤ eps. Sin embargo, existen computadores
que no utilizan el dígito guardián y en tal caso se tiene que fl(x ± y) = x(1 + 1 ) +
y(1 + 2 ), con |i | ≤ eps, i = 1, 2. Calcule fl(z(x + y)) en función de la operación
exacta y sus errores (análogo a lo realizado en clase).
Pn
3. Estime el error de redondeo cometido al realizar la operación i=1 xi en punto
flotante. Considere que xi ∈ R, i = 1, . . . , n y fl(x ± y) = (x + y)(1 + ).
4. Considere el siguiente algoritmo para calcular una norma de un vector x ∈ Rn .
1. m = máx{|xi |, i = 1, . . . , n}.
2. yi = xi /m, i = 1, . . . , n.
p
3. N x = m (y12 + y22 + · · · + yn2 ).
Explique ¿Por qué es mejor calcular la norma de x de ésta manera? ¿Qué se evita
con ésto?
5. Entre las dos fórmulas siguientes para evaluar la varianza de un vector x ∈ Rn :
n
2 1X
S = (xi − x̄)2 (a)
n i=1
n
!
1 X
S2 = x2i − nx̄2 . (b)
n−1 i=1

En base al indicador de estabilidad progresivo, decida cual fórmula es numericamente


estable, y por tanto preferible para calcular en un computador.
6. Demuestre las siguientes propiedades del número de condición de una matriz A ∈
Rn×n
(a) K(A) ≥ 1.
(b) K(αA) = K(A).
(c) det(A) = 0 ⇐⇒ K(A) = ∞.
máx kAxk
kxk=1
(d) K(A) = .
mı́n kAxk
kxk=1

Considere K calculada con una norma matricial inducida.


7. Justifique por qué, el determinante de una matriz de un sistema lineal no es una
buena medida de la condición del mismo.
8. Dadas A, B ∈ Rn×m , considere el sistema

AX = B,
Introducción al análisis de errores 31

(a) Cual es la función solución de éste problema si los errores ocurren solamente
en B ?
(b) Cual es la función solución de éste problema si los errores ocurren solamente
en A es dato?
(c) Cual es la función solución de éste problema si los errores ocurren en A y B.
(d) Estimar Kabs y Krel en los casos anteriores.

9. Determine si el problema siguiente es bien condicionado en el sentido del análisis


normado (en norma euclidiana):

Rn 3 x 7→ x> x ∈ R.

10. Considere el siguiente problema de encontrar las raíces de un polinomio de segundo


grado:

x2 − 2px + 1 = 0, p≥1 (3.22)

Recuerde que la“función solución” de este problema es aquella que asigna los datos
a sus respectivas soluciones. Considerando p como único dato, se pide lo siguiente:

(a) Escriba la función que asigna el dato p a las soluciones de la ecuación.


|p|
(b) Pruebe que Krel es aproximadamente p , con p > 1. ¿Para qué valores
p2 − 1
de p el problema (3.22) se vuelve mal condicionado?
(c) Demuestre que es posible reformular el problema (??) cuando es mal condi-
cionado,pen un problema bien condicionado utilizando el cambio de variable
t = p + p2 − 1.

11. Considere el siguiente sistema lineal


    
1 0 8 x1 1
2 1 −1   x2 =
  1
3 0 24 x3 −1
| {z }
=:A

(a) Demuestre que este problema no tiene solución en R3 .


(b) Pruebe que el sistema anterior tiene solución en V = R3 \{α(−8, 17, 1), α ∈ R},
¿es esta solución única?
(c) Calcule K(A) en cualquier norma, ¿qué interpretación da a K(A) tomando en
cuenta el numeral anterior?

12. Determine si el problema siguiente es bien condicionado en el sentido del análisis


normado:

R 3 x 7→ |x| ∈ R+ .
 
1 2 −1
13. Considere la matriz  0 1 0 , con ε > 0. Determine el número de condición
0 0 1/ε
(en norma infinito) de la matriz en función de ε. Analizar el número de condición
en función del crecimiento de ε.
32 Apuntes de clase de Análisis Numérico I

14. Calcular Kabs y Krel normados (utilizar k · k∞ ) del algoritmo de escalamiento de un


vector (es decir, la multiplicación de un escalar por un vector). Considerar el escalar
y el vector como datos.

15. Dado un vector u, la proyección ortogonal pru (v) de un vector v sobre u, está dado
por la expresión pru (v) = (hu, vi/hu, ui)u. Demostrar que:(utilizar la norma vectorial
k · k2 ).

(a) Muestre que Krel ≤ sec(θ), θ es el ángulo entre u y v.


(b) Interprete el resultado anterior, explique con un gráfico cuando el problema es
bien y mal condicionado. ¿Cuáles son los casos extremos?

16. Demuestre que para cualquier matriz ortogonal (real) Q, se tiene que K2 (Q) = 1
(número de condición de Q en norma-2). ¿Qué hay de este resultado para otras
normas?

17. Analice el problema de la intersección de dos rectas en el plano, definiendo para ello,
un sistema lineal que relaciones los datos y las incógnitas.

18. ¿Cuál es el número de condición relativo normado de la función f (x) = ex ? ¿Cuándo


la evaluación de esta función se vuelve mal condicionada?

19. Considere las matrices de Hilbert Hn (ij) = hij = 1/(i + j − 1), con 1 ≤ i, j ≤ n.
Resuelva numericamente los sistemas Hn x = b, con un dato b = [1 1 1 . . . 1]> , y
construya una tabla para diferentes valores de n del error relativo que se comete en
cada sistema y el número de condición de la matriz. Obtener conclusiones.

20. Probar que si A ∈ Rn×n es una matriz no singular y x̃ es una aproximación de la


solución del problema Ax = b. Entonces

kx̃ − xk kAx̃ − bk
≤ kAkkA−1 k
kxk kbk

21. Sean las funciones diferenciables f , g, y h definidas en R con valores en R, tales que
f = h ◦ g demuestre que
σh
σf ≤ + σg ,
Kg

y además que si el indicador del primer algoritmo σg es muy pequeño el algoritmo


f se vuelve inestable.

22. Sea A una matriz no singular, y δA una pequeña perturbación que distorsiona A en
à = A + δA. Sea k · k una norma submultiplicativa tal que kIk = 1. Demostrar lo
siguiente:

(a) Si kBk < 1, entonces existe (I − B)−1 = ∞ k −1


P
k=0 B y además k(I − B) k ≤
1
.
1 − kBk
(b) Si kA−1 δAk ≤  < 1, entonces se tiene que

1+
K(Ã) ≤ K(A).
1−
Introducción al análisis de errores 33

23. Verifique si el algoritmo para sumar números complejos es estable en el sentido


progresivo. ¿Es estable en el sentido regresivo?

24. Analice la estabilidad del algoritmo que multiplica una matriz por un vector, en el
sentido del análisis regresivo componente-a-componente.

25. Considere el problema de calcular el cateto b de un triángulo rectángulo a partir del


otro cateto a y la hipotenusa h. Es decir, se quiere analizar la función (a, h) 7→ b.
Asumiendo que la operación raiz cuadrada tiene un indicador de estabilidad (en el
sentido del análisis progresivo) σr y un número de condición Kr , hallar una estima-
ción para σf Kf . Sugerencia: Expresar f como la composición de dos funciones.

26. Demuestre que el producto escalar de dos vectores es estable en el sentido del análisis
regresivo normado. Utilice la norma k · k1 .

27. Analice la estabilidad en el sentido del análisis progresivo del problema (f, x), donde
n
n f X
R 3 x 7−→ x2i
i=1

Utilice la norma k · k1 .
34 Apuntes de clase de Análisis Numérico I
Capítulo 4

Métodos directos para la resolución de


sistemas lineales

En este capítulo, estudiaremos cómo resolver numéricamente un sistema lineal


Ax = b. (4.1)
Es bien conocido que (4.1) tiene solución única si, y sólo si det(A) 6= 0, con A ∈ Rn×n
y b ∈ Rn . Para este caso, dicha solución está dada por: x = A−1 b. Sin embargo, calcular la
inversa de A y multiplicarla por b para encontrar x, requiere demasiadas operaciones
y hacen este procedimiento costoso e inestable debido a las potenciales fuentes de error.
Por ejemplo, para calcular A−1 debemos calcular el determinante de A,utilizando alguna
de las siguientes fórmulas:
X
Fórmula de Leibniz: det(A) = sign(σ)a1σ1 · · · anσn : nn! operaciones o flops
σ∈Sn
n
X
Fórmula de Laplace: det(A) = (−1)i+1 a1i det(A1i ) : 2n operaciones o flops
i=1

Por lo tanto, es necesario la búsqueda métodos eficientes para calcular x.

4.1 Resolución de sistemas lineales triangulares


Se considera el siguiente sistema de ecuaciones:
u11 x1 + u12 x2 + · · · + u1n xn = b1
u22 x2 + · · · + u2n xn = b2
.. ⇐⇒ Ux = b (4.2)
.
unn xn = bn
con U = (uij ), para uij = 0 para todo i > j, y uii 6= 0 i, j = 1, . . . , n, y b =
(b1 , b2 · · · bn )> .
La solución de (4.2) se puede calcular recursivamente:
bn
xn = ,
unn
..
. !
n
1 X
xi = bi − xi uik (4.3)
xii k=i+1

35
36 Apuntes de clase de Análisis Numérico I

A partir de la última expresión, (4.3), podemos escribir el siguiente algoritmo


Datos: Matriz U ∈ Rn×n triangular superior, vector b ∈ Rn
Resultados: x tal que U x = b
for i=n:1 do !
n
1 X
xi = bi − xk uik
uii k=i+1
end
Algorithm 1: Algoritmo de sustitución regresiva
Análogamente, podemos escribir el algoritmo para un sistema triangular inferior. En
este caso tenemos la matriz L = (`ij ), con `ii 6= 0, i, j = 1, . . . , n.

Datos: Matriz L ∈ Rn×n triangular inferior, vector b ∈ Rn


Resultados: x tal que Lx = b
for i=1:n do !
i−1
1 X
xi = bi − xk `ik
`ii k=1
end
Algorithm 2: Algoritmo de sustitución progresiva
La complejidad de un algoritmo se define como el orden de operaciones1 que se
efectúan para resolver un problema determinado.

Ejemplo 20. La complejidad del algoritmo de sustitución progresiva (y regresiva) es de


orden n2 .
Solución. Para contar el número de operaciones del algoritmo de sustitución progresiva,
primeramente observemos que, en la línea 4 del algoritmo, las operaciones que se realizan
son:
sumas y restas (n − i − 1) sumas + 1 resta = n−i
multiplicaciones y divisiones (n − i) multiplicaciones + 1 división =n − i + 1 Lue-
operaciones en el paso i-ésimo 2(n − i) + 1
go, las operaciones totales se obtienen sumando 2 según el índice i:
1 n
X X n(n − 1)
sumas y restas= (n − i) = (n − i) = ,
in i=1
2
1 n
X X n(n − 1) n2 + n
multiplicaciones y divisiones= (n − i + 1) = (n − i) + n = +n= .
i=n i=1
2 2

Finalmente el total de operaciones de punto flotante o flops es n2 , en consecuencia la


complejidad del algoritmo de sustitución regresiva (y por analogía el orden de operaciones
del algoritmo de sustitución progresiva) es de O(n2 ).

4.2 Eliminación Gaussiana y factorización LU


1
El término que “gobierna” el número de operaciones.
2
Para esta tarea, son útiles las siguientes fórmulas para la suma:
a(n+1) −1
Pn n(n+1) Pn 2 n(n+1)(2n+1) Pn i
i=1 i = 2 , i=1 i = 6 , i=1 a = a−1 .
Métodos directos para la resolución de sistemas lineales 37

Definición 17. Se dice que A ∈ Rn×n tiene factorización LU , si existen matrices L


triangular inferior y U triangular superior tales que A = LU .
En el siguiente ejemplo usaremos el algoritmo de eliminación gaussiana para cons-
truir una factorización LU de una matriz y

   
2 2 1 1
1
Ejemplo 21. Resolver el sistema Ax = b, con A = 2 2 0  y b = 0 Con estos

0 −2 −3 0
datos efectuamos el algoritmo gaussiano especificando las operaciones sobre las filas Fi de
la matriz extendida (A|b). El superíndice indica el paso de eliminación, mientras que el
elemento encuadrado corresponde al pivote de la eliminación.
   
1 2 2 1 1
(2) (1) (1)
A(1) =  1
2
2 0 0 F2 = F2 − 21 F1 ⇒ L1 = − 12 1 
0 −2 −3 0 0 1
   
1 2 2 1 1
(3) (2) (2)
A (2)
= 0
 1 −1 − 12  F3 = F3 + 2F2 ⇒ L2 =  1 
0 −2 −3 0 2 1
   6 
1 2 2 1 5
A(3) = 0 1 −1 − 12  ⇒ x = − 10 3 
.
1
0 0 −5 −1 5

Observemos que, A(3) = L2 A(2) = L2 (L1 A(1) ) = L2 L1 A, entonces, A = L−1 L−1 A(3) .
| 1 {z 2 } |{z}
=:L =:U
Además las matrices, llamadas de Frobenius Li son fácilmente invertibles, basta cambiar
de signo a los elementos bajo la diagonal:
 −1    −1  
1 1 1 1
− 1 1  =  12 1  y  1  = 1 ,
2
1 1 2 1 −2 1

De esta forma, factorizamos la matriz A como el producto de dos matrices triangular


inferior L := L−1 −1 (3)
1 L2 y triangular superior U = A . Explícitamente, podemos escribir
las matrices L y U :
   
1 1 2 2
L = L−1 −1
1 L2 =
1
2
1  y U = 0 1 −1 ,
−2 1 0 0 −5

por tanto
    
21 2 1 1 2 2
1 2 0  =  12 1   1 −1
2
0 −2 −3 −2 1 −5

Observemos que la solución del sistema se logró aplicando las mismas operaciones al vector
b. Para formalizar el proceso para una matriz cualquiera, vamos a deducir el algoritmo de
factorización LU .
38 Apuntes de clase de Análisis Numérico I

Paso 1
(1)
a11 6= 0
 (1) (1) (1)   
a11 a12 ··· a1n (1) (1) 1
a(1) a(1) (1) `i1 = ai1 /a11  −`21 1
··· a1n  
A(1)
= A =  21 22
⇒ L1 =  ..
  (2) (1) (1)
 
 ... .. ..  Fi = Fi −`i1 F1 .. 
. ··· .   . . 
(1) (1) (1) i = 2, . . . , n −`n1 1
an1 an2 ··· ann
Paso 2
(2)
a22 6= 0  
 (1) (1) (1)  1
a11 a12 ··· a1n (2) (2)
(2) (2) `i2 = ai2 /a22  1 
 0 a22 ··· a2n   
A(2) = .

.. ..
 (3) (2) (2) ⇒ L2 = 
 −`32 . . 
 ..
 Fi = Fi −`i2 F2 .. . 
. ··· .   
(2) (2) i = 3, . . . , n  . 
0 an2 ··· ann −`n2 1

..
.
Paso k
(k)
akk 6= 0
 (1) (1) (1) (1) 
a11 a12 · · · a1k · · · a1n
(2) (2) (2)
 a22 · · · a2k · · · a2n 
(k) (k)
`ik = aik /akk
 
 .. .. .. 
 . . . 
A(k) = (k) (k)
 (k+1)
Fi = Fi −`ik Fk
(k) (k)
 akk · · · akn 
i = k + 1, . . . , n
 
 .. .. 
 . . 
(k) (k)
ank · · · ann
 
1
 ... 
 
1
 
⇒ Lk = 
 
−`k+1k . .

 
 .. . 
 . 
−`nk 1

En el proceso de factorización generamos una sucesión de matrices

A = A(1) → A(2) → · · · → A(k) → · · · → A(n) = U, (4.4)

la cual se genera en n − 1 pasos, multiplicando A recursivamente por las matrices de


Frobenius Lk . El efecto de esta multiplicación en el paso k consiste en eliminar todos los
(k)
elementos que están bajo el pivote akk en la matriz A:

A(k+1) = Lk A(k) , k = 1, . . . , n − 1.

La matriz inversa de las matrices Lk , k = 1, . . . n − 1 se obtiene cambiando de signo a


los términos `ik . i = k + 1, . . . , n, k = 1, . . . , n − 1. Ahora, de (4.4) despejamos A:

U = An = Ln−1 · · · L2 L1 A,
Métodos directos para la resolución de sistemas lineales 39

lo cual implica que A = LU , con L := L−1 −1 −1


1 L2 · · · Ln−1 .
La matriz L es una matriz triangular inferior, cuyos elementos de su diagonal son
todos 1, y U es una matriz triangular superior cuyos elementos de la diagonal son los
(k)
llamados pivotes akk , k = 1, . . . , n. Cabe notar que del proceso de eliminación gaussiana,
por la estructura triangular de U , podemos calcular fácilmente el determinante de A, pues
(k)
det(A) = det(L)det(U ) = det(U ) = Πnk=1 akk .
El procedimiento descrito anteriormente constituye la demostración del siguiente teo-
rema.

Teorema 2. Sea A ∈ Rn×n una matriz no singular tal que los pivotes en el algoritmo
de eliminación gaussiana no se anulan, entonces existe L ∈ Rn×n triangular inferior,
con los elementos de su diagonal igual a uno y U ∈ Rn×n triangular superior tal que

A = LU.

Además, tales matrices L y U son únicas.

Observación 5.
 
0 1
• No toda matriz invertible tiene factorización LU, por ejemplo .
1 0
• Existen matrices singulares que tienen factorización LU.
• La factorización LU no es única.
• La factorización LU del Teorema 2, donde L es tal que los elementos de su diagonal
son todos 1, sí es única.
• El algoritmo de factorización LU fue desarrollado entre 1950 y 1960 y fue declarado
como uno de los 10 algoritmos con más influencia en la ciencia y la ingeniería.
• El algoritmo de factorización LU termina en n − 1 pasos, si la matriz es de tama-
ño n. Un número finito de pasos es característica de los métodos directos. Este
algoritmo
 no funciona
 para todas las matrices invertibles, por ejemplo la matriz
1 0 2
A = 1 0 −1 .
2 1 0
Con estas consideraciones escribimos el algoritmo de factorización LU basado en el
algoritmo de eliminación gaussiana:
Datos: Matriz A ∈ Rn×n que satisface las hipótesis del Teorema 2
Resultados: L ∈ Rn×n y U ∈ Rn×n como en el Teorema 2
for k=1:n-1 do
for i=k+1:n do
aik
`ik =
akk
for j=k+1:n do
aij ← aij − `ik akj
end
end
end
Algorithm 3: Algoritmo de factorización LU
40 Apuntes de clase de Análisis Numérico I

Al combinar los algoritmos de sustitución progresiva, sustitución regresiva y factori-


zación LU se puede resolver el problema Ax = b, como sigue:
Datos: Matriz A ∈ Rn×n que satisface las hipótesis del Teorema 2 y b ∈ Rn
Resultados: x tal que Ax = b
Factorizar A = LU
Resolver Ly = b, por sustitución progresiva
Resolver U x = y, por sustitución regresiva
Algorithm 4: Algoritmo de rersolución de sistemas lineales

Complejidad del algoritmo de factorización LU


Análogamente al conteo de operaciones de punto flotante (flops) del algoritmo de sustitu-
ción regresiva, contamos las operaciones del algoritmo de factorización LU . Para contar
las sumas y restas observamos la línea 7 del algoritmo de factorización LU .
n−1 X
X n n
X n−1 X
X n
1= (n − k)
k=1 i=k+1 k=k+1 k=1 i=k+1
n−1
X
= (n − k)2
k=1
n−1
X n−1
X n−1
X
2
= n − 2n k+ k2
k=1 k=1 k=1
n(n − 1)(2n − 1)
= n2 (n − 1) − n2 (n − 1) +
6
n3 n2 n n3
= − + = O( ).
3 2 6 3
3
El esfuerzo de cálculo para multiplicaciones y divisiones también es de orden O( n3 ), por lo
que la complejidad del algoritmo de factorización LU es de orden O( 23 n3 ), mucho menor
si comparamos con la complejidad requerida para invertir una matriz. Ver las fórmulas
de Laplace o Leibniz para el cálculo del determinante.

4.3 Estrategias de pivoteo

Ejemplo 22. Vamos a resolver el siguiente sistema lineal

1 × 10−4 1 1
   
(1) (2) (1) 4 (1) 1
A = F2 = F2 −1 × 10 F1 ⇒ L1 =
1 12 −1 × 104 1
1 × 10−4 1 × 10−4
   
1 1 1 1
A(2) = = ,
0 1 − 104 2 − 104 0 −9999 −9998

si suponemos que las operaciones se efectúan en una máquina con 3 dígitos de precisión
entonces:
1 × 10−4
   
(2) 1 1 0
A = 4 4 ⇒x=
0 1 × 10 1 × 10 1
Métodos directos para la resolución de sistemas lineales 41

Si resolvemos el problema anterior intercambiamos las filas, tenemos que


 
1 12 (2) (1) (1)
(1)
A → Ã = (1)
F2 = F2 −1 × 10−4 F1
1 × 10−4 1 1
 
(2) 1 1 2
à = .
0 1 − 1 × 10−4 1 − 2 × 10−4

Nuevamente, suponiendo que los cálculos se efectúan en una máquina con 3 dígitos de
precisión tenemos:
   
(2) 1 12 1
à = ⇒x=
0 11 1

Los efectos de los errores de redondeo que causan esta discrepancia de las soluciones
ocurren cuando calculamos los coeficientes de la matriz de Frobenius en ambos casos, en el
primero es de 1 × 104 mientras en el segundo es de 1 × 10−4 y donde se obtiene la solución
correcta. La idea es justamente mantener los términos |`ij | lo más pequeños posible. Esto
se puede garantizar justamente intercambiando las filas que tienen el pivote más grande
(en valor absoluto).
Note que, no sólo ocurren errores de redondeo que nos pueden llevar a una solución
incorrecta, sino que eventualmente el algoritmo de eliminación gaussiana puede fallar
debido a que un pivote se anule, sin que la matriz sea necesariamente singular.

Pivoteo parcial por filas


Los problemas discutidos se puede solucionar parcialmente si en cada paso del algoritmo
de eliminación gaussiana intercambiamos las filas de manera que trabajemos con el “mejor”
pivote.
En el k-ésimo paso, sea el índice i∗ tal que
(k) (k)
(k) (k) aik |aik |
|ai∗ k | = máx |aik | ⇒ |`ik | = | (k)
|= (k)
≤ 1,
k≤i≤n ai ∗ k máx |aik |
k≤i≤n

Teniendo a mano i∗ en el paso k, intercambiamos las filas correspondientes


 (1) (1) (1) (1)   (1) (1) (1) (1) 
a11 a12 · · · a1k · · · a1n a11 a12 · · · a1k · · · a1n
(2) (2) (2) (2) (2) (2)

 a22 · · · a2k · · · a2n  

 a22 · · · a2k · · · a2n 

 .. .. ..   .. .. .. 

 . . .  

 . . . 

(k) (k)  (k) (k)
(k)
 akk · · · akn   ai ∗ k · · · ai ∗ n 
A = → Ã(k) = 
  
.. ..  .. .. 

 . . 

 . . 

(k) (k)  (k) (k)

 ai ∗ k · · · ai ∗ n  
 akk · · · akn 

 .. ..   .. .. 
 . .   . . 
(k) (k) (k) (k)
ank · · · ann ank · · · ann

La operación de intercambio de filas se puede expresar por medio de una matriz de per-
mutación, es decir,

Ã(k) = Pk A(k) ,

donde Pk es la matriz de permutación que intercambia la fila k con la i∗ en el paso k


y se la obtiene intercambiando k por i∗ en la matriz identidad. Esta operación requiere
42 Apuntes de clase de Análisis Numérico I

de O(n2 ) flops adicionales y en consecuencia hace que el algoritmo con la estrategia de


intercambio de filas sea más costosa, pero no tan costosa como para incrementar el orden
cúbico de operaciones del algoritmo de factorización LU .
Notemos que, al realizar el intercambio de filas para obtener el “mejor pivote”, des-
truimos la estructura de la matriz A y por lo tanto, A 6= LU . En este caso, la sucesión de
matrices generada es:

A(k+1) = Lk Ã(k) = Lk Pk A(k) , k = 1, . . . , n − 1.


U = A(n) = Ln−1 Pn−1 · · · L2 P2 L1 P1 A(1) ⇒ A = L̃U
| {z }
=:L̃−1

donde, L̃ no es triangular inferior, sin embargo, despejando A, tenemos que:

A = P1 L−1 −1 −1
1 P2 L2 · · · Pn−1 Ln−1 U = L̃U ;

Sin embargo, podemos expresar en la forma A = P LU , donde L si es triangular inferior


y P = P1 P2 · · · Pn−1 . Por ejemplo, para una matriz de tamaño 5 × 5 tendríamos:

U = A(4) = L4 P4 L3 P3 L2 P2 L1 P1 A(1) ,

por tanto

A = A(1) = P1 L−1 −1 −1
1 P2 L2 P3 L3 P4 L4 U
−1

= P1 P2 P3 P4 (P4 P3 P2 L−1 −1 −1 −1
1 P2 P3 P4 )(P4 P3 L2 P3 P4 )(P4 L3 P4 )L4 U
| {z } | {z }
=P =L

Note que la multiplicación Pr L−1


k Pr con r > k solamente intercambia los elementos bajo
la diagonal, pero la estructura triangular de L−1
k con unos en la diagonal prevalece. En
efecto, supongamos que Pr permuta la fila k + 1 con la fila i∗ > k + 1. Entonces tenemos

1 1
   
 ...   ... 
   
1 1
   
   
1 1
   
Pk  P =  Pk
   
 k 
 −`k+1 k 1   −`i∗ k ··· 1 
 .. ..   .. .. 

 . . 


 . . 

 −`i∗ k ··· 1   −`k+1 k 1 
−`n k 1 −`n k 1
1
 
..

 . 

1
 
 
1
 
=
 
−`i∗ k 1

 
 .. ... 

 . 

 −`k+1 k · · · 1 
−`n k 1
Métodos directos para la resolución de sistemas lineales 43

Datos: Matriz A ∈ Rn×n invertible


Resultados: L̃ ∈ Rn×n y U ∈ Rn×n triangular superior tales que A = L̃U y
P A = LU con L triangular inferior, donde P = Pn−1 · · · P2 P1 , con Pi
matrices de permutación que realizan el pivoteo
for k=1:n-1 do
(k) (k)
Escoger i∗ tal que |ai∗ k | = máx |aik |
k≤i≤n
(k) (k)
←→
FA,k FA,i∗ Intercambiamos las filas de la matriz A
for i=k+1:n do
aik
`˜ik =
akk
(k) (k)
FL,k ←→ FL,i∗ Intercambiamos las filas de la matriz L
for j=k+1:n do
aij ← aij − `ik akj
end
end
end
Algorithm 5: Algoritmo de factorización LU con pivoteo parcial por filas

Ejemplo 23. Aplicaremos el algoritmo de factorización LU utilizando la estrategia de


pivoteo parcial por filas a la matriz
 
1 −6 −1
2 1 0
4 8 8

      
1 −6 −1 1 1 −6 −1 4 8 8
A(1) = 2 1 0 ⇒ Ã(1) =  1   2 1 0  = 2 1 0
4 8 8 1 4 8 8 1 −6 −1
      
4 8 8 1 4 8 8 4 8 8
A(2) =  −3 −4 ⇒ Ã(2) =  1  −3 −4 =  −8 −3
−8 −3 1 −8 −3 −3 −4
 
4 8 8
A(3) =  −8 −3  ,
−23/8
por lo tanto, tenemos que

     
1 1 1 1 4 8 8
A =  1  1/2 1   1  1   −8 −3 
1 1/4 1 1 3/8 1 −23/8
  
1/4 1 4 8 8
= 1/2 3/8 1  −8 −3 
1 −23/8
Nota: Tener en cuenta que, en general, la inversa de una matriz triangular, no nece-
sariamente es triangular.
El algoritmo de eliminación gaussiana con pivoteo parcial por filas prueba el siguiente
teorema:
44 Apuntes de clase de Análisis Numérico I

Teorema 3. Sea A ∈ Rn×n una matriz no singular, entonces existe una matriz de per-
mutación P ∈ Rn×n , L ∈ Rn×n triangular inferior, con los elementos de su diagonal
igual a uno y U ∈ Rn×n triangular superior tal que:

P A = LU.

4.4 Estrategias de escalonamiento


Se puede precondicionar la matriz A del sistema lineal multiplicando por una matriz que
mejore su estructura. La estrategia de escalonamiento consiste en las siguientes operacio-
nes:
Escalonamiento por filas A 7→ Dl A Dl := diag(l1 , . . . , ln )
Escalonamiento por columnas A 7→ ADr Dr := diag(r1 , . . . , rn )
Escalonamiento por filas y columnas A 7→ Dl ADr con Dl y Dr como antes.

Entonces, podemos escoger los li (y análogamente los ri ), de modo que los datos
resulten más “uniformes ”
q
li = a2i1 + · · · + a2in = kAi k
li = máx |aij |
1≤i≤n
Xn
li = |aij | i = 1, . . . , n
i=1

Por ejemplo, en el caso del escalonamiento por filas resolvemos el sistema precondicio-
nado
Dl Ax = Dl b.

4.5 Refinamiento iterativo


Definición 18. Dado el sistema Ax = b, con A ∈ Rn×n no singular, y b ∈ Rn , se
llama residuo en x0 a la cantidad definida por

r(x0 ) := b − Ax0 (4.5)

Si x es tal que Ax = b, entonces para una solución aproximada x0 ∈ Rn , notamos


∆x0 = x − x0 , luego

r(x0 ) = b − Ax0 = Ax − Ax0 = A(x − x0 ) = A∆x0 .

El error ∆0 satisface la ecuación

A∆x0 = r(x0 ), (4.6)

es decir, resolver esta ecuación equivale a resolver Ax = b.


Métodos directos para la resolución de sistemas lineales 45

Para una solución aproximada x0 podemos calcular su residuo r(x0 ) = b − Ax0 , por
lo tanto, el lado derecho de (4.6) es dato, de esta manera podemos encontrar una aproxi-
mación ∆xˆ 0 del error, generando así la sucesión:
ˆ 0
x̂1 = x0 + ∆x
ˆ 1
x̂2 = x̂1 + ∆x
..
.
ˆ k,
x̂k+1 = x̂k + ∆x
ˆ k es la solución aproximada de A∆xk = r(xk ).
donde ∆x
El análisis de condición del refinamiento iterativo se puede hacer fácilmente si los
errores ocurren en A y se asume que existe δA ∈ Rn×n tal que (A + δA)x0 = b:
kx − x̂1 k ˆ 0k
kx − x0 − ∆x ˆ 0k
k∆x0 − ∆x kδAk
= = ≤ K(A)
kxk kxk kxk kAkkxk
y tomando en cuenta que kbk ≤ kAkkxk, se tiene que:
kx − x̂1 k kδAk
≤ K(A) .
kxk kbk

4.6 Análisis de estabilidad del algoritmo de sustitución


regresiva
El paso principal del algoritmo de sustitución regresiva establece la siguiente operación
para aproximar las componentes de x:
n
! n
1 X X
xi = bi − xk uik ⇐⇒ uii xi = bi − xk uik i = n, . . . , 1
uii k=i+1 k=i+1

Ahora, si notamos Xi+1 = [xi+1 , . . . , xn ] y Ui+1 = [ui,i+1 , . . . , ui,n ], vectores de n − i


componentes, podemos expresar el paso anterior como
uii · xi = bi − hXi+1 , Ui+1 i, i = n − 1, . . . , 1.
Al escribir este paso con operaciones de punto flotante, se tiene:
uiiˆ·xi = bi −̂ hXi+1 , Ui+1 if l , i = n − 1, . . . , 1,
y tomando en cuenta el análisis del Ejemplo 19 podemos escribir
hXi , Ui if l = uii xi (1 + 1,i )(1 + 2,i ) + hXi+1 , Ui+1 if l (1 + 2,i ),
|k,i | ≤ eps, i = n − 1, . . . , 1, k = 1, 2.
Del análisis de estabilidad de un producto escalar, sabemos que existe Ǔi+1 = [ûi,i+1 , . . . , ûi,n ],
tal que
|Ui,j − Ǔi,j | ˙
hXi+1 , Ui+1 if l = hXi+1 , Ǔi+1 i, y máx ≤(n − i) eps (eps → 0),
j=i+1,...,n |Ui,j |
para i = n − 1, . . . , 1. Tomando ǔi,i = ǔii (1 + 1,i )(1 + 2,i ) obtenemos Û tal que
Û x = b y ˙ eps|U | (eps → 0),
|U − Û |≤n
lo cual establece que el algoritmo de sustitución regresiva es estable, en el sentido del aná-
lisis regresivo por componentes. Por analogía, se obtiene la estabilidad para el algoritmo
de sustitución progresiva.
46 Apuntes de clase de Análisis Numérico I

4.7 Análisis de estabilidad del algoritmo de factoriza-


ción LU
Señalemos algunos resultados, sin demostración, acerca de la estabilidad de la factorización
LU , ver [3].
Observemos que el algoritmo de elminación gaussiana calcula matrices L̂ (triangular
inferior) y Û (triangular superior), tales que  = L̂Û satisface
˙ L̂||Û |eps (eps → 0).
|A − Â|≤n|
Esto es intuitivamente claro, si caemos en cuenta que la factorización LU se realiza según el
paso de eliminación Lk A(k) y la multiplicación de matrices se realiza a través de productos
escalares, que, como se analizó anteriormente conocemos que es estable en el sentido del
análisis regresivo.

Teorema 4. Bajo las hipótesis del Teorema 2, para un sistema lineal: Ax = b, con
A ∈ Rn×n y b ∈ Rn , el algoritmo de eliminación gaussiana calcula una solución
aproximada x̂, tal que

Âx̂ = b, para una matriz  con ˙


|A − Â|≤2n|L̂||Û |eps (eps → 0),

donde L̂ y Û corresponden a las matrices del resultado anterior.

en el mismo espíritu tenemos un resultado en el caso de la eliminación gaussiana con


pivoteo parcial de filas.

Teorema 5. Bajo las hipótesis tel Teorema 3, para un sistema lineal Ax = b, con
b ∈ Rn×n , el algoritmo de eliminación gaussiana con pivoteo parcial por filas calcula
una solución aproximada x̂ tal que

kA − Âk∞ ˙ 3
Âx̂ = b, para una matriz  con ≤2n ρn (A)eps (eps → 0).
kAk∞
αmax
Donde ρn (A) := y αmax es el mayor coeficiente (en valor absoluto)
máx1≤i,j≤n |aij |
que se calcula durante la eliminación gaussiana.

Matriz Pivoteo ρn ≤
Invertible Si 2n−1
Diagonal dominante No 2
Tridiagonal Si 2
Simétrica definida positiva No 1
Con respecto al análisis regresivo, tenemos los siguientes indicadores, que nos permiten
verificar la calidad de una solución aproximada x̂:

Teorema 6. El error regresivo normado para la solución aproximada x̂ del sistema


Ax = b es:
kr(x̂)k
ηN (x̂) = .
kAkkx̂k + kbk
Métodos directos para la resolución de sistemas lineales 47

Teorema 7. (Prager-Oettli) El error regresivo componente-a-componente para la so-


lución aproximada x̂ del sistema: Ax = b es

|r(x̂)|i
ηC (x̂) = máx .
i=1,...,n (|A||x̂| + |b|)i

4.8 Algoritmo de Doolitle

El algoritmo de Doolitle es una alternativa al algoritmo de eliminación gaussiana, que


parte de la ecuación A = LU :

    
a11 . . . a1j . . . a1n `11 u11 . . . u1j ... u1n
 .. .. ..   .. ... . . . .. .. 
 . . .   . . . 


ak1 . . . akj . . . akn  = `k1 . . . `ki . . . `kk ujj . . . ujk . . . ujn 
    

 . .. ..   . .. . . .. .. 
 .. .   ..

. . .  . . 
an1 . . . anj . . . ann `n1 ... `nk . . . `nn unn

mı́n{k,j}
X
akj = `kp upj ,
p=1

con k, j = 1, . . . , n. Este sistema se tienen n2 ecuaciones y n2 + n incógnitas. Por tanto,


prefijamos n condiciones tomando `ii = 1, i = 1, . . . , n. Con el propósito de despejar las
componentes de L y U procedemos en dos etapas:

1) Despejamos los elementos de la k-ésima fila U :

mı́n{j,k}
X
akj = `kp upj j = k, . . . , n.
p=1

2) Despejamos los elementos de la k-ésima columna de L:

min{i,k}
X
aik = `ip upk i = k + 1, . . . , n.
p=1

Si en lugar de `kk = 1, se toma ukk = 1, la factorización se la llama de Crout.


48 Apuntes de clase de Análisis Numérico I

Tenemos así el siguiente algoritmo:


Datos: Matriz A ∈ Rn×n invertible
Resultados: L ∈ Rn×n triangular inferior y U ∈ Rn×n triangular superior tales que
A = LU
for k=1:n do
`kk = 1
for j=k:n do
k−1
X
ukj = akj − `kp upj , k − ésima fila de U
p=1
end
for i=k+1:n do !
k−1
1 X
`ki = aik − `ip upk i − ésima fila de L
ukk p=1
end
end
Algorithm 6: Algoritmo de Doolitle para la factorización LU .
Es interesante observar que los dos bucles que calculan la k−ésima fila de U y la
i−ésima fila de L se pueden calcular en paralelo.

4.9 Método de Choleski


El método de Choleski es un caso particular del algoritmo de Doolitle para realizar la
factorización LU , cuando la matriz factorizada corresponde a una simétrica definida
positiva. Además, es una herramienta para verificar numéricamente si una matriz es
definida positiva.

Definición 19. Una matriz A ∈ Rn×n se dice que es:


Semi definida positiva: x> Ax ≥ 0, ∀x ∈ Rn
Definida positiva x> Ax > 0, ∀x ∈ Rn \{0},
si además A es simétrica y satisface alguna de las condiciones anteriores se llama
simétrica semidefinida positiva (ssdp) y simétrica definida positiva (sdp)
respectivamente.

Si A ∈ Rn×n es sdp, entonces algunas de las propiedades más importantes de este tipo
de matrices son:
1. A es invertible.En efecto, para x 6= 0 se tiene que 0 < x> Ax 6= 0, en consecuencia
ker(A) 6= 0.
2. aii > 0, para todo i = 1 . . . , n. Esto es verdad, pues 0 < e>
i Aei = aii .

3. máx |aij | = máx |aii |. Esta propiedad se sigue de calcular: 0 < (e> >
i − ej )A(ei −
i,j∈{1,...,n} i=1,...,n
ej ) = e> i Ae i − 2e > >
i Aej + ej Aej

4. Sus valores propios son todos reales y positivos. En efecto, si x es un valor propio, i.e.
x> Ax
Ax = λx. De la definición positiva de A, entonces x> Ax = λx> x, entonces, > =
x x
λ.
Métodos directos para la resolución de sistemas lineales 49

5. Si B ∈ Rn×m tal que rank(B) = m. Entonces B > AB es sdp.

6. En cada paso del algoritmo de eliminación gaussiana, cada matriz menor principal,
Aii , es sdp. Aii se obtiene eliminando la fila i y la columna i de la matriz A. Esto
se sigue utilizando el teorema del teorema fundamental del álgebra lineal.

7. (Criterio de Sylvester) A es sdp, si y solamente si, det(A) > 0, k = 1, . . . , n, donde


Ak es la matriz menor principal de A.

La idea es proceder como en la eliminación gaussiana, pero aprovechando la simetría


de A; por lo que multiplicamos por las matrices de Frobenius y sus traspuestas por la
derecha y por la izquierda respectivamente.
Si A ∈ Rn×n es sdp, si definimos a> = [a21 , . . . , an1 ] entonces podemos escribir

a11 a>
! !
1
A= , L1 = , ` = [`21 , . . . , `n1 ]> .
a à −` I

Considerando à una matriz genérica que contiene los resultados correspondientes, el


primer paso de eliminación gaussiana sería

a11 a>
! !
1 0
L1 A = , =⇒ L1 AL> 1 = , ` = [`21 , . . . , `n1 ]> .
0 Ã 0 Ã

Si continuamos multiplicando por las respectivas matrices de Frobenius obtenemos


 (1) 
a11
(2)
a22
 
 
> >

Ln−1 · · · L1 AL1 · · · Ln−1 =  . .

 =: D.
.
| {z }  (n−1)

a
 
−1
=L AL −>  n−1n−1 
(n−1)
ann

De aquí que A = LDL> , por lo que se ha demostrado el siguiente teorema:

Teorema 8. Una matriz A ∈ Rn×n es simétrica definida positiva si, y sólo si existe
una matriz diagonal D con sus componentes positivas tal que

A = LDL> .

1 1 1
Como D = diag(d1 , . . . , dn ) entonces podemos escribir D = D 2 D 2 , donde D 2 =
1 1
(d1 , . . . , dn ), y en consecuencia, si A es sdp se tiene que existe L̃ tal que
2 2

1 1 1 1
A = L̃DL̃> = L̃D 2 D 2 L̃> = L̃D 2 (L̃D 2 )> = LL> ,
1
donde L := L̃D 2 . Por tanto si A es sdp existe L triangular inferior tal que A = LL> .
Sin embargo, para evitarnos cálculos numéricos realizamos esta factorización aplicando
el algoritmo de Doolitle, que para el caso de matrices sdp es más eficiente ya que aprovecha
la simetría de A.
50 Apuntes de clase de Análisis Numérico I

Deducimos entonces el algoritmo de Choleski, basándonos en el algoritmo de Doolitle,


i.e.
    
a11 . . . a1j . . . a1n `11 `11 . . . `j1 ... `n1
 .. .. ..   .. ..
.
.. .
. ..
.. 
 . . .   . . 


 ai1 . . . aij . . . ain  =  `i1 . . . `ik . . . `ii `jj . . . `jk . . . `nj 
    

 . .. ..   .. .. . . .. .. 
 ..
   
. . . . .  . . 
an1 . . . anj . . . ann `n1 ... `ni . . . `nn `nn

Al realizar la multiplicación de la derecha obtenemos:


mı́n{i,j}
X
aij = `ip `pj , i, j = 1, . . . , n. (4.7)
p=1

Para los elementos de la diagonal se tiene:


k
X k
X
akk = `kp `pk = `2kp
p=1 p=1

, para k = 1, . . . , n.
Además, de (4.7) y tomando en cuenta que la matriz L es diagonal, solo resta calcular
los elementos de L que están bajo la diagonal, los cuales despejamos de:
k−1
X
aik = `ip `pk + `ik `kk
p=1

Datos: Matriz A ∈ Rn×n definida positiva


Resultados: L ∈ Rn×n triangular inferior tal que A = LL>
for k=1:n do
k−1
! 21
X
`kk = akk − `2kp
p=1
for i=k+1:n do !
k−1
1 X
`ki = aik − `ip `pk
`kk p=1
end
end
Algorithm 7: Algoritmo de Choleski
Las n raíces cuadradas requeridas son tomadas de números positivos, por tanto el
algoritmo está bien definido. El algoritmo de Choleski no requiere estrategias de pivoteo
para su estabilidad numérica. Es importante notar que, solamente se accede a la parte
triangular inferior de A, por lo tanto la parte triangular superior de A no requiere ser
almacenada en la memoria.

4.10 Factorización QR
Métodos directos para la resolución de sistemas lineales 51

Sea A ∈ Rn×n , estudiamos ahora la factorización

A = QR, Q = ortonormal y R = triangular superior (4.8)

donde Q ∈ Rn×n es una matriz ortogonal, ie. Q satisface: QQ> = Q> Q = I.

Al igual que la factorización LU , la factorización QR se aplica en la resolución numérica


de sistemas lineales, basta multiplicar por Q, para obtener un sistema triangular.

Ax = b ⇐⇒ QRx = b ⇐⇒ Rx = Q−1 b = Q> b

Para obtener la solución x, aplicamos la sustitución regresiva al sistema triangular Rx =


Q> b. La factorización QR se puede generalizar fácilmente a matrices que no son cuadradas.
Si recordamos el primer paso de la eliminación gaussiana A(2) = L1 A(1) , este permite
obtener una matriz con la forma
     
a11 a12 . . . a1n a11 a11
 0 × ... ×   a21  0
A(2) =  .. ..  . , ie.  ..  7→  .. 
     
..
 . . .   .   . 
0 × ... × an1 0

es decir, la primera columna se proyecta en un vector que yace sobre el eje de la primera
componente. La idea de la factorización QR es reemplazar las matrices de Frobenius por
proyecciones ortogonales sobre el primer eje.

4.10.1 Reflexiones de Househölder


Las reflexiones de Househölder son un tipo especial de transformaciones ortogonales que
cumplen con nuestros requerimientos. Supongamos que disponemos del vector u, sobre el
cual construiremos la reflexión. Del gráfico podemos deducir la aplicación lineal que tiene
el efecto deseado:

Ha =a − 2prju a
 
ha, ui
a−2 u
hu, ui
52 Apuntes de clase de Análisis Numérico I

2
=a− uu> a
hu, ui
 
2 >
= I− uu a
hu, ui

Para un vector u ∈ Rn dado, las matrices de Househölder tienen de la forma:


2
H := I − βuu> , β := .
u> u
Las matrices de Househölder tienen propiedades importantes, como las siguientes:

• Son simétricas:

H > = (I − βuu> )> = I − β(uu> )> = I − βuu> .

• Son ortogonales:

HH T = (I − βuu> )(I − βuu> )> = (I − βuu> )2


= I − 2βuu> + β 2 (uu> )(uu> )
= I − 2βuu> + β 2 u(u> u)u>
= I − 2βuu> + 2βuu> = I.

En el gráfico, Ha corresponde a la reflexión de a con respecto al subespacio gene-


rado por span(u).

• Preservan la norma–2 de un vector: kHak2 = kak2

La utilidad de las transformaciones de Höuseholder radica en que podemos crear ceros


en las posiciones 2 : n de un vector de tamaño n o en otros subespacios de interés.
A continuación, procedemos a determinar el vector u, con respecto al cual se realiza la
reflexión. Si notamos e1 = [1, 0, . . . , 0]> , entonces

Ha = (±kak2 , 0, . . . , 0)> = ±kak2 e1


⇒ H > Ha = a = kak2 H > e1
a
=⇒ H > e1 = ±
kak2

Como a − Ha debe ser paralelo a u y ortogonal a span(u)⊥ , entonces podemos tomar

u = (a − Ha) = a ∓ kak2 e1

De las dos opciones: u = a − kak2 e1 , o u = a + kak2 e1 vamos a tomar la opción que


implique mayor estabilidad. Para esto, observemos las operaciones al calcular β:
2
β=
kuk2
1 kuk2 (a ∓ kake1 )> (a ∓ kake1 )
= =
β 2 2
>
a a ∓ 2a1 kak + kak2
=
2
1
= kak2 (kak2 ∓ a1 ),
β
Métodos directos para la resolución de sistemas lineales 53

donde a1 es la primera componente de a.


Si el ángulo entre a y e1 es muy pequeño ⇒ kak2 ≈ |a1 |, así se tiene
1
≈ |a1 |(|a1 | ∓ a1 ),
β
lo que conduce a la resta de números muy cercanos operación que conocemos es mal
condicionada por el efecto de cancelación. Para evitar una eventual cancelación, en base
al análisis anterior tomamos β1 = kak2 (kak2 + |a1 |), con lo cual tenemos una expresión
para u:


−kak si a1 < 0,
u=a+ = a + sign(a1 )kake1
kak si a1 > 0,

Como H está determinado por u, entonces


1
I − βuu> = I − (a + sign(a1 )kake1 )(a + sign(a1 )kake1 )>
kak2 (kak2 + |a1 |)

⇒ Ha = −sign(a1 )kak2 e1 = σe1


| {z }
=:σ

Ahora que tenemos la herramienta construir la reflexión de Househölder, podemos deducir


un método para realizar la factorización QR.
Sea A ∈ Rn×n , realizamos el siguiente proceso
(1)
Paso 1 a11 6= 0
 (1) (1) (1)   (1) 
a11 a12 ··· a1n a11
a(1) a(1) ···
(1)
a1n   (1)
a21 
A(1) = A =  21 22
a(1) =   ⇒ Q1 = In − βuu>
   
 ... ..
. ···
.. 
.   ..
. 
(1) (1) (1) (1)
an1 an2 ··· ann an1
(2)
Paso 2 a22 6= 0
 (2) (2) 
σ1 a12 ··· a1n  (2)

(2) (2) a22
···
 
 0 a22 a2n 
 ..  I1
A(2) = Q1 A(1) = a(2) =  .  ⇒ Q2 =
 
.. .. .. 
In−1 − βuu>
 . . ··· .  (2)
(2) (2) an1
0 an2 ··· ann

(k)
Paso k akk 6= 0
 (2) (2) (2) 
σ1 a12 · · · a1k · · · a1n
(3) (3)
 σ2 · · · a2k · · · a2n   (k) 
a
 
 .. .. ..  (k)  kk

 . . .  a =  ... 
A(k) = Qk−1 A(k−1) = (k) (k)
akk · · ·

 akn 
(k)
ank
 
 .. .. 
 . . 
(k) (k)
ank · · · ann
 
Ik−1
⇒ Qk =
In−k+1 + βuk uk >
54 Apuntes de clase de Análisis Numérico I

donde uk = [a(k) kk , · · · , a(k) nk ]>


Generamos una sucesión A(1) → A(2) → · · · → A(n)

R = A(n) = Qn−1 A(n−1) = · · · = Qn−1 · · · Q1 A(1) = Q> A ⇒ A = QR


| {z }
=:Q>

Podemos aprovechar de mejor manera la estructura de las reflexiones de Househölder,


notando que no es necesario realizar multiplicaciones de matrices: si definimos
 (k) (k)

akk · · · akn
 .. ..  ,
Ak =  . . 
(k) (k)
ank · · · ann

entonces

(In−k+1 − βuu> )Ak = Ak − βu(u> Ak ).

El costo computacional de la multiplicación de un vector por una matriz en el k-ésimo


paso es de 2(n − k)2 flops, por lo que el método no incurre en costos computacionales
demasiado elevados.
Datos: Matriz A ∈ Rn×n
Resultados: Q ortogonal y R ∈ Rn×n triangular superior tal que A = QR
Q = In
for k=1:n-1 do
a = [akk , . . . , akn ]>
u = a + sign(a1 )kak2 e1
1
β=
kak2 (kak2 + |a1 |)
 
Ik−1
Qk =
In−k+1 − βuu>
Ak ← Ak − βu(u> Ak )
Q ← QQk
end
Algorithm 8: Algoritmo de factorización QR (con reflexiones de Househölder)
Observar que el algoritmo de factoriación QR puede extenderse fácilmente para traba-
jar con matrices rectangulares A ∈ Rm×n , obteniendo una descomposición donde R tiene
la siguiente estructura:
 
r11 . . . r1m r1m+1 . . . r1n
Si n > m R = 
 ... .. .. .. 
. . . 
rmm rmm+1 . . . rmn
 
r11 . . . r1n
.. .. 

 . . 
rnn 
 
Si n < m R=

0 ... 0 


 .. .. 
 . . 
0 ... 0
Métodos directos para la resolución de sistemas lineales 55

Si rank(A) < m (cuando m ≥ n) o las columnas de A son “casi” linealmente indepen-


dientes, se utiliza la estrategia de pivoteo por columnas en cada paso de tal forma que
k[akk , . . . , akn ]> k2 sea maximal.
Una ventaja de la factorización QR es que en cada paso se “multiplica” A por una
matriz ortogonal Q, y esta no causa ningún incremento en el número de condición :

kAk2 = kQ> QAk2 ≤ kQ> k2 kQAk2 = kQAk ≤ kQk2 kAk2 = kAk2


=⇒ K2 (A) = K2 (QA).

4.10.2 Rotaciones de Givens


Otra clase de transformaciones ortogonales les corresponde a las matrices que representan
rotaciones en un plano.

La matriz que representa una rotación (en sentido horario) en el plano en un ángulo
θ, está dado por:
   
cos(θ) sin(θ) c s
G(θ) := =:
− sin(θ) cos(θ) −s c

La rotación de un vector a por un ángulo θ corresponde a

â = G(θ)a sentido horario,


ǎ = G(θ)> a sentido antihorario.

La idea es encontrar una rotación de Givens con un ángulo α tal que elimine la segunda
componente de a = [a1 a2 ]> , es decir:

G(α)a = ±kak2 e1 .

En la práctica no es necesario conocer el ángulo explícitamente. Dado que el ángulo que


debe rotar el vector está determinado por la dirección del vector entonces tenemos a
nuestra disposición el seno y el coseno del ángulo que coinciden con la segunda y primera
componente respectivamente. Utilizando identidades trigonométricas, podemos deducir
dos opciones para calcular s y c; y haciendo un sencillo análisis para evitar errores, hacemos
la siguiente elección:

c2 1
s2 + c2 = 1 ⇒ s2 (1 + 2
)=1⇒s= √ , con t = c/s
s 1 + t2
s2 1
s2 + c2 = 1 ⇒ c2 ( 2 + 1) = 1 ⇒ c = √ , con t = s/c
c 1 + t2

c a1 1
Si |a2 | > |a1 | t = = s= √ c = st
s a2 1 + t2
s a2 1
Si |a2 | < |a1 | t = = c= √ s = ct
c a1 1 + t2

Con esta elección del parámetro t se evita un posible “overflow”, pues |t| < 1.
56 Apuntes de clase de Análisis Numérico I

Podemos generalizar este procedimiento para un vector en Rn generando una matriz


de rotación en el plano generado por ei y ej , con i < j
 
1
..
.
 
 
1
 
 
c(i,i) . . . s(i,j)
 
 

Gij (θ) =  .. .. 
 . . 


 −s(j,i) . . . c(j,j) 


 1 

 .. 
 . 
1

La matriz Gij (θ) tiene las entradas (Gi,j (θ)) ([i, j], [i, j]) = G(θ), el resto de las entradas
coinciden con las de una matriz identidad In . Además, se elige θ de tal forma que:

  q !
a a2i + a2j
G(θ) i = ,
aj 0

luego
 

a1
 a1
.. ..
  .

.

   
  ai−1 

 ai−1  q
 

 cai + saj   a2i + a2j 
  

 ai+1  
 
 ai+1 

Gij (θ)a = 
 .. =

.. 
 .  
 . 

 a  
 j−1   aj−1  
−sa + ca  
 i j 0 
.   
.. ..
  
.
   
an an

Notemos que la multiplicación de una matrix A por una matriz de Givens Gi,j , sólo afecta
a las columnas i y j. Las matrices de Givens pueden ser utilizadas de diferentes maneras
para construir una matriz ortogonal Q tal que

Qa = ±kak2 e1 .

Además, las matrices G1k , k = 2, . . . , n tienen la propiedad de anular la componente k del


vector que multiplican. Por tanto si queremos utilizarlas en un proceso de triangulación
como las matrices de Frobenius o las reflexiones de Househölder, multiplicamos:

(G1n G1n−1 · · · G12 ) a = kak2 e1 .

Una vez más es importante aclarar que las matrices Gij no son construidas explícitamente
sino que están representadas por el par (i, j) y las cantidades c y s. Tomando en cuenta
Métodos directos para la resolución de sistemas lineales 57

ésto, escribimos el siguiente algoritmo:


Datos: Matriz A ∈ Rn×n
Resultados: Q ortogonal y R ∈ Rn×n triangular superior tal que A = QR
Q = In
for k=1:n-1 do
for i=k+1:n do
if |aki | >= |akk | then
akk 1
t= s= √ c = st
aik 1 + t2
else
aik 1
t= c= √ s = ct
akk 1 + t2
end
for j=k:n do   
akj c s akj

aij −s c aij
Q = QG> ij
end
end
end
Algorithm 9: Algoritmo de factorización QR (con rotaciones de Givens)
Las rotaciones de Givens permiten mayor flexibilidad que las transformaciones de
Househölder ya que el proceso de triangularización de la matriz A se va realizando de
manera más paulatina.
Con respecto a la unicidad de la Factorización QR, se tiene que si A ∈ Rm×n (m ≥
n) y tiene columnas linealmente independientes, entonces existe una única matriz Q ∈
Rm×n con columnas ortonormales y una única matriz R ∈ Rn×n triangular superior , con
entradas positivas en su diagonal, tal que A = QR.

4.11 Mínimos cuadrados (aplicación de la factorización


QR)
Supongamos que tenemos un conjunto de puntos (xi , yi ) , i = 1, . . . , n. Se quiere encontrar
la recta que pasa más cerca de todos los puntos a la vez. Es decir, se quiere resolver el
problema
n
X
mı́n d2i
i=1

donde di representa la distancia entre el punto (xi , yi ) dado y el punto de la recta (xi , zi ).
Es decir di = yi − zi , i = 1, . . . , n. Debemos minimizar la función derivable f (α, b) =
P n 2
i=1 (yi − αxi − b) , donde m es la pendiente de la recta y b es el punto de corte de la
recta en el eje de las coordenadas.
Las condiciones necesarias (y suficientes puesto que f es convexa) de optimalidad son:
n
∂f X
= 2(yi − αxi − b)(−xi ) = 0
∂α i=1
58 Apuntes de clase de Análisis Numérico I

n
∂f X
= 2(yi − αxi − b)(−1) = 0
∂b i=1

De las dos ecuaciones anteriores se obtiene el sistema cuya solución caracteriza la recta
buscada
Pn 2 Pn    Pn 
Pi=1 xi i=1 xi α i=1 xi yi
n = P n
i=1 xi n b i=1 yi
> >
El sistema
  como una ecuación normal A Ax = A b, con A =
 anterior se puedeescribir
x1 1   y1
 .. ..  α  .. 
 . . , x = ,yb=.
b
xn 1 yn
En general si un sistema está sobrecondicionado y no es posible hallar x tal que
Ax = b, al menos podemos buscar x tal que kAx − bk22 sea mínima (problema de mínimos
cuadrados).
x resuelve el problema de mínimos cuadrados mı́nx∈Rn kAx − bk22 ssi satisface A> (Ax−
b) = 0, en efecto si esto ocurre, Ax − b es ortogonal al espacio generado por las columnas
de A y puesto que A(x − y) está en este espacio para todo y,
hb − Ax, A(x − y)i = 0 ⇐⇒
kb − Ayk2 = kb − Ax + Ax − Ayk22 = kb − Axk22 + kA(x − y)k22 ≥ kb − Axk22 ,
2
∀y
por tanto x es mínimo.
Para resolver la ecuación normal A> Ax = A> b podemos realizar la factorización QR
de A y así tenemos el sistema
RR> x = A> b (4.9)
Si A tiene rank(A) = n, entonces RR> es simétrica definida positiva y podemos utilizar
el algoritmo de Cholesky para resolver (4.9), o directamente descomponemos (4.9) en dos
sistemas, los cuales se pueden resolver utilizando el algoritmo de sustitución progresiva
una sola vez.

4.12 Ejercicios
1. Resolver los siguientes sistemas utilizando los métodos indicados:
(a) Gauss y Gauss con pivoteo parcial por filas
−3x1 + 2x2 − 0,5x3 = 21
−2x1 − 4x2 − 1,5x3 = 1
3x1 − 3x2 = 12
Métodos directos para la resolución de sistemas lineales 59

(b) Factorización LU (utilizar sustitución progresiva y regresiva para resolver los


sistemas triangulares resultantes) , Doolitle

23x1 + 12x2 − 0,5x4 =0


12x1 − 200x2 − 1,5x3 − x4 =1
3x2 + x4 = 220
x1 + x 2 − x3 − x4 =5

2. Sea T una matriz no singular y k · k una norma vectorial. Muestre que la función
N (x) = kT xk es una norma.

3. Considere la matriz de banda


 
d 1 b1
 a1 d2 b2 
..
 
A= a2 d3 .  ∈ Rn×n ,
 
 ... ... 
 bn−1 
an−1 dn

Con di = 1, i = 1, . . . , n. Se pide deducir e implementar en Matlab un algoritmo


que calcule eficientemente la la factorización LU de tal matriz. Es decir, no debe
efectuar operaciones innecesarias ya que la matriz tiene una estructura particular
con muchas entradas nulas.
 
1 2 −1
4. Considere la matriz  eps 1 0 , con ε > 0. Utilice la implementación LU y
1 2 4/eps
calcule una solución aproximada û del sistema Ax = b, para algún b ∈ R3 cualquiera.
Utilice el indicador de estabilidad de Prager-Oettli y estime cuan cercana es la
solución aproximada a la solución exacta. Compare con el error verdadero.

5. Genere una matriz A mal condicionada de tamaño 4 × 4 y un vector b ∈ R4 , y


resuelva el sistema Ax = b de manera exacta. Proceda a resolver el problema con la
implementación de la factorización LU y los algoritmos de sustitución regresiva y
progresiva respectivamente, luego resuelva el sistema utilizando estrategias de pivo-
teo parcial por filas, escalonamiento (por filas, por columnas y por filas y columnas)
y refinamiento iterativo (3 iteraciones) , calcule el error utilizando la solución exacta
para cada respuesta obtenida en los experimentos anteriores. Resumir los resultados
en una tabla y redactar sus observaciones.

6. Demuestre que la inversa de una matriz de Frobenius se obtiene cambiando de signo


los elementos que están bajo la diagonal.

7. Analice la complejidad del algoritmo de la multiplicación de una matriz tirangular


superior por una matriz trigangular inferior.

8. Modifique el algoritmo de factorización LU para que factorice de manera eficiente


una matriz de Hessenberg (consultar).

9. Dar un ejemplo de una matriz invertible y con a11 6= 0, para la cual el método de
Eliminación Gaussiana falla. Explicar por qué falla. ¿Qué procedimiento utilizaría
para superar el problema?
60 Apuntes de clase de Análisis Numérico I

10. Implemente el algoritmo de Gauss para resolver un sistema lineal.


 
1
 1 
 , para m1 y m2 números complejos?
11. Cuál es la matriz inversa de 
 m1 1 
m2 1
En qué circunstancia podría aparecer tal matriz en la práctica computacional?

12. Si A es una matriz mal condicionada, y su factorización LU calculada mediante el


algoritmo de eliminación gaussiana da como resultado L y U , esperaría que el mal
condicionamiento de A se refleje en L o en U o ambas? (Considere con un ejemplo
para responder)

13. Con un contraejemplo, demuestre que una matriz cuadrada que tiene factorización
LU , no es necesariamente invertible.

14. En el algoritmo de factorización LU con estrategia de pivoteo por filas se tiene que

A = P1 L−1 −1
1 P2 L2 · · · Pn−1 Ln−1 U = L̃U ;

donde L̃ no es una matriz triangular inferior. Demuestre que, sin embargo, es posible
escribir, a partir de la identidad anterior, la siguiente identidad

P A = LU,

donde P es el producto de todas las matrices de permutación Pn−1 · · · P2 P1 utilizadas


para el pivoteo, y L es una matriz triangular inferor, no necesariamente igual al
producto de las matrices de Frobenius.

15. Deducir el método de factorización LU cuando se asume unos en la diagonal de U


y no en la diagonal de L. Implementar el método en Matlab.

16. Escriba un ejemplo de una matriz simétrica que no tenga factorización de Cholesky.

17. Considere el vector a = (3, 4)> . Encuentre la reflexión de Householder tal que Ha =
(kak2 , 0)> y realice un gráfico explicativo.

18. Pruebe que las matrices de Givens son ortogonales.

19. Aplique el proceso de ortogonalización Gram-Schmidt para diseñar un algoritmo de


factorización QR.

20. Realice la factorización QR de la siguiente matriz, utilizando las reflexiones de Hou-


sehölder y las rotaciones de Givens.
 
4 −12 21 4
1 3 −1 −1
A= 5 14
.
1 10 
4 −2 2 17

21. Escriba un código en Matlab que realice la reflexión de Househölder de un vector


con respecto a un vector dado.
Métodos directos para la resolución de sistemas lineales 61

22. Considere una matrix cualquiera de datos de tamaño 2 × 7, encuentre la recta que
pasa por esos puntos en el sentido de los mínimos cuadrados, resuelva utilizando la
descomposición QR y luego aplique el método de Choleski.
 
8 2 21 4
1 0 −1 −1
23. Considere la matriz A =  15 −1 3
. Aplique el algoritmo de factori-
4
2 −13 1 27
zación QR aplicando pivoteo por columnas en cada paso. En que caso es útil esta
estrategia?

24. Sea A la matriz de tamaño n × n definida por


 
µ −1
−1 λ −1 
 
 .. .. .. .

 . . .
 
 −1 λ −1
−1 λ
>
condiciones sobre λ,
(a) Bajo que µ y σ la matriz A tiene factorización A = µLL ,
1
σ 1 
 
 .. ..
con L =  ?

. .
 
 σ 1 
σ 1
(b) Escriba un algoritmo para realizar dicha factorización, que tome en cuenta la
estructura de la matriz A.

25. Si resuelve por el método de los mínimos cuadrados el sistema Ax ≈ b, ¿Está b


siempre en el espacio imagen de A? (Justificar).

26. Es cierto que un sistema sobredeterminado siempre tiene una única solución que
minimiza la norma euclideana al cuadrado del residuo?

27. Cuál de las siguientes propiedades de la matriz A ∈ Rm×n de un sistema lineal indica
que la solución de un sistema en el sentido de los mínimos cuadrados no es única
(Justificar).

(a) Las columnas de A son l.i.


(b) Las filas de A son l.i.
(c) La matriz A> A es singular.

28. Demuestre que la multiplicación por una matriz ortogonal, preserva la norma ecli-
diana de un vector.

29. Construya un sistema lineal (cualquiera) de tamaño 4 × 4 utilizando factorización


LU donde no sea necesario utilizar la estrategia de pivoteo.

30. Según su criterio, qué casos una factorización es más eficiente que otra, si se quiere
resolver un sistema lineal: ¿LU o QR?
62 Apuntes de clase de Análisis Numérico I
Capítulo 5

Resolución de sistemas a gran escala

5.1 Motivación: resolución de ecuaciones diferenciales


parciales
Un ejemplo donde aparecen sistemas de ecuaciones de gran tamaño es en la resolución
numérica de ecuaciones en derivadas parciales. Al discretizar una ecuación diferencial
parcial, por ejemplo por el método de diferencias finitas, aproximamos las funciones que
intervienen en este problema en cantidades representadas por vectores que satisfacen una
ecuación lineal. Cuando trabajamos con problemas evolutivos y/o no lineales, el proceso
de solución requiere resolver sistemas de ecuaciones repetidamente, por lo cual disponer de
métodos eficientes para resolver estos sistemas se vuelve crítico para obtener las soluciones
de la ecuación.
Tomemos como modelo el siguiente problema, donde se trata de encontrar una función
u : (0, 1) × (0, 1) → R que satisface la Ecuación de Poisson:
 2
∂ u ∂ 2u

− + u=f en Ω := (0, 1) × (0, 1)
∂x2 ∂y 2
u=0 sobre Γ := Ω̄\Ω
Por el momento, no nos preocupamos de la teoría de las ecuaciones diferenciales; sin
embargo es conocido que el problema anterior tiene solución u ∈ C 2 (Ω) para cada f ∈
C(Ω).

Discretización de la ecuación de Poisson


Como u está definida sobre el cuadrado unitario, vamos a establecer una partición en los
ejes x y y. Tomamos una partición de tamaño N + 2 como sigue
(x0 , x1 , . . . , xN +1 ), xi = x0 + ih
1
(y0 , y1 , . . . , yN +1 ), yj = y0 + jh, h=
N +1

Fijemos N = 9, de esta forma quedan definidos los nodos de la malla: (xi , yj ), i, j =


0, . . . , 10. El siguiente paso es aproximar el operador diferencial Laplaciano ∆, dado por
∂ 2u ∂ 2u
∆u = +
∂x2 ∂y 2
usando diferencias finitas. Es decir, usaremos la fórmula de aproximación de la segunda
derivada de una función F , dada por

63
64 Apuntes de clase de Análisis Numérico I

f (x + h) − 2f (x) + f (x − h)
F 00 (x) ≈ , para h → 0, (5.1)
h2
la cual tiene un orden de error cuadrático ie. o(h2 ), cuando h → 0.
Para aplicar la fórmula anterior, definimos las cantidades:

ui,j = u(xi , xj ), fi,j := f (xi , xj ), i, j = 0, . . . , 10


ui,0 = u0,j = ui,N +1 = uN +1,j = 0, i, j = 0, . . . , 10

observando que la última condición se debe a que u = 0 en la frontera de Ω. Aplicando


(5.1) entonces que

∂ 2u ui+1,j − 2ui,j + ui−1,j ∂ 2u ui,j+1 − 2ui,j + ui,j−1


2
≈ , ≈ , (5.2)
∂x h2 ∂y 2 h2
por tanto llegamos al siguiente sistema de ecuaciones lineales
 2
∂ u ∂ 2u

4ui,j − ui−1,j − ui+1,j − ui,j−1 − ui,j+1
− 2
+ 2 ≈ = fi,j , (5.3)
∂x ∂y h2

para i, j = 1, . . . , 9. Ahora podemos escribir el sistema de ecuaciones (5.3) en forma


matricial, se tiene que
Au = b, b := h2 f ,
donde

u := [u1,1 , . . . , u9,1 , . . . , u9,1 , . . . , u9,9 ]> , y


f := [f1,1 , . . . , f9,1 , . . . , f9,1 , . . . , f9,9 ]> ,

y la matriz A está dada por


 
D −I
A =  −I D −I  ,
−I D

donde D es la matriz tridiagonal


 
4 −1
 −1 4 −1 
 

 −1 4 −1 


 −1 4 −1 

D :=  −1 4 −1 .


 −1 4 −1 


 −1 4 −1 

 −1 4 −1 
−1 4

La matriz A es conocida como la matriz de rigidez del sistema (“stiffness” matrix“),


la cual posee una estructura bien definida en la distribución de sus elementos, muchos de
los cuales son nulos. Además es fácil ver que la matriz A es simétrica y definida positiva
por ser diagonal dominante.
Matrices que poseen muchas entradas nulas se denominan de tipo “sparse”. Hay que
tener en mente que este tipo de matrices posee otra estructura de datos computacionales
que aquellas matrices densas, y por tanto requieren sus propios métodos específicos en
Resolución de sistemas a gran escala 65

lo que se refiere a su almacenamiento, operaciones entre filas y columnas, operaciones


matriciales básicas, etc. Los métodos iterativos son especialmente adecuados para tra-
tar sistemas lineales donde intervienen este tipo de matrices a gran escala, si usamos
una malla muy fina. Como podemos suponer, ésto implica nuevas dificultades numéri-
cas y computacionales que requieren ser superadas. Frecuentemente, como en el caso de
la ecuación de Poisson, las matrices asociadas a un problema en particular poseen una
estructura determinada en la distribución de sus entradas numéricas. Si bien es posible
utilizar métodos directos como la Eliminación Gaussiana para resolver tales sistemas, por
experiencia conocemos que su aplicación destruye la estructura inicial de estas matrices
que puede y debe ser aprovechada en su tratamiento numérico.

5.2 Métodos iterativos para sistemas lineales


Una idea muy frecuente para generar una sucesión es la utilización de funciones contrac-
tivas para generar una iteración de punto fijo convergente. Vamos a utilizar esta misma
idea aplicada a sistemas lineales. En general, un método iterativo para sistemas lineales
tiene la forma
x(k+1) = φ(x(1) , x(2) , . . . , x(k) ).
Es decir, el k + 1-ésimo valor de la sucesión está en función de los valores de las iteraciones
anteriores por medio de una función φ que posee un punto fijo. Entonces, el problema
consiste en hallar una función φ adecuada, tal que la sucesión {x(k) } converja a la solución
lo más rápido posible y con el menor costo computacional.

Sean A ∈ Rn×n una matriz no singular y b ∈ Rn ; buscamos una solución para el sistema
Ax = b usando una sucesión de aproximaciones. La idea es descomponer la matriz A en
la forma A = M − N , y considerar la siguiente ecuación
M x = N x + b.
Si M es invertible, entonces tenemos una ecuación del tipo
x = M −1 N x + M −1 b,
la cual genera métodos iterativos del tipo

x(k+1) = M −1 N x(k) + M −1 b.
= Bx(k) + c, (5.4)
B := M −1 N, c := M −1 b.
Así tenemos el siguiente esquema iterativo general

x(k+1) = Bx(k) + c, k = 1, 2, . . . (5.5)

Los métodos expresados por (5.6) se denominan métodos iterativos estacionarios


debido a que la matriz B, llamada matriz de iteración del método, es fija en cada
paso iterativo (independiente de k). La construcción anterior obliga a que, si la sucesión
generada por (5.6) converge a un punto fijo de la función x 7→ Bx + c, en consecuencia
también es solución del sistema lineal Ax = b.
La descomposición A = M − N se la puede realizar de muchas maneras. Sin embargo,
podemos notar que es más adecuado seleccionar una descomposición en la que la matriz
M sea fácil de invertir.
66 Apuntes de clase de Análisis Numérico I

5.2.1 Métodos Iterativos Clásicos


Usaremos la siguiente notación, para describir la parte triangular inferior, diagonal y
triangular superior de una matriz A ∈ Rn×n .
     
0 a11 0 a12 . . . a1n
 a21 0 a22 ..
0 .
    
L =  .. . . , D= , U = ,
     
.. ...
 . . 0   .   an−1n 
an1 . . . ann−1 0 ann 0
así
A = L + D + U.
Consideremos los siguientes casos, referidos en la literatura como métodos clásicos.
1. Método de Richardson. Se toma los siguientes valores:
M =I N = I − A ⇒ B = I − A,
luego, reemplazando en (5.4) nos da el esquema iterativo
x(k+1) = x(k) − Ax(k) + b.
2. Método de Jacobi.
A = L + D + U , y tomamos los siguientes matrices:
M = D N = −(L + U )
⇒ B = (I − D−1 A) = −D−1 (L + U ),
y otra vez, reemplazando en (5.4) nos da el esquema iterativo
x(k+1) = −D−1 (L + U )x(k) + D−1 b.
3. Método de Gauss-Seidel. De manera similar, esta vez tomamos
M = L + D N = −U
⇒ B = −(D + L)−1 U = I − (D + L)−1 A ,


una vez más, reemplazamos en (5.4) para obtener el esquema iterativo


x(k+1) = I − (D + L)−1 A x(k) + (D + L)−1 b.


5.3 Análisis de la convergencia de los métodos iterati-


vos estacionarios.
Se dice que el método iterativo estacionario (5.6)
x(k+1) = Bx(k) + c, k = 1, 2, . . .
es convergente si la sucesión {x(k) } converge para cualquier valor inicial x(0) ∈ Rn .
Supongamos por un momento que c = 0, luego el método (5.6) está relacionado con
la ecuación de punto fijo x = Bx, que corresponde al problema de hallar un vector propio
asociado al valor propio 1. Por tanto, es natural pensar que un método iterativo se puede
analizar basándose en las propiedades espectrales de su matriz de iteración B. Recordemos
que el radio espectral se define como
ρ(A) = máx |λi (A)|,
1≤i≤n
n
donde λi (A) ∈ C , i = 1, . . . , n representa los valores propios de la matriz A.
Resolución de sistemas a gran escala 67

Lema 2. Sea B ∈ Rn×n , entonces la equivalencia:

lı́m B k = 0 ⇔ ρ(B) < 1. (5.6)


k→∞

es verdadera.

Demostración. Primeramente notemos que lı́m B k = 0 implica que lı́m B k x = 0 para


k→∞ k→∞
todo x ∈ Rn . En efecto, para x 6= 0 se tiene que
1 1
k lı́m B k xk ≤ lı́m kB k kkxk = k lı́m B k k = 0.
kxk k→∞ kxk k→∞ k→∞

Para x = 0 es trivial. En particular, si x es un vector propio unitario de B con valor


propio asociado λ, obtenemos

0 = lı́m B k x = lı́m λk x,
k→∞ k→∞
=⇒0 = lı́m kλk xk = lı́m |λ|k
k→∞ k→∞

y ésto último se da sólo si |λ| < 1. En consecuencia ρ(B) < 1. Para verificar que el recíproco
es cierto, utilizamos el siguiente resultado, que puede ser encontrado en Quarteroni, p.25
Propiedad 1.13: Para ε > 0 existe al menos una norma matricial consistente k · k, la cual
depende de la matriz B tal que

kBk < ρ(B) + ε.

El recíproco se sigue del resultado anterior o utilizando la forma canónica de Jordan de


la matriz B.
Con éste resultado podemos establecer un resultado de convergencia general para los
métodos estacionarios.

Teorema 9. El método iterativo estacionario (5.4) es convergente para cualquier valor


inicial x(0) si, y solamente si ρ(B) < 1.

Demostración. Si restamos la ecuación de punto fijo x = Bx + c a la ecuación (5.4) se


obtiene la ecuación

x(k+1) − x = B(x(k) − x),

la cual nos da la relación de recurrencia para el error absoluto. Se sigue que

x(k) − x = B(x(k−1) − x)
= B(B(x(k−2) − x))
= B 2 (x(k−2) − x)
..
.
= B k (x(0) − x).

Tomando el límite en ambos lados de la ecuación anterior, y gracias la suposición de que


ρ(B) < 1, aplicamos (5.6) para concluir que x(k) → x, si k → ∞.
68 Apuntes de clase de Análisis Numérico I

Una implicación directa del Teorema 9 es que el método iterativo estacionario (5.4) es
convergente para cualquier valor inicial x(0) si, y solamente si kBk < 1; ya que para una
kAxk
matriz A ∈ Rn×n se sigue que ρ(A) ≤ kAk, donde kAk = sup , para alguna norma
x6=0 kxk
vectorial k · k.
De la misma manera, se sigue inmediatamente del último teorema que un método ite-
rativo estacionario converge para cualquier valor inicial x(0) si para alguna norma matricial
se tiene que kBk ≤ 1.

5.4 Convergencia de los métodos iterativos clásicos


En la sección precedente se establecó un resultado para garantizar la convergencia de un
método iterativo estacionario general. Tal condición consistía en que el radio espectral de
la matriz de interación sea menor que 1. Dado que cada uno de los métodos interativos
clásicos está caracterizado por la matriz de iteración, entonces debemos verificar que éstas
satisfacen la condición: ρ(B) < 1.

Convergencia del método de Richardson

En el caso del método de Richardson, la matriz de iteración es B = I − A. Consideremos


una generalización del método de Richardson, tomando la matriz de iteración:

B = I − ωA, con parámetro fijoω > 0.

Procedemos entonces a calcular los valores propios de la matriz B = I − ωA ∈ Rn×n .


Observar que si λi , i = 1, . . . , n, corresponden a los valores propios de A con sus respectivos
vectores propios xi , i = 1, . . . , n asociados, entonces

(I − ωA)xi = xi − ωAxi = xi − ωλi xi = (1 − ωλi )xi ,

es decir, los valores propios de B = I − ωA, corresponden a los valores

µi := 1 − ωλi i = 1, . . . , n

y por tanto

1 − ω(máx λi ) ≤ µi ≤ 1 − ω(mı́n λi )
i i

2
si suponemos que 0 < mı́ni λi y si 0 < ω < , se sigue que
máxi λi

máxi λi
−1 = 1 − 2 < 1 − ω(máx λi ) ≤ µi ≤ 1 − ω (mı́n λi ) < 1 ⇒ |µi | < 1.
máxi λi i i
| {z }
>0

Por tanto el método de Richardson converge para cualquier valor inicial, y para la
2
matriz de iteración B = I − ωA, siempre que 0 < mı́ni λi y si 0 < ω < .
máxi {λi }
Resolución de sistemas a gran escala 69

Convergencia del Método de Jacobi


No es complicado deducir las condiciones que se requieren para que el método de Jacobi
converja. La matriz de iteración en éste caso es

B = D−1 (L + U ) = −D−1 L − D−1 U


 a
 − ij para i 6= j,
=⇒ bij = aii
0 para i = j.

Podemos observar que si A es diagonal dominante1 entonces podemos estimar la norma


de B como sigue a continuación:
n
X aij
kBk∞ = máx < 1,
aii
i=1,...,n
j=1

lo que implica que ρ(B) < 1 y de acuerdo al Teorema 9 el método es convergente. Resu-
miendo tenemos que el método de Jacobi es convergente para cualquier valor inicial si A
es una matriz diagonal dominante (por filas o columnas).

Convergencia del Método de Gauss-Seidel


Ahora la matriz de iteración estaba dada por B = I − (D + L)−1 A. Verificaremos que
este método es, en particular, adecuado para matrices simétricas definidas positivas. Para
estudiar la convergencia del método de Gauss-Seidel en el caso de matrices definidas
positivas, es conveniente utilizar el producto escalar en Rn : Sea A una matriz simétrica
definida positiva, se define el producto escalar (·, ·) : Rn × Rn → R asociado a la matriz
A, como

(x, y) := y > Ax, (5.7)

La matriz adjunta de una matriz B, con respecto a este producto escalar se puede deter-
minar como sigue:
> >
(Bx, y) = y > ABx = y > ABA−1 Ax = (ABA−1 )> y Ax = (x, (ABA−1 ) y)
| {z }
:=B ∗
>
=⇒ B ∗ = (ABA−1 ) = (A−1 )> B > A> = A−1 B > A

donde la última igualdad se sigue debido a que A (y por tanto lo es también A−1 ) es
simétrica definida positiva. Ahora demostremos que el método de Gauss-Seidel es conver-
gente si A es simétrica definida positiva. para comprobar esta afirmación, necesitamos el
siguiente resultado preliminar:

Teorema 10. Sean B y su adjunta B ∗ con respecto al producto escalar (·, ·). Si la
matriz B̃ := I − B ∗ B satisface:

(B̃x, x) > 0 ∀x ∈ Rn \{0}, entonces ρ(B) < 1. (5.8)

n
X
1
A es diagonal dominante por filas ssi: |aii | > |aij |, para todo i = 1, . . . , n.
j6=i
70 Apuntes de clase de Análisis Numérico I

La condición (5.8) expresa que B es definida positiva, con respecto al producto escalar
(·, ·) dado por (5.7).

Demostración. Tenemos entonces que para x 6= 0:

0 < (B̃x, x) = ((I − B ∗ B)x, x) = (x, x) − (B ∗ Bx, x)


= (x, x) − (Bx, Bx)
= kxk2A − kBxk2A

⇐⇒ kBxk2A < kxk2A


kBxk2A
⇐⇒ <1
kxk2A
kBxkA
⇐⇒ sup = kBkA < 1 =⇒ ρ(B) < 1. (5.9)
x6=0 kxkA

Observar que k · kA es una norma matricial inducida por la norma vectorial k · kA .


El siguiente paso consiste en verificar que la matriz de iteración B del método de
Gauss-Seidel verifica: que B̃ = I − B ∗ B es definida positiva con respecto al producto
escalar (·, ·) definido por (5.7). Tenemos la siguiente identidad

B ∗ = A−1 B > A
>
= A−1 I − (D + L)−1 A A
 > 
= A−1 I − A> (D + L)−1 A
>
= A−1 A − (D + L)−1 A
−1
= I − (D + L)> A
= I − (D + U )−1 A.

Procedemos a calcular I − B ∗ B como sigue

B̃ = I − B ∗ B = I − (I − (D + U )−1 A)(I − (D + L)−1 A)


= I − I + (D + L)−1 A + (D + U )−1 A − (D + U )−1 A(D + L)−1 A
= (D + L)−1 + (D + U )−1 − (D + U )−1 A(D + L)−1 A
 

= (D + U )−1 (D + U )(D + L)−1 + I − A(D + L)−1 A


 

= (D + U )−1 [(D + U ) + (D + L) − A](D + L)−1 A


| {z }
=D+U +D+L−L−D−U
−1 −1
= (D + U ) D(D + L) A

Reemplazando la última identidad en (B̃x, x) obtenemos

(B̃x, x) = ( (D + U )−1 D(D + L)−1 A x, x)


 

= x> A (D + U )−1 D(D + L)−1 A x


 

= x> A(D + U )−1 D(D + L)−1 Ax


  > >
= (D + U )−1 Ax D(D + L)−1 Ax
Resolución de sistemas a gran escala 71

>
= (D + L)−1 Ax D (D + L)−1 Ax = ξ > Dξ > 0 ∀x 6= 0.
| {z } | {z }
:=ξ > :=ξ

lo último se debe a que D es simétrica definida positiva; luego (5.9) nos da como conse-
cuencia que ρ(B) < 1 y por el Teorema 9 el método de Gauss-Seidel es convergente.

Tasa y velocidad de convergencia

Definición 20. Sea una sucesión (x(k) )k∈N tal que x(k) → x, cuando k → ∞. Se dice
que la sucesión (x(k) )k∈N converge a x con orden r, si, y sólo si

kx(k+1) − xk
lı́m r = C,
k→∞ kx(k) − xk

donde C es una constante. Algunos casos particulares de interés son:

• Si r = 1 y C < 1, la convergencia es lineal (gana en precisión un número de


dígitos constante por iteración).

• Si r > 1, la convergencia es superlineal (gana en precisión r veces los dígitos de


la iteración anterior).

• Si r = 2, la convergencia es cuadrática. (duplica el número de dígitos en cada


iteración).

Además de saber que un método es convergente, es necesario determinar los pará-


metros que gobiernan la velocidad de convergencia. Intuitivamente, podemos pensar que
mientras el radio espectral de la matriz de iteración es más pequeño, mayor velocidad de
convergencia tendrá un método iterativo. Del esquema (5.4) podemos obtener una relación
para el error
ek+1 = x(k+1) − x = Bx(k) + c − Bx − c
= B(x(k) − x)
= . . . = B k (x(1) − x(0) ) = B k e0
=⇒ kek+1 k = kB k (x(1) − x(0) )k ≤ kB k kke0 k
Por tanto, para acotar el error basta con que el número de iteraciones k sea suficientemente
grande, de modo que kB k k ≤ kBkk < δ para δ < 1 fijo, i.e.
− log(δ)
log(kBkk ) < log(δ) =⇒ k ≥
− k1 log kB k k
La tasa de convergencia de un método iterativo estacionario se define como la cantidad
1
Rk = − log(kB k k),
k
y la tasa asintóxtica de convergencia se define como
R∞ = lı́m Rk = − log(ρ(B)).
k→∞
1
donde la última identidad se sigue gracias al Teorema de Gelfand-Mazur. (lı́mk→∞ kAk k k =
ρ(A)). En términos prácticos un método iterativo con tasa asintótica de convergencia más
grande converge asintóticamente más rápido que otros.
72 Apuntes de clase de Análisis Numérico I

5.5 Criterios de Parada


Un método iterativo para resolver un sistema lineal Ax = b, no está completo sin que se
haya especificado un criterio de parada adecuado. Idealmente, tal criterio debería activarse
cuando la solución aproximada está próxima a la solución exacta, i.e. el criterio, debe
detectar que

kx − x(k) k <  ≈ 0. (5.10)

Usualmente, la dificultad en los criterios de parada es que no son capaces de detectar


(5.10) directamente, pues la solución x es desconocida. Por otro lado, tomando en cuenta
los errores de punto flotante y redondeo que ocurren durante la ejecución del algoritmo,
dependiendo de  es posible que (5.10) nunca se satisfaga!
El residuo r(k) := b−Ax(k) , es quizás, la elección más natural como criterio de parada;
pues, si x(k) es una solución aproximada del sistema lineal, es condición necesaria que

kb − Ax(k) k <  ≈ 0. (5.11)

Cantidad que es perfectamente calculable. Pero esta condición no es suficiente. De la


teoría de análisis de errores sabemos que si una matriz es mal condicionada, una solución
aproximada puede tener un residuo pequeño; y sin embargo estar lejos de la solución
exacta, por esta situación estimar el residuo es un criterio adecuado siempre que la matriz
del sistema seabien condicionada.
Dado que kr(k) k ≤ (kAkkx(k) k + kbk), (5.11) puede ser reemplazada por una expresión
que tome en cuenta el tamaño de los datos:

kb − Ax(k) k < kbk ≈ 0. (5.12)

Error relativo de dos soluciones consecutivas. Otra cantidad que es fácilmente


calculable corresponde a

kx(k+1) − x(k) k
≤≈0 (5.13)
kx(k) k

la cual se activa cuando el error relativo de dos iteraciones consecutivas es muy pequeño,
es decir el algoritmo para si ya no es capaz de mejorar la solución.

El indicador de Prager-Oettli. Del análisis regresivo estudiado anteriormente se


conoce que el error regresivo componente-a-componente satisface:

|xi − x̌i | ˙ |r(x̌)|i


∃x̌ : máx ≤ máx = ηC (x̌).
i |xi | i=1,...,n (|A||x̌| + |b|)i

La idea es verificar si el error regresivo (relativo) componente-a-componente es suficiente-


mente pequeño, pues en este contexto x(k) puede ser interpretado como la solución exacta
del sistema

(A + δk A)x(k) = b + δk b, con |δk A| ≤ ηC,k |A|, |δk b| ≤ ηC,k |b|

i.e. el criterio sería verificar si


(k)
|xi − xi | ˙ |r(x(k) )|i
máx ≤ máx <  ≈ 0, (5.14)
i |xi | i=1,...,n (|A||x(k) | + |b|)i
Resolución de sistemas a gran escala 73

5.6 Métodos de sobrerelajación sucesiva (SOR)


El método de Gauss-Seidel puede ser muy lento cuando el radio espectral de la matriz de
iteración correspondiente es cercano a 1. Al igual que cuando introdujimos el parámetro
de relajación ω en el método de Richardson, se puede mejorar la velocidad de convergencia
del método de Gauss-Seidel al escoger un parámetro ω adecuadamente, de hecho, para el
método de Richardson se trata de escoger ω tal que minimice el radio espectral

ρ(B) = ρ(I − ωA) = máx{|1 − ω mı́n λi |, |1 − ω máx λi |}.


i=1,...,n i=1,...,n

Se puede demostrar que tal ω satisface

1 − ω mı́n λi = ω máx λi − 1,
i=1,...,n i=1,...,n

2
de donde el ω̄ que minimiza el radio espectral es ω̄ = , para el cual
máx λ + mı́n λ
i=1,...,n i=1,...,n

máx λ − ω mı́n λ
i=1,...,n i=1,...,n 2
ρ(B) = −1− .
máx λ + ω mı́n λ K(A) + 1
i=1,...,n i=1,...,n

El método SOR consiste en introducir el parámetro de relajación ω ∈ [0, 1] en


el método de Gauss-Seidel, considerando una combinación convexa de dos soluciones
aproximadas consecutivas:

ω(Bx(k) + c) + (1 − ω)x(k)
= (ωB + (1 − ω)I) x(k) + |{z}
ωc
| {z }
=B =c

y tomamos esta última cantidad como x(k+1) . Por ejemplo, el método de Gauss-Seidel
que corresponde al método

M x(k+1) = N x(k) + b,

con M = L + D, y N = −U . Para resolver el sistema anterior, notemos que podemos


aplicar el algoritmo de sustitución progresiva, por tanto podemos despejar x(k+1)

i−1
!
(k+1) 1 X (k+1)
xi = (N x(k) )i + bi − mik xk
dii k=1
n i−1
!
1 X (k)
X (k+1)
= − aik xk + bi − aik xk
aii i+1 k=1
n i−1
!
1 X (k)
X (k+1)
= bi − aik xk − aik xk , i = 1, . . . , n
aii i+1 k=1

(k+1)
Notar que el método de Gauss-Seidel hace uso de las componentes xi calculadas
anteriormente, esta característica es heredada del algoritmo de sustitución progresiva. El
método de Jacobi, por el contrario, no hace uso de las componentes calculadas en los pasos
anteriores. Ahora introducimos el parámetro ω de relajación en el método de Gauss-Seidel,
como sigue:
74 Apuntes de clase de Análisis Numérico I

n i−1
!
(k+1) ω X (k)
X (k+1) (k)
xi = bi − aik xk − aik xk + (1 − ω)xi , i = 1, . . . , n
aii i+1 k=1

este esquema iterativo es conocido como algoritmo de sobrerelajación sucesiva. Podemos


expresarlo en su forma matricial:
x(k+1) = ω c − D−1 Lx(k+1) − D−1 U x(k) + (1 − ω)x(k) , c := D−1 b

−1 (k+1) −1 (k)
⇒ (I + ωD L)x = ωc + ((1 − ω)I − ωD U ) x (5.15)
x(k+1) = (I + ωD−1 L)−1 ((1 − ω)I − ωD−1 U ) x(k) + ωc


Por lo que la matriz de iteración para el método de SOR, corresponde a
Bω := (I + ωD−1 L)−1 (1 − ω)I − ωD−1 U ,

(5.16)
Si multiplicamos ambos lados de la ecuación (5.15) por D obtenemos otro esquema para
el método SOR
D(I + ωD−1 L)x(k+1) = ωb + D ((1 − ω)I − ωD−1 U ) x(k)
⇐⇒ (D + ωL)x(k+1) = ωb + ((1 − ω)D − ωU ) x(k)
(D + L)x(k+1) = b + (1 − ω) D (5.17)

⇐⇒ ω ω
− U x(k)
−1 (k)
⇐⇒ x(k+1) = x(k) + D
ω
+L r
Si el parámetro ω es mayor que 1, el método se conoce como parámetro de sobrerelajación.
Con respecto a la convergencia del método de SOR tenemos el siguiente resultado:
Teorema 11. Para una matriz simétrica definida positiva A se tiene que
ρ(Bω ) < 1, ∀ω : 0 < ω < 2.
Además, el parámetro óptimo ω, en el sentido que minimiza el radio espectral de
iteración Bw .
Definición 21. Se dice que una matriz A posee la propiedad A si existe una matriz de
permutación P tal que P AP > tiene la forma
 
D1 U1
,
U2 U2
donde D1 , D2 son matrices diagonales.
Si la matriz A posee la propiedad A y la matriz L + U tiene valores propios reales y
además ρL+U := ρ(L + U ) < 1, entonces el parámetro óptimo del método de SOR está
dado por:
q
2 1 − 1 − ρ2L+U
ωopt := q , y ρ(Bωopt ) = q
2
1 + 1 − ρL+U 1 + 1 − ρ2L+U

La matriz Bω definida en (5.16) es una matriz no simétrica. La versión simétrica del


método SOR, corresponde a realizar dos “medias” iteraciones como sigue:
1
 1

x(k+ 2 ) = ω c − D−1 Lx(k+ 2 ) − D−1 U x(k) + (1 − ω)x(k)
 
−1 (k+ 12 ) −1 (k)
= ω c − D Lx − (I + D U )x + x(k) ,
 1
 1
x(k+1) = ω c − D−1 U x(k+1) − (I + D−1 L)x(k+ 2 ) + x(k+ 2 ) ,

este esquema es conocido como método SSOR, el cual, en contraste al método SOR no es
tan sensitivo a la elección del parámetro de relajación ω.
Resolución de sistemas a gran escala 75

5.7 Aceleración Polinomial


I Recordemos el método iterativo estacionario (5.4)

x(k+1) = M −1 N x(k) + M −1 b
= (I − M −1 A)x(k) + M −1 b
= x(k) + M −1 (b − Ax(k) )
= x(k) + M −1 r(k) (5,4)

I En esta sección estudiaremos un importante método para la aceleración del método


anterior, siempre que éste sea simetrizable.
Definición 22. El método iterativo (5.4) se dice simetrizable si existe una matriz W no
sigular siempre que la matriz

W (I − B)W −1

sea simétrica definida positiva.


I De la ecuación del método estacionario (5.4) tenemos la siguiente expresión para el error

x(k+1) − x = Bx(k) − x = B(x(k) − x)


= B 2 (x(k−1) − x)
= B k (x(0) − x) = pk (B)(x(0) − x)

donde pk (λ) = λk . La idea de la aceleración polinomial es generalizar el polinomio pk a


polinomios más generales.
I Es a menudo posible encontrar métodos que convergen mas rápido a la solución to-
mando tomando la media aritmética de las k primeras aproximaciones generadas por el
método(5.4) utilizando pesos γki :

k
X k
X
(k) (i)
x̃ = γki x , γki = 1, k = 0, 1, 2, . . . .
i=0 i=0

De esta forma, la fórmula del error correspondiente se expresa como


k
X k
X
(k+1) (i)
x̃ −x= γki (x − x) = γki B i (x(0) − x) = pk (B)(x(0) − x),
i=0 i=0

k
X
ésta vez el polinomio de grado k está definido por pk (λ) = γki λi . en este contexto, el
i=0
residuo r(k) = b − Ax(k) se puede expresar como

r(k) = A(x − x(k) ) = qk (A)r(0)

El caso más importante es aquel en que los polinomios utilizados para éste propósito son
los polinomios de Chebyshev.
I Asumiremos que los valores propios λi , i = 1, . . . , n de la matriz M −1 A son reales y
satisfacen 0 < a ≤ λi ≤ b
76 Apuntes de clase de Análisis Numérico I

5.8 Métodos descenso


Sea A ∈ Rn×n una matriz s.d.p y b ∈ Rn . Como se vió en la sección de sistemas no lineales,
el problema Ax − b = 0 se puede formular como un problema de optimización:
1
mı́n φ(x) := x> Ax − b> x, (5.18)
2
Verifiquemos ésta equivalencia. Primero veamos que si x es el mínimo para φ (φ es global
y convexa estricta) entonces x satisface la ecuación lineal Ax = b.
1 1
φ(x + ty) − φ(x) = (x + ty)> A(x + ty) − b> (x + ty) − x> Ax + b> x
2 2
1 > 1 1
= x Ax + tx> Ay + t2 y > Ay − b> x − tb> y − x> Ax + b> x
2 2 2
1
= tx> Ay + t2 y > Ay − tb> y
2
1
= (tx> A + t2 y > A − tb> )y
2
dividiendo para t y tomando el límite cuando t → 0 obtenemos:
1 > 1
φ0 (x)y = lı́m (tx A + t2 y > A − tb> )y = (x> A + b> )y, ∀y ∈ Rn . (5.19)
t→0 t 2
Tenemos entonces que el mínimo de φ ocurre cuando

φ0 (x)y = 0, ∀y ∈ Rn (5.20)

ya que es un problema de minimización sin restricciones. De (5.19) tenemos que (x> A +


b> ) = 0, de donde Ax = b se sigue porque A es simétrica.
Recíprocamente, si x cumple que Ax = b, entonces x también es un mínimo de φ.
Tenemos que

1 1
Ax = b =⇒ φ(x) − φ(y) = x> Ax − |{z}
b> x − y > Ay + b> y
2 >
2
=x Ax
1 1
= − x> Ax − y > Ay + x> Ay
2 2
1
= − (x − y)> A(x − y) < 0
2
=⇒ φ(x) < φ(y) ∀y ∈ Rn , y 6= x.

es decir, x es un mínimo de φ, y en consecuencia queda probada la equivalencia del sistema


Ax = b y el problema de optimización (5.18). Consideremos ahora el siguiente método
iterativo para resolver (5.18), expresado por el siguiente esquema

x(k+1) = x(k) + αk p(k) , (5.21)

donde,
αk es el paso tomado en cada iteración, y
p(k) es la dirección.
En este sentido, estas dos cantidades son escogidas de manera que en cada paso nos
acercamos más al mínimo de φ, i.e: φ(x(k+1) ) < φ(x(k) ).
Resolución de sistemas a gran escala 77

Método del descenso más profundo


El método del descenso más profundo consiste en tomar como dirección, y es perfec-
tamente natural, precisamente aquella en la cual φ decrece más rápido, es decir:

p(k) = −∇φ(x(k) ) = r(k) = b − Ax(k) .

Hay que recordar que el residuo es una medida de cuan lejos estamos de satisfacer
la ecuación Ax = b. Para poder determinar el valor del paso αk debemos pensar que
éste paso debe ser tomado en la dirección p(k) de tal manera que minimize φ por tanto
queremos minimizar la función sin restricciones f (α) := φ(x(k) + αp(k) ). El α óptimo, que
denotaremos por αk debe satisfacer que

df (αk ) >
0= = φ0 (x(k) + αk p(k) )p(k) = φ0 (x(k+1) )r(k) = r(k+1) r(k) ,

es decir, que los residuos son ortogonales!. De la última ecuación podemos despejar αk :
>
0 = r(k+1) r(k) = (b − Ax(k+1) )> r(k)
>
= (b − Ax(k) )> r(k) − αk p(k) Ar(k)
> >
= r(k) r(k) − αk r(k) Ar(k)
>
r(k) r(k)
=⇒ αk = >
. (5.22)
r(k) Ar(k)
Por tanto podemos escribir el algoritmo para el método del descenso más profundo.
Datos: A ∈ Rn×n s.d.p., b ∈ Rn , x(0) ∈ Rn
Resultados: x(k) solución aproximada de Ax = b
k=0
r(0) = b − Ax(0)
while r(k) > tol do
r(k) = b − Ax(k)
>
r(k) r(k)
αk = >
r(k) Ar(k)
x(k+1) = x(k) + αk r(k)
end
Algorithm 10: Algoritmo del descenso más profundo.
El método del descenso más profundo es un ejemplo de los métodos de proyección
de una dimensión. Su convergencia está fuertemente determinada por los valores propios
A y por las dirección ortogonal al residuo que se elige en cada paso, lo que provoca un
efecto de “zig-zag” en la convergencia de las soluciones aproximadas. Esto, a su vez, puede
provocar una gran cantidad de iteraciones antes de llegar a una aproximación adecuada
de la solución.

Lema 3. (Desigualdad de Kantorovich) Sea Q una matriz simétrica definida positiva y


x 6= 0, entonces
(x> x)2 4λmı́n λmáx
> > −1
≥ , (5.23)
x Qx x Q x (λmı́n + λmáx )2
donde λmáx y λmı́n denotan los valores propios máximo y mínimo de Q.
78 Apuntes de clase de Análisis Numérico I

Demostración. Gracias a que Q es simétrica definida positiva, existe una descomposición


espectral Q = U ΣU > con Σ = diag(λ1 , . . . , λn ), tales que

0 < λmı́n = λ1 < · · · < λn = λmáx ,

y donde las columnas de U corresponden a los vectores propios asociados a los λi corres-
pondientes. Tomando en cuenta esta descomposición espectral, se tiene que si xi son los
coeficientes de x en la base formada por las columnas ui de U , entonces
X X X
x> Qx = xi u >
i Q xj u > > > > >
j = x U (U ΣU )U x = x Σx = λi x2i .
i j i

De manera análoga se sigue que x> Q−1 x = 1 2


P
i λi xi , por tanto reemplazando estas dos
últimas expresiones tenemos que
!−1
(x> x)2
P 2P 2
i xi i λi xi
X x2
= 1 2 = λi P i 2
x> Qx x> Q−1 x 2
P P
i λ i xi i λi xi i i xi

Si consideramos el error e(k) = x(k) −x, en la norma de energía inducida por A, tenemos
que
2 > > >
ke(k+1) kA = e(k+1) Ae(k+1) = −r(k+1) e(k+1) = −r(k+1) (e(k) + αk r(k) )
> >
= −(r(k) + αk Ar(k) )> e(k) = e(k) Ae(k) − αk r(k) r(k) .

Usando la expresión (5.22) para αk en identidad anterior, se tiene que


> > >
!
2 2 r(k) r(k) (k) > (k) 2 r(k) r(k) r(k) r(k)
ke(k+1) kA = ke(k) kA − >
r r = ke(k) kA 1− > 2
r(k) Ar(k) r(k) Ar(k) ke(k) kA
> >
!
2 r(k) r(k)
r(k) r(k)
= ke(k) kA 1− >
r(k) Ar(k) r(k) A−1 r(k)

Para obtener una estimación del error utilizamos la desigualdad de Kantorovich que es-
tablece que para una matriz real y simétrica, con valores propios positivos; para todo x
se tiene que

(x> Ax)(x> A−1 x) 1 2


> 2
≤ K(A)1/2 + K(A)−1/2 .
(x x) 4

Usando la de sigualdad de Kantorovich tenemos que


2
K(A)1/2 − K(A)−1/2

2 2
ke(k+1) kA ≤ ke(k) kA ,
K(A)1/2 + K(A)−1/2

desigualdad de la cual inferimos una velocidad lineal de convergencia, influenciada por el


número de condición de la matriz K(A) (en norma 2, es decir, la velocidad de convergencia
depende de los valores propios extremos de A). El método del descenso más profundo,
aunque merece ser estudiado, es más bien es un método ineficiente.
Resolución de sistemas a gran escala 79

5.9 Algoritmo del Gradiente Conjugado


El algoritmo del gradiente conjugado (GC) tiene ciertas semejanzas con el algoritmo
del descenso más profundo. El GC sirve para resolver sistemas lineales Ax = b, donde
A ∈ Rn×n es una matriz simétrica definida positiva, y b ∈ Rn , de una manera más eficiente
que el método del descenso más profundo. Una de las características del algoritmo del GC
es el de generar un conjunto de direcciones que, como en el caso del algoritmo del descenso
más profundo tienen una propiedad de ortogonalidad. En realidad tales direcciones son
A-ortogonales o conjugadas.

Definición 23. Sean p y q dos vectores de Rn . Se dice que p y q son A-ortogonales


o conjugados si

p> Aq = 0

Es decir, p y q son A-ortogonales, si son ortogonales con respecto al producto escalar


inducido por la matriz A (ver (5.7)). Una de las características del método del GC es
que genera un conjunto de vectores {p(0) , p(1) , . . . , p(n−1) } con la propiedad de ser A-
ortogonales, i.e.
>
p(i) Ap(j) = 0, ∀i 6= j, (5.24)

propiedad que, hace que el conjunto: {p(0) , p(1) , . . . , p(n−1) } sea linealmente independiente,
en efecto, para escalares α1 , . . . , αn−1

n−1 n−1
!
X X
0= αi p(i) ⇒ 0=A αi p(i)
i=0 i=0
n−1
!
> X
⇒ 0 = p(j) A αi p(i)
i=0
n−1
X >
⇒ 0= αi p(j) Ap(i) , (5.25)
i=0

de donde, por la A-ortogonalidad de los p(i) y como A es definida positiva, la anterior


identidad es sólo posible si αi = 0 para i = 0, . . . , n − 1.
Estas direcciones serán utilizadas como direcciones de descenso para minimizar φ, dada
por (5.18), usuando el esquema iterativo de descenso

x(k+1) = x(k) + αk p(k) , (5.26)


>
r(k) p(k)
donde la longitud de cada paso está dada por αk = >
.
p(k) Ap(k)
Veamos que el esquema definido por (5.26) efectivamente converge a la solución x̄ del
sistema lineal Ax = b. Por independencia lineal tenemos que

span(p(0) , p(1) , . . . , p(n−1) ) = Rn


n−1
X
⇒ ∃(σ0 , σ1 , . . . , σn−1 ) : x̄ − x0 = σi p(i) . (5.27)
i=0
80 Apuntes de clase de Análisis Numérico I

>
Si multiplicamos la última identidad por la cantidad p(k) A podemos despejar σk :
n−1
> X >
p(k) A(x − x0 ) = σi p(k) Ap(i)
i=0
>
= σk p(k) Ap(k)
>
p(k) A(x̄ − x0 )
=⇒ σk = >
.
p(k) Ap(k)
Esta expresión para σk todavía depende de x̄, que es desconocida, pero podemos aprove-
char la A-ortogonalidad una vez más para encontrar una expresión más conveniente de
los coeficientes σk . En efecto,
x(k) = x(k−1) + αk−1 p(k−1)
= x(k−2) + αk−2 p(k−2) + αk−1 p(k−1)
..
.
= x(0) + α0 p(0) + α1 p(1) + · · · + αk−1 p(k−1)

> >
=⇒ p(k) Ax(k) = p(k) Ax(0) ,
gracias a esta identidad tenemos:
> > >
p(k) A(x̄ − x(0) ) = p(k) A(x̄ − x(k) ) + p(k) A(x(k) − x(0) )
| {z }
=0
(k) > (k)
=p r ,
de donde
>
r(k) p(k)
σk = >
= αk , (5.28)
p(k) Ap(k)
lo cual indica que los pasos y las direcciones tomadas en (5.26) son aquellos de la combi-
nación lineal en (5.27), por tanto el método no solo converge, sino que lo hace en n pasos!
Esto nos lleva a pensar que el método del GC es un método directo, pues conocemos de
antemano el número de pasos requeridos para obtener una solución, sin embargo, en la
práctica el método del GC se comporta como un método iterativo ya que los efectos de los
errores de rendondeo impiden la convergencia teórica en n pasos, haciendo en la práctica
necesarias iteraciones adicionales para obtener una mejor aproximación de la solución.
Del análisis anterior conocemos que si disponemos de un n direcciones A-ortogonales, el
método del GC converge teóricamente en n pasos. Entonces, la pregunta ahora es ¿Cómo
generar el conjunto de direcciones {p(0) , p(1) , . . . , p(n−1) } ? Recordemos que éstas deben
cumplir con la propiedad de ser A-ortogonales. El proceso de Gram-Schmidt se puede
generalizar para construir un conjunto de vectores A-ortogonales a partir de un conjunto
de vectores linealmente independiente, sin embargo, veremos que se pueden aprovechar
las propiedades de los residuos para generar {p(0) , p(1) , . . . , p(n−1) }. Definimos la función
h : Rk → R como
h(σ) := φ(x(0) + σ0 p(0) + σ1 p(1) + · · · + σk−1 p(k−1) ), (5.29)
la cual es estrictamente convexa y continua, por tanto, tiene un único mínimo que satisface:
0 = ∇h(σ̄),
Resolución de sistemas a gran escala 81

lo que es equivalente que para cada i se cumple que


∂h(σ̄)
0= = ∇φ(x(0) + σ̄0 p(0) + σ̄1 p(1) + · · · + σ̄k−1 p(k−1) )> p(i)
∂σi
 >

= b − A (x(0) + σ̄0 p(0) + σ̄1 p(1) + · · · + σ̄k−1 p(k−1) ) p(i)


| {z }
=:x̃
> (i) > (i)
= (b − Ax̃) p = r(x̃) p .
Concluimos que x̃ = x(0) + k−1 (i)
minimiza φ en x(0) + span(p(0) , p(1) , . . . , p(k−1) ) ssi
P
i=0 σ̄i p
> (i)
r(x̃) p = 0, para i = 0, . . . , k. Además, de lo anterior podemos concluir mediante un
procedimiento inductivo que

Lema 4. En el k–ésimo paso del método del gradiente conjugado se satisface la si-
guiente relación de ortogonalidad:
>
r(k) p(i) = 0 para i = 0, . . . , k − 1. (5.30)

Demostración. En efecto, para x(1) = x(0) + α0 p(0) se tiene que h(σ0 ) = φ(x(0) + α0 p(0) ),
por tanto, si α0 es el mínimo de h, entonces
>
0 = h0 (α0 ) = φ0 (x(1) )> p(0) = (b − Ax(1) )> p(0) = r(1) p(0) ,
y (5.30) se cumple para k = 1.
Ahora, suponemos que se cumple
>
r(k−1) p(i) = 0 para i = 0, . . . , k − 2. (5.31)
Como x(k) = x(k−1) + αk p(k−1) entonces el residuo es r(k) = r(k−1) − αk−1 Ap(k−1) . Si
>
multiplicamos la última identidad por p(k−1) y usamos (5.31), se deduce que
> > >
p(i) r(k) = p(i) r(k−1) −αk−1 p(i) Ap(k−1) = 0,
| {z } | {z }
=0 =0 (A-ort)
para i = 0, . . . , k − 2 . Para i = k − 1, tenemos que
> >
p(k−1) r(k) = p(k−1) (b − Ax(k) )
>
= p(k−1) (b − Ax(k−1) − αk−1 Ap(k−1) )
> >
= p(k−1) r(k−1) − αk−1 p(k−1) Ap(k−1)
>
(k−1) > (k−1) r(k−1) p(k−1) >
=p r − p(k−1) Ap(k−1)
p (k−1) > Ap(k−1)
(k−1) > (k−1) (k−1) > (k−1)
=p r −r p = 0,
y así (5.30) queda demostrado.
La relación (5.30) juega un papel central en el método del gradiente conjugado, ya que
nos permitirá construir de manera eficiente el conjunto de direcciones (A-ortogonales)
de descenso. Precisamente, buscamos un coeficiente βk que sirva para calcular la nueva
dirección a partir de la anterior. Por tanto, escribimos
p(k) = r(k) + βk p(k−1) , (5.32)
82 Apuntes de clase de Análisis Numérico I

donde además, los coeficientes βk que son a determinar deben cumplir con el requerimiento
>
que los p(k) sean A-ortogonales. Por tanto, multiplicamos (5.32) por p(k−1) A tenemos que
> > >
p(k−1) Ap(k) = p(k−1) Ar(k) + βk p(k−1) Ap(k−1)

igualando a 0 la última expresíon con el fin de satisfacer la propiedad de A-ortogonalidad


podemos despejar βk :
>
p(k−1) Ar(k)
βk = − >
.
p(k−1) Ap(k−1)
Así, tenemos un algoritmo preliminar del método del gradiente conjugado. Como di-
rección inicial podemos tomar la del descenso más profundo: p(0) = r(0) , luego iterar según
el esquema:
Datos: A ∈ Rn×n s.d.p., b ∈ Rn , x(0) ∈ Rn
Resultados: x(k) solución aproximada de Ax = b
k=0
p(0) = r(0) = b − Ax(0)
while r(k) > tol do
>
r(k) p(k)
αk = >
p(k) Ap(k)

x(k+1) = x(k) + αk p(k)


r(k+1) = b − Ax(k+1)
(k) > Ar (k+1)
βk+1 = − p >
p(k) Ap(k)

p(k+1) = r(k+1) + βk+1 p(k)


end
Algorithm 11: Algoritmo del Gradiente Conjugado - versión preliminar
A continuación estudiaremos otras propiedades del algoritmo del GC. Primero, vere-
mos que los residuos r(i) son mutuamente ortogonales; segundo, cada dirección de bús-
queda p(i) y los residuos r(i) se encuentran contenidos en el subespacio de Krylov de
orden k para r(0) .
Los subespacios de Krylov tienen la caracterísitica de que son generados recursiva-
mente. Estos se definen como

K(r(0) , k) := span{r(0) , Ar(0) , . . . , Ak r(0) }

Teorema 12. Sunpongamos que la k-ésima iteración del algoritmo del GC no coincide
con la solución x̄, entonces las siguientes propiedades son satisfechas
>
r(k) r(i) = 0, ∀i = 0, . . . , k − 1, (5.33)
span{r , r , . . . , r } = span{r , Ar(0) , . . . , Ak r(0) }
(0) (1) (k) (0)
(5.34)
span{p(0) , p(1) , . . . , p(k) } = span{r(0) , Ar(0) , . . . , Ak r(0) } (5.35)
>
p(k) Ap(i) = 0 ∀i = 0, . . . , k − 1, , (5.36)
Resolución de sistemas a gran escala 83

Por lo que, la sucesión x(k) converge a x̄ en n pasos.

Demostración. La demostración se realiza por inducción. Las expresiones (5.34) y (5.35)


se cumplen trivialmente cuando k = 0, mientras que (5.33), se cumple para k = 1 gracias
a (5.30), y (5.36) se sigue por construcción para k = 1, pues
>
(1) > (0) (1) (0) > (0) (1) > (0) p(0) Ar(1) >
p(0) Ap(0) = 0.

p Ap = r + β1 p Ap =r Ap −
p (0) > Ap(0)

Por otro lado, tenemos que r(k+1) = r(k) − αk Ap(k) , ie. r(k+1) es una combinación lineal de
r(k) y Ap(k) . Pero considerando nuestra hipótesis inductiva dada precisamente por (5.33)
- (5.36) observamos que

r(k) ∈ span{r(0) , Ar(0) , . . . , Ak r(0) }, y que


p(k) ∈ span{r(0) , Ar(0) , . . . , Ak r(0) , }

y de esta última se tiene que Ap(k) satisface Ap(k) ∈ span{Ar(0) , . . . , Ak+1 r(0) } ⊂ K(r(0) , k+
1). En consecuencia
r(k+1) ∈ span{r(0) , Ar(0) , . . . , Ak+1 r(0) },
la cual se combina con nuestra hipótesis inductiva (5.34) nos conduce a concluir que

span{r(0) , r(1) , . . . , r(k) , r(k+1) } ∈ span{r(0) , Ar(0) , . . . , Ak+1 r(0) }. (5.37)

Para concluir la inclusión en el otro sentido, utilizamos ahora la hipótesis inductiva (5.35)
para deducir que

Ak+1 r(0) = A(Ak r(0) ) ∈ span{Ar(0) , . . . , Ak+1 r(0) } = span{Ap(0) , . . . , Ap(k) },

r(i+1) − r(i)
por otro lado, de r(i+1) = r(i) − αi Ap(i) se tiene que Ap(i) = , para i = 1, . . . , k
αi
de aquí que

Ak+1 r(0) ∈ span{r(0) , r(1) , . . . , r(k+1) },

combinando ésta ultima expresión con hipótesis inductiva se sigue finalmente queda

span{r(0) , Ar(0) , . . . , Ak+1 r(0) } = span{r(0) , r(1) , . . . , r(k+1) },

lo que demuestra (5.34). Demostraremos (5.35) con el siguiente argumento

span{p(0) , p(1) , . . . , p(k+1) } = span{p(0) , p(1) , . . . , r(k+1) } ya que p(k+1) = r(k+1) + βk+1 p(k) .
= span{r(0) , Ar(0) , . . . , Ak r(0) , r(k+1) } por inducción
= span{r(0) , r(1) , . . . , r(k) , r(k+1) } por (5.34)
= span{r(0) , Ar(0) , . . . , Ak+1 r(0) } por (5.34) para k + 1

Ahora, demostraremos la propiedad (5.36) de que las direcciones p(i) son A-ortogonales
para k + 1. Por construcción tenemos que p(k+1) = r(k+1) + βk+1 p(k) . Multiplicando la
identidad anterior por Ap(i) se sigue que
> >
p(k+1) Ap(i) = r(k+1) + βk+1 p(k) Ap(i)
84 Apuntes de clase de Análisis Numérico I

>
(k+1) > (i) p(k) Ar(k+1) >
=r Ap − p(k) Ap(i) .
p (k) > Ap(k)
>
de la última expresión se sigue que si i = k entonces p(k+1) Ap(k) = 0 debido a la
definición de βk+1 . Por nuestra hipótesis de inducción, las direcciones p(0) , p(1) , . . . , p(k)
son A-ortogonales, así que (5.30) implica que

> > >


r(k+1) p(i) = r(k) p(i) − αk p(k) Ap(i) = 0 para i = 0, . . . , k − 1. (5.38)
Por otro lado, para i = 1, . . . , k − 1 (5.35) se siguen las siguientes inclusiones
Ap(i) ∈ A span{r(0) , Ar(0) , . . . , Ai r(0) } = span{Ar(0) , . . . , Ai+1 r(0) }
= span{p(0) , . . . , p(i+1) } (5.39)
>
y de (5.38) y (5.39) deducimos que r(k+1) Ap(i) = 0, i = 1 . . . , k − 1 y así deducimos
(5.36), Finalmente demostramos (5.33) argumentando como sigue: como el conjunto de
>
direcciones es A-ortogonal tenemos de (5.30) que r(k) p(i) = 0 para i = 0, . . . , k − 1. y
para cualquier k = 1, . . . , n − 1, una vez más, por la construcción , i.e.
p(i) = r(i) + βi p(i−1) =⇒ r(i) ∈ span{p(i) , p(i−1) } ∀i = 1, . . . , k − 1
>
y por tanto r(k) r(i) = 0 para todo i = 0, . . . , k − 1 como se quería.

Gracias a éste Teorema podemos modificar el algoritmo del GC para que sea más
eficiente. En efecto, podemos escribir
> > >
r(k) p(k) r(k) r(k) r(k) p(k−1)
αk = >
= >
+ βk >
.
p(k) Ap(k) p(k) Ap(k) p(k) Ap(k)
| {z }
=0 por (5.30)

De forma similar, utilizando se establece que


r(k+1) = r(k) − αk Ap(k)
>
(k+1) > (k+1) (k+1) > (k) r(k) r(k) (k+1) >
⇒r r = r| {z r } + p(k) > Ap(k) r Ap(k)
=0
(k) > (k)
=r r βk+1
(k+1) > (k+1)
r r
⇒ βk+1 = >
r(k) r(k)
Tenemos todos los términos para reescribir el algoritmo del GC en el siguiente esquema
1) Se toma p(0) = r(0)
>
r(k) r(k)
2) αk = >
p(k) Ap(k)

3) x(k+1) = x(k) + αk p(k)


4) r(k+1) = r(k) − αk Ap(k)
>
r(k+1) r(k+1)
5) βk+1 = >
r(k) r(k)

6) p(k+1) = r(k+1) + βk+1 p(k)


7) reemplazar k por k + 1 y retornar al paso 2) hasta que un criterio de parada sea
satisfecho.
Resolución de sistemas a gran escala 85

5.10 Ejercicios
1. Utilizando los criterios de convergencia conocidos explique si se puede asegurar que
los siguientes métodos convergen a la solución del problema Ax = b. Completar el
cuadro con si, no o marque con una x en caso de que no se pueda decidir.

Matriz/Método Richardson Jacobi Gauss-Seidel


general w=0.5
A1
A2

Considerar las matrices:

 
  1 2 −1
1 0,5
A1 = , A2 =  0 1 0 
0,5 1
0 0 2
 
4 1
 4 2 
A3 =  
 4 3 
4 4

Implemente el método escogido en Matlab y presente los resultados con sus respec-
tivas conclusiones.

2. Determine la veracidad de la afirmación: “Si la norma de la inversa de una matriz


A ∈ Rn es mayor que uno, entonces cualquier método iterativo aplicado al problema
Ax = b, para b ∈ Rn dado, diverge”.

3. Sea A ∈ Rm×n y b ∈ Rm . Considere el método estacionario

x(k+1) = x(k) + wA> (b − Ax(k) ).

Muestre que si el rango de A es n, λmı́n (A> A) > 0 y 0 < w < 2/λmáx (A> A) entonces
el método converge. ¿Hacia la solución de qué problema converge este método?

4. Demuestre que si A es definida positiva, también los son A2 , A3 , . . ., y también lo


son A−1 , A−2 , . . ..

5. Considere A tal que A = M − N , con det(M ) 6= 0. Demuestre que si el número


δ
δ = kI − M −1 Ak < 1, entonces kx(k) − xk ≤ kx(k) − x(k−1) k.
1−δ
6. ¿Es posible aplicar el método del Gradiente Conjugado a una matriz simétrica de-
finida negativa? (Justificar la respuesta.)

7. Demuestre que si A es diagonal dominante estricta por filas, entonces el método de


Gauss-Seidel converge para cualquier valor inicial. Desarrolle un ejemplo.

8. Demuestre que si A es definida positiva, también lo son A2 , A3 , . . ., y también lo


son A−1 , A−2 , . . ..

9. Demuestre la convergencia del método de Jacobi para una matriz diagonal domi-
nante stricta por columnas.
86 Apuntes de clase de Análisis Numérico I

10. Escriba los pseudocódigos completos para los trés métodos iterativos clásicos vistos
en clase. Incluyendo criterios de parada bien seleccionados.

11. En el método de Gauss-Seidel, se hizo la siguiente elección: M = L + D, N = −U ,


habría sido posible elegir M = D + U , N = −L. Describa el método que se deriva
de la última elección, ¿qué condiciones de A son requeridas para la convergencia del
método?, ¿Cuál es la diferencia con el método de Gauss-Seidel original?
>
12. Demuestre que en el método del descenso más profundo se cumple que r(k) r(k+1) =
0.

13. Una generalización del método de Jacobi se obtiene mediante un proceso sobrere-
lajación. El método JOR se obtiene utilizando la siguiente matriz de integración
BJOR = ωBJ + (1 − ω)I, donde BJ corresponde a la matriz de iteración del método
de Jacobi. Demuestre que si A es simétrica definida positiva entonces el método
JOR converge si 0 < ω < 2/ρ(D−1 A).

14. Sea un conjunto de vectores {p(0) , p(1) , . . . , p(n−1) } A-ortogonales. Demuestre que tal
conjunto es linealmente independiente.

15. Demuestre que los residuos r(k) en el método del Gradiente Conjugado son ortogo-
nales al espacio de Krylov K(r(0) , k − 1).

16. Encuentre la forma explícita de la matriz de iteración del método de Gauss-Seidel,


para el caso de una matriz A ∈ Rn , tal que aii = 4, i = 1, . . . , n, aii+1 = −1,
i = 1, . . . , n − 1, . . . , n y ai−1i = −1, i = 2, . . . , n.

17. Modifique el proceso de Gram-Schmidt de manera que genere un conjunto de vec-


tores A-ortogonales.

18. Demuestre que la función h definida en la ecuación (5.29) es continua y además


estrictamente convexa.

19. De un ejemplo de una matriz simétrica definida positiva (demostrar), y resuelva


el sistema Ax = b utilizando el método del descenso más profundo y gradiente
conjugado. Compare los resultados.

20. Demuestre que minimizar la función 12 x> Ax−b> x utilizando las direcciones p(k) = ek ,
donde ek representa los vectors canónicos de Rn , es equivalente a un paso del método
de Gauss-Seidel.
Capítulo 6

Cálculo de Valores y Vectores Propios

Este capítulo está dedicado a otro de los problemas más importantes del álgebra lineal,
que es el cálculo de los valores propios de una matriz; y consecuentemente de los vectores
propios asociados. Como es conocido, este problema consiste en hallar todos los valores
(λ, x) ∈ C × Rn \{0} asociados a una matriz A ∈ Rn×n , los cuales satisfacen la ecuación:

Ax = λx. (6.1)

Como en el capítulo anterior, nos interesa este problema no sólo para matrices generales
sino también para matrices estructuradas eg. matrices simétricas definidas positivas, etc.

6.1 Condicionamiento del cálculo de valores propios


Consideremos λ0 ∈ C un valor propio simple de A y a la aplicación λ continuamente
diferenciable en una vecindad de A, definida por

λ : V ⊂ Rn×n −→ C (6.2)

Sea A ∈ Rn×n , buscamos un vector x ∈ Rn (eigenvector) y λ ∈ C (eigenvalor) tales


que
Ax = λx. (6.3)
Aparte de matrices generales, estamos interesados en matrices simétricas y matrices de-
finidas positivas. donde λ0 = λ(A), y si x0 es un eigenvector de A asociado a λ0 y y0 el
eigenvector adjunto de AT asociado a λ0 , i.e.

Ax0 = λ0 x0 y AT y0 = λ0 y0 ,

entonces la derivada de λ en A satisface


xT0 C T y0
λ0 (A)C = , (6.4)
xT0 y0

para todo C ∈ Rn×n . Para ver esto, tomemos C ∈ Rn×n , como λ0 es una raíz simple del
polinomio caracterísitico PA , entonces

0 6= PA0 (λ0 ) = PA+tC (λ)|t=0
|∂λ {z }
derivada direccional de PA

87
88 Apuntes de clase de Análisis Numérico I

Puesto que G(t, λ) = PA+tC (λ) es tal que


G(0, λ0 ) = PA (λ0 ) = 0,
entonces
∂ ∂
G(0, λ0 ) = PA+tC (λ)|t=0 6= 0,
∂λ ∂λ
por lo que es invertible; así, se puede aplicar el teorema de la función implícita. En
este caso, implica que, en una vecindad del origen (−, ) ⊂ R, existe una función λ
continuamente diferenciable
λ : (−, ) −→ C
t 7−→ λ(t)
tal que λ(0) = λ0 , y puesto que 0 = G(t, λ(t)) = PA+tC (λ), entonces λ(t) es un valor
propio simple de A + tC.

Ejercicio: De la misma manera se puede deducir la existencia de una función continua-


mente diferenciable
x : (−, ) −→ Cn
t 7−→ x(t)
tal que x(0) = x0 y tal que x(t) es un eigenvector de A + tC que está asociado a λ(t).
Si derivamos
(A + tC)x(t) = λ(t)x(t)
respecto a t en t = 0, entonces
Cx(t) + (A + tC)x0 (t) = λ0 (t)x(t) + λ(t)x0 (t),
evaluando en t = 0
Cx0 + Ax0 (0) = λ0 (0)x0 + λ0 x0 (0),
multiplicando la identidad anterior por y0 a la derecha, tenemos que
(Cx0 )T y0 + (Ax0 (0))T y0 = (λ0 (0)x0 )T y0 + (λ0 x0 (0))T y0
= λ0 (0)xT0 y0 + λ0 x0 (0)T y0 ,
luego
xT0 C T y0 + x0 (0)T AT y0 = λ0 (0)xT0 y0 + λ0 x0 (0)T y0
xT0 C T y0 +  x0 T y = λ0 (0)xT y + λ x0 T
 
λ0 (0) 0 0 0 0 (0) y0 ,
de donde
xT0 C T y0
λ0 (0) =
xT0 y0 .
Hemos calculado la derivada de λ en la dirección de la matriz C. Como además, λ es
continuamente diferenciable
xTo C T y0T
λ0 (A)C = λ0 (0) =
xT0 y0 .
Para calcular el número de condición del problema (λ, A) usaremos la norma de λ0 (A)
como aplicación lineal
hCx, yi xT C T y
λ0 (A) : C 7−→ = ,
hx, yi xT y
donde x es un eigenvector asociado al valor propio simple λ0 de A y y es el vector propio
adjunto asociado al valor propio λ0 de AT .
Cálculo de Valores y Vectores Propios 89

Teorema 13. El número de condición (normado) absoluto del problema de la deter-


minación de un valor propio simple λ0 de A ∈ Rn×n en norma 2 es

kxkkyk 1
Kabs = kλ0 (A)k = T
= (6.5)
|x y| |cos(θ)|

y el número de condición relativo es

kAk 0 kAk
Krel = kλ (A)k = (6.6)
|λ0 | |λ0 cos(θ)|

Demostración. Notemos que


|xT C T y| ≤ kCxkkyk ≤ kCkkxkkyk,
luego

0 1 0 1 |xT C T y| kCkkxkkyk


Kabs = kλ (A)k = sup |λ (A)C| = sup T
≤  T y| ,
C6=0 kCk C6=0 kCk |x y| kCk|x



en consecuencia
1
Kabs ≤ .
|cos(θ)|
La igualdad se tiene, pues si C = yxT en particular
|xT C T y| xT (yxT )T y xT xy T y kxk2 kyk2
|λ0 (A)C| = = = = ,
|xT y| |xT y| |xT y| |xT y|
además
kxy T zk |y T z|
kCk = kxy T k = sup = kxk sup = kxkkyk
z6=0 kzk z6=0 kzk

Ejemplo: En general, el problema (λ, A) no es bien condicionado, como ejemplo toma-


mos las matrices no simétricas
   
0 1 0 1
A= y à =
0 0 δ 0

con valores propios λ1 = λ2 = 0 y λ̃1,2 = ± δ

|λ̃1 − λ1 | δ 1
Kabs ≥ = = √ −→ ∞, si δ −→ 0
kà − Ak2 δ δ
por lo que el cálculo del valor propio λ = 0 es un problema mal condicionado.

6.2 Resolución numérica


6.2.1 Método de la potencia
El método de la potencia es uno de los métodos más sencillos para el cálculo de los valores
propios. La idea es considerar la siguiente iteración para x0 ∈ Rn
xk+1 = Axk , k = 0, 1, 2, . . . (6.7)
90 Apuntes de clase de Análisis Numérico I

Consideremos el caso en el que A es simétrica. Sea η1 , η2 , . . . , ηn una base ortonormal de


vectores propios de A:
Aηi = λi ηi , i = 1, 2, . . . , n
y tales que |λ1 | > |λ2 | ≥ . . . ≥ |λn |
n
X
x0 = αi ηi , α1 = hx0 , η1 i =
6 0 (6.8)
i=1

si x0 no es ortonormal a η1 , por tanto


n n n n  k !
X X X X αi λi
xk = Ak x0 = αi Ak ηi = αi λki ηi = α1 λk1 η1 + αi λki ηi = α1 λk1 η1 + ηi ,
i=1 i=1 i=2 i=2
α1 λ1
| {z }
zk

puesto que λ1 > |λi |, entonces


n  k !
X αi λi
lı́m η1 + ηi = η1 ,
k→∞
i=2
α1 λ1

xk k
i.e. kzk k −→ 1 y zn −→ η1 , por tanto kxk k
= ± kzzk k −→ ±η1

Desventajas
1. Solo calculamos el vector propio asociado al valor propio más grande (en valor
absoluto)

2. La velocidad de convergencia depende de | λλ21 |; si λ1 ≈ λ2 , el método converge muy


lento.
Supongamos que conocemos una estimación λ̄ ≈ λi de un valor propio arbitrario de A
(simétrica) tal que
|λ̄ − λi | < |λ̄ − λj | , ∀j 6= i,
−1 −1
entonces λ̄ − λi es el valor propio más grande (en valor absoluto) de la matriz A − λ̄I ,
−1
así, aplicamos el método de la potencia a la matriz A − λ̄I , obteniendo el esquema
−1
A − λ̄I xk+1 = xk , k = 0, 1, 2, . . .

llamado el método inverso de la potencia.

6.2.2 Algoritmo QR para problemas simétricos


Sabemos que este problema está bien condicionado cuando las matrices son bien condi-
cionadas. Queremos ahora un método para calcular simultáneamente todos los valores
propios de una matriz A ∈ Rn×n .
Si A posee valores propios reales solamente, entonces existe una base ortonormal de
vectores propios v1 , v2 , . . . , vn ∈ Rn tales que Avi = λi vi para todo i = 1, . . . , n, por lo
que se tiene la descomposición espectral

QT AQ = Λ = diag(λ1 , . . . , λn ) (6.9)

con Q = [v1 , . . . , vn ] ortonormal.


Cálculo de Valores y Vectores Propios 91

Puesto que, por el teorema de Abel, clásico del álgebra, no existe un procedimiento
basado en operaciones aritméticas a radicales que pueda calcular las raíces de un polino-
mio, no podemos determinar Q en un número finito de pasos. Por tanto, la idea es tratar
de transformar A a una forma lo más cercana posible a una forma diagonal con matrices
ortogonales.
Por ejemplo, si tratamos de hacer esto con transformaciones de Househölder
     
∗ ∗ ··· ∗ ∗ ∗ ··· ∗ ∗ 0 ··· 0
 ∗ ∗ ··· ∗ 
 Q1 ·  0 ∗ · · · ∗  ·Q˜1 T  ∗ ∗ · · · ∗ 
   
−−→ −
− −


 .. .. . . ..   .. .. . . ..   .. .. . . .. 
 . . . .   . . . .   . . . . 
∗ ∗ ··· ∗ 0 ∗ ··· ∗ ∗ ∗ ··· ∗

y podemos observar que esto no es posible, pues lo que se hace por la izquierda es destruido
por lo que se hace por la derecha.
La situación cambia si queremos transformar a una forma tridiagonal
 
    ∗ ∗ 0 ··· 0
∗ ∗ ··· ∗ ∗ ∗ ··· ∗  ∗ ∗ ∗ ··· ∗ 
 ∗ ∗ ··· ∗   0 ∗ ··· ∗   
 P1 ·   ·P1  0 ∗ ∗ · · · ∗ 
 .. .. . . ..  −→  .. .. . . ..  −→  (6.10)


 . . . .   . . . .   .. .. .. . . 
 . . . . 
∗ ∗ ··· ∗ 0 ∗ ··· ∗
0 ∗ ∗ ··· ∗

Lema 5. Si A ∈ Rn×n es simétrica, entonces existe una matriz P ortogonal de tamaño


n × n, la cual es el producto de n − 2 reflexiones de Househölder, tal que P AP −1 es
tridiagonal.

Demostración. Si consideramos la reflexión de la explicación en (6.10) entonces


 
∗ ∗
..
 ∗ ∗ .
 

T T T

Pn−2 Pn−3 · · · P1 A P1 · · · Pn−3 Pn−2 =  ... ... ... 

}  
.. ..
| {z } | {z  
=P =P T  . . ∗ 
∗ ∗

Gracias al Lema 5 hemos transformado nuestra matriz en una matriz tridiagonal equi-
valente, y por tanto reducimos el cálculo de los valores propios ad euna matriz simétrica
A al cálculo de la matriz tridiagonal equivalente.
Note que A = QR, si A0 = RQ, entonces

A = QR = Q RQ QT = QA0 QT ↔ A0 = QAQT = QT AQ,


|{z}
A0

además
(A0 )T = (A0 )T QT Q = QT RT QT Q = QT AT Q = QT AQ = A0 . (6.11)
Gracias a las ideas anteriores definimos la siguiente sucesión de matrices (Algoritmo QR)
{Ak }k=1,2,... que se genera de la siguiente forma
92 Apuntes de clase de Análisis Numérico I

1) A1 = A
2) FactorizarAk = Qk Rk (6.12)
3) Ak+1 = Rk Qk

Lema 6. Las matrices Ak tienen las siguientes propiedades


1. Las matrices Ak son similares a A

2. Si A es simétrica, entonces Ak también, k = 1, 2, . . .

3. Si A es simétrica y tridiagonal, entonces Ak también lo es, k = 1, 2, . . .


Demostración. Supongamos que A = QR y A0 = RQ, entonces
1. QAT Q = QRQQT = QR = A

2. Se sigue de 6.11

3. Sea A simétrica y tridiagonal. Si calculamos Q usando (n − 1) rotaciones de Givens


Q12 , . . . , Qn−1n , luego Q = (Qn−1n , . . . Q12 )
     
∗ ∗ ∗ ∗ ⊕ ∗ ⊕ ∗
.. . . .. ..
 ⊗ ∗ . ∗ .. ..  ∗ ∗ . .
     
   
 . .   ... ...   . . . 

 ⊗ .. .. → 
  → 
⊕   .. .. .. ⊕ 

 .. ..   ..   .. .. 
 . . ∗   . ∗   . . ∗ 
⊗ ∗ ∗ ∗ ∗
| {z } | {z } | {z }
A R=QT A A0 =RQ=QT AQ

Gracias a (2), A0 debe ser simétrica, entonces ⊕ se acumulan y en consecuencia es


tridiagonal.

Teorema 14. Sea A ∈ Rn×n simétrica tal que λ1 , . . . , λn son sus valores propios tales que

|λ1 | > |λ2 | > · · · > |λn |


 
(k)
y Ak , Qk , Rk definidas en 6.12, con Ak = aij , entonces los siguientes enunciados son
equivalentes
1. lı́mk→∞ Qk = I,

2. lı́mk→∞ Rk = Λ,
 k
(k)
3. aij = O | λλji | , para i > j

Demostración. Primero demostraremos que

Ak = Q1 Q2 · · · Qk Rk Rk−1 · · · R1 .
| {z }| {z }
=:Pk =:Uk

En efecto, para k = 1 se tiene que A1 = Q1 R1 . Ahora

Ak+1 = Qk+1 Rk+1 = QTk · · · QT1 AQ1 · · · Qk = Pk−1 APk ⇒ APk = Pk Ak+1
Cálculo de Valores y Vectores Propios 93

Utilizando nuestra hipótesis de inducción

Ak+1 = AAk = A(Pk Uk ) = (Pk Ak+1 )Uk = Pk Qk+1 Rk+1 Uk = Pk+1 Uk+1 ,

donde Pk+1 es ortogonal y Uk+1 es triangular superior, por tanto concluimos que Ak =
Pk Uk , la cual corresponde a su factorización QR. Además, puesto que A es simétrica, se
tiene la descomposición

Ak = QΛk QT , Λk = diag(λk1 , λk2 , . . . , λkn ).

Se puede asumir que Q tiene descomposición LU , esto puede hacerse intercambiando las
finlas de A, así es posible escribir

Ak = QΛk LU = Q(Λk LΛ−k )Λk U, (6.13)


 k
k −k λi
donde podemos observar que (Λ LΛ )ij = lij λj
, en particular

 k
λi
lij → 0 , ∀i 6= j
λj

puesto que |λj | > |λi | si j > i, que es el caso, pues la matriz es triangular superior, por
tanto
Λk L(Λk )−1 = I + Ek con Ek → 0 cuando k → ∞.
Reemplazando en 6.13, se sigue que

Ak = Q(I + Ek )Λk U.

Si aplicamos una factorización QR a I + Ek , entonces I + Ek = Q̃k R̃k , donde todos


los elementos de la diagonal de R̃k son positivos; de la unicidad de la factorización QR,
entonces
Q̃k , R̃k → I para k → ∞,
por lo que hemos deducido una segunda factorización QR de Ak

Ak = QQ̃k R̃Λ k
U.
|{z} | {z }
Q R

Por tanto la siguiente identidad se cumple (salvo por el signo de la diagonal)

Pk = QQ̃k , Uk = R̃k Λk U,

por tanto
T
Qk = Pk−1 Pk = Q̃Tk−1 QT QQ̃k = Q̃Tk−1 Q̃k −→ I
−1 −1 −1
Rk = Uk Uk−1 = R̃k Λk RR−1 Λ−(k−1) R̃k−1 = R̃k ΛR̃k−1 −→ Λ,
para k −→ ∞ y
lı́m Ak = lı́m Qk Rk = lı́m Rk = Λ
k→∞ k→∞ k→∞
94 Apuntes de clase de Análisis Numérico I

Un análisis más profundo muestra que el método converge también cuando existen
valores propios múltiples, i.e. λ1 = · · · = λj ; sin embargo, el método tiene problemas
si λi = −λi+1 . Si λi , λi+1 están muy cerca en valor absoluto, el método converge muy
lentamente.
Se puede mejorar si se utiliza una estrategia de cambio; la idea es tratar de llevar a
ambos valores propios cerca del origen para reducir el cociente

λi+1
| |.
λi

Para esto se definen las iteraciones (Ak ) con parámetro de traslación σk

1. A1 = A

2. Ak − σk I = Qk RK (Factorización QR)

3. Ak+1 = Rk Qk + σk I

Como antes, se sigue que

1. Ak+1 = QTk Ak Qk ∼ Ak

2. (A − σk I) · · · (A − σ1 I) = Q1 · · · Qk Rk · · · R1

La sucesión (Ak ) converge a Λ con la siguiente tasa


 
(k) |λi − σ1 | |λi − σk−1 |
aij =o ··· , i > j.
|λj − σ1 | |λj − σk−1 |

Además de los valores propios también queremos calcular los vectores propios, los cuales
se calculan como sigue:
Si Q es ortogonal, entonces

A ≈ QT ΛQ , Λ = diag(λ1 , · · · , λn )

por lo que las columnas de Q aproximan los vectores propios de A; i.e.

Q ≈ [η1 , η2 , . . . , ηn ]

Algoritmo QR: (λ + v.p)

1. Reducir el problema a su forma tridiagonal

A −→ A1 = P AP T ,

donde A1 es simétrica y tridiagonal y P es ortogonal.

2. Aproxima los valores propios con el algoritmo QR (con rotaciones de Givens apli-
cadas a A1
(k)
GA1 GT ≈ Λ, Ω = producto rotaciones Gij

3. Las columnas de GP aproximan [η1 , · · · , ηn ].


Cálculo de Valores y Vectores Propios 95

6.3 Ejercicios
1. Demuestre que el método de la potencia es un caso particular del algoritmo QR
para el cálculo de valores propios.

2. Demuestre que en el método de la potencia se cumple que:

A(Ak x(0) ) ≈ λ1 (Ak x(0) )

3. El cálculo de un vector propio ηj asociado a un valor propio λj de una matriz A se


puede realizar mediante la iteración inversa:

Azi − λ̂j zi = zi−1 ,

donde λ̂j es una aproximación de λj . De la relación:

r(δ) = Azi − (λ̂j + δ)zi = zi−1 − δzi ,

encuentre una corrección δ para la aproximación λ̂j tal que kr(δ)k2 sea mínima.

4. Sea u ∈ Rn y la matriz A = I + uu> , donde I es la matriz identidad de tamaño n.

(a) Deduzca la forma que tienen los valores propios de A.


(b) Verifique que la matriz satisface las hipótesis del método de la potencia, para
el cálculo de los valores propios.
(c) Si x(k) es generado por el método de la potencia, entonces determine una fór-
mula explícita para x(k) en función del valor inicial.
96 Apuntes de clase de Análisis Numérico I
Bibliografía

[1] Biswa Nath Datta. Numerical linear algebra and applications. Siam, 2010.

[2] James W Demmel. Applied numerical linear algebra. Siam, 1997.

[3] Gene H Golub and Charles F Van Loan. Matrix computations, volume 3. JHU Press,
2012.

[4] Andreas Hohmann and Peter Deuflhard. Numerical analysis in modern scientific
computing: an introduction, volume 43. Springer Science &amp; Business Media, 2012.

[5] A Quarteroni and R Sacco. F. saleri scientific computing with matlab, 2003.

[6] Alfio Quarteroni and Alberto Valli. Numerical approximation of partial differential
equations, volume 23. Springer Science &amp; Business Media, 2008.

[7] Yousef Saad. Iterative methods for sparse linear systems. Siam, 2003.

97

S-ar putea să vă placă și