You are on page 1of 200

Anlisis Numrico

L. Hctor Jurez V.
Departamento de Matemticas,
Universidad Autnoma Metropolitana.
hect@xanum.uam.mx
3 de septiembre de 2008

L. Hctor Jurez V.

ndice general
1. Aritmtica Computacional

1.1. Representacin de nmeros por computadora . . . . . . . . . . . . . . . . . .

1.1.1. Representacin de nmeros enteros . . . . . . . . . . . . . . . . . . . . 10


1.1.2. Representacin de punto flotante . . . . . . . . . . . . . . . . . . . . . 10
1.1.3. Limitacines en la representacin de nmeros en computadora . . . . . 12
1.2. Errores de redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.1. Forma normalizada de un nmero . . . . . . . . . . . . . . . . . . . . . 13
1.2.2. Forma de punto flotante: truncamiento y redondeo . . . . . . . . . . . 13
1.2.3. Epsilon de mquina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3. Aritmtica de punto flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.1. Sistema de nmeros de punto flotante . . . . . . . . . . . . . . . . . . 16
1.3.2. Operaciones de punto flotante . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.3. Axioma fundamental de la arimtica de punto flotante . . . . . . . . . 17
2. Condicionamiento y Estabilidad
2.1. Normas de matrices

19

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1.1. Normas en espacios vectoriales . . . . . . . . . . . . . . . . . . . . . . 19


2.1.2. Continuidad y equivalencia de normas . . . . . . . . . . . . . . . . . . 21
2.1.3. Normas matriciales inducidas . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.4. Clculo de normas matriciales . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.5. La norma2 de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.6. Propiedades de las normas matriciales . . . . . . . . . . . . . . . . . . 27
2.2. Condicionamiento y estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.1. Condicionamiento de un problema . . . . . . . . . . . . . . . . . . . . 29
2.2.2. Nmero de condicin absoluto . . . . . . . . . . . . . . . . . . . . . . . 29
2.2.3. Nmero de condicin relativo . . . . . . . . . . . . . . . . . . . . . . . 30
3

L. Hctor Jurez V.
2.2.4. Estabilidad de los algoritmos . . . . . . . . . . . . . . . . . . . . . . . 35
2.2.5. Estabilidad regresiva (Backward-Stability) . . . . . . . . . . . . . . . . 37
2.2.6. Precisin de un algoritmo estable regresivo . . . . . . . . . . . . . . . . 38

3. Solucin de Sistemas de Ecuaciones Lineales


3.1. Eliminacin de Gauss

41

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.2. Factorizacin LU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3. Inestabilidad del mtodo de eliminacin de Gauss . . . . . . . . . . . . . . . . 51
3.4. Tcnicas de pivoteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.1. Pivoteo completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.4.2. Pivoteo parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4.3. Factorizacin LU con pivoteo parcial . . . . . . . . . . . . . . . . . . . 56
3.5. Clculo de la inversa de una matriz . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6. Estabilidad del mtodo de eliminacin de Gauss con pivoteo . . . . . . . . . . 60
3.7. Mtodo de Factorizacin de Choleski . . . . . . . . . . . . . . . . . . . . . . . 62
3.7.1. Matrices definidas positivas . . . . . . . . . . . . . . . . . . . . . . . . 62
3.7.2. Factorizacin de Choleski . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.7.3. El algoritmo de Choleski . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.7.4. Estabilidad del algoritmo de Choleski

. . . . . . . . . . . . . . . . . . 69

4. Problemas de mnimos cuadrados lineales. Factorizacin QR

71

4.1. Ajuste de curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71


4.2. Ajuste por medio de polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.1. Polinomio de interpolacin . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.2.2. Mnimos cuadrados polinomiales . . . . . . . . . . . . . . . . . . . . . 75
4.3. Mtodo de ecuaciones normales . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.3.1. Proyeccin ortogonal sobre el espacio imagen . . . . . . . . . . . . . . 76
4.3.2. Sistema de ecuaciones normales . . . . . . . . . . . . . . . . . . . . . . 77
4.3.3. Algoritmo de ecuaciones normales

. . . . . . . . . . . . . . . . . . . . 79

4.4. Mtodo de factorizacin QR por ortogonalizacin de Gram-Schmidt . . . . . . 81


4.4.1. Factorizacin reducida . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.4.2. Factorizacin completa . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.5. Proyecciones en Rn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.5.1. Algunas propiedades de las proyecciones . . . . . . . . . . . . . . . . . 86
4.5.2. Proyecciones ortogonales . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.6. Mtodo de factorizacin QR por reflexiones de Householder . . . . . . . . . . 91

Anlisis Numrico

4.6.1. Triangularizacin de Householder . . . . . . . . . . . . . . . . . . . . . 91


4.6.2. Reflexiones de Householder . . . . . . . . . . . . . . . . . . . . . . . . 92
4.6.3. La mejor de las dos reflexiones . . . . . . . . . . . . . . . . . . . . . . 96
4.6.4. Algoritmo de factorizacin de Householder . . . . . . . . . . . . . . . . 97
5. Solucin de Ecuaciones no Lineales

101

5.1. Mtodo iterativo de punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . 102


5.2. Teorema de punto fijo de Banach . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.3. Cota del error en la iteracin de punto fijo . . . . . . . . . . . . . . . . . . . . 106
5.4. Orden de convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.5. La convergencia cuadrtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.6. El mtodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.6.1. Interpretacin geomtrica del mtodo de Newton . . . . . . . . . . . . 116
5.6.2. Teorema de convergencia no-local para el modo de Newton . . . . . . 118
5.6.3. Algunas modificaciones del mtodo de Newton . . . . . . . . . . . . . 119
5.7. Mtodo de punto fijo para sistemas de ecuaciones . . . . . . . . . . . . . . . . 121
5.7.1. Aceleracin de tipo Seidel en las iteraciones . . . . . . . . . . . . . . . 125
5.8. Mtodo Newton para sistemas de ecuaciones . . . . . . . . . . . . . . . . . . . 126
6. Interpolacin Polinomial e Integracin Nmerica

129

6.1. Polinomio de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130


6.2. Interpolacin de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.3. Error en el polinomio de interpolacin . . . . . . . . . . . . . . . . . . . . . . 134
6.4. Forma de Newton del polinomio de interpolacin . . . . . . . . . . . . . . . . 137
6.4.1. Clculo de los coeficientes a0 , a1 , . . . , an

. . . . . . . . . . . . . . . . 138

6.4.2. Nmero de operaciones en la forma de Newton . . . . . . . . . . . . . 141


6.4.3. Interpolacin en un nmero creciente de puntos . . . . . . . . . . . . . 143
6.4.4. El error del polinomio en forma de Newton . . . . . . . . . . . . . . . 143
6.5. Integracin Numrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
6.5.1. Frmulas de NewtonCotes . . . . . . . . . . . . . . . . . . . . . . . . 144
6.5.2. El error en las frmulas de integracin de Newton-Cotes . . . . . . . . 145
6.5.3. Frmulas de integracin numrica ms comunes . . . . . . . . . . . . . 147
6.6. Reglas compuestas de integracin . . . . . . . . . . . . . . . . . . . . . . . . . 151
6.7. Frmulas de cuadratura de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . 155

L. Hctor Jurez V.

7. Aproximacin Numrica de Ecuaciones Diferenciales Ordinarias


7.1. Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Existencia y unicidad de la solucin . . . . . . . . . . . . . . . . . . .
7.3. Mtodos de aproximacin con series de Taylor . . . . . . . . . . . . .
7.4. Mtodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . .
7.5. Mtodos de Runge-Kutta de dos etapas . . . . . . . . . . . . . . . .
7.6. Mtodos de un paso de retapas . . . . . . . . . . . . . . . . . . . . .
7.7. Estabilidad y convergencia de los mtodos de un paso . . . . . . . .
7.7.1. Estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.7.2. Convergencia . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.8. Estudio asinttico del error global . . . . . . . . . . . . . . . . . . . .
7.9. Monitoreo del error y control del paso . . . . . . . . . . . . . . . . .
7.9.1. Mtodo RungeKuttaFehlberg de cuarto orden . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

161
. 161
. 165
. 166
. 173
. 175
. 179
. 181
. 182
. 185
. 186
. 188
. 196

Anlisis Numrico

Prlogo
Este documento contiene las notas del curso de Anlisis Numrico diseado para los
alumnos de la maestra en Ciencias Matemticas Aplicadas e Industriales y del Posgrado
de la Divisin de Ciencias Bsicas e Ingeniera de la Universidad Autnoma Metropolitana,
plantel Iztapalapa. El material incluye los temas cubiertos en un perido trimestral y equivalente a 50 horas frente a grupo. Se recomienda que un mnimo de 12 horas de las 50 se
dediquen a taller de cmputo, en donde los alumnos experimenten con los diferentes algoritmos y mtodos analizados en clase de teora. Cabe aclarar que el material tambin puede
utilizarse en cursos con estudiantes avanzados (del ltimo ao) de ciencias e ingenieria de
nivel licenciatura. Los prerrequisitos son: clculo en una y varias variables, algebra lineal, y
ecuaciones diferenciales ordinarias. Los temas se escogieron para cubrir un mnimo de material que permita introducir al estudiante a este fascinante campo de la matemtica aplicada,
con el objeto de que adquiera la formacin y madurez necesaria que le permita abordar
otros temas ms avanzados y/ especializados del anlisis numrico. Se hace nfasis en el
anlisis y comprensin de los mtodos y algorimtos, as como de los alcances y limitaciones
de los mismos. Nuestro propsito es que el estudiante no solo aprenda a utilizar los mtodos,
sino que adems sea capaz de elejir y disear la mejor estrategia para algn problema en
particular. Por el momento no hemos incluido los ejemplos cubiertos en taller de cmputo,
los cdigos de cmputo correspondientes, ni tampoco hemos incluido una lista de ejercicios
de cada tema. Estas son tareas pendientes que iremos cubriendo poco a poco.
Por lo pronto, a manera de introduccin trataremos de describir de manera general el
campo de estudio del anlisis numrico y el propsito general del material que se presenta
en este manuscrito.
El anlisis numrico trata del estudio, anlisis y desarrollo de algoritmos para obtener
soluciones numricas y computacionales de problemas expresados matemticamente. Generalmente estos problemas matemticos son modelos expresados en el lenguaje matemtico de
diversos fenmenos estudiados en las ciencias naturales y problemas de la ingeniera, abarcando recientemente otros campos como las finanzas, la economa, la biologa y la medicina,
entre otros. A menudo el anlisis numrico es considerado como las matemticas de la computacin cientfica (la cual versa sobre la solucin numrica en computadora de problemas
matemticos).
Los algoritmos que estudiaremos invariablemente son diseados para utilizarlos en computadoras de alta velocidad. Por tanto, un paso crucial antes de obtener la solucin del problema consiste en el desarrollo de un cdigo o programa en algn lenguaje de programacin
para comunicarlo a la computadora. Dado que hay varias opciones no solo de lenguajes de

L. Hctor Jurez V.

computacin sino tambien de tipos de computadoras, el tema de programacin se deja fuera


de la ciencia del anlisis numrico. Sin embargo, en el presente estudio a menudo haremos
uso del ambiente MATLAB para los clculos en algunos ejemplos y aclaramos que el lector
puede programar los mtodos en el ambiente o en el lenguaje de programacin que el elija.
Existen varias fuentes de error en la solucin de problemas que requieren de computacin
matemtica o solucin computacional:
1. Modelacin del proceso. La solucin numrica de problemas no puede ser mejor que
el modelo subyacente. Un modelo matemtico de un problema en particular siempre
parte de hiptesis simplificadoras y generalmente no describe el fenmeno de manera
exacta.
2. Medida de datos para el problema. Los datos observados los parmetros asociados a un problema pocas veces son exactos. Cuando se obtienen datos de un problema
generalmente hay limitaciones en los equipos de medicin y los datos son obtenidos
con una precisin finita determinada.
3. Errores matemticos de mtodo. Estos estn asociados a la aproximacin matemtica modelo numrico de solucin del problema. Estos errores comunmente son
llamados errores de discretizacin y errores de truncamiento, y son inherentes a la
metodologa de aproximacin que se utiliza para resolver el problema.
4. Error de redondeo. Aparecen debido al nmero finito de dgitos disponibles en las
computadoras o calculadoras utilizadas para el clculo numrico. Los equipos de clculo
computo tienen una precisin limitada y no pueden almacenar todos los nmeros de
manera exacta, ocasionando prdida de precisin en los clculos.
En este curso estudiaremos el diseo e implementacin de cdigos que en lo posible minimizen errores de redondeo, estimen errores de truncamiento y proporcione alguna indicacin
de la sensibilidad del problema a errores en los datos y a los errores de redondeo.

Captulo 1

Aritmtica Computacional
La aritmtica realizada en una computadora involucra operaciones con nmeros que
tienen un nmero finito de dgitos solamente. As que inevitablemente muchos clculos se
realizan con representaciones aproximadas de los nmeros verdaderos. Por ejemplo 1/3 no

puede representarse de manera exacta en una computadora, al igual que , e, 2 y muchos


otros nmeros.

1.1.

Representacin de nmeros por computadora

En una computadora digital los nmeros generalmente se representan en el sistema binario (base 2). Por ejemplo, (110)2 equivale a 1 22 + 1 21 + 0 20 = 6 en el sistema
decimal; (1011,11)2 equivale a 1 23 + 0 22 + 1 21 + 1 20 + 1 21 + 1 22 = 11,75
en el sistema decimal.
La longitud finita de la palabra de una computadora impone restricciones sobre la precisin que puede lograrse en la representacin de los nmeros. Por ejemplo, un nmero tan
simple como 1/10 no puede almacenarse exactamente en una mquina binaria dado que
1/10 = (0,0001100110011 . . .)2 .
Adems, debemos tomar en cuenta que tenemos dos tcnicas de conversin relacionadas
al comunicarnos con una computadora binaria: de decimal a binario (al introducir los datos),
y de binario a decimal (al obtener los resultados). En cada conversin pueden presentarse
errores.
9

10

1.1.1.

L. Hctor Jurez V.

Representacin de nmeros enteros

Los nmeros enteros se pueden representar en una computadora utilizando el mtodo de


la magnitud con signo: El primer bit de la palabra se utiliza para indicar el signo: 0 para
indicar +, y 1 para indicar . Los bits sobrantes se usan para guardar la magnitud del
nmero.
Ejemplo 1.1. Si se usan 16 bits para representar los nmeros enteros en la memoria de la
computadora, el nmero 173 puede representarse por
1

signo

27

25

23

22

20

Ejemplo 1.2. Rango de enteros. Determinar el rango de enteros que puede representarse
en una computadora de 16 bits.
Solucin. El 1er bit es para el signo. Sobran 15 bits con los cuales pueden representarse
los nmeros del 0 al 111111111111111 = 215 1 = 32767. Adems como el 0 se representa
por 0000000000000000, es redundante utilizar 1000000000000000 para representar -0, as que
podemos representar un nmero adicional que puede ser 215 215 . Por lo tanto, el rango
de enteros que podemos representar con una computadora de 16 bits es de -32768 a 32767
bin de -32767 a 32768

1.1.2.

Representacin de punto flotante

Los nmeros reales se representan en la computadora usando la forma de punto flotante


(o notacin cientfica normalizada). Esta consiste de una parte fraccionaria llamada mantisa
y una parte entera llamada exponente, como se indica a continuacin:

m e
= m et
t

donde es la base del sistema ( = 10 para el sistema decimal y = 2 para el sistema binario), e representa el exponente y t 1 es la precisin de la mquina. La m se puede escoger
1
m
como: t m < 1, (la mantisa es m), 1 m < t , (la mantisa es t ), dependiendo de la

arquitectura.

Anlisis Numrico

11

Ejemplo 1.3. La IBM 370 la 3000 consista de un bit indicador del signo, un exponente e
de 7 bits en base = 16, y una mantisa m de 24 bits (en total 32 bits), con t=64. Cualquier
1
nmero es de la forma: m16e64 con t m < 1.

En esta arquitectura el nmero de mquina


0

1000010

101100110000010000000000

representa el nmero decimal


[21 + 23 + 24 + 27 + 28 + 214 ]166664 = 179,015625.
donde:
el primer bloque (de 1 bit) representa +,
el segundo bloque (de 7 bits) representa 26 + 21 = 66,
el tercer bloque (de 24 bits) representa 21 + 23 + 24 + 27 + 28 + 214 .
El anterior nmero de mquina ms pequeo es:
0

1000010

101100110000001111111111
=179.0156097412109375

El siguiente nmero de mquina ms grande es:


0

1000010

101100110000010000000001
= 179,0156402587890625

Lo anterior significa que el nmero de mquina original debe representar no slo a 179.015625,
sino tambin a un nmero infinito de nmeros reales que se encuentran entre este nmero y
sus nmeros de mquina ms cercanos. Por otro lado, en esta arquitectura, el nmero ms
pequeo que se puede representar es:
0

0000000 000100000000000000000000
= 24 16064 = 1665 1078

y el nmero ms grande que se puede representar es:


0

1111111

111111111111111111111111
1 1612764 = 1663 1076

de tal manera que los nmeros que aparecen en los clculos con magnitud menor a 1665
resultan en lo que se denomina como underflow, y generalmente se le da el valor de cero.
Los nmeros con magnitudes mayores a 1663 resultan en lo que se llama overflow, y causa
que los clculos se detengan se obtenga un mensaje de error.

12

L. Hctor Jurez V.

1.1.3.

Limitacines en la representacin de nmeros en computadora

Del ejemplo anterior, concluimos que la limitacin ms fuerte para representar nmeros
en una computadora digital es que slo se puede contar con un nmero finito de bits para
cualquiera de las arquitecturas. De aqu que en una computadora digital
1. Slo se puede representar de manera exacta un nmero finito de nmeros.
2. No se puede representar nmeros arbitrariamente grandes o arbitrariamente pequeos.
3. Existen vacios claros entre los nmeros con representacin exacta.
Afortunadamente en las computadoras modernas se pueden representar nmeros suficientemente grandes y nmeros suficientemente pequeos (desde un punto de vista prctico).
Por ejemplo, en la aritmtica ms ampliamente usada en la actualidad (IEEE, Institute of
Electric and Electronic Engineers) en doble precisin permite nmeros tan grandes como
1,79 10308 (= 21024 ) y nmeros tan pequeos como 2,23 10308 (= 21022 ). Sin embargo
el vaco, claro o brecha entre nmeros de mquina es un problema permanente en la computacin. Por ejemplo, el intervalo [1,2] se representa por el conjunto discreto y finito, 1,
1 + 252 , 1 + 2 252 , 1 + 3 252 , . . . , 1 + 252 252 = 2.
En la aritmtica IEEE de doble precisin los claros o vacos entre nmeros de mquina
adyacentes no son mayores a 252 2,22 1016 , en sentido relativo. Esto puede parecer
insignificante, y de hecho lo es para la mayora de algoritmos estables. Sin embargo, resulta
catastrfico para los algoritmos inestables. Ms adelante precisaremos los conceptos de
estabilidad e inestabilidad numrica.
En suma, los nmeros de punto flotante en una computadora binaria estn distribuidos
en forma no uniforme, la mayora de ellos concentrados cerca de cero. Esto es debido a
que entre potencias adyacentes de 2 (intervalos binarios) siempre hay la misma cantidad de
nmeros de mquina e igual a 2t (con t=52 para doble precisin). Por ejemplo en el intervalo
2e
2e x 2e+1 los nmeros estn igualmente espaciados con un incremento t , donde 2e =
2
longitud del intervalo y 2t = cantidad de nmeros de punto flotante en el intervalo binario.
Por lo tanto, hay una distribucin no uniforme de punto flotante, con una densidad mayor
2e
cerca del origen (es decir, el incremento t es cada vez menor conforme el exponente e es
2
ms negativo).

Anlisis Numrico

1.2.

13

Errores de redondeo

Cuando se realiza aritmtica de punto flotante frecuentemente el nmero de dgitos en


los resultados intermedios es cada vez mayor, mientras que el nmero significativo de dgitos
permanece fijo. Por ejemplo, el producto de dos nmeros de punto flotante en aritmtica
con 8 dgitos despus del punto decimal ser un nmero con 16 dgitos despus del punto
decimal, y debemos quitar ocho dgitos para redondear el resultado a 8 dgitos despus del
punto decimal. El redondeo es un concepto til y fundamental en la ciencia computacional.

1.2.1.

Forma normalizada de un nmero

Para introducir e ilustrar el concepto de redondeo utilizaremos la forma decimal normalizada, esto con el objeto de simplificar la exposicin. Si x es un nmero real cualquiera, entonces tiene una representacin decimal exacta de la forma x = 0.d1 d2 d3 dt dt+1 10n ,
con 1 d1 9, 0 di 9, para i = 1, 2, . . . , t, t + 1, . . ., y n un entero positivo o negativo.
Ejemplo 1.4. La forma decimal normalizada se ilustra con los siguientes nmeros fraccionarios:
1
= 0,909090 . . . 101 ,
11
15
x=
= 0,13636363 . . . 101 .
11
x=

1.2.2.

Forma de punto flotante: truncamiento y redondeo

La forma de punto flotante, denotada por f l(x), se obtiene terminando la mantisa de x


en t dgitos decimales, si suponemos que los nmeros de mquina admiten a lo ms t dgitos
decimales despus del punto decimal. Existen dos maneras de realizar esta terminacin
1. Truncamiento. Se cortan los dgitos dt+1 , dt+2 , . . . para obtener f l(x) = 0.d1 d2 dt
10n .
2. Redondeo. Se forma la suma d1 d2 dt .dt+1 + 0,5 (donde el punto que est entre
dt y dt+1 es un punto decimal). La parte decimal de f l(x) es d1 d2 dt1 t la cual
representa la parte entera del resultado de la suma anterior.
Ejemplo 1.5. La representacin del nmero x = 15/11 en punto flotante con truncamiento

14

L. Hctor Jurez V.

a seis y siete cifras decimales es:


f l(x) = 0,136363 101 ,

si t = 6,

f l(x) = 0,1363636 101 ,

si t = 7.

Por otro lado, para obtener su representacin con redondeo a seis y siete cifras decimales
se hace lo siguiente: Si se toman seis cifras decimales (t = 6), entonces, 136363,6 + 0,5 =
136364,1, cuya parte entera es 136364. Por lo tanto f l(x) = 0,136364 101 (con 6 =
4 6= d6 = 3 ). Si se toman siete cifras decimales (t = 7), entonces tenemos 1363636,3 +
0,5 = 1363636,8, cuya parte entera es 1363636. Por lo tanto f l(x) = 0,1363636 101 (con
7 = 6 = d7 ).

El error que resulta al reemplazar un nmero real x por su nmero de punto flotante se
denomina error de redondeo. Este error esta acotado por |x f l(x)| 21 101t |x|p, donde
p = 1 cuando se hace redondeo, y p = 2 cuando se hace truncamiento.
Demostracin. (Caso por truncamiento). Sea x = 0.d1 d2 dt dt+1 10n , f l(x) =
0.d1 d2 dt 10n , entonces
|x f l(x)| = 0. 0| {z
0} dt+1 dt+2 10n
tceros

= 0.dt+1 dt+2 10nt


|x|
|x|
0.dt+1 dt+2 10n 10t |x|
0.d1 d2 dt dt+1 10n

= 0.dt+1 dt+2 10n 10t


=
Pero

0.dt+1 dt+2
10
0.d1 d2

ya que
0.dt+1 dt+2 d1 .d2 d3
(donde el punto entre d1 y d2 es un punto decimal). Por lo tanto
|x f l(x)| 101t |x|
cuando se hace truncamiento. Anlogamente puede considerarse el caso de redondeo:
1
|x f l(x)| 101t |x|.
2

Anlisis Numrico

15

Observacin. En las expresiones anteriores la cantidad |x f l(x)| denota el error absoluto


que se obtiene al representar el nmero x por su nmero de punto flotante, mientras que
la cantidad |x f l(x)|/|x| denota el error relativo que se obtiene al reemplazar x por su
correspondiente nmero de mquina o punto flotante f l(x). Luego entonces el error relativo
ser menor a 101t cuando se hace truncamiento y menor a 21 101t cuando se hace redondeo
para representar los nmeros en computadora. En el caso ms general cuando la base es
en lugar de 10, se tiene que
|x f l(x)| 1t |x|,

(1.1)

1
|x f l(x)| 1t |x|,
2

(1.2)

cuando se hace truncamiento y

cuando se hace redondeo.

1.2.3.

Epsilon de mquina

La resolucin del conjunto de nmeros de punto flotante nmeros de mquina para


representar los nmeros reales se establece a travs del nmero conocido como epsilon de
mqina, que se define como:
1
maq = 1t
(1.3)
2
el cual representa la mitad de la distancia del nmero 1 a su nmero de mquina mayor ms
prximo. Algunos autores lo definen como
maq = 1t
pero en realidad lo que realmente importa es la propiedad siguiente de este nmero:
Propiedad del epsilon de mquina.
Para cada nmero real x, existe un nmero de punto flotante x0 tal que
|x x0 | maq |x|.
En realidad, comparando con las expresiones para el error de truncamiento y redondeo,
encontramos que sta es una forma de expresar que para cada nmero real x, existe con
|| maq tal que
f l(x) = x(1 + ).

(1.4)

16

L. Hctor Jurez V.

Es decir, la diferencia entre un nmero real cualquiera y el nmero de punto flotante ms


cercano a l es siempre menor o igual a maq en sentido relativo. Para los valores de y t
que se han usado en la mayora de las computadoras el epsilon de mqina se encuentra en el
rango de 1035 maq 106 . En aritmtica IEEE de precisin simple y doble, el epsilon
de mquina es 223 1,22 107 y 252 2,2 1016 , respectivamente.

1.3.
1.3.1.

Aritmtica de punto flotante


Sistema de nmeros de punto flotante

Representemos por F el sistema de nmeros de punto flotante definidos por la base 2


y la precisin t 1 (recordemos que = 2, t = 23 para precisin simple y = 2, t = 52
para precisin doble en el estandard IEEE). Entonces podemos escribir
F = {x R : x =

m e
,
t

1
m < 1,
t

emin e emax }.

(1.5)

1
Recordemos que el epsilon de mquina se define por 1t . A continuacin presentamos
2
una tabla de valores para diferentes arquitecturas (la mayora de ellas de la dcada de los
80).

1.3.2.

MQUINA

min e

max e

maq

VAX(simple)
VAX(doble)
CRAY-1
IBM-3081(simple)
IBM-3081(doble)

2
2
2
16
16

23
55
48
6
14

-128
-128
-16384
-64
-64

127
127
16383
63
63

1,2 107
2,8 1017
3,6 1015
9,5 107
2,2 1016

IEEE estadard

min e

max e

maq

Simple
Doble
Cuadruple

2
2
2

23
52
112

-126
-1022
-16382

127
1023
16383

1,2 107
2,2 1016
1,9 1034

Operaciones de punto flotante

Los clculos matemticos generalmente se reducen a ciertas operaciones matemticas


elementales, de las cuales el conjunto clsico es +,,,. Matemticamente estos smbolos
representan operaciones en R. Sobre una mquina digital estas operaciones tienen anlogos

Anlisis Numrico

17

llamadas operaciones de punto flotante sobre F. Para distingir las operaciones aritmticas
usuales de las operaciones de punto flotante, a estas ltimas se les denota por los smbolos
, , , ,, respectivamente.

1.3.3.

Axioma fundamental de la arimtica de punto flotante

Una computadora puede construirse sobre el siguiente principio de diseo: Si x y y son


dos nmeros de punto flotante cualesquiera (x, y F) y es una de las posibles operaciones
+, , , , con ~ su anlogo de punto flotante, entonces
x ~ y = f l(x y)

(Propiedad de diseo).

(1.6)

Por la propiedad (1.4) del epsilon de mquina, encontramos que


f l(x y) = x y(1 + ) con || maq .
Por lo tanto, concluimos que la computadora tiene una propiedad sencilla pero muy til,
expresada en el siguiente axioma, denominado el Axioma fundamental de la arimtica
de punto flotante:
Para todo x, y F existe con || maq tal que
x ~ y = (x y)(1 + ).

(1.7)

Es decir, cada operacin en la aritmtica de punto flotante es exacta salvo un error relativo
de a lo ms maq .
Por lo tanto, si x, y son nmeros de punto flotante
x y=(x + y)(1 + )
x y=(x y)(1 + )
para algn , con || maq .
x y=(x y)(1 + )
x y=(x y)(1 + )
siempre y cuando los resultados se mantengan dentro del sistema de punto flotante F.
Algunas de las propiedades fundamentales de las operaciones en el sistema de nmeros
reales son vlidas para las operaciones en el sistema de punto flotante, otras no lo son. Por
ejemplo, las leyes conmutativa de suma y multiplicacin si son vlidas en punto flotante:
x y = y x,

xy =yx

18

L. Hctor Jurez V.

Sin embargo, la ley asociativa de la multiplicacin no es vlida en el sistema de punto flotante


(x y) z 6= x (y z).
maq
maq
Por ejemplo, si x =
, y = 3maq , z =
, entonces en el sistema de punto flotante
3
11
IEEE de doble precisin, obtenemos en el ambiente MATLAB
x (y z) = 9,952403865943302 1049
(x y) z = 9,952403865943303 1049
y se observa una diferencia en el ltimo dgito. La situacin es ms catastrfica con la suma
y la resta. Puede suceder fcilmente que (x y) z sea muy diferente a x (y z) con
aritmtica de baja precisin. De la misma manera la ley distributiva x(y + z) = xy + xz no
es vlida en aritmtica de punto flotante.

Captulo 2

Condicionamiento y Estabilidad
2.1.

Normas de matrices

El objeto de esta seccin es introducir el concepto de norma matricial. Este concepto


es de fundamental importancia no solo en el anlisis y el algebra lineal y sus aplicaciones,
sino tambien en el anlisis numrico. La razn por lo que se ha decidido introducirlo en esta
parte del escrito es porque ser muy til a partir de la siguiente seccin, especialmente para
ilustrar los conceptos de condicionamiento y estabilidad.

2.1.1.

Normas en espacios vectoriales

Sea V un espacio vectorial real. Una norma en V es una funcin no negativa k k: V


R que satisface
1. kxk 0 , x R ,
2. kxk = ||kxk,

y kxk = 0 si y solo si x = 0
R,

3. kx + yk kxk + kyk ,

x V

x, y V

(desigualdad del tringulo)

Con V = Rn (espacio de vectores ndimensional) tenemos varias normas denominadas


normasp. Sea x = (x1 , . . . , xn )T Rn , entonces definimos las siguientes normas:
1. norma1:

kxk1 =

2. norma2:

kxk2 =

3. normap :

Pn

i=1 |xi |

Pn

2
i=1 |xi |

1
P
kxkp = ( ni=1 |xi |p ) p

(p 1)
19

20

L. Hctor Jurez V.
4. norma :
forme)

kxk = max1in |xi | (tambin llamada norma del mximo o uni-

La Figura 2.1 muestra la bolas unitarias bidimensionales (n = 2) en cada una de las normas
anteriores. Por la bola unitaria en una norma kk entendemos el conjunto {x Rn : kxk 1}.
Obviamente la bola unitaria en la norma euclideana es esfrica. Sin embargo, la bola unitaria
en las otras normas tienen otra forma. A medida que p aumenta la bola unitaria se tranforma
del diamante rombo al cuadrado, pasando por el crculo.
x2

x2

x2

(1,0)

x1

x2
(0,1)

(0,1)

(0,1)

(1,0)

x1

(0,1)

(1,0)

x1

(1,0)

x1

Figura 2.1: Bolas unitarias en la normas1, 2, p, , respectivamente.

Aparte de las normasp, las normas ms tiles en las aplicaciones son las normasp
pesadas, en donde cada una de las coordenadas del vector tiene su propio peso. Dada la
norma k k, una norma con peso puede escribirse como
kxkW = kW xk
donde W = diagonal(w1 , w2 , . . . , wn ) con wi 6= 0. Se puede generalizar el concepto de
normas pesadas permitiendo que W sea una matriz arbitraria no singular, no necesariamente
diagonal.
No es complicado verificar que las anteriores normas efectivamente satisfacen las propiedades 1, 2 y 3 en la definicin de norma. Para cada una de estas normas las propiedades 1 y
2 se satisfacen trivialmente. Por otro lado, es fcil verificar la desigualdad del tringulo para
la norma1 y la norma, pero para la norma euclideana o norma2 es necesario hacer uso
de la desigualdad de CauchySchwartz

x = (x1 , . . . , xn )T , y = (y1 , . . . , yn )T .
xi yi kxk2 kyk2

i=1

A la desigualdad del tringulo para las normasp


kx + ykp kxkp + kykp

Anlisis Numrico

21

se le conoce como desigualdad de Minkowski y su demostracin se encuentra en libros


de calculo avanzado anlisis matemtico.

2.1.2.

Continuidad y equivalencia de normas

Continuidad de la normas: Cualquier norma vectorial kk en Rn es una funcin continua


de x Rn (ver Isaacson y Keller).
0

Equivalencias de normas: Cualquier par de normas k k, k k en Rn son equivalentes.


Es decir, para toda x Rn existen constantes positivas m y M tales que
0

x Rn .

mkxk kxk M kxk ,

Demostracin. Es sufuciente con verificar el resultado cuando una de las normas es k k ,


0
ya que kk y kk sern equivalentes si cada una de ellas es equivalente a kk . Consideremos
la esfera unitaria en la norma :
S = {x Rn : kxk = 1}.
Este es un conjunto cerrado y acotado en Rn . Dado que cualquier norma vectorial k k es
continua en Rn , y en particular sobre S , entonces toma sus valores mximo y mnimo
dentro de S . Sean entonces x0 y x1 los puntos sobre la esfera donde se toman el mnimo
y el mximo, respectivemente:
mn kxk = kx0 k,

xS

m
ax kxk = kx1 k.

xS

Entonces
kx0 k kxk kx1 k,

x S .

Ahora considermos un vector arbitrario y Rn , y 6= ~0, donde ~0 denota al vector cero en


y
Rn . Como el vector normalizado
se encuentra en S , entonces
kyk

y
0

kx1 k.
kx k
kyk
Es decir,
kx0 kkyk kyk kx1 kkyk .
Por lo tanto,
mkyk kyk M kyk ,

y Rn

con m = kx0 k y M = kx1 k. As que cualquier norma k k en Rn es equivalente a la norma


k k . Se concluye que cualesquier dos normas en Rn son equivalentes.

22

2.1.3.

L. Hctor Jurez V.

Normas matriciales inducidas

Cuando se hace anlisis numrico de problemas donde intervienen matrices es til tener
el concepto de norma de una matriz y, en consecuencia, de la distancia entre matrices. Existe
una forma geomtrica (y aparentemente natural) que permite definir la norma de una matriz.
Esta forma toma en cuenta el comportamieto de la matriz como un operador:
Si A Rnn es una matriz de n n, y k k una norma vectorial en Rn , entonces la
norma de A inducida por esta norma vectorial se define por:
kAk := sup
x6=~0

kAxk
= sup kAxk
kxk
kxk=1

(2.1)

Ntese que estamos designando con el smbolo k k tanto la norma vectorial como la norma
matricial inducida. Sin embargo, no debe haber confusin cuando se trate de una otra,
dado que el argumento ser un vector una matriz y claramente indicar de que caso se
trata. De la definicin se infiere que para calcular la norma de una matriz dada A, basta
con calcular el supremo de Ax sobre la esfera unitaria en la norma correspondiente.

Ejemplo 2.1. La matriz

"
A=

1 2
0 2

mapea R2 en R2 por medio de la transformacin T : R2 R2 , T x = Ax, x = (x1 , x2 )T (la


T aqu indica la transpuesta, pues consideraremos que los vectores son vectores columna).
Trataremos de ver cul es la accin de A sobre bolas unitarias de R2 en las normas1, 2,
: Sean e1 = (1, 0)T y e2 = (0, 1)T los vectores unitarios cannicos en R2 . Entonces,
Ae1 = (1, 0)T y Ae2 = (2, 2)T .
En la norma1, kAe1 k1 = 1 y kAe2 k1 = 4, luego el factor de amplificacin es 4. Esta
situacin se ilustra en la Figura 2.2
En la norma el vector unitario x que tiene mayor amplificacin bajo A es x = (1, 1)T
su negativo, y el factor de amplificacin es kAxk = k(3, 2)T k = 3. La Figura 2.3
muestra este caso.
En la norma2 ( norma Euclideana) el vector unitario que es mayormente amplificado
por A es el que se encuentra punteado en la figura de abajo (o su negativo), y el factor de
amplificacin es aproximadamente 2.9208, como se muestra en la Figura 2.4

Anlisis Numrico

23

x2

x2
(2,2)

(0,1)

(1,0)

x1

(1,0)

Figura 2.2: Norma1,

x2

x1

kAk1 = 4.

x2
(2,2)

(0,1)

(1,0)

x1

Figura 2.3: Norma

2.1.4.

(1,0)

x1

kAk = 3.

Clculo de normas matriciales

A continuacin daremos frmulas para calcular las normas matriciales inducidas por las
normas1, 2, .
La norma1 de una matriz: Si A es cualquier matriz de n n entonces kAk1 es igual a
la mxima suma por columnas (de los coeficientes en valor absoluto) de A.
Demostracin. Sea A = [~a1 | ~a2 | . . . | ~an ], donde ~ai es un vector columna en Rn . ConsideP
remos la bola unitaria en la norma1: {x Rn : nj=1 |xj | 1}. Cualquier vector Ax en la
imagen de este conjunto satisface:

X
n
n
n
X
X
X

kx
~
a
k
=
|x
|k~
a
k

m
a
x
k~
a
k
|xj |
x
~
a
kAxk1 =
j j 1
j
j 1
j 1
j j

1jn

j=1
j=1
j=1
j=1
1

24

L. Hctor Jurez V.

x2

x2
(2,2)

(0,1)

x1

(1,0)

(1,0)

Figura 2.4: Norma2 (Euclideana)

max k~aj k1

1jn

x1

kAk2 = 2,9208

kAxk1 max k~aj k1


1jn

Escogiendo x = ej = (0, . . . , 1, . . . , 0) (el 1 esta en la jesima entrada), donde j maximiza


kaj k1 , obtenemos la cota mxima. Por lo tanto
kAk1 = max k~aj k1 = max
1jn

1jn

n
X

|aij |

(mxima suma por columna).

(2.2)

i=1

La norma de una matriz: Utilizando un argumento muy similar al anterior, puede


demostrarse que la norma- de una matriz A Rnn es igual a la mxima suma por
rengln
n
X
kAk = max
|aij |
(mxima suma por renglon).
(2.3)
1in

j=1

Ejemplo 2.2. Dada la matriz

1 2 1

A = 0 0 0 ,
1 1 2
encontrar kAk1 y kAk .
Solucin. kAk1 = mxima suma por columnas (en valor absoluto) = 3; mientras que
kAk = mxima suma por rengln (en valor absoluto) =4.

2.1.5.

La norma2 de una matriz

En este caso es ms complicado hacer el clculo. Para ello necesitamos los conceptos de
valor propio, vector propio, as como del radio espectral de una matriz. Por ello revisaremos

Anlisis Numrico

25

brevemente estos conceptos antes de intentar encontrar la frmula general.


Valores y vectores propios de una matriz. Dada una matriz A de n n se dice que
C es un valor propio de la matriz si existe x Rn tal que
x 6= ~0

Ax = x,

y en este caso a x se le conoce como el vector propio asociado a . La condicin hay algn
x 6= ~0 tal que Ax = x, es equivalente a cualquiera de las siguientes dos condiciones:
1. La matriz A I es singular, donde I denota a la matriz identidad.
2. det[A I] = 0.
Este determinante en la segunda condicin es un polinomio en que se denomina polinomio
caracteristico de A, y que denotaremos por p(). Si A es de orden n n, entonces p() es
de grado n, y sus raices proporcionan los valores propios de la matriz.

Ejemplo 2.3. Dada la matriz

1 0 1

A= 2 0 1
1 0 2

su polinomio caracterstico es

p()

=
=
=

1 0

det[A I] =
2

1
0
2
(1 )()(2 )
[( + 1)( + 2) + 1] = [2 + 3 + 3] ,

3 3i
3 + 3i
, 3 =
.
y sus valores propios son la raices del polinomio: 1 = 0, 2 =
2
2
Radio espectral de una matriz. Dada una matriz A de n n, el radio espectral de A se
define como el mximo de las magnitudes de sus valores propios, y se denota por (A), es
decir,
(A) = max{ || : es valor propio de A }.

26

L. Hctor Jurez V.

Propiedad sobre los vectores propios de una matriz simtrica. Cualquier matriz
simtrica A de n n tiene un conjunto completo de vectores propios y este conjunto es
ortogonal. Es decir, si A = AT , entonces A tiene n vectores propios ~u1 , . . . , ~un Rn tal que
(
1 si i = j ,
~uTi ~uj = ij =
0 si i 6= j .

La norma-2 de una matriz: Si A es cualquier matriz de n n, entonces


q
kAk2 = (AT A).

(2.4)

Demostracin. Observese que kAxk22 = (Ax)T (Ax) = xT AT Ax. Pero la matriz AT A es


una matriz simtrica y, por lo tanto, tiene un conjunto de n vectores propios ~u1 , . . . , ~un que
generan Rn tales que
~uTi ~uj = ij

y AT A~ui = i ~ui ,

i, j = 1, . . . , n.

Adems
kA~ui k22 = (A~ui )T (A~ui ) = ~uTi AT A~ui = i ~uTi ~ui = i = 0 i = 1, . . . , n.
P
Dado que x Rn y los vectores propios forman una base, entonces x = ni=1 i ~ui para
algunas constantes i , i = 1, . . . , n, entonces
P
P
kAxk22 = (Ax)T (Ax) = xT AT Ax = ( ni=1 i ~ui )T AT A ni=1 i ~ui
Pn
Pn
Pn
Pn
T u =
=
uTi
uTi
ui
i
i=1 i ~
i=1 i A A~
i=1 i ~
i=1 i i ~
P
Pn
n
2
=
ax i i=1 i2
i=1 i i m
P
Tomando kxk2 = 1, se tiene que kxk22 = xT x = ni=1 i2 = 1. As que
q
kAxk22 max i = (AT A) kAk2 (AT A)
Para obtener la igualdad basta con encontrar algn x R con kxk2 = 1 tal que kAxk22 =
max i . Sea x = ~us el vector propio de AT A correspondiente al mayor valor propio, es decir,
s = max i . Entonces, claramente k~us k2 = 1, y adems
kA~us k22 = (A~us )T A~us = ~uTs AT A~us = ~uTs s ~us = s k~us k22
= s = max i = (AT A).
p
Concluimos que kAk2 = (AT A).

Anlisis Numrico

27

Ejemplo 2.4. Dada la matriz

1 2 1

A = 0 0 0 ,
1 1 2
calcular kAk2 .
Solucin. Primero calculamos

2 1 1

AT A = 1 5 4 .
1 4 5
El polinomio caracterstio de AT A es

det AT A I = (6 )()(6 ) + 3(3) = ( 3)( 9),


cuyas raices son 1 = 0, 2 = 3, 3 = 9. Por lo tanto kAk2 =

(AT A) = 9 = 3.

Observacin: Si A es una matriz simtrica, entonces AT A = A2 y entonces los valores


propios de AT A son de la forma 2i , donde i son los valores propios de A, pues
A2 ~ui = A(A~ui ) = A(~ui ) = A~ui = ~ui = 2 ~ui
para cualquier valor propio de ~ui de A. Por lo tanto, si A es una matriz simtrica entonces
q
p
p
kAk2 = (AT A) = (A2 ) = [(A)]2 = (A).
Ejemplo 2.5. Dada la matriz simtrica

2 1 0

A = 1 1 1 ,
0 1 2
su polinomio caracterstico es p() = det [A I] = (2 )( 3). Por lo tanto
(A) = 3.

2.1.6.

kAk2 =

Propiedades de las normas matriciales

Dadas dos matrices A y B Rnn y una norma inducida k k, se satisfacen las siguientes
propiedades:

28

L. Hctor Jurez V.
1. kAxk kAk kxk,

x Rn .

2. (A) kAk.
3. kABk kAk kBk.
4. kA + Bk kAk + kBk (desigualdad del tringulo).
La propiedad 1 es consecuencia directa de la definicin de norma matricial inducida. La
propiedad 2 se obtiene de kAk = supkxk=1 kAxk kA~ui k = ki ~ui k = |i |k~ui k = |i | para
cualquier vector propio unitario ~ui de A con valor propio i . La propiedad 3 es consecuencia directa de la propiedad 1. Finalmente la propiedad 4 es simplemente la desigualdad del
tringulo para normas matriciales y es consecuencia de la desigualdad del tringulo en la
norma vectorial asociada.
Una norma matricial no natural (no inducida). La norma matricial no inducida ms
conocida es la denominada norma de Hilbert-Schmidt o norma de Frobenius definida por
1

2
n X
n
X
2

|aij |
kAkF =
i=1 j=1

Por ejemplo, La norma de Frobenius para la matriz

1 2 1

A= 0 0 0
1 1 2
p

es kAkF = (1)2 + 22 + (1)2 + 12 + 12 + 22 = 12. No es posible expresar la norma de


Frobenius en la forma supkxk=1 kAxk para alguna norma vectorial k k.

2.2.

Condicionamiento y estabilidad

En esta seccin discutiremos brevemente dos temas fundamentales del anlisis numrico,
a saber el condicionamiento y la estabilidad.
Condicionamiento: Se refiere al comportamiento bajo perturbacines de un problema expresado matemticamente.
Estabilidad: Se refiere al comportamiento bajo perturbaciones de un algoritmo utilizado
para resolver un problema en una computadora.

Anlisis Numrico

2.2.1.

29

Condicionamiento de un problema

Un problema se puede considerar en forma abstracta como una funcin f : X Y


de un espacio normado X (de datos) a un espacio normado Y (de soluciones). La funcin
generalmente no es lineal pero casi siempre es continua. Por ejemplo la operacin de suma
se puede representar por
f : R2 R, f (x) = x1 + x2 ,
con X = R2 , Y = R y x = (x1 , x2 )T R2 . En la mayora de los casos nos interesa el
comportamiento de un problema en un punto especfico x X (una instancia del problema).
Un problema bin condicionado es aquel en el que cualquier perturbacin pequea
de x X ocasiona un pequeo cambio en f (x).
En un problema mal condicionado pequeas perturbaciones en los cambios de x X
ocasiona grandes cambios en los resultados def (x).
El significado de pequeo o grande en las anteriores oraciones depende del tipo de
aplicacin. En particular, en ocasiones es ms apropiado medir perturbaciones en una escala
absoluta, y en algunas otras es mejor medir las perturbaciones en forma relativa respecto a
la norma del dato perturbado.

2.2.2.

Nmero de condicin absoluto

Sea x una pequea perturbacin del dato x X, y denotemos por f = f (x + x)


f (x) la correspondiente perturbacin en el resultado. El nmero de condicin absoluto del
problema f en x se define por
b = sup kf kY ,
K
(2.5)
x kxkX
en donde k kY y k kX representan normas vectoriales en los espacios normados Y y X,
respectivamente.
Ejemplo 2.6. Dada una matriz A Rnn , definimos el producto de esta matriz por un
vector x por medio de
f : Rn Rn , f (x) = Ax x Rn .
Encontrar el nmero de condicin absoluto de este problema.
Solucin. En este caso X = Y = Rn y sea k k = k kY = k kX cualquier norma vectorial
en Rn , entonces el nmero de condicin absoluto de este problema es
b = sup kf k = sup kf (x + x) f (x)k = sup kA(x + x) Axk
K
kxk
kxk
x kxk
x
x

30

L. Hctor Jurez V.
= sup
x

kAxk
= kAk
kxk

en donde k k es la norma matricial inducida por la norma vectorial.


En el caso de que la funcin f (asociada al problema matemtico) sea una funcin
diferenciable, entonces dada la perturbacin x en el dato x, se tiene
f (x + x) = f (x) + f 0 (x)x + O[kxk2 ],
Si denotamos la derivada f 0 (x) por J(x) (el Jacobiano en caso que f sea una funcin de
varias variables), entonces
f = f (x + x) f (x) = J(x)(x) + O[(x)2 ] .
Por lo tanto

b = sup kf k = sup kJ(x)xk = kJ(x)k .


K
kxk
x kxk
x

Es decir, para un problema representado por una funcin diferenciable f con Jacobiano J,
su nmero de condicin absoluto en x es igual a la norma del Jacobiano en x.

Ejemplo 2.7. Consideremos el problema de la sustraccin de dos nmeros: f : R2 R,


f (x1 , x2 ) = x1 x2 , con x = (x1 , x2 )T . Dado que

f
J=
x1

f
= [1
x2

1].

El nmero de condicin absoluto en la norma, y en cualquier instancia x = (x1 , x2 )T


R2 es constante e igual a
b = kJ(x)k = 2.
K

2.2.3.

Nmero de condicin relativo

Cuando estamos interesados en cambios relativos, necesitamos la nocin de condicin


relativa. Por ejemplo, en el caso simple en el que X=Y con norma vectorial k k, el nmero
de condicin relativo K = K(x) del problema f en x se define por

K = sup
x

kf k/kxk
kf (x)k/kxk

= sup
x

kf k/kf (x)k
kxk/kxk

(2.6)

Anlisis Numrico

31

En el caso en que f sea diferenciable, podemos expresar el nmero de condicin relativo en


trminos del Jacobiano
kJ(x)k
kJ(x)k kxk
K=
=
.
(2.7)
kf (x)k/kxk
kf (x)k

Tanto el nmero de condicin absoluto como el nmero de condicin relativo tiene sus
usos, pero este ltimo es ms importante en el anlisis numrico. Esto es debido a que la
aritmrica de punto flotante utilizada en las computadoras introduce errores relativos. Por
esta razn al nmero de condicin relativo para un problema f se le conoce simplemente
como nmero de condicin a secas. Entonces, decimos que un problema es bin condicionado
si K (su nmero de condicin) es pequeo, por ejemplo 1, 10, 102 . Decimos que el problema
es mal condicionado si K es grande, por ejemplo 106 , 1016 , etc.

Ejemplo 2.8. Consideremos el problema de calcular


f (x) =

x,

x para x > 0.

1
J = f 0 (x) =
2 x

( 21 x )x
kJk kxk
1
K=
=
=
kf (x)k
2
x
Por lo tanto, el problema es bin condicionado.

Ejemplo 2.9. Consideremos una vez ms el problema de obtener el escalar f (x) = x1 x2


a partir del vector x = (x1 , x2 )T R2 . Utilizando la norma k k en R2 , anteriormente
encontramos que
J(x) = [1 1] y kJ(x)k = 2,
as que
K=

kJ(x)k kxk
2 max{|x1 |, |x2 |}
=
|f (x)|
|x1 x2 |

y, en consecuencia, el problema es mal condicionado cuando x1 es muy cercano a x2 , pues en


este caso |x1 x2 | 0, lo cual coincide con nuestra intuicin sobre el error de cancelacin.

Ejemplo 2.10. La determinacin de las raices de un polinomio dado los coeficientes es un


ejemplo clsico de un problema mal condicionado. Por ejemplo el polinomio y 2 2y+1 = (y
1)2 tiene una raz doble y = 1. Una pequea perturbacin en los coefecientes puede ocasionar

32

L. Hctor Jurez V.

un cambio drstico en las raices. Por ejemplo, y 2 2y + (1 ) = (y 1 + )(y 1 )


para cualquier > 0. En este caso el dato x = (1, 2, 1)T X = R3 denota los coeficientes
del polinomio y el resultado f (x) = (1, 1)T Y = C2 denota las raices del mismo. Entonces
x = (1, 2, 1 )T (1, 2, 1)T = (0, 0, )T ,
f = (1

, 1 + )T (1, 1)T = ( , )T .

Utilizando la norma- tanto en X = R3 como en Y = C2 obtenemos


kf k /kxk
/
2
K = sup
= sup
= sup = .
kf (x)k /kxk
1/2

>0
x
Por lo tanto, no es recomendable construir un algorimto numrico a partir de los coeficientes
del polinomio para el clculo de sus raices.

Ejemplo 2.11. El problema del clculo de los valores propios de una matriz no simtrica es frecuentemente mal condicionado. Un ejemplo sencillo para darse cuenta de esto es
considerar la matriz
"
#
1 1000
A=
0
1
cuyos valores propios son 1 = 1, 2 = 1. Si perturbamos uno de los coeficientes fuera de la
diagonal por 0.001, por ejemplo el coeficiente 0, obtenemos la matriz
"
#
1
1000
A0 =
,
0,001
1
cuyos valores propios son ahora 01 = 0, 02 = 2, obteniendo un cambio drstico en los valores
propios. De hecho, esto mismo sucede con la matriz
"
#
1 10n
,
0 1
con n N, cuando la perturbamos por
"

1
10n
10n 1

#
.

Anlisis Numrico

33

Ejemplo 2.12. Consideremos nuevamente el problema de la multiplicacin de una matriz


fija A Rnn por un vector x Rn , f (x) = Ax. El nmero de condicin (relativo) de este
problema es:

kf k/kxk
kxk
kAxk kxk 2
1
Kx = sup
= sup
= kAk
kf (x)k/kxk
kAxk
x
x kxk kAxk
pero
kxk = 3 kA1 Axk kA1 k kAxk
Por lo tanto
K kA1 k kAk

K = kAk kA1 k.

Para ciertos valores de x, = 1 y K = kAk kA1 k.


Ejemplo 2.13. (Solucin de un sistema lineal de ecuaciones) Dada A Rnn no singular
y b Rn , el problema consiste en calcular x Rn tal que Ax = b. Los datos son A y b,
y el mapeo en este caso es f : Rnn Rn Rn , f (A, b) = x = A1 b. Con el objeto de
simplificar la discusin supongamos A fija, como en el ejemplo anterior, y que slo vara b,
es decir, f : Rn Rn , f (b) = x = A1 b. Como el Jacobiano en este caso es J(b) = A1 ,
entonces el nmero de condicin en b es
Kb =

kJ(b)k kbk 4 kA1 k kAxk


=
kA1 bk
kxk

Dado que hay una correspondencia 1-1 entre x y b (pues A es invertible), podemos calcular
el peor nmero de condicin
K = sup Kb = sup kA1 k
bRn
b6=~
0

bRn
b6=~
0

kAxk
kAxk
= kA1 k sup
= kA1 k kAk
n
kxk
kxk
xR
x6=~
0

y observamos que el mximo nmero de condicin no depende de b.

Nota. En los dos ejemplos anteriores el mximo nmero de condicin del problema fu
kA1 k kAk. Esta expresin es muy comn en el lgebra lineal numrica, y se le llama
nmero de condicin de la matriz A, y se escribe
K(A) = kA1 k kAk.
1

f = f (x + x) f (x) = A(x + x) Ax = Ax
supx kAxk
= kAk
kxk
3
Suponiendo que A es no singular
4
b = Ax x = A1 b
2

34

L. Hctor Jurez V.

Observacin: Si A Rnn es una matriz simtrica no singular, kAk2 = (A) = max (A),
y en la norma-2:
|max (A)|
K(A) = cond(A) =
|mn (A)|
donde max (A) = max{|| : es valor propio de A}, y mn (A) se define en forma anloga.
EJEMPLOS DE MATRICES MAL CONDICIONADAS
Ejemplo 2.14. La matriz de Hilbert

Hn =

1
2

1
2
1
3

...
...
..
.

1
n
1
n+1

1
i

1
i+1

..
.

...
..
.

1
n+i1

1
n

1
n+1

...

1
2n1

1
..
.
..
.

..
.

..
.
..
.

es simtrica e invertible. Su nmero de condicin en la norma euclideana kk2 para diferentes


valores de n es:
n

K(Hn )

10
20
40

1,6 1013
2,45 1028
7,65 1058

Estos nmeros de condicin crecen muy rpidamente con n. Un sistema H20 x = b no puede
resolverse en forma apropiada en doble precisin ya que K(H20 ) 1028 . La matriz de Hilbert
es un prototipo de una matriz mal condicionada y (ver Gantschi)

( 2 + 1)4n+4
1
K(Hn ) = kHn k2 kHn k2
cuando n .

215/4 n
En clase de laboratorio consideraremos con ms detalle esta matriz.
Ejemplo 2.15. Una matriz

1 t1

1 t2
Vn =
.. ..
. .

de Vandermonde es de la forma

t21 tn1
1

t22 tn1

2
nn
, con t1 , t2 , . . . , tn R.
.. . .
..
R
.
.
.

1 tn t2n

tn1
n

Anlisis Numrico

35

Si los parmetros t1 , t2 , . . . , tn se escogen igualmente espaciados entre 1 y 1, es decir,


ti = 1 + 2(i1)
n1 , i = 1, . . . , n, entonces (ver Gantschi)
K(Vn ) = kVn k1 kVn1 k1

1 /4 n( + 1 ln 2)
e
e 4 2

cuando

n .

Algunos valores numricos se muestran en la tabla siguiente


n

K(Vn )

10
20
40
80

1,36 104
1,05 109
6,93 1018
3,15 1038

En aritmtica IEEE de doble precisin slo es posible calcular estos nmeros de condicin
para n = 10, 20 y 40 como veremos en clase de laboratorio.

2.2.4.

Estabilidad de los algoritmos

Sera deseable que los algoritmos numricos proporcionaran soluciones exactas a los problemas numricos. Sin embargo, debido a que las computadoras solo pueden representar un
sistema numrico discreto, esto no es posible en general. Como ya hemos visto anteriormente,
el error de redondeo jugar un papel importante en este caso. La nocin de estabilidad es
la forma comn de caracterizar lo que es posible, es decir, de obtener la respuesta correcta
aunque no sea la respuesta exacta.
Algoritmos. Un algoritmo puede verse como un mapeo fe : X Y el cual esta asociado a
un problema matemtico f : X Y . Para precisar la definicin de algoritmo consideremos:
1. Un problema f : X Y
2. Una computadora cuyo sistema de punto flotante satisface el axioma fundamental de
la aritmtica de punto flotante (1.7).
3. Un algoritmo fe, para el poblema f , y su implementacin en computadora (programa).
Dado el dato x X, este dato es redondeado en la computadora para obtener en numero
de punto flotante x
e = x(1 + ) con kk maq , y este ltimo nmero despus proporcionado
como entrada al programa. Al correr el programa el resultado es una coleccin de nmeros
de punto flotante que pertenece a Y . Llamemos al resultado fe(x), el cual generalmente es

36

L. Hctor Jurez V.

distinto a f (x). Esquemticamente


Entrada
Redondeo

x
x
e

Aritmtica de punto flotante


Salida

Programa (conjunto de
fe(x)
operaciones)

Mnimamente el resultado fe(x) debe ser afectado por errores de redondeo, pero tambin,
y dependiendo de las circunstacias, puede ser alterado por otras complicaciones, como son
otros programas corriendo al mismo tiempo tambin por tolerancias de convergencia. Asi
que fe(x) puede de hecho tomar valores diferentes, en corridas diferentes, es decir, fe puede
ser un mapeo multivariado.
Precisin. fe no ser un mapeo continuo salvo en casos excepcionales. Lo central es que el
algoritmo aproxime en forma adecuada el problema f . Para cuantificar la precisin da la
aproximacin podemos considerar el
error absoluto :

kfe(x) f (x)k

el

kfe(x) f (x)k
kf (x)k
en alguna norma k k. Nosotros consideramos el error relativo ya que, como hemos dicho
anteriormnte, en el anlisis numrico se prefieren cantidades relativas para cuantificar errores.
Entonces podriamos decir que fe es un buen algoritmo para el problema f si el error relativo
es de orden del epsilon de mquina, es decir, si
error relativo :

kfe(x) f (x)k
= O(maq )
kf (x)k

Estabilidad: si el problema f es mal condicionado, entonces el objetivo de precisin O(maq )


es excesivamente ambicioso, dado que cualquier perturbacin en el dato x X ocasionar
un gran cambio en el resultado. El error de redondeo es inevitable al utilizar la computadora.
As que, en lugar de buscar precisin en todos los casos (lo cual es imposible), a lo ms que
podemos aspirar es a mantener cierta estabilidad en los resultados.
Definicin: Decimos que un algoritmo fe para un problema f es estable si para cada x X
kfe(x) f (e
x)k
= O(maq ) para algn x
e tal que
kf (e
x)k

ke
x xk
= O(maq )
kxk

(2.8)

Anlisis Numrico

37

En palabras, la anterior definicin puede expresarse como un algoritmo estable proporciona


la respuesta casi correcta a la pregunta casi correcta.

2.2.5.

Estabilidad regresiva (Backward-Stability)

Algunos algoritmos en el anlisis numrico satisfacen una condicin que es a la vez ms


fuerte y ms simple que estabilidad a secas.
Definicin: Decimos que un algoritmo f para un problema f es estable regresivo si para
cada x X
k
x xk
f(x) = f (
x) para algn x
con
= O(maq )
(2.9)
kxk
Esquemticamente tenemos
(exacto)
(perturbado)

Dato
x
x

redondeo + algoritmo
solucin analtica

Resultado
f(x)
f (
x)

donde x
= x(1 + ) con || maq . Arriba, f (
x) es la respuesta correcta a la pregunta casi
correcta x
.
Ejemplo 2.16. Analizar la estabilidad de la aritmtica de punto flotante para el caso de la
sustraccin de dos nmeros.
Solucin. El problema y el algorimto se pueden escribir de la siguiente manera
Problema: f : R2 R, f (x1 , x2 ) = x1 x2 .
Algoritmo: f : R R, f(x1 , x2 ) = f l(x1 ) f l(x2 ).
Por el axioma fundamental de la aritmtica de punto flotante
f(x1 , x2 ) = (f l(x1 ) f l(x2 ))(1 + 3 )
= (x1 (1 + 1 ) x2 (1 + 2 ))(1 + 3 )
= x1 (1 + 1 + 3 + 1 3 ) x2 (1 + 2 + 3 + 2 3 )
= x1 (1 + 4 ) x2 (1 + 5 )
=x
1 x
2
= f (
x1 , x
2 ) ,
donde |4 |, |5 | 2maq + O(2maq ). Adems x1 , x2 satisfacen
|
x1 x1 |
= O(maq ),
|x1 |

|
x2 x2 |
= O(maq ).
|x2 |

38

L. Hctor Jurez V.

Anlogamente, se puede verificar que los algoritmos , , son todos estable regresivos.
Asimismo, en forma anloga tambin mostrarse que el producto interno de dos vectores xT y,
x, y Rn es estable regresivo. Por otro lado, el producto externo xy T Rnx es estable,
la
pero no estable regresivo, pues A = xy T es una matriz de rango 1 exactamente, y A,
matriz calculada no puede generalmente escribirse en la forma (x + x)(y + y)T , pues muy
probablementese se obtendra una matriz de rango mayor a 1.
El uso del polinomio caracteristico p(x) = det[A I] para calcular los valores propios
de una matriz A es un algoritmo inestable. De hecho, anteriormente hemos encontrado que
el clculo de raices de un polinomio es un problema mal condicionado.

2.2.6.

Precisin de un algoritmo estable regresivo

Supongase que tenemos un algoritmo f para un problema f que es estable regresivo. El


resultado proporcionado por el algoritmo f ser adecuado o preciso? La respuesta depende
de si el problema f es bin o mal condicionado, es decir, depende del nmero de condicin
K = K(x) de f . Si K(x) es pequeo, los resultados sern precisos en sentido relativo, pero
si K(x) es grande el error crecer proporcionalmente:
Anlisis: El error relativo se define por
kf(x) f (x)k
.
kf (x)k
Como el algoritmo se supone estable regresivo, entonces
k
x xk
f(x) = f (
x) para algn x
tal que
= O(maq ),
kxk
y el error relativo se puede estimar de la siguiente manera
kf(x) f (x)k
kf (
x) f (x)k
kf (x)k 5
kxk
=
=
K(x)
= K(x)O(maq ).
kf (x)k
kf (x)k
kf (x)k
kxk
Es decir

kf(x) f (x)k
K(x)O(maq ) ,
kf (x)k

y el error crece proporcionalmente a K(x) en trminos del maq .


5

(x)k k(x)k
K(x) = supx ( kf
/ kxk )
kf (x)k

(2.10)

Anlisis Numrico

39

El proceso que hemos seguido en el anterior anlisis es conocido como anlisis regresivo
del error. Se obtiene una estimacin del error en dos pasos: en el primer paso se investiga
la condicin del problema; en el segundo paso se investigar la estabilidad del algoritmo.
Podemos entonces concluir que si el algortimo es estable, entonces la precisin final refleja
el nmero de condicin. Es decir, el mejor algoritmo para la mayora de los problemas no
produce mejores resultados que calcular la solucin exacta para datos ligeramente perturbados.

40

L. Hctor Jurez V.

Captulo 3

Solucin de Sistemas de Ecuaciones


Lineales
Uno de los problemas ms frecuentemente encontrados en la computacin cientfica es
el de la solucin de sistemas de ecuaciones algebraicas lineales. Este problema consiste en
encontrar x = (x1 , x2 , . . . , xn )T Rn tal que Ax = b, donde A es una matriz de n n y
b = (b1 , b2 , . . . , bn )T Rn son dados. Este problema aparece muy a menudo en muchas de
las aplicaciones de la matemtica, ciencias e ingeniera. Algunos ejemplos son el ajuste de
datos, problemas de optimizacin, aproximacin de ecuaciones diferenciales y de ecuaciones
integrales. En el presente estudio, salvo en el siguiente captulo, slo consideraremos sistemas
de ecuaciones lineales cuadrados que tengan solucin nica. Algunas de las condiciones ms
conocidas para que el sistema Ax = b tenga solucin nica son:
1. A es una matriz no-singular (invertible)
2. La nica solucin de Ax = ~0 es x = ~0
3. det(A) 6= 0.

3.1.

Eliminacin de Gauss

El mtodo ms conocido (y, en muchos casos, el ms popular) para resolver sistemas


de ecuaciones algebraicas lineales es el mtodo de eliminacin de Gauss. La idea bsica de
este mtodo consiste en manipular las ecuaciones por medio de operaciones elementales para
tranformar el sistema original en un sistema equivalente que sea ms sencillo de resolver.
Las operaciones elementales en la eliminacin de Gauss son tres:
41

42

L. Hctor Jurez V.
1. Multiplicacin de una ecuacin por una constante no cero.
2. Sustraccin del mltiplo de una ecuacin de otra ecuacin.
3. Intercambio de ecuaciones.

Si alguna de estas operaciones se aplican a algn sistema de ecuaciones el sistema obtenido


ser equivalente al original. Lo mismo sucede cuando se realiza una cadena de estas operaciones. Nuestro objetivo es resolver el sistema Ax = b, donde A = (aij ), 1 i, j n,
b = (b1 , b2 , . . . , bn )T , que en forma explcita es:
a11 x1 + a12 x2 + + a1n xn
a21 x1 + a22 x2 + + a2n xn
..
..
..
.
.
.

= b1
= b2
..
.

an1 x1 + an2 x2 + + ann xn = bn


Si a este sistema le llamamos A(1) x = b(1) , para indicar el estado original del sistema, entonces el proceso de eliminacin de Gauss es como se muestra a continuacin:
(1)

1er Paso de eliminacin. Si a11 6= 0, podemos eliminar la incgnita x1 de las dems


ecuaciones. El paso tpico es restar de la isima ecuacin (i = 1, 2, . . . , n) la primera
multiplicada por
(1)

(1)

mi1 = ai1 /a11

i = 2, 3, . . . , n

A mi1 se le denomina multiplicador asociado a la isima ecuacin en el primer paso de eliminacin. Despus de realizar esta operacin la isima ecuacin tendr nuevos coeficientes
(2)
(2)
aij y bi cuyos valores son:
(2)

ai1 = 0
(2)

(1)

(1)

aij = aij mi1 a1j


(2)

bi

(1)

para j = 2, 3, . . . , n
(1)

= bi mi1 b1

Haciendo lo anterior para cada rengln i = 2, . . . , n, obtenemos el nuevo sistema A(2) x = b(2)
que es:
(1)
(1)
(1)
(1)
a11 x1 + a12 x2 + + a1n xn = b1
(2)

(2)

(2)

(2)

(2)

(2)

a22 x2 + + a2n xn = b2
..
..
..
.
.
.

an2 x2 + + ann xn = bn

Anlisis Numrico

43

Nota. Observese que si se va a resolver computacionalmente el problema, para almacenar


(1)
(2)
los coefecientes aij y bi , podemos escribir sobre los aij los nuevos aij justamente calculados.
(1)

Podemos almacenar tambin los multiplicadores mi1 en donde teniamos los coeficientes ai1 ,
y recordando que todos los elementos debajo de la diagonal de la primera columna de A(2)
son realmente cero. Ms adelante veremos porqu es til almacenar los multiplicadores.
2o paso de eliminacin. En este paso el objetivo es eliminar la incgnita x2 de la tercera
(2)
ecuacin a la ltima ecuacin. Si a22 6= 0, primero se calculan los multiplicadores
(2)

(2)

mi2 = ai2 /a22 ,


(3)

(3)

Los nuevos coeficientes aij y bi

i = 3, . . . , n .

de la isima ecuacin sern:


(3)

ai2 = 0
(3)

(2)

(2)

aij = aij mi2 a2j


(3)

bi

(2)

para j = 3, . . . , n
(2)

= bi mi2 b2

Haciendo lo anterior para cada rengln i = 3, . . . , n, obtenemos el nuevo sistema A(3) x = b(3)
que es:
(1)
(1)
(1)
(1)
(1)
a11 x1 + a12 x2 + a13 x3 + + a1n xn = b1
(2)

(2)

(2)

(2)

(3)

(3)

(3)

(3)

(3)

(3)

a22 x2 + a23 x3 + + a2n xn = b2

a33 x3 + + a3n xn = b3
..
..
..
.
.
.

an3 x3 + + ann xn = bn

Continuando de esta manera, y despus de n1 pasos de eliminacin, obtenemos un sistema


triangular superior
(1)

(1)

(1)

(1)

(1)

(2)

(2)

(2)

(2)

(3)

(3)

(3)

(n)

(n)

a11 x1 + a12 x2 + a13 x3 + + a1n xn = b1


a22 x2 + a23 x3 + + a2n xn = b2

a33 x3 + + a3n xn = b3
..
..
.
.
ann xn = bn

que denotaremos por A(n) x = b(n) . El proceso anterior se termina sin problemas siempre y
(1)
(n)
cuando ninguno de los coeficientes a11 , a222 , . . . , ann , denominados pivotes, sea cero. Cuando se realiza computacionalmente este procedimiento la matriz se rescribe en forma sucesiva,

44

L. Hctor Jurez V.
(k)

en cada paso de eliminacin, almacenando los nuevos coeficientes aij y los correspondientes
multiplicadores mik en los lugares asociados a las variables eliminadas. Al trmino del proceso
de eliminacin obtenemos un sistema triangular superior U x = b (donde U = A(n) , b = b(n) )
el cual es equivalente al sistema original, es decir este nuevo sistema tiene exactamente la
misma solucin que el sistema original. Sin embargo, este nuevo sistema puede resolverse
muy fcilmente por medio de la tcnica de sustitucin hacia atrs sustitucin regresiva:
xn = bn /ann

xi = (bi

n
X

aij xj )/aii ,

i = n 1, n 2, . . . , 1

j=i+1

en donde hemos suprimido los superndices para simplificar la notacin. Entonces, suponien(i)
do que en el proceso de eliminacin ninguno de los pivotes aii es cero, el algoritmo de
eliminacin de Gauss puede escribirse de la siguiente manera:
Algoritmo de eliminacin de Gauss
Dados los coeficientes aij de la matriz A, y los coeficientes bi de b
Para k = 1, 2, . . . , n 1
/* Pasos de eliminacin */
.
Para i = k + 1, . . . , n
.
.
m := aik /akk
/* Multiplicador asociado al rengln i */
.
.
Para j = k + 1, . . . , n
.
.
.
aij := aij makj
.
.
Fn
.
.
bi := bi mbk
.
Fn
Fn
xn = bn /ann
/* Sustitucin regresiva */
Para i = n 1, n 2, . . . , 1
.
xi := bi
.
Para j = i + 1, . . . , n
.
.
xi := xi aij xj
.
Fn
.
xi := xi /aii
Fn

Anlisis Numrico

45

Ejemplo 3.1. Dada la matriz A y el vector b

A=

2
4
8
6

1
3
7
7

1
3
9
9

0
1
5
8

b=

1
8
30
41

aplicar el mtodo de eliminacin de Gauss para calcular la solucin del sistema A x = b. La


solucin exacta de este sistema es x = (1, 2, 1, 3)T .
Solucin. En la prctica, para aplicar el mtodo de eliminacin de Gauss, es til escribir
solo los coeficientes de la matriz A en el lado izquierdo y los del vector b en el lado derecho,
sin incluir las incgnitas. Entonces, el sistema inicial se puede escribir de la siguiente manera:

A(1) x = b(1) :

2
4
8
6

1
3
7
7

1
3
9
9

0
1
5
8

1
8
30
41

El proceso de eliminacin de Gauss se muestra a continuacin:


1er paso de eliminacin.
Pivote: a11 = 2.
Multiplicadores:
a21
4
= =2
a11
2
a31
8
=
= =4
a11
2
a41
6
=
= =3
a11
2

2o rengln: m21 =
3er rengln: m31
4o rengln: m41

Entonces,
restamos del segundo rengln el primero multiplicado por m21 = 2,
restamos del tercer rengln el primero multiplicado por m31 = 4,
restamos del cuarto rengln el primero multiplicado por m41 = 3,
con lo cual obtenemos:

46

L. Hctor Jurez V.

A(2) x = b(2) :

2 1
1
3
4

1
1
5
6

0
1
5
8

1
6
26
38

2o paso de eliminacin
Pivote: a22 = 1.
Multiplicadores:
a32
3
= =3
a22
1
a42
4
= =4
=
a22
1

3er rengln: m32 =


4o rengln: m42

Entonces
restamos del tercer rengln el segundo multiplicado por m32 = 3,
restamos del cuarto rengln el segundo multiplicado por m42 = 4,
y se obtiene:

A(3) x = b(3) :

2 1 1 0
1 1 1
2 2
2 4

1
6
8
14

3er paso de eliminacin


Pivote : a33 = 2.
Multiplicadores:
4o rengln: m43 =

a43
2
= =1
a33
2

Entonces, restando del cuarto rengln el tercero, pues m43 = 1, se obtiene

A(4) x = b(4) :

2 1 1 0
1 1 1
2 2
2

1
2x1 + x2 + x3
6
x2 + x3 + x4

2x3 + 2x4
8
6
2x4

=
=
=
=

1
6
8
6

Anlisis Numrico

47

Sustitucin regresiva. En el sistema triangular superior obtenido hacemos sustitucin


regresiva para encontrar la solucin.
6
=3
2
8 2x4
86
x3 =
=
=1
2
2
6 x3 x4
613
x2 =
=
=2
1
1
121
1 x2 x3
x1 =
=
= 1
2
2
x4 =

3.2.

Factorizacin LU

En la seccin anterior hemos visto como el proceso de eliminacin de Gauss transforma


un sistema lineal completo en un sistema triangular superior por medio de la aplicacin de
operaciones elementales de eliminacin. Este proceso de eliminacin se puede interpretar
desde un punto de vista meramente matricial. Es decir, cada paso de eliminacin se puede
escribir en forma compacta por medio de la multiplicacin de una matriz. Por ejemplo, para
el sistema Ax = b con

A=

2
4
8
6

1
3
7
7

1
3
9
9

0
1
5
8

b=

1
8
30
41

el primer paso de eliminacin se puede expresar multiplicando el sistema por una matriz
triangular inferior. Esta matriz triangular inferior contiene unos en la diagonal y los multiplicadores con signo contrario en sus posiciones correspondientes. El resultado se muestra a
continuacin

L1 =

1
2
4
3

0
1
0
0

0
0
1
0

0
0
0
1

L1 A =

2
0
0
0

1
1
3
4

1
1
5
6

0
1
5
8

L1 b =

1
6
26
38

obteniendo la matriz y lado derecho al final del primer paso de eliminacin. En forma anloga,
el segundo paso de eliminacin equivale a premultiplicar el sistema anterior por la matriz

48

L. Hctor Jurez V.

triangular inferior (con los multiplicadores correspondientes con signo contrario)

L2 =

1 0 0
0 1 0
0 3 1
0 4 0

0
0
0
1

En este caso se obtiene

L2 L1 A =

2
0
0
0

1
1
0
0

1
1
2
2

0
1
2
4

L2 L1 b =

Finalmente, el tercer paso de eliminacin equivale a


matriz

1 0 0

0 1 0
L3 =
0 0 1

0 0 1
obteniendo

L3 L2 L1 A =

2
0
0
0

1
1
0
0

1
1
2
0

0
1
2
2

premultiplicar el ltimo sistema por la


0
0
0
1

1
6
8
14

L3 L2 L1 b =

1
6
8
6

Si denotamos esta ltima matriz triangular superior por U , y la matriz L3 L2 L1 por L1 ,


entonces esta claro que
A = LU
El clculo de la matriz L es sencillo como veremos a continuacin. Observese que L =
1 1
(L3 L2 L1 )1 = L1
1 L2 L3 , y basta con calcular las inversas de las matrices L1 , L2 y L3 . El
clculo de estas inversas es trivial. Por ejemplo

L1
1

1
2
4
3

0
1
0
0

0
0
1
0

0
0
0
1

1
2
4
3

0
1
0
0

0
0
1
0

0
0
0
1

Anlisis Numrico

49

Anlogamente las inversas de L2 y L3 se obtienen simplemente cambiando el signo de sus


coeficientes debajo de la diagonal, y su producto es:

1 0 0 0

2 1 0 0
1 1 1

L = L1 L2 L3 =

4
3
1
0

3 4 1 1
La cual es una matriz triangular inferior con unos en la diagonal, y con los multiplicadores
debajo de la diagonal. A esta matriz L se le conoce como la matriz de multiplicadores.
Podemos generalizar el resultado anterior:
(i)

Factorizacin LU . Si en el proceso de eliminacin de Gauss ninguno de los pivotes aii


es cero, entonces la matriz A se puede factorizar en la forma A = LU . La matriz L es
triangular inferior con unos en la diagonal y con los multiplicadores debajo de la diagonal.
La matriz U es la matriz triangular superior que se obtiene al final del proceso de eliminacin
(U = A(n) ) y contiene los pivotes en la diagonal. Es decir,


(1) (1)
(1)
a11 a12 . . . a1n
a11 . . . a1n
1

(2)
(2)
a21 . . . a2n l21 1

a22 . . . a2n
.

.. = ..
..
..
..
..
.

.
.
.
. .
.
.

(n)
an1 . . . ann
ln1 . . . ln(n1) 1
ann
donde lij = mij para i > 1 son los multiplicadores que se obtienen en el proceso de eliminacin de Gauss.
(i)

Observacin. Como aii 6= 0, entonces A es no singular y


n
Y
(i)
detA = det(LU ) = (detL)(detU ) = (1)( aii ) = producto de los pivotes.
i=1

Solucin del sistema Ax = b utilizando la factorizacin LU


Sea el sistema Ax = b con A Rnn invertible, b Rn . Supongase que ya tenemos una
factorizacin A = LU . Entonces, el sistema de ecuaciones tambin su puede escribir en la
forma LU x = b. Si hacemos U x = y, entonces Ly = b, y por lo tanto el sistema puede
resolverse en dos pasos:

50

L. Hctor Jurez V.
1. Se resuelve el sistema triangular inferior Ly = b utilizando Sustitucin hacia adelante
progresiva:
y1 = b1 ,
yi = bi

i1
X

lij yj ,

i = 2, . . . , n.

j=1

2. Una vez obtenido y del paso anterior, se resuelve el sistema triangular superiorU x = y
utilizando Sustitucin hacia atrs regresiva:
xn = yn /ann ,
n
X

xi = (yi

uij xj )/uii ,

i = n 1, n 2, . . . , 1,

j=i+1
(i)

en donde hemos denotado por uij a los coeficientes aij , j i, de la matriz U .


Ejemplo 3.2. Resolver el sistema del sistema de ecuaciones anterior utilizando factorizacin
LU .
Solucin. Del proceso de

2
L=
4

3
Entonces, Ly = b es

elminacin de Gauss obtenemos:

0 0 0
2 1 1 0

1 0 0
U = 0 1 1 1
0 0 2 2
3 1 0

4 1 1
0 0 0 2

1
2
4
3

0
1
3
4

0
0
1
1

0
0
0
1

y1
y2
y3
y4

1
8
30
41

b=

y la solucin por sustitucin progresiva es


y1
y2
y3
y4

=1
= 8 2y1 = 8 2 = 6
= 30 4y1 3y2 = 30 4 18 = 8
= 41 3y1 4y2 y3 = 41 3 24 8 = 6

1
8
30
41

Anlisis Numrico

51

Luego U x = y es

2
0
0
0

1
1
0
0

1
1
2
0

0
1
2
2

x1
x2
x3
x4

1
6
8
6

y la solucin por sustitucin regresiva es


x4
x3
x2
x1

= 6/2 = 3
= (8 2x4 )/2 = (8 6)/2 = 1
= (6 x3 x4 )/1 = (6 3 1)/1 = 2
= (1 x2 x3 0x4 )/2 = (1 2 1)/2 = 1

Por lo tanto, la solucin es la misma que la obtenida anteriormente.

3.3.

Inestabilidad del mtodo de eliminacin de Gauss

El mtodo de eliminacin de Gauss, como se ha presentado hasta el momento, desafortunadamente no es un buen mtodo prctico de propsito general para resolver sistemas de
ecuaciones lineales. Como veremos en esta seccn este no es mtodo estable regresivo. De
hecho su posible inestabilidad, en algunos casos, est asociada a una dificultad muy simple:
para algunas matrices el mtodo no funciona debido que se corre el peligro de
dividir por cero.

Ejemplo 3.3. La matriz

"
A=

0 1
1 1

tiene rango completo (es invertible) y es bin condicionada, debido a que

1 5
p() = det(A I) = (1 ) 1 = 1 1,2 =
2

3 5
|max |
1+ 5
=
A simtrica K(A) = cond(A) =
=
2,618.
|mn |
2
1 5
2

Sin embargo, el mtodo de eliminacin de Gauss falla en el primer paso debido a que el
primer pivote es cero.

52

L. Hctor Jurez V.

Al introducir una pequea perturbacin en la matriz anterior se revelan otras dificultades.


Por ejemplo, supongase que aplicamos eliminacin de Gauss a la matriz perturbada
"
#
20 1
10
A =
1
1
Ahora el mtodo no fallar en el primer paso de eliminacin. En este caso al segundo rengln
le restamos el primero multiplicado por 1020 (pivote = 1020 , multiplicador 1/1020 = 1020 ).
Suponiendo que realizamos las anteriores operacines en aritmtica exacta, obtenemos la
factorizacin LU con
"
#
"
#
1
0
1020
1
L=
,
U=
1020 1
0
1 1020
Sin embargo, en aritmtica de punto flotante IEEE de doble precisin con maq = 2,224
1016 , el nmero 11020 no puede representarse en forma exacta y es redondeado al nmero
de punto flotante ms cercano: En MATLAB, 1 1020 = 1020 . Tomando en consideracin
este hecho las matrices de punto flotante en la factorizacin en realidad sern
"
#
"
#
20
1
0
10
1
=
=
L
,
U
1020 1
0
1020
las cuales son cercanas en sentido relativo a las matrices exactas L y U . Esto significa que

hemos calculado la factorizacin en forma estable. Sin embargo, cuando multiplicamos L


aparece un problema inesperado: desgraciadamente A 6= L
U
, dado que
por U
"
#
"
#
20 1
20 1
10
10
U
=
A =
y
L
.
1
1
1
0
La diferencia es el coeficiente a22 = 1, el cual es muy grande comparado con el valor de
la perturbacin 1020 . Cuando intentamos resolver el sistema Ax = b por medio de la
U
x = b aparece otro problema: el resultado es muy diferente al exacto. Por
factorizacin L
ejemplo, con b = (1, 0)T el sistema Ax = b es
# " #
"
#"
1
0 1
x1
=
,
0
1 1
x2
U
x = b es
y la solucin exacta es x = (1, 1)T . Por otro lado, el sistema L
"
#"
# " #
1020 1
x1
1
=
,
1
0
x2
0

Anlisis Numrico

53

La solucin en dos etapas de este sistema proporciona


"
#"
# " #
1
0
y
1
1
=b :
y = (1, 1020 )T
Ly
=
20
10
1
0
y2
"
#"
# "
#
20
10
1
x
1
1
x = y :
U
=
x
= (0, 1)T ,
0
1020
x2
1020
lo cual muestra que la solucin de punto flotante x
es muy diferente a la solucin exacta x.
Un anlisis cuidadoso de lo que ocurre en este ejemplo revela que la eliminacin de Gauss
es cercana a L y U
es cercana a U ), pero
ha calculado la factorizacin LU establemente (L
no ha resuelto Ax = b establemente (
x no es cercana a x). Una explicacin de este fenmeno
es que a pesar de que la factorizacin LU se ha hecho en forma estable, esta factorizacin
no es estable regresiva. Las siguientes lineas muestran esta aseveracin:
f : Rnn Rnn Rnn ,

f (A) = LU


kA Ak
1020
6= f(A) ,
=
O(maq ) pero f (A)
kAk
2
representa la factorizacin exacta de la matriz perturbada A,
es decir
pues f (A)
"
#"
#
1
0
1020
1
= LU =
f (A)
,
20
10
1
0
1 1020
y f(A) representa la factorizacin aproximada (de punto flotante) de la matriz exacta, dentro
de la computadora, es decir
"
#"
#
20
1
0
10
1
U

f(A) = L
.
1020 1
1
1020

En el caso general para matrices A de orden n n con n grande, la situacin empeora.


El mtodo de eliminacin de Gauss en no es ni estable regresivo ni tampoco estable como
algoritmo general para encontrar factorizaciones del tipo LU . Adems de esto, las normas
de las matrices triangulares L y U obtenidas pueden ser mucho mayores que la norma de la
matriz misma A, introduciendo fuentes adicionales de inestabilidad en las faces de sustitucin
progresiva y regresiva para resolver los sistemas triangulares. En el ejemplo anterior
= 2 mientras que kLk = 1020 + 1 y kU k = 1020 1,
kAk
lo cual muestra que, efectivamente, las normas de los factores L y U son desproporcional
mente mayores que la de la matriz dada. A.

54

L. Hctor Jurez V.

3.4.

Tcnicas de pivoteo

Si bin no podemos eliminar la inestabilidad completamente, si podemos controlarla permutando el orden de los renglones y columnas de la matriz del sistema de ecuaciones. A esta
tcnica se le conoce como pivoteo y ha sido usada desde la aparicin de las computadoras
(alrededor de 1950). El propsito del pivoteo es asegurar que los factores L y U no sean tan
grandes comparados con la matriz A. Siempre que las cantidades que aparecen en la eliminacin sean manejables, los errores de redondeo se mantendrn controlados y el algoritmo
ser estable regresivo.

3.4.1.

Pivoteo completo

La idea es la siguiente: en el ksimo paso de eliminacin debemos escoger un pivote


de entre los coeficientes del subsistema con matriz (para simplificar la exposicin los superndices se han suprimido)

ak,k
ak,k+1 . . . ak,n

ak+1,k ak+1,k+1 . . . ak+1,n


.
A(k : n, k : n)
..
..
..
..

.
.
.
.

an,k

an,k+1

...

an,n

El pivote no necesariamente es ak,k como lo hemos considerado hasta ahora. Con el objeto
de controlar el crecimiento de los coeficientes en las matrices de factorizacin L y U es
conveniente escoger como pivote a aquel coeficiente que tiene valor absoluto mximo:
|a| = max |aij | = |alm | .
ki,jn

Hecho esto se procede a hacer el intercambio del rengln k con el rengln l, y de la columna
k con la columna m, y se continua la eliminacin en la forma usual calculando los multiplicadores y los nuevos coeficientes. Los multiplicadores que se obtienen son tales que
mi k =

ai k
1,
|a|

i = k + 1, . . . , n

y, en consecuencia, ninguno de los coeficientes de la matriz L al final del proceso de eliminacin ( factorizacin) ser mayor a uno. A esta estrategia se le denomina pivoteo completo.
Sin embargo, esta estrategia en muy poco usada por dos razones:
1. En el paso k hay (n k + 1)2 posibilidades para buscar el mximo, y el costo para
seleccionar los pivotes en los n 1 pasos de eliminacin implica O(n3 ) operaciones, lo
cual es excesivo.

Anlisis Numrico

55

2. Hay que darle seguimiento al intercambio de renglones y columas.

3.4.2.

Pivoteo parcial

En la prctica, es posible encontrar pivotes tan tiles como los encontrados con pivoteo
completo realizando un mucho menor nmero de operaciones de busqueda. El mtodo ms
comn se denomina pivoteo parcial. En esta estrategia se intercambia solamente dos renglones
en cada paso de eliminacin. As, en el ksimo paso de eliminacin se escoge como pivote
|a| = max |aik | = |alk |
kin

y se intercambian los renglones k y l. En este caso hay n k + 1 posibilidades para el pivoteo


en el ksimo paso, y por lo tanto el nmero de operaciones de busqueda en todo el proceso
de eliminacin es en total O(n2 ) (en realidad n(n 1)/2).
Como es usual con otras operaciones en el lgebra lineal numrica, el intercambio de renglones puede expresarse por medio de un producto de matrices. Como vimos anteriormente
un paso de eliminacin corresponde a la multiplicacin izquierda por una matriz triangular
inferior Lk en el ksimo paso. El pivoteo parcial complica un poco ms el proceso pues
ahora es necesario multiplicar por una matriz de permutacin Pk por la izquierda antes de
cada eliminacin.
Matrices de permutacin
Una matriz de permutacin es una matriz con ceros en todos lados excepto por un
coeficiente 1 en cada rengln y columna. Por ejemplo la matriz

0 1 0 0

1 0 0 0

P =

0 0 0 1
0 0 1 0
tiene un slo 1 en cada rengln y columna, y en todas las demas entradas tiene ceros.
Cualquier matriz de permutacin es el producto de matrices de permutacin elemental. Una
matriz de permutacin elemental se obtiene de la matriz identidad permutando dos de sus
renglones (o dos de sus columnas) solamente. Por ejemplo, las matrices

0 1 0 0
1 0 0 0

1 0 0 0
0 1 0 0

P12 =
y
P34 =
0 0 1 0
0 0 0 1

0 0 0 1
0 0 1 0

56

L. Hctor Jurez V.

son matrices de permutacin elementales que se obtienen de la matriz identidad en R44


permutando los renglones ( columnas) 1 y 2, y permutando los renglones ( columnas) 3 y
4 respectivamente. La matriz de permutacin P dada un poco ms arriba se puede expresar
como el producto de estas dos matrices, pues
P = P12 P34 = P34 P12 .
Dada cualquier matriz A R44 , el producto P12 A intercambia los renglones 1 y 2 de
la matriz A, y el producto AP12 intercambia las columnas 1 y 2 de la matriz A:

P12 A =

AP12

3.4.3.

0
1
0
0
a11
a21
a31
a41

1
0
0
0

0
0
1
0
a12
a22
a32
a42

0
0
0
1

a13
a23
a33
a43

a11
a21
a31
a41
a14
a24
a34
a44

a12
a22
a32
a42

0
1
0
0

a13
a23
a33
a43
1
0
0
0

a14
a24
a34
a44
0
0
1
0

0
0
0
1

a21
a11
a31
a41

a22
a12
a32
a42

a23
a13
a33
a43

a24
a14
a34
a44

a12
a22
a32
a42

a11
a21
a31
a41

a13
a23
a33
a43

a14
a24
a34
a44

Factorizacin LU con pivoteo parcial

Tomando en cuenta el intercambio de renglones en cada paso para realizar el pivoteo


parcial, encontramos que, para una matriz nosingular A Rnn , al trmino de los n 1
pasos de eliminacin se obtiene la siguiente factorizacn
Ln1 Pn1 L2 P2 L1 P1 A = U .
El siguiente ejemplo ilustra esta aseveracin.
Ejemplo 3.4. Encontrar la factorizacin LU con

2 1 1 0

4 3 3 1
A=
8 7 9 5

6 7 9 8
Solucin.

pivoteo parcial para la matriz

= A(1)

Anlisis Numrico

57

1er paso de eliminacin:


renglones 1 y 3

0
P1 A =
1

Claramente el pivote debe ser 8 y hay que intercambiar los

0
1
0
0

los multiplicadores son: m21 =

L1 P1 A =

1
1/2
1/4
3/4

0
1
0
0

0
0
1
0

0
0
0
1

1
0
0
0

0
0
0
1

4
1
= ,
8
2

2o paso de eliminacin: Ahora


intercambiar los renglones 2 y 4

1 0 0 0
8

0 0 0 1 0

P2 L1 P1 A =
0 0 1 0 0

0 1 0 0
0

2
4
8
6

m31 =
7
3
1
7

9
3
1
9

1
3
7
7

1
3
9
9

0
1
5
8

8
4
2
6

2
1
= , m41
8
4

5
8

1
= 0

0
0
0
8

7
3
1
7

9
3
1
9

5
1
0
8

6
3
= . Luego
8
4

7
9
5

1/2 3/2 3/2


= A(2)
3/4 5/4 5/4

7/4
9/4 17/4

el pivote (para el subsistema 3 3) es 7/4, debemos

7
9
5
1/2 3/2 3/2
3/4 5/4 5/4
7/4
9/4 17/4

8
7
9
5
0 7/4
9/4 17/4
0 3/4 5/4 5/4
0 1/2 3/2 3/2

3/4
3
1/2
2
= , m42 =
= . As que
7/4
7
7/4
7

8
7
9
5
8 7
9
5

0 7/4
9/4 17/4
= 0 7/4 9/4 17/4

0 3/4 5/4 5/4


0 0 2/7 4/7
0 1/2 3/2 3/2
0 0 6/7 2/7

los multiplicadores ahora son: m32 =

L2 P2 L1 P1 A =

1 0 0
0 1 0
0 3/7 1
0 2/7 0

0
0
0
1

= A(3)
3er paso de eliminacin: El pivote (para el subsistema
cambiamos los renglones 3 y 4

1 0 0 0
8 7
9
5

0 1 0 0 0 7/4 9/4 17/4

P3 L2 P2 L1 P1 A =
0 0 0 1 0 0 2/7 4/7

0 0 1 0
0 0 6/7 2/7

2 2) es -6/7. Entonces, inter

8 7
9
5

0 7/4 9/4 17/4

0 0 6/7 2/7

0 0 2/7 4/7

58

L. Hctor Jurez V.
2/7
1
= . Finalmente
6/7
3

8 7
9
5
0
0
0

1
0
0 0 7/4 9/4 17/4

0
1
0
0 0 6/7 2/7
0 0 2/7 4/7
0 1/3 1

El multiplicador es m43 =

L3 P3 L2 P2 L1 P1 A =

1
0
0
0

8 7
9
5
0 7/4 9/4 17/4
0 0 6/7 2/7
0 0
0
2/3

=U.
En el anterior ejemplo hemos encontrado entonces que
L3 P3 L2 P2 L1 P1 A = U.
Con un poco ms de trabajo podemos reescribir esta ltima igualdad en forma ms adecuada.
Para ello, definimos
L03 = L3 ,

L02 = P3 L2 P31 ,

L01 = P3 P2 L1 P21 P31 .

Se puede verificar directamente que estas ltimas matrices son triangulares inferiores y que
L03 L02 L01 P3 P2 P1 = L3 P3 L2 P2 L1 P1 . Por lo tanto
L03 L02 L01 P3 P2 P1 A = U .
Entonces, podemos escribir
P A = LU
Un clculo directo muestra que

0 0 1

0 0 0
P =
0 1 0

1 0 0

con P = P3 P2 P1 ,

0
1
0
0

L=

L = (L03 L02 L01 )1 .

1
0
0
3/4
1
0
1/2 2/7 1
1/4 3/7 1/3

0
0
0
1

La matriz U ya se calcul al trmino del proceso de eliminacin.


A la anterior factorizacin se le denomina factorizacin LU de la matriz A con estrategia
de pivoteo simple o parcial. Por supuesto la factorizacin LU corresponde, estrictamente
hablando, no a A sino a una permutacin de la matriz A, a saber P A. Este algoritmo se
muestra a continuacin:

Anlisis Numrico

59

Algoritmo de factorizacin LU con pivoteo parcial


Dados los coeficientes aij de A y los coeficientes bj de b
Para k = 1, 2, . . . , n 1
.
Encontrar p k tal que |apk | = maxkin |aik |
.
Intercambiar los renglones p y k ( si p 6= k)
.
Si |akk | = 0, escribir: la matriz es singular. Parar y salir
.
Si no, hacer para i = k + 1, . . . , n
.
.
m := aik /akk
.
.
para j = k + 1, . . . , n
.
.
.
aij := aij makj
.
.
Fn
.
.
bi := bi mbk
.
Fn
Fn

3.5.

Clculo de la inversa de una matriz

Dada la matriz A Rnn no singular, el clculo de su inversa en forma aproximada


se puede encontrar resolviendo n sistemas de ecuaciones lineales por medio del mtodo de
eliminacin de Gauss con pivoteo parcial, como se indica a continuacin:
Sea A1 = [~x1 , ~x2 , . . . , ~xn ], donde ~xi Rn es el isimo vector columna de A1 , entonces
AA1 = [A~x1 , A~x2 , . . . , A~xn ] = I = [~e1 , ~e2 , . . . , ~en ]
donde ~ei = (0, . . . , 1, . . . , 0)T es el vector columna con 1 en el isimo lugar y 0 en las dems
entradas. Luego la igualdad se cumple si
A~xi = ~ei ,

i = 1, 2, . . . , n.

Resolviendo este conjunto de sistema de ecuaciones lineales, encontramos los vectores columna ~xi de la matriz inversa A1 . Como los n sistemas de ecuaciones lineales tienen la misma
matriz, se puede aplicar eliminacin con pivoteo con lado derecho ~e1 , ~e2 , . . . , ~en en forma
simultanea.
[A|I]

eliminacin con pivoteo

[U |J]

60

L. Hctor Jurez V.

donde I es la matriz identidad y U es una matriz triangular superior. La inversa se obtiene


resolviendo por sustitucin regresiva los sistemas
U~xi = ~ji
donde ~ji son los vectores columna de la matriz J, y los ~xi los vectores solucin, es decir, los
vectores columna de A1 .

3.6.

Estabilidad del mtodo de eliminacin de Gauss con pivoteo

El mtodo de eliminacin de Gauss con pivoteo parcial es inestable para ciertas matrices
(un nmero pequeo en realidad), pero estable en la prctica (es decir, en la gran mayora de
los problemas que aparecen en la aplicaciones). El anlisis de estabilidad de la eliminacin de
Gauss con pivoteo parcial es complicado y ha sido uno de los temas ms difciles del anlisis
numrico desde 1950. La inestabilidad del mtodo de eliminacin de Gauss, con o sin pivoteo,
puede aparecer si uno de los factores L y U es grande comparado con la matriz A. As que
el propsito del pivoteo, desde el punto de vista de la estabilidad, es asegurar que L y U no
sean muy grandes. De tal manera que cuando las cantidades intermedias en el proceso de
eliminacin sean de tamao manejable, los errores de redondeo sern pequeos, y el mtodo
ser estable regresivo. Estas ideas se precisan en el siguiente teorema que se establece para
la eliminacin de Gauss sin pivoteo, pero tambin puede aplicarse al caso con pivoteo si A
representa la matriz original con renglones y columnas permutadas adecuadamente.
Teorema 3.5. Si A Rnn tiene una factorizacin LU y esta se realiza utilizando eliminacin de Gauss sin pivoteo en una computadora que satisface el axioma fundamental de la
U
satisfacen
aritmtica de punto flotante, entonces las matrices L,
U
= A + A
L

con

kAk
= O(maq )
kLk kU k

para alguna

A Rnn .

Aclaracin: Observese que el denominador es kLk kU k y no kAk en la expresin de arriba. Si


kLk kU k fuera de tamao comparable con kAk (kLk kU k = O(kAk)) entonces la eliminacin
de Gauss es un mtodo estable regresivo. Si por el contrario, kLk kU k O(kAk) entonces
el algoritmo es inestable.
Crecimiento de factores

Anlisis Numrico

61

Consideremos ahora el caso de la eliminacin de Gauss con pivoteo parcial. En este caso
se obtiene que la matriz de multiplicadores L tiene entradas que son menores o iguales a 1
en valor absoluto, es decir, kLk = O(1) en cualquier norma matricial k k. Por lo tanto
kAk
kAk
=
= O(maq ).
kLk kU k
kU k
De aqu que en este caso se concluye que el algoritmo es estable regresivo si kU k = O(kAk).
Para que la norma de U sea comparable con la norma de A basta que los coeficientes de U
no sean mucho mayornes que los de A. Es decir, hay que considerar como se amplifica los
coeficientes al reducir A a la matriz U en el proceso de eliminacin. En particular, sea
=

max |uij |
max |aij |

el factor de crecimiento. Si es de orden 1, entonces no hay mucho crecimiento, y el proceso


de eliminacin es estable. Por otro lado si es mucho mayor que O(1), entonces podemos
esperar que haya inestabilidad en el proceso de eliminacin. Observese que si = O(1),
entonces de la igualdad anterior se tiene kU k = O((kAk)). Esto se resume en el siguiente
teorema.
Teorema 3.6. Supongase que la factorizacin P A = LU se lleva a cabo por medio de eliminacin de Gauss con pivoteo parcial en una computadora que satisface el axioma fundamental
yU
satisfacen
de la aritmtica de punto flotante. Entonces las matrices calculadas P , L
U
= P A + A
L

con

kAk
= O( maq )
kAk

para alguna A Rnn . Asimismo la eliminacin Gaussiana es un mtodo estable regresivo


si = O(1) uniformemente sobre todas las matrices en Rnn , y no lo es en caso contrario.
El peor caso de inestabilidad
Considere la matriz

A=

1
0
0
0
1 1
0
0
1 1 1
0
1 1 1 1
1 1 1 1

1
1
1
1
1

62

L. Hctor Jurez V.

Al aplicar el mtodo de eliminacin de Gauss se tiene

U =

1
0
0
0
0

0
1
0
0
0

0
0
1
0
0

0 1
0 2
0 4
1 8
0 16

Al hacer los clculos detallados el lector puede convencerse que no se hace intercambio
de renglones an y cuando se aplique pivoteo parcial. En esta matriz 5 5, el factor de
m
ax |uij |
4
crecimiento es = max |aij
| = 16/1 = 2 . Por otro lado, para la matriz anloga de orden
n n el factor de crecimiento al hacer eliminacin de Gauss es = 2n1 . As que, de acuerdo
al teorema anterior, tendriamos
U
= P A + A con
L

kAk
= O(maq ) = O(2n1 maq ).
kAk

Este resutlado implica que habra una perdida de n 1 bits de precisin al hacer eliminacin
de Gauss con pivoteo, lo cual es intolerable para clculos practicos a medida que el tamao n
del sistema aumenta. En realidad este es un ejemplo extremo de corte puramente acadmico y, afortunadamente, la gran mayora de las matrices que aparecen como resultado de
problemas prcticos no exhiben este tipo de comportamiento. De hecho, en 50 aos de computacin, no se ha visto que aparezcan, bajo circunstancias naturales, problemas matriciales
que exhiben una inestabilidad tan dramtica.

3.7.

Mtodo de Factorizacin de Choleski

Para matrices simtricas y definidas positivas el proceso de eliminacin de Gauss, y por


tanto la factorizacin LU, puede realizarse en forma ms eficiente. El mtodo que se utiliza
se denomina factorizacin de Choleski. Este algorimto opera en el lado izquierdo y derecho
de la matriz explotando la simetra. Este algoritmo descompone las matrices simtricas y
definidas positivas en factores triangulares haciendo la mitad de las operaciones que las
necesarias para matrices generales.

3.7.1.

Matrices definidas positivas

Una matriz A Rnn se dice que es definida positiva si xT Ax > 0 para todo x Rn con
x 6= ~0. Si A es una matriz definida positiva, algunas de sus propiedades importantes son:

Anlisis Numrico

63

1. A es no singular.
2. Los valores propios de A son todos reales y positivos.
3. El determinante de la matriz A y de cada uno de sus n menores.

a11
.
.
A(1 : k, 1 : k)
.
ak1

a1k
..
.
,
akk

k = 1, . . . , n, es siempre mayor a cero.


4. Cualquier submatriz principal de A de la forma A(1 : k, 1 : k) de la forma

akk
.

A(k : n, k : n) ..
ank

akn
..
.
,
ann

k = 1, . . . , n, es definida positiva.
5. Cada uno de los pivotes obtenidos en el poceso de eliminacin de Gauss aplicado a la
matriz A es mayor a cero.
Se deja al lector verificar las propiedades 3 y 5. Aqu verificaremos el resto de las
propiedades.
Verificacin de la propiedad 1. La propiedad 1 es consecuencia directa de la propiedad 3.
Verificacin de la propiedad 2. Si es un valor propio de A Rnn y x Rn es el
vector propio correspondiente, entonces x 6= ~0 y
xT Ax = xT x = kxk22
as que
=

xT Ax
> 0.
kxk22

64

L. Hctor Jurez V.

Verificacin de la propiedad 4. Para todo vector x = [x1 , . . . , xk ]T Rk no cero se tiene

x1
.
..

x1

.
xk

> 0,
[x1 , . . . , xk ]A(1 : k, 1 : k) .. = [x1 , . . . , xk , 0, . . . , 0]A

xk
...

0
por ser A definida positiva. Por lo tanto la submatriz A(1 : k, 1 : k) es definida positiva. En
forma anloga se puede verificar que la submatriz A(k : n, k : n) es definida positiva si A lo
es.

3.7.2.

Factorizacin de Choleski

Sea A Rnn una matriz simtrica y definida positiva. Nuestro propsito es descomponer esta matriz en factores triangulares explotando las propiedades de la matriz. Con el
objeto de simplificar la exposicin primero realizaremos un paso de eliminacin para el caso
especial en el que a11 = 1, es decir cuando la matriz es de la forma

1 2 . . . n

A=
..

. A(2 : n, 2 : n)
n
donde 2 = a12 , 3 = a13 ,. . ., n = a1n y A(2 : n, 2 : n) es la submatriz principal inferior
de orden n 1. Al realizar el primer paso de eliminacin sin pivoteo en forma matricial
obtenemos

1
2 . . . n
1 0 ... 0
1 2 . . . n

2
2 1 . . . 0 0

= L1 A(1)
A= .
=
.
.
.
. . . .

. . .
M
.. A(2 : n, 2 : n) ..

n 0 . . . 1

donde 2 , 3 ,..., n son los multiplicadores y M2 = A(2 :


producto externo dado por

2 2 . . .
2 h

i ...
.
.. 2 . . . n = 3. 2
..
.

.
.
n
n 2 . . .

n, 2 : n) T con T el
2 n
3 n
..
.
n n

Anlisis Numrico

65

Al trmino del primer paso de eliminacin se inducen ceros en la primera columna, pero
quisieramos mantener simetra. Observese que la matriz A(1) no es simtrica an y cuando
M2 lo es. Para obtener simetra, procedemos en forma anloga haciendo eliminacin derecha
en el primer rengln de A(1) (sustraccin de mltiplos de la primera columna de la restante
columna). Obtenemos

A=

1 0
1 0 ... 0

2 1 . . . 0 0

..
. . .. ..
. . .
.
0
n 0 . . . 1

...

M2

1 2 . . . n

0 1 ... 0
..
.
..

. ..
.
0 0 ... 1

A(1)
s

L1

LT1

(1)

Observe que la matriz As ahora si es simtrica, dado que M2 los es. La idea de la fac(1)
torizacin de Choleski es continuar este proceso con la submatriz As y as sucesivamente
hasta obtener una matriz identidad en el ltimo paso de eliminacin simtrica.
Queremos extender el anterior proceso para el caso en que la matriz A definida positiva
sea tal que a11 > 0 en lugar de a11 = 1. La generalizacin se obtiene ajustando algunos

elementos de las matrices L1 por un factor a11 . Concretamente, si

A=

a11 2 . . . n
2
..
. A(2 : n, 2 : n)
n

entonces

a11
2

a11
A=
..

.
n

a11
=

0 ... 0

1 0
0
..
.

1 ... 0

.
.. .
. .

0
0 ... 1
L1

...
M2


a11

..
0

A(1)
s

donde
M2 = A(2 : n, 2 : n)

a11
1
0
LT1

T
.
a11

...
..
.

a11
0
..
.

...

...

66

L. Hctor Jurez V.
(1)

(1)

La matriz As es simtrica, pues las submatrices A(2 : n, 2 : n) y T lo son. Adems As

T
tambin es definida positiva, pues si x Rn , x 6= 0 , entonces y = (L1
1 ) x 6= 0 dado que
L1
1 es no singular y, por lo tanto
1 T
T
xT A(1) x = xT L1
1 A(L1 ) x = y Ay > 0
(1)

Volviendo a aplicar el mismo procedimiento a As

se obtiene

T T
A = L1 L2 A(2)
s L2 L1

donde

A(2)
s

1 0 ... 0

0 1 ... 0
,
.. ..

. .
K
0 0

con K matriz simtrica y definida positiva. Luego, el proceso puede continuarse en forma
sucesiva (pues todas las submatrices K son definidas positivas y simtricas) hasta obtener
A = L1 L2 . . . Ln I LTn LTn1 . . . LT1 .
|
{z
} |
{z
}
L

LT

Lo anterior se resume en el siguiente resultado


Teorema 3.7. Cualquier matriz A Rnn simtrica y definida positiva tiene una nica
factorizacin de Choleski A = LLT , donde L es una matriz triangular inferior no singular.
Nota: Dado que LT = U es una matriz triangular superior, tambin podemos escribir
A = UT U

3.7.3.

El algoritmo de Choleski

Cuando el algoritmo de Choleski se programa slo se necesita almacenar la parte triangular superior de A bin la parte triangular inferior. Esta simplificacin permite reducir
el nmero de operaciones a la mitad para lograr la factorizacin A = LLT . El algortimo se
puede construir realizando comparacin de los coeficientes:
Sean A = (aij )1i, jn con aij = aji , y L = (lij )1i, jn con lii 6= 0, i = 1, . . . , n y lij = 0
si j > i. Comparando los coeficientes en la ecuacin matricial A = LLT , se obtiene
aii = (i-simo rengln de L) (i-sima columna de LT ),

Anlisis Numrico

67

es decir
aii =

i
X

lik lik =

k=1

Por lo tanto

lii =

aii

i1
X

i1
X

2
2
lik
+ lii
.

k=1

!1/2
2
lik

i = 1, . . . , n.

k=1

Anlogamente
min(i,j)
T

aij = (i-simo rengln de L) (j-sima columna de L ) =

lik ljk .

k=1

Considerando el caso i > j:


aij =

j
X

lik ljk =

k=1

entonces
lij =

aij

j1
X

lik ljk + lij ljj ,

k=1

Pj1

k=1 lik ljk

ljj

i = j + 1, . . . , n.

Obervese que en este mtodo no hay intercambio de renglones o pivoteo. A continuacin


se muestra el algoritmo de factorizacin de Choleski.
Algoritmo

l11 = a11
Para i = 2, . . . , n
li1 = ai1 /l11
Fn
Para j = 2, . . . , n 1

1/2
P
2
ljj = ajj j1
l
k=1 jk
Para i =
j + 1, . . . , n

P
lij = aij j1
k=1 lik ljk /ljj

Fn

Fn

1/2
P
2
lnn = ann n1
l
k=1 nk

68

L. Hctor Jurez V.

Ejemplo 3.8. Aplicar el algoritmo de Choleski para factorizar en la forma A = LLT la


siguiente matriz, que es simtrica definida positiva.

A=

4 2 0 4

2 10 3 2
.
0
3 2 3

4 2 3 29

Solucin. La matriz es simtrica, y puede verificarse (calculando sus valores propios) que
es definida positiva. Entonces, aplicando el algoritmo anterior obtenemos
l11 =

a11 = 4 = 2

.........................................................
l21 = a21 /l11 = 2/2 = 1
l31 = a31 /l11 = 0/2 = 0
l41 = a41 /l11 = 4/2 = 1
.........................................................
2 )1/2 = (10 (1)2 )1/2 = 3
l22 = (a22 l21

l32 = (a32 l31 l21 )/l22 = (3 (0)(1))/3 = 1


l42 = (a42 l41 l21 )/l22 = (2 (2)(1))/3 = 0
.........................................................
2 l2 )1/2 = (2 02 12 )1/2 = 1
l33 = (a33 l31
32

l43 = (a43 l41 l31 l42 l32 )/l33 = (3 (2)(0) (0)(1))/1 = 3


.........................................................
2 l2 l2 )1/2 = (29 (2)2 02 32 )1/2 = 4
l44 = (a44 l41
42
43

Luego la factorizacin de Choleski es


4 2 0 4
2

2 10 3 2 1
=
0
3 2 3
0
4 2 3 29
2
A

0
3
1
0

0
0
1
3
L

0
0
0
4

2 1 0 2

0 3 1 0

0 0 1 3

0 0 0 4
LT .

Anlisis Numrico

3.7.4.

69

Estabilidad del algoritmo de Choleski

Todas las sutilezas que aparecen en el anlisis de estabilidad de la eliminacin de Gauss


desparecen cuando se utiliza la factorizacin de Choleski. El algoritmo de Choleski no utiliza ninguna tcnica de pivoteo y siempre es estable. Podemos verificar esta aseveracin
estimando el factor de crecimiento al hacer la factorizacin. Sabemos que
aii =

i
X

2
lik
.

k=1

y si suponemos que |lik | 1, entonces


|lik | |lik |2 aii m
ax |aij | i, k.
1i,jn

Esto implica que


max |lik | max |aij | .
Por lo tanto
=

m
ax |lik |
1.
max |aij |

En consecuencia, el factor de crecimiento es O(1), y el algoritmo siempre es estable regresivo.

70

L. Hctor Jurez V.

Captulo 4

Problemas de mnimos cuadrados


lineales. Factorizacin QR
El trmino mnimos cuadrados describe un enfoque frecuentemente usado para resolver
sistemas de ecuaciones sobredeterminados especificados inexactamente en algn sentido
apropiado. En lugar de resolver las ecuaciones exactamente, buscaremos solamente minimizar
la suma de los cuadrados de los residuales.
El criterio de mnimos cuadrados tiene interpretaciones estadsticas importantes. Si se
hacen suposiciones probabilsticas apropiadas acerca de la distribucin del error, el enfoque
de mnimos cuadrados produce lo que se conoce como la estimacin de mxima verisimilitud
de los parmetros. Apesar de que ciertas suposiciones probabilsticas no se cumplan, durante
aos se ha verificado que los mtodos de mnimos cuadrados producen resultados tiles.

4.1.

Ajuste de curvas

Existen muchos problemas en las aplicaciones que pueden abordarse utilizando el enfoque
de mnimos cuadrados. Una fuente comn que da origen a problemas de mnimos cuadrados
es el ajuste de curvas a un conjunto de datos dados: Sea x una variable independiente y sea
y(x) una funcin desconocida de x la cual queremos aproximar. Suponiendo que tenemos m
observaciones
(x1 , y1 ), (x2 , y2 ), . . . , (xm , ym ) ,
donde yi = y(xi ), i = 1, 2, . . . , m, la idea es modelar y(x) por medio de una combinacin de
n funciones base 1 (x), 2 (x), . . . , n (x). Es decir, suponer que la funcin que se ajusta a
71

72

L. Hctor Jurez V.

los datos es una combinacin lineal de la forma


y(x) c1 1 (x) + c2 2 (x) + . . . + cn n (x)
en donde generalmente el nmero de funciones base n es menor que el nmero de datos m.
Es decir, m n. Entonces, los datos deben satisfacer de manera aproximada
y(xi ) c1 1 (xi ) + c2 2 (xi ) + . . . + cn n (xi ),

i = 1, 2, . . . , m .

La ltima expresin constituye un sistema de m ecuaciones con n incgnitas c1 , c2 ,..., cn ,


que en forma matricial puede expresarse de la siguiente manera:

1 (x1 )
1 (x2 )
..
.

2 (x1 )
2 (x2 )

...
...
..
.

n (x1 )
n (x2 )
..
.

1 (xm ) 2 (xm ) . . . n (xm )

c1
c2
..
.
cn

y1
y2
..
.

m n.

ym

A la matriz de este sistema A = (aij ) con aij = j (xi ) se le denomina matriz de diseo.
Dado que m n, entonces el sistema tiene ms renglones (ecuaciones) que columnas (ingnitas). A este tipo de sistemas se les denomina sobredeterminados y generalmente no tienen
solucin. Las funciones base i (x), i = 1, . . . , n, pueden ser funciones no lineales de x, pero
los coeficientes y parmetros cj aparecen en el modelo en forma lineal cuando se trata de
un ajuste lineal.
Dependiendo del problema particular y el objeto de estudio, las funciones base i (x)
pueden escogerse de muchas maneras, e incluso pueden depender de ciertos parmetros.
Algunas elecciones comunes pueden ser, entre otras
Polinomios: i (x) = xi1 .
Funciones racionales: i (x) = xi1 /(0 + 1 x + + n1 xn1 ), con 0 , . . . , n1
parmetros dados.
Exponenciales: i (x) = ei x , con parmetros de decaimiento i .
2

x i

i
, con medias y varianzas , .
Gaussianas: (x) = e
i

para i = 1, . . . , n. En el presente estudio solo consideraremos el estudio de ajuste de datos


por medio de polinomios.

Anlisis Numrico

4.2.
4.2.1.

73

Ajuste por medio de polinomios


Polinomio de interpolacin

Cuando se tienen m observaciones (x1 , y1 ), (x2 , y2 ), . . . , (xm , ym ), y se escogen funciones


base polinomiales i (x) = xi1 , i = 1, . . . , n, la curva de ajuste toma la forma
y(x) = c1 + c2 x + + cn xn1

con m n.

El caso particular en el que m = n da lugar al problema de encontrar el polinomio de


interpolacin. Es decir, suponiendo que los m puntos son distintos nuestro problema consiste
en encontrar el polinomio de grado menor o igual a m 1
p(x) = c1 + c2 x + + cm xm1
que interpola los puntos (x1 , y1 ), (x2 , y2 ), . . . , (xm , ym ), es decir, p(xi ) = yi , i = 1, . . . , m.
El sistema de ecuaciones obtenido es un sistema cuadrado de la forma

1 x1 x21 . . . xm1
c1
y1
1

1 x2 x22 . . . x2m1 c2 y2

..
..
..

. = .
.
.
. .. ..

1 xm x2m . . . xm1
m

cm

~c

ym
=

~y

que se denomina sistema cuadrado de Vandermonde. La matriz A del sistema se denomina


matriz de Vandermonde y es no-singular si los puntos x1 , x2 , . . . , xm son diferentes. De
hecho puede demostrarse que
det(A) =

Y
(xi xj ) 6= 0
i>j

por ser los xi , i = 1, . . . , m, distintos. Por lo tanto, los coeficientes c1 , c2 , . . . , cm , son nicos
si los puntos de interpolacin son todos distintos.

Ejemplo 4.1. Encontrar el polinomio de grado 10 que interpola los 11 puntos


x
y

=
=

-3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0
0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0

74

L. Hctor Jurez V.

Solucin. Podemos utilizar el ambiente MATLAB para construir la matriz asociada de


Vandermonde de orden 11 11

1 3 (3)2 . . . (3)10

1 2 (2)2 . . . (2)10

..
..
..

.
.
.

(7)2

(7)10

...

Tambien puede observarse que la matriz est mal condicionada pues cond(A) 109 , lo cual
permite anticipar que debemos utilizar pivoteo para resolver el sistema cuadrado de Vandermonde. Utilizando el algorimto de factorizacin LU con pivoteo encontramos la siguiente
solucin aproximada (para los coeficientes del polinomio)

1.000000, -0.059524, -0.454683, 0.761078, -0.112004, -0.208160


0.072535, 0.005704, -0.005804, 0.000901, -0.000045

La Figura 4.1 muestra los datos junto con la grfica del polinomio de interpolacin calculado.
Observese que el ajuste no es satisfactorio pues, aunque la curva y = p(x) pasa por los puntos

4
3
2
1
0

Figura 4.1: Polinomio de interpolacin con 11 puntos.

de interpolacin, cerca de los extremos muestra oscilaciones fuertes. Estas oscilaciones son
un artificio tpico de cualquier proceso de interpolacin como veremos en el captulo 4. Este
mal ajuste empeora si se utilizan ms puntos de interpolacin como puede constatarse si en
lugar de 11 puntos se usan 21 puntos de interpolacin: los 11 puntos ya dados mas los 10
puntos intermedios adicionales. Los valores de x y y en este caso son

Anlisis Numrico
x

75

-3.0,
4.0,
0.0,
0.0,

-2.5, -2.0, -1.5, -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5,
4.5, 5.0, 5.5, 6.0, 6.5, 7.0
0.0, 0.0, 0.0, 0.0, 0.5, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0

La Figura 4.2 muestra la grfica del polinomio de interpolacin obtenido con los 21 puntos.
Como puede observarse la solucin no es buena, pero ilustra lo que pasa si se aumenta el

Figura 4.2: Polinomio de interpolacin con 21 puntos.

nmero de puntos de interpolacin: las oscilaciones en los extremos son de mucho mayor
magnitud. Observese que el nmero de condicin la matriz de Vandermonde en este caso
aumenta respecto de aquel en el caso anterior, pues ahora cond(A) 1018 . De hecho el
proceso de interpolacin puede ser mal condicionado (sensitivo a perturbaciones en los datos)
si se utilizan puntos igualmente espaciados como en los ejemplos anteriores. Para evitar este
problema se podran utilizar los puntos de interpolacin distribuidos en forma no uniforme.
Sin embargo, en las aplicaciones uno no puede escojer los puntos a modo.

4.2.2.

Mnimos cuadrados polinomiales

Sin cambiar los datos podemos obtener mejores resultados reduciendo el orden del polinomio. Dados los puntos (x1 , y1 ), . . . , (xm , ym ), consideremos el polinomio
p(x) = c1 + c2 x + + cn xn1

con n < m .

Este polinomio ser un ajuste de mnimos cuadrados para los datos si minimiza la suma de
cuadrados
m
X
(p(xi ) yi )2 .
i=1

76

L. Hctor Jurez V.

Es decir, para encontrar el ajuste de mnimos cuadrados debemos encontrar el vector de


coeficientes c = (c1 , . . . , cn )T que resuelve el problema
m
X
mnn
(c1 + c2 xi + + cn xn1
yi )2 .
i

cR

i=1

Esta suma de cuadrados es igual al cuadrado de la norma euclideana del residual, krk22 , para
el sistema rectangular de Vandermonde:

1 x1 x21 . . . xn1
c1
y1
1

1 x2 x22 . . . xn1
c2 y2
2

..
..
..

. . , n < m ,
.
.
. .. ..

1 xm x2m . . . xn1
cn
m
{z
} | {z }
c

ym
| {z }
y

es decir, r = Ac y. Entonces, el problema consiste en resolver


mn kAc yk22

cRn

dados A de orden m n y y Rm con m > n.

4.3.

Mtodo de ecuaciones normales

Cmo se puede resolver el problema anterior? Ms an, cmo podemos resolver los
problemas de mnimos cuadrados en general?
A continuacin intentaremos dar respuesta a estas preguntas. Con el objeto de hacer
ms clara la exposicin cambiamos un poco la notacin: denotamos por x a la incgnita c,
y por b el lado derecho y, en el anterior problema. As pues, nuestro objetivo es encontrar
el punto Ax ms cercano al vector b, es decir el que minimiza la norma del residual
r = b Ax.

4.3.1.

Proyeccin ortogonal sobre el espacio imagen

La idea principal para generar algoritmos que resuelvan el anterior problema de minimizacin descansa en el concepto de proyeccin ortogonal. Si denotamos por Im(A) al
espacio imagen de A, y por
P : Rm Im(A)
la proyeccin ortogonal que mapea Rm sobre el espacio imagen de A, entonces el valor de x
que minimiza la norma de r = b Ax es aquel que satisface Ax = P b. Esta idea se ilustra en

Anlisis Numrico

77

b
r=bAx
y=Ax
O
Espacio imagen de A

Figura 4.3: El espacion imagen de A es ortogonal al residual.

la Figura 4.3. En otras palabras, el residual r = b Ax debe ser ortogonal al espacio imagen
de A. El espacio imagen de A es generado por los vectores columna de A. Es decir, si
A = [ a1

| a2

| an

],

donde ai es el i-simo vector columna de A, entonces


Im(A) = gen{a1 , a2 , . . . , an }.
Demostracin. Dado x Rn con x = (x1 , x2 , . . . , xn )T , Ax gen{a1 , . . . , an } pues
Ax = [ a1

| a2

| an

]x

= x1 a1 + x2 a2 + + xn an .

4.3.2.

Sistema de ecuaciones normales

Del resultado anterior se tiene que r = bAx es ortogonal a Im(A) = gen{a1 , a2 , . . . , an }


si
si
si
si

y
y
y
y

solo
solo
solo
solo

si
si
si
si

aTi r = 0
AT r = ~0
AT (b Ax) = ~0
AT Ax = AT b

i = 1, . . . , n

78

L. Hctor Jurez V.

Este ltimo sistema de ecuaciones para x es conocido como el sistema de ecuaciones


normales para el problema de mnimos cuadrados. El siguiente resultado es de fundamental
importancia.
Teorema 4.2. Si la matriz A es de orden m n con m n y tiene rango completo (todos
sus vectores columna son linealmente independiente), entonces AT A es una matriz cuadrada
de orden n n que es no singular.
Demostracin. Dado que A es de m n, entonces AT es de orden n m y AT A debe ser
de orden n n. Para demostrar que A de rango completo implica AT A no singular, basta
con demostrar que si AT A es singular entonces es de rango deficiente:
AT A singular AT Ax = ~0 para algn vector x 6= ~0 en Rn
x 6= ~0

xT AT Ax = 0,
kAxk22 = 0,
Ax = ~0,

x 6= ~0

x 6= ~0

A es singular
A tiene rango deficiente.
Otro resultado importante es
Teorema 4.3. Si A es de rango completo, entonces AT A es una matriz simtrica y positiva
definida.
Demostracin. Como A es de rango completo, AT A es no singular, y adems claramente
simtrica. Ahora bin, dado x 6= ~0 en Rn , entonces, como AT A es no singular, se satisface
xT AT Ax = kAxk22 > 0. Se concluye que AT A debe ser positiva definida.
De los dos resultados anteriores se deduce que si la matriz A es de rango completo,
entonces la solucin del sistema de ecuaciones normales (AT Ax = AT b) es nica e igual a
x = (AT A)1 AT b.
Adems esta solucin puede obtenerse por medio del algoritmo de factorizacin de Choleski
dado que AT A es simtrica y definida positiva.
Nota. Cuando A es de rango completo, dado que x = (AT A)1 AT b es nica, a la matriz
A+ (AT A)1 AT se le denomina la seudoinversa de A. Adems como x = A+ b, entonces
Ax = AA+ b y P = AA+ es la matriz de proyeccin, es decir AA+ b = P b es la proyeccin
de b sobre el espacio imagen de A.

Anlisis Numrico

4.3.3.

79

Algoritmo de ecuaciones normales

Si A es una matriz mn con m n, y A es de rango completo, entonces AT A es no singular, simtrica y definida positiva. Por tanto el sistema de ecuaciones normales AT Ax = AT b
puede resolverse utilizando el mtodo de Choleski:
Algoritmo. Dados A de m n de rango completo y b Rm
1. Calcular AT A y el vector AT b.
2. Calcular la factorizacin de Choleski AT A = LLT .
3. Resolver para z Rn el sistema triangular inferior Lz = AT b (sustitucin progresiva)
4. Resolver para x Rn el sistema triangular superior LT x = z (sustitucin regresiva)

Ejemplo 4.4. Considere de nuevo el problema de ajustar los once datos del problema 4.1,
pero ahora utilizando un polinomio de grado 6, p(x) = c1 + c2 x + + c6 x5 + c7 x6 .
Solucin. Debemos encontrar los coeficientes c = (c1 , c2 , . . . , c7 )T . En este caso la matriz
de diseo A es la matriz de Vandermonde de tamao m n = 11 7

1 3 (3)2 . . . (3)6

1 2 (2)2 . . . (2)6

..
..
..

.
.
.

2
6
1 7
(7)
. . . (7)
y el lado derecho es el vector
h
b=y=

0 0 0 1 1 1 0 0 0 0 0

iT

Observese que A es de rango completo, ninguna columna es combinacin lineal de las otras.
Entonces los coeficientes c = (c1 , c2 , . . . , c7 ) satisfacen la ecuacin
AT A c = AT b
donde AT A es simtrica definida positiva de orden 7 7. Observese que el nmero de
condicin de la matriz es (AT A) 1010 . Utilizando el mtodo de factorizacin de Choleski

80

L. Hctor Jurez V.

para resolver el sistema de ecuaciones normales, en aritmtica de doble precisin, obtenemos


la solucin
c1 = 0.822788975730632, c2 = 0.412287124639659, c3 = 0.173651218063367,
c4 = 0.043013848896040, c5 = 0.012531422825567, c6 = 0.000286576168915,
c7 = 0.000130718954247
La Figura 4.4 ilustra la grfica del polinomio de ajuste junto con los datos. El nuevo polinomio no interpola los datos, pero captura el comportamiento global de mejor manera que
cualquiera de los polinomios de interpolacin encontrados anteriormente.

Figura 4.4: Polinomio de interpolacin de grado 6.


Observacin. Si hay miles de observaciones y slo unos pocos parmetros, la matriz de diseo A es muy grande, pero la matriz AT A es pequea y de orden del nmero de parmetros,
n n.
Precaucin. El mtodo va ecuaciones normales para resolver problemas de mnimos cuadrados aparece en muchos libros de estadstica y mtodos numricos. Este mtodo debe utilizarse
con cautela pues el sistema de ecuaciones normales es ms mal condicionado que el sistema
sobredeterminado original, es decir
(AT A) = [(A)]2 .
Con aritmtica de precisin finita, las ecuaciones normales pueden llegar a ser singulares
y, en consecuencia (AT A)1 no existir an y cuando las columnas de A sean linealmente
independientes. Por ejemplo, consideremos la siguiente matriz

1 1

A= 0
con
0 < 1.
0
Las dos columnas son casi paralelas, pero linealmente independientes. Con aritmtica exacta
obtenemos
#
"
1 + 2
1
T
A A=
1
1 + 2

Anlisis Numrico

81

Sin embargo, si < 108 y utilizamos aritmtica de punto flotante de doble precisin
obtenemos
"
#
1 1
T
A A=
1 1
la cual es una matriz singular.

4.4.

Mtodo de factorizacin QR por ortogonalizacin de GramSchmidt

El otro mtodo principal para resolver el problema de mnimos cuadrados es el mtodo


de factorizacin QR. Este es un mtodo clsico, moderno, y popular desde 1960 (Golub). De
hecho, actualmente se considera que este mtodo representa una de las ideas algoritmicas
ms importante en el lgebra lineal numrica.

4.4.1.

Factorizacin reducida

Considere la matriz A Rmn con m n y sean ai Rm , i = 1, . . . , n los vectores


columna de A:
A = [ a1

| a2

| an

].

Los espacios sucesivos generados por los vectores columna de A tienen la siguiente propiedad
gen{a1 } gen{a1 , a2 } . . . gen{a1 , . . . , an } .
La idea detrs de la factorizacin QR es construir una sucesin de vectores ortonormales
q1 , q2 , . . . Rm que generen estos espacios sucesivos. Supongamos que A es de rango completo, entonces sus vectores columna son linealmente independientes y queremos que
gen{q1 , . . . , qi } = gen{a1 , . . . , ai },

i = 1, 2, . . . , n

con kqi k2 = 1 y qiT qj = ij . Para contruir este conjunto de vectores podemos utilizar el
mtodo de Gram-Schmidt:
v1
kv1 k2
v2
q2 =
kv2 k2
v3
q3 =
kv3 k2
q1 =

con v1 = a1 ,
con v2 = a2 (q1T a2 )q1 ,
con v3 = a3 (q1T a3 )q1 (q2T a3 )q2 .

82

L. Hctor Jurez V.

En general, en el j-simo paso, suponiendo conocidos q1 , q2 ,. . ., qj1 , un vector qj ortonormal


a ellos esta dado por
vj
qj =
kvj k2

con vj = aj

(q1T aj )q1

(q2T aj )q2

...

T
(qj1
aj )qj1

= aj

j1
X
i=1

Si definimos rij qiT aj , y el escalar rjj = kvj k2 , entonces


q1

q2

=
..
.

qn

a1
,
r11
a2 r12 q1
,
r22
an

Pn1
i=1

rin qi

rnn

Por lo tanto,
a1
a2

=
=
..
.

r11 q1 ,
r12 q1 + r22 q2 ,

an

r1n q1 + r2n q2 + + rnn qn .

Este conjunto de ecuaciones tienen la siguiente representacin matricial


A

[ a1
|

| a2

|
{z

| an

matriz mn

[ q1
|

| q2

|
{z

matriz mn

| qn

]
}

]
}

r11 r12 . . . r1n


0 r22 . . . r2n
..
..
..
.
.
.
0
0 . . . rnn
{z
matriz nn

R
encontrada:
El siguiente algoritmo construye la factorizacin Q
Algoritmo de Gram-Schmidt clsico
Para j = 1, . . . , n
vj = aj
Para i = 1, . . . , j 1
rij = qiT aj

(qiT aj )qi .

Anlisis Numrico

83

vj = vj rij qi
Fn
rjj = kvj k2
qj = vj /rjj
Fn
Teorema 4.5. Si A Rmn con m n es de rango completo, existe una nica factorizacin
R
con rii > 0, i = 1, . . . , n. (Ver TrefethenBau)
reducida QR, A = Q

4.4.2.

Factorizacin completa

Una factorizacin completa QR de A Rmn (m n) va ms all agregando m n


y agregando m n renglones de ceros a R
de manera tal que
columnas ortonormales a Q,
mm
mn
obtenemos una matriz ortogonal Q R
y otra matriz R R
triangular superior.
Esquemticamente
FACTORIZACION REDUCIDA

mxn

A=

11111111
00000000
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111

FACTORIZACION COMPLETA

mxm

nxn

11111111
00000000
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111
00000000
11111111

mxn

1111111111111
0000000000000
00000000
11111111
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
0000000000000 11111111
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
R
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
Q
0000000000000 11111111
1111111111111
00000000
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
00000000
11111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111
0000000000000
1111111111111

En la factorizacin completa las columnas qj para j = n+1, . . . , m, son ortogonales a Im(A)


(el espacio imagen de A). Observese que la matriz completa Q tiene la propiedad

QT Q =

q1T
q2T
..
.

[ q1 | q2 | | qm ] = I

T
qm

debido a que qiT qj = ij . Por tanto Q1 = QT . A las martrices con esta propiedad se les
denomina matrices ortogonales.
Teorema 4.6. Cualqier matriz A Rmn (m n) tiene una factorizacin completa QR,
A = QR con Q Rmm matriz ortogonal y R Rmn matriz triangular superior (ver
TrefethenBau).

84

L. Hctor Jurez V.

Habiendo obtenido una factorizacin completa QR de A Rmn , el problema sobredeterminado Ax = b con b Rm se puede expresar en la forma QRx = b, que a su vez es
equivalente al sistema triangular superior

Rx = QT b (pues Q1 = QT ) .

Este sistema en forma expandida es

r11 r12 . . . r1n


0 r22 . . . r2n
..
..
..
.
.
.
0
0 . . . rnn
0
0 ... 0
..
..
..
.
.
.
0

...

x1
x2
..
.
xn

f1
f2
..
.



= fn


fn+1
.
.
.
fm

con fi = (QT b)i , i = 1, . . . , m. Esta claro que este sistema se puede resolver utilizando
sustitucin regresiva, y que las ltimas m n componentes de QT b no intervienen en la
solucin. De hecho estas ltimas componentes de QT b estan relacionadas con el residual r =
b Ax, pues QT r = QT b Rx = (0, . . . , 0, fn+1 , . . . , fm )T y, en consecuencia, ||r||2 = ||z||2 .
Observese que en el caso que A sea una matriz cuadrada (m = n) no singular este
algoritmo es til para resolver sistemas lineales Ax = b. Sin embargo no es el mtodo
estandar porque requiere el doble de operaciones que el mtodo de eliminacin de Gauss o
el mtodo de factorizacin LU .
En la prctica las frmulas de Gram-Schmidt no se aplican como se muestra en la pagina
82 debido a que la sucesin de operaciones resulta numricamente inestable (sensible a errores
de redondeo). Esta inestabilidad se produce debido a las sustracciones y a que los vectores qj
no son estrictamente ortogonales debido a errores de redondeo. Se pueden utilizar mtodos
de estabilizacin, cambiando el orden en que se realizan las operaciones. Sin embargo, hay
un mtodo ms efectivo, estable por supuesto, para encontrar la factorizacin QR. El nuevo
mtodo hace uso de las propiedades de las proyecciones otogonales. Por tal motivo hacemos
un parntesis en nuestra discusin para estudiar dichas propiedades.

Anlisis Numrico

4.5.

85

Proyecciones en Rn

Una proyeccin en Rn es una matriz cuadrada P de n n tal que P 2 = P . El espacio


imagen de P se define por
Im(P ) = {v Rn | v = P x, para algn x Rn }.
El espacio nulo de P se define por
N ul(P ) = {x Rn | P x = ~0}.
Ejemplo 4.7. Verificar que la siguiente matriz cuadarada es una proyeccn y encontrar su
espacio imagen y su espacio nulo.

1 0 2
1

P = 0 0 0
5
2 0 4
Solucin. P es una proyeccin en R3 , pues P 2 = P . El espacio imagen de P es el conjunto
de vectores v Rn de la forma


1 0 2
1
x1
1
1

1

v = 0 0 0 x2 = (x1 + 2x3 ) 0 = c 0 , c R.
5
5
2 0 4
2
x3
2
Es decir, Im(P ) = {v Rn | v = c[1, 0, 2]T } = gen{[1, 0, 2]T } es la linea recta determinada
por el vector [1, 0, 2]T . El espacio nulo de esta misma proyecin es el conjunto de vectores
x = [x1 , x2 , x3 ]T que satisfacen


1 0 2
x1
0
1


0 0 0 x2 = 0
5
2 0 4
x3
0

x1 + 2x3 = 0
2x1 + 4x3 = 0

x1 + 2x3 = 0 .

Es decir, N ul(P ) = {[x1 , x2 , x3 ]T |x1 + 2x3 = 0}, el cual representa el plano con ecuacin
x1 + 2x3 = 0 y normal al vector (1, 0, 2)T . La Figura 4.5 ilustra geomtricamente el espacio
imagen de P , la cual es una linea recta en el plano x1 x3 de R3 . El espacio nulo de P es
el plano perpendicular a dicha recta. En dicha figura slo se ilustra la interseccin de este
plano con el plano x1 x3 .

86

L. Hctor Jurez V.

(1,0,2)

Nul(P)
Plano

Linea recta
Im(P)

Figura 4.5: Ilustracin del espacio imagen y el espacio nulo

4.5.1.

Algunas propiedades de las proyecciones

1. Si v Im(P ), entonces P v = v.
Demostracin. v Im(P ) v = P x para algn x Rn P v = P 2 v = P x = v.
2. Dado v Rn , v se puede escribir como v = v1 + v2 con v1 Im(P ) y v2 N ul(P ).
Demostracin. Sea v2 = v P v, entonces P v2 = P (v P v) = P v P 2 v = ~0
v2 N ul(P ) y por lo tanto v = v1 + v2 con v1 = P v Im(P ).
3. Si P es una proyeccin en Rn , entonces I P tambien es una proyeccin.
Demostracin. (I P )2 = I 2IP + P 2 = I 2P + P = I P .
A la proyeccin I P se le llama proyeccin complementaria de P .
4. Si P es una proyeccin en Rn , entonces
Im(P ) = N ul(I P ): P proyecta sobre el espacio nulo de I P .
Im(I P ) = N ul(P ): I P proyecta sobre el espacio nulo de P .
Demostracin. v Im(P ) v = P x, con x Rn (I P )v = v P v =
P xP 2 x = ~0 v N ul(I P ) Im(P ) N ul(I P ). Por otro lado v N ul(I P )
v P v = ~0 v = P v Im(P ) N ul(I P ) Im(P ). Con esto se concluye que
Im(P ) = N ul(I P ). En forma anloga se verifica que Im(I P ) = N ul(P ).

Anlisis Numrico

87

Ejemplo 4.8. Retomando la proyeccin del ejemplo anterior verificar las propiedades 2, 3,
y 4 dado el vector arbitrario v = (a1 , a2 , a3 )T R3 .
Solucin.

v1 = P v =

a1

v2 = v P v = a2
a3

1 0 2
1

P = 0 0 0 ,
5
2 0 4

a1
1 0 2
a1 + 2a3
1

0 0 0 a2 =
0
Im(P ),
5
a3
2 0 4
2a1 + 4a3

a1 + 2a3
4a1 2a3
1
1

0
5a2

=
N ul(P ),
5
5
2a1 + 4a3
2a1 + a3

Esta claro que v1 + v2 = v, con lo cual 2 queda verificada.


La proyeccin complementaria de P es

1 0 0
1 0 2
4 0 2

1
1

I P = 0 1 0 0 0 0 = 0 5 0
5
5
0 0 1
2 0 4
2 0 1
y

20
0 10
1

(I P )2 =
25
0 = I P.
0
25
10 0
5

Ademas la imagen de v R3 bajo I P est en N ul(P ), y ms an que


Im(I P ) = N ul(P )
La Figura 4.6 ilustra estas propiedades. En dicha figura se tiene que Im(I P ) = N ul(P )
es el plano en R3 con normal (1, 0, 2)T , y N ul(I P ) = Im(P ) es la linea determinada por
el vector ~a = (1, 0, 2)T .
De la discusin anterior concluimos que
5. Una proyeccin P en Rn separa el espacio completo en dos subespacios S1 y S2 con
S1 S2 = {~0}, y S1 + S2 = Rn . Es decir, dado v Rn , v = v1 + v2 con v1 = P v y
v2 = (I P )v, bin v1 = (I P )v y v2 = P v.

88

L. Hctor Jurez V.

x3
Im(P)=Nul(IP)
v

Plano

v =Pv
1

v =(IP)v
2

Nul(P)=Im(IP)
Linea recta

Figura 4.6: Ilustracin de la proyeccin complementaria.

4.5.2.

Proyecciones ortogonales

Los tipos de proyecciones ms importantes en el lgebra lineal numrica y en las aplicaciones son las denominadas proyecciones ortogonales. Se dice que una proyeccin P es
ortogonal si P T = P . De hecho, una proyeccin ortogonal separa el espacio completo Rn
en dos subespacios ortogonales S1 S2 con S1 S2 = {~0}, S1 + S2 = Rn . Dado v Rn ,
v = v1 + v2 con v1 = P v y v2 = (I P )v, y si P es ortogonal, entonces
v1T v2 = (P v)T (I P )v = v T P T (I P )v = v T P (I P )v = v T (P P 2 )v = ~0
En resumen
6. Si P en una proyeccin ortogonal, entonces P v y (I P )v son ortogonales para toda
v Rn .
Ejemplo 4.9. La proyeccin anterior

1 0 2
1

P = 0 0 0 ,
5
2 0 4
es una proyeccin ortogonal, pues P es simetrica. La Figura 4.6 muestra la separacin de
R3 en dos subespacios ortogonales a saber Im(P ) = N ul(I P ) y N ul(P ) = Im(I P )

Anlisis Numrico

89

Ejemplo 4.10. Proyeccin ortogonal de rango 1. Dado q Rn con kqk2 = 1, la matriz


de rangp 1 dada por Pq qq T es una proyeccin ortogonal.
Demostracin. Primero, observese que Pq es una matriz
es un mltiplo del vector q:

q1 q1 q1 q2 q1 qn

q2 q1 q2 q2 q2 qn
Pq =
..
..
..
.
.
.
qn q1 qn q2

de rango 1, pues toda columna

qn qn

Pq es una proyeccin, pues


(Pq )2 = (qq T )(qq T ) = q(q T q)q T = qkqk22 q T = qq T = Pq .
Pq es ortogonal, pues
(Pq )T = (qq T )T = (q T )T q T = qq T = Pq .
Su proyeccin complementaria es
(Pq )T = I Pq = I qq T .
Ejemplo 4.11. Para cualquier a Rn , a 6= ~0, existe una proyeccin ortogonal de rango 1
Pa =

aaT
.
aT a

Demostracin. Dado a Rn , a 6= ~0, q = a/kak2 es unitario y


qq T =

a
aT
aaT
aaT

=
=
.
kak2 kak2
aT a
kak22

Pa v produce la proyeccin del vector v Rn sobre la linea definida por el vector a Rn . Su


proyeccin complementaria
aaT
Pa = I Pa = I T ,
a a
es de rango n 1 y proyecta el vector v Rn sobre el hiperplano perpendicular al vector a.
En otras palabras
Pa proyecta v sobre la linea determinada por a:
Im(Pa ) = {x Rn | x = a, R} .

90

L. Hctor Jurez V.

Im(Pa )
v

Im(P )
a

P v
a

Pa v
O

Figura 4.7: Proyeccon ortogonal de rango 1 generada por un vector a.

Pa proyecta sobre el hiperplano con vector normal a = (a1 , a2 , . . . , an )T :


Im(Pa ) = {x Rn | a1 x1 + a2 x2 + . . . + an xn = 0} .
En la Figura 4.7 se ilusta lo anterior.
La proyeccin

1 0 2
1

P = 0 0 0
5
2 0 4

es un caso particular de una proyeccin de rango 1 con a = (1, 0, 2)T , pues


1 h
1 0 2
i
T
aa
1
1

= 0 1 0 2 = 0 0 0 .
T
a a
5
5
2
2 0 4
Ejemplo 4.12. Proyeccin ortogonal sobre la imagen de una matriz A Rmn
(m n). Si A Rmn con m n es de rango completo, sabemos que AT A es una matriz
de n n, simtrica y definida positiva. La inversa generalizada derecha de A, se define como
la matriz A+ = (AT A)1 AT de orden n m. Esta matriz define una proyeccin ortogonal
en el espacio Rm al premultiplicarse por A, pues PA = AA+ = A(AT A)1 AT Rmm , y,
claramente PA2 = PA y PAT = PA . Cualquier vector v Rm es proyectado sobre el espacio
imagen de la matriz A por la proyeccin PA . Es decir, el espacio generado por las columnas
de A es igual a Im(PA ) (ver Fig. 4.8).

Anlisis Numrico

91

v
P v
A

(IP ) v
A

O
Im(IPA)

Im(P ) = Im(A)
A

Figura 4.8: Proyeccin otogonal sobre la imagen de A.

Nota. Observese que PA = A(AT A)1 AT es la generalizacin multidimensional de la proyeccin de rango 1, P a = aaT /aT a con a Rm , si observamos que a se puede ver como una de
las columnas de la matriz A bin como una matriz de m 1.

4.6.

Mtodo de factorizacin QR por reflexiones de Householder

4.6.1.

Triangularizacin de Householder

La triangularizacin de Housholder (Alston Householder, 1958) es el mtodo ms usado


actualmente para encontrar la factorizacin QR debido a que es numricamente ms estable
que el mtodo de Gram-Schmidt. Este mtodo consiste en un proceso de triangularizacin
ortogonal , en donde se construye una matriz triangular por una sucesin de operaciones
matriciales semejante al proceso de eliminacin de Gauss. Solo que en este caso se multiplica
por matrices ortogonales Qk , de tal manera que al final del proceso
Qn Q2 Q1 A
resulta triangular superior. Cada matriz Qk se escoge para introducir ceros debajo de la
diagonal en la k-sima columna. Por ejemplo, para una matriz A de 5 3, las operaciones

92

L. Hctor Jurez V.

Qk se aplican como se muetra a continuacin:


A(0)

}|
x
x
x
x
x
{z

x
x
|

x
x
x
x
x

A(1)

x

0

Q1 0

0
0
} |

}|
x
x
x
x
x
{z

x
x
x
x
x

A(2)

x

0

Q2 0

0
0
} |

Q1 A

}|
x
x
0
0
0
{z

x
x
x
x
x

A(3)

x

0

Q3 0

0
0
} |

Q2 Q1 A

}|
x
x
0
0
0
{z

x
x
x
0
0

= R,

Q3 Q2 Q1 A

donde las x indican coeficientes no cero en general.


Cmo se construyen tales matrices ortogonales Qk ?

4.6.2.

Reflexiones de Householder

Si A Rmn con m n, cada Qk se escoge como una matriz ortogonal de la forma


"
Qk =

I 0
0 H

#
,

donde I es la matriz identidad de orden (k1)(k1) y H es una matriz ortogonal de orden


(mk +1)(mk +1). La multiplicacin por H debe introducir ceros debajo de la diagonal
en la ksima columna. Esquemticamente, esta operacin se muestra a continuacin

I
0

a11 . . . a1k1
.
..
..
..
.
.

0 . . . ak1k1
0

0
H mm 0 . . .
.
..
..
.
.
.
.
0 ...
0

a1k
..
.

...
..
.

a1n
..
.

ak1k . . . ak1n
akk
..
.

...
..
.

akn
..
.

amk

...

amn

mn

La matriz de la izquierda es la matriz ortogonal Qk de orden m m, mientras que la de


la derecha es la matriz A(k1) de orden m n. El resultado de la anterior multiplicacin
es la matriz A(k) Rmn , la cual tiene los mismos bloques que A(k1) , excepto el bloque

Anlisis Numrico

93

diagonal inferior que debe cambiar por

akk
..
.
amk

...
..
.

akn

..

. =

. . . amn

a0kk a0kk+1 . . . a0kn


0 a0k+1k+1 . . . a0k+1n
..
..
..
..
.
.
.
.
0
a0mk+1 . . . a0mn

Por supuesto, aqu el paso fundamental es la multiplicacin de H por la primera columna


de la submatriz de la derecha:
0

akk
akk

ak+1k 0

H
..
= ..
.
.

amk

donde a0kk = kxk k, con xk = (akk , . . . , amk )T . Es decir, el algoritmo de Householder escoge
H como una matriz particular llamada reflexin de Householder. Esta matriz introduce
los ceros correctos en la ksima columna:

x1
kxk

x2

x=
..
Hx = .. = kxke1
.

.
xmk+1

con e1 = (1, 0, . . . , 0)T de tamao m k + 1. Para obtener la reflexin de Householder H


observamos en la Figura 4.9 que sta refleja Rmk+1 a travs del hiperplano H + ortogonal a
v = kxke1 x. Cuando la reflexin se aplica a cada punto en algn lado de H + , el resultado
es la imagen reflejada en el otro lado de H + . En particular x es enviado a kxke1 .
Para cualquier y Rmk+1 , el vector

vv T
y
Py= I T
v v
es la proyeccin ortogonal de y sobre el espacio H + (perpendicular a v). Para reflejar y a
travs de H + , debemos continuar al doble de la distancia en la misma direccin como se
ilustra en la Figura 4.10. La reflexin H debe ser entonces
H =I 2

vv T
vT v

con

v = kxke1 x.

94

L. Hctor Jurez V.
x

H+
Rmk+1
v = ||x|| e1 x

H x = ||x|| e1

Figura 4.9: Reflexin de Householder para un vector dado x


x

Py

H+
O

Hy

Hx

Figura 4.10: La reflexin de Householder H = I 2vv T /v T v.

Ejemplo 4.13. Dado el vector x = (3, 4, 0)T , encontrar la reflexin de Householder H tal
que Hx = kxke1 = (5, 0, 0)T .
Solucin.

5
3
2

v = kxke1 x = 0 4 = 4 ,
0
0
0

2
4 8 0
h
i

vv T = 4 2 4 0 = 8 16 0
0
0
0 0

y v T v = 20.

Anlisis Numrico

95

Luego

1 0 0
4 8 0
3/5 4/5 0
1

H =I 2 T = 0 1 0
8 16 0 = 4/5 3/5 0 .
v v
10
0 0 1
0
0 0
0
0
1
vv T

Se puede verificar que H efectivamente satisface Hx = kxke1 = (5, 0, 0)T . En la figura 4.11
se ilustra el resultado de este ejemplo.
x

x = (3,4,0)T

H+

v = ||x|| e x = (2,4,0)
1

||x|| e1 = (5,0,0)T

x1

Figura 4.11: Reflexin de Householder del ejemplo 4.13.


El plano H + tiene ecuacin v1 x1 + v2 x2 + v3 x3 = 0, es decir, 2x1 4x2 = 0 con x3 arbitrario.
Observese adems que

3/5 4/5 0
3/5 4/5 0
1 0 0

HH T = 4/5 3/5 0 4/5 3/5 0 = 0 1 0 = I


0
0
1
0
0
1
0 0 1
En general, se puede verificar facilmente que

T
vv T
vv T
T
HH = I 2 T
I 2 T
=I.
v v
v v
de modo que H es siempre una matriz ortogonal. Por lo tanto, las matrices Qk en el proceso
de triangularizacin de Householder son ortogonales, pues
#
# "
# "
"
#"
I
0
I
0
I
0
I
0
k1
=
= Im .
Qk QTk =
=
0 HH T
0
Imk+1
0 H
0 HT

96

4.6.3.

L. Hctor Jurez V.

La mejor de las dos reflexiones

En la exposicin anterior se ha simplificado el procedimiento. El vector x en realidad


puede reflejarse ya sea a kxke1 bin a kxke1 , dando lugar a dos reflexiones, una a travs
del hiperplano H + , y otra a travs del hiperplano H , como se muestra en la Figura 4.12.

x
+

H
||x|| e x
1

||x|| e

||x|| e1 x
||x|| e

Figura 4.12: Las dos reflexiones de Householder

Desde el punto de vista matemtico, cualquiera de las dos elecciones es satisfactoria. Sin
embargo, para asegurar estabilidad en el algoritmo numrico se debe escoger aquella reflexin
para la cual x se encuentre ms alejado de su punto reflejado kxke1 kxke1 . Para lograr
esto escogemos v = signo(x1 )kxke1 x, o bien podemos quitar el signo , y escoger
v = signo(x1 )kxke1 + x. La funcin signo se define como:

1 si x 0 ,
1
signo(x1 ) =
1 si x < 0 .
1

Vale la pena recordar que x1 es la 1ra coordenada de x. Las Figura 4.13 muestra ambos
casos. La razn por la cual esta eleccin para v es conveniente es que si el ngulo entre H +
y e1 es muy pequeo, entonces el vector v = kxke1 x ser ms pequeo que x kxke1 , y
el clculo de v representa la sustraccin de cantidades casi iguales, con lo cual se obtienen
errores de cancelacin. Por otro lado, si escogemos el signo de tal forma que en lugar de
restar sumemos, cortamos el efecto de cancelacin y kvk nunca ser ms pequeo que kxk,
con lo cual aseguramos estabilidad en los clculos.

Anlisis Numrico

97

H+

x
+

H
v = ||x|| e1 + x

||x|| e1

v = ||x|| e1 + x

||x|| e

||x|| e1

||x|| e1

Figura 4.13: Grfica de la izquierda: x1 > 0 signo(x1 ) = +1. Grfica de la derecha:


x1 < 0 signo(x1 ) = 1.

4.6.4.

Algoritmo de factorizacin de Householder

Utilizando las ideas anteriores podemos construir el algoritmo que factoriza A en la


forma A = QR, es decir QT A = R, con Q = (Qn Q2 Q1 )T matriz ortogonal y R matriz
triangular superior. Sin embargo, en el siguiente algoritmo solamente calculamos el factor R
y lo almacenamos en el mismo espacio de memoria que ocupa A. Tambin se almacenan los
n vectores de reflexin v1 , . . . , vn , para posibles usos posteriores.
Para k = 1, . . . , n
. x = A(k : m, k)
. vk = signo(x1 )kxke1 + x
. vk = vk /kvk k2
. A(k : m, k : n) = A(k : m, k : n) 2vk (vkT A(k : m, k : m))
Fn
Observese que en el algoritmo se han realizado dos simplificaciones:
1. Se ha denotado por v a v/kvk2 pues la reflexin se puede escribir como

T
v vT
vv
=
I

2
.
I 2
vT v
kvk2 kvk2
2. Al multiplicar o aplicar la reflexin por un vector y obtenemos

T
v vT
v
v
I 2
y =y2
y ,
kvk2 kvk2
kvk2 kvk2
de tal manera que cuando y es una de las columnas de la submatriz A(k : m, k : n), entonces
la forma econmica de aplicar la reflexin a cada una de estas columnas es como se indica
en el ltimo rengln del algoritmo.

98

L. Hctor Jurez V.

La matriz ortogonal QT = Qn Q2 Q1 no se construye en el algoritmo anterior, pues


esto tomara trabajo adicional. Afortunadamente en muchas aplicaciones no es necesario
obtener esta matriz. Por ejemplo, si se quiere resolver el sistema Ax = b y sabemos que
QT A = R, entonces Rx = QT A x = QT b y basta con resolver el sistema Rx = QT b
utilizando sustitucin regresiva. El lado derecho QT b puede calcularse aplicando a b la
misma sucesin de operaciones aplicadas a la matriz A:
Para k = 1, . . . , n
..
. b(k : m) = b(k : m) 2vk (vkT b(k : m))
Fn
dado que los vectores de reflexin v1 , . . . , vn se almacenan al encontrar R en el algoritmo
anterior. En el problema de la solucin del problema sobredetermnado Ax = b inclusive no
es necesario almacenar los vectores de reflexin vk y el clculo de los QT b puede realizarse
simultaneamente al clculo de R. En este caso el algoritmo completo, incluyendo sustitucin
regresiva, sera:
Algortimo de triangularizacin de Housholder para resolver Ax = b
Para k = 1, . . . , n
. x = A(k : m, k)
. v = signo(x1 )kxke1 + x
. v = v/kvk2
. A(k : m, k : n) = A(k : m, k : n) 2v (v T A(k : m, k : m))
. b(k : m) = b(k : m) 2v(v T b(k : m))
Fn
x(n) = b(n)/A(n, n)
Para k = n 1 : 1 : 1
..
. x(k) = (b(k) A(k, k + 1 : n) b(k + 1 : n))/A(k, k)
Fn
Ejemplo 4.14. Aplicar el algorimto de triangularizacin de Housholder para ajustar un
polinomio de grado 6 a los datos del ejemplo 4.4.
Solucin. Primero construimos la matriz de diseo A como en el Ejemplo 4.4 y tomamos
b = y. Aplicando el algoritmo de triangularizacin de Householder, en aritmtica de punto
flotante de doble presicin se obtienen los siguientes valores para los coeficientes del poli-

Anlisis Numrico

99

nomio de grado seis:


c1 = 0.822788975730155, c2 = 0.412287124640065, c3 = 0.173651218062985,
c4 = 0.043013848896201, c5 = 0.012531422825541, c6 = 0.000286576168929,
c7 = 0.000130718954248,
los cuales coinciden en hasta 12 cifras decimales con el resultado del Ejemplo 4.4, en donde se
resolvi el problema por medio del algoritmo de ecuaciones normales. La diferencia de ambas
soluciones tiene norma2 igual a 7.521013 . La grfica del polinomio es indistinguible de
aquella obtenida en el Ejemplo 4.4. Otra forma de medir la diferencia entre ambas soluciones
es por medio de la norma2 del residual Ac y. En el caso del mtodo de ecuaciones normales es 0.579791307012593, mientras que con el mtodo QR se obtiene 0.579791307012592,
mostrando que la diferencia es muy pequea, y ambas soluciones se pueden considerar indistinguibles. Sin embargo, en la solucin de problemas donde el nmero de datos, y por
tanto el tamao de los sistemas, es mayor la diferencia entre ambos mtodos ser mayor
y favorable al mtodo de factorizacin QR. Por ejemplo para el problema de ajustar un
polinomio de grado 12 a los 20 datos
x = 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0,
16.0, 17.0, 18.0, 19.0, 20.0
y = 6.8, 3.7, 8.3, 5.1, 7.2, 4.3, 3.0, 1.9, 1.9, 6.8, 3.4, 5.5, 1.6, 6.8, 3.4,
5.5, 1.6, 6.9, 3.7, 8.6,
se obtiene la solucin
c = 12.907970210856304, -3.016629810172137, -8.667285831321209, 7.388121747944512,
-2.113195497831346, 0.183521281771445, 0.032056774991461, -0.010264106763814,
0.001240193327025, -0.000083809251109, 0.000003322253342, -0.000000072398408,
0.000000000671482
utilizando el algoritmo de ecuaciones normales, mientras que con el algoritmo QR con tringularizacin de Householder, se obtiene
c = 354.3644019405224, -890.9842717372895, 904.5095592735649, -496.3782632641325
167.1779443154627, -036.8894657313046, 5.524135579250700, -0.570407247523000
0.040598148384200, -0.001954498782900, 0.000060739089900, -0.000001099075100

100

L. Hctor Jurez V.
0.000000008792500

Como puede observarse, los resultados son muy diferentes. La grfica de los polinomios de
ajuste se muestra en la Figura 4.14. El mtodo que produzca el menor residual proporciona la
mejor solucin. La norma de los residuales es 7.027 cuado se utiliza el mtodo de ecuaciones
normales, y es 5.507 cuando se utiliza el mtodo QR. Por lo tanto el polinomio obtenido con
el mtodo QR ajusta mejor los datos dados.
10

4
0

Datos
Ecuaciones normales
QR
2

10

12

14

16

18

20

Figura 4.14: Ajuste con el algoritmo de ecuaciones normales y con el algoritmo QR

Captulo 5

Solucin de Ecuaciones no Lineales


El problema de resolver sistemas de ecuaciones no lineales aparece frecuentemente en
la matemtica computacional y en las aplicaciones en donde los modelos subyacentes para
estudiar determinado fenmeno no pueden expresarse en forma lineal. Es decir los sistemas
correspondientes no son de la forma Ax = b, donde A es una matriz y x, b son vectores.
Este nuevo tipo de ecuaciones algebraicas puede representarse en forma funcional compacta
f (x) = 0, donde f : Rn Rn es una funcin vectorial, x = (x1 , . . . , xn )T y 0 = (0, . . . , 0)T en
Rn . En forma desarrollada escribimos
f1 (x1 , x2 , . . . , xn ) = 0,
f2 (x1 , x2 , . . . , xn ) = 0,
..
.
fn (x1 , x2 , . . . , xn ) = 0,
donde fi (x1 , x2 , . . . , xn ), i = 1, . . . , n son las funciones componentes de la funcin vectorial
f . El caso n = 1 corresponde a una simple ecuacin no-lineal en la incgnita x R.
Frecuentemente, en las aplicaciones, un problema no lineal aparece en la forma de problema de punto fijo:
Encontrar x Rn tal que x = g(x),
donde g : Rn Rn es una funcin vectorial. El problema, en este ltimo sistema, consiste en
encontrar un punto Rn que satisface = g(), y al cual se le denomina punto fijo de g.
Cualquier ecuacin o sistema de ecuaciones f (x) = 0 puede escribirse en la forma de punto
fijo, y esto puede realizarse de muchas maneras. Por ejemplo, la ecuacin f (x) = x2 x2 = 0
en una variable, puede expresarse de manera equivalente en cualquiera de las formas:
101

102

L. Hctor Jurez V.

1. x = x2 2

2. x = x + 2
2
3. x = 1 +
x
x2 + 2
4. x =
2x 1

g(x) = x2 2

g(x) = x + 2
2
g(x) = 1 +
x
x2 + 2
g(x) =
,
2x 1

entre otras. Cualquier punto fijo de estas funciones g ser una raiz de la ecuacin original
f (x) = 0. Entonces, el problema del clculo de raices de f (x) se puede expresar como el
clculo de los puntos fijos de alguna funcin g(x).

5.1.

Mtodo iterativo de punto fijo

Los mtodos ms ampliamente usados para encontrar soluciones de ecuaciones no lineales son los denominados mtodos iterativos de punto fijo. Estos mtodos consisten
en transformar la ecuacin (o sistema de ecuaciones) original, f (x) = 0, en algn sistema
equivalente de punto fijo x = g(x) adecuado. Una vez hecho esto, se escoge algn x0 como
aproximacin inicial al punto fijo , y se genera una sucesin de aproximaciones mediante
las iteraciones:
xn+1 = g(xn ),

n = 0, 1, 2, . . .

Se espera que la sucesin {xn } converja al punto fijo . Desgraciadamente esto no siempre
ocurre como se muestra a continuacin.
Ejemplo 5.1. Consideremos el ejemplo sencillo de encontrar numricamente una de las
raices de f (x) = x2 x2 = 0. Sus raices exactas son x1 = 1 y x2 = 2. Nos concentraremos
nicamente en el clculo de la raiz = 2.
a) Con g(x) = x2 2 y x0 = 2,1, obtenemos x1 = 2,41, x2 = 3,8081, x3 = 12,50162561, y
xn si n .

b) Con g(x) = x + 2 y x0 = 2,1, obtenemos x1 = 2,024846, x2 = 2,006202, x3 =


2,001550, x4 = 2,000387,. . ., x10 = 2,0000004, y xn 2 si n .
c) Con g(x) = 1 + x2 y x0 = 2,1 , obtenemos x1 = 1,952381, x2 = 2,024390, x3 =
1,987952, x4 = 2,006061, . . . , x18 = 2,0000004, y xn 2 si n .

Anlisis Numrico

103
2

x +2
d) Con g(x) = 2x1
y x0 = 2,1 , obtenemos x1 = 2,003125, x2 = 2,00003, x3 =
2,000000000004, y xn 2 si n .

En el primer caso, la funcin de iteracin g(x) = x2 2 no genera una sucesin {xn }


convergente al punto fijo = 2. Por el contrario, esta sucesin diverge a infinito. En los
otros tres casos se produce una sucesin convergente al punto fijo = 2. Observese que estas
sucesiones convergen al punto fijo con mayor o menor rapidez". Por ejemplo, la funcin de
iteracin
x2 + 2
g(x) =
2x 1
aparentemente genera una sucesin que converge extremadamente rpido al punto fijo, mientras que las otras dos funciones de iteracin generan sucesiones con una convergencia ms
lenta al punto fijo. Hasta el momento no hemos estudiado bajo que condiciones para la
funcin de iteracin g se obtiene una sucesin que converja efectivamente al punto fijo . La
respuesta a este problema viene dada por el teorema de punto fijo de Banach, tambin
llamado principio de mapeos contractantes, el cual estudiaremos en la siguiente seccin. Una
vez hecho este estudio podremos estudiar otros temas, como la rapidez de convergencia del
mtodo iterativo, y el diseo de algoritmos rpidos.

5.2.

Teorema de punto fijo de Banach

Este teorema es muy importante y sirve como fuente para probar existencia y unicidad en diferentes ramas del Anlisis y sus aplicaciones como: ecuaciones algebraicas, ecuaciones diferenciales ordinarias, ecuaciones diferenciales parciales, y ecuaciones integrales,
entre otras. Este teorema da condiciones suficientes para la existencia y unicidad de un
punto fijo para una clase de aplicaciones o funciones llamadas contracciones.
Definicin 5.2. Una aplicacin T : X X con X Rn se denomina contraccin sobre
X si existe un nmero real K, con 0 < K < 1, tal que para todo x, y X
kT x T yk Kkx yk
en alguna norma vectorial k k.
Geomtricamente esto significa que dos puntos cualesquiera x, y X tienen imagenes
ms cercanas que ellos mismos. De ah el nombre de contraccin para la aplicacin T .

Ejemplo 5.3. La funcin g : [1, 3] [1, 3] definida por g(x) = x + 2 es una contraccin
en X = [1, 3].

104

L. Hctor Jurez V.

Primero verificamos que g(x) [1, 3] si x [1, 3]:

x [1, 3] 1 x 3 3 x + 2 5 3 x + 2 5 .

Por lo tanto, g(x) = x + 2 [1, 3]. Por otro lado, por el teorema del valor medio
|g(x) g(y)| = |g 0 ()| |(x y)| con entre x y y ,
y debido a que
1
g 0 (x) =
2 x+2

1
m
ax |g 0 (x)| = g 0 (1) = .
x[1, 3]
2 3

Por lo tanto

1
|g(x) g(y)| |x y| .
2 3
1
Se concluye que g es una contraccin con K = < 1.
2 3
Teorema 5.4. Teorema de punto fijo de Banach. Si X es un conjunto cerrado conexo
de Rn y T es una contraccin sobre X, entonces T tiene un nico punto fijo en X, y dado
cualquier punto de comienzo x0 X, la sucesin generada por iteracin de punto fijo
xn+1 = T xn ,

n = 0, 1, 2, . . .

converger al punto fijo de T .


Demostracin. Sea x0 X, y sea {xn } la sucesin generada por iteracin. Para cada
m N, xm+1 xm = T xm T xm1 , y como T es una contraccin entonces
kxm+1 xm k = kT xm T xm1 k K kxm xm1 k ,
con 0 < K < 1. Procediendo recursivamente, obtenemos
kxm+1 xm k K m kx1 x0 k m N .
Utilizando este resultado para toda n > m se obtiene
kxn xm k = kxn xn1 + xn1 xn2 + xn2 + . . . + xm+1 xm k
kxn xn1 k + kxn1 xn2 k + . . . + kxm+1 xm k
(K n1 + K n2 + . . . + K m )kx1 x0 k
K m (1 + K + K 2 + . . . + K nm1 )kx1 x0 k
1 K nm
Km
kx1 x0 k ,
1K

Anlisis Numrico

105

y como 0 < K nm < 1, entonces


kxn xm k K m

1
kx1 x0 k .
1K

Por lo tanto

1
kx1 x0 k = 0 ,
m,n
m
1K
lo cual implica que la sucesin {xn } generada por iteracin es una sucesin de Cauchy.
Como T esta definida sobre el conjunto cerrado X la sucesin de Cauchy {xn } tiene un
lmite X:
= lm xn
lm kxn xm k lm K m

Este lmite X es un punto fijo de T pues


k T k = k xn + xn T k k xn k + kxn T k = k xn k + kT xn1 T k
implica que
k T k k xn k + Kkxn1 k 0, cuando n 0 .
Por lo tanto, = T . Adems este es el nico punto fijo de T en X, pues si hubiese otro,
digamos , entonces
k k = kT T k Kk k < k k ,
lo cual no es posible. Por tanto, es el nico punto fijo de T en X.
En suma, para que una aplicacin sea una buena funcin de iteracin y produzca una
sucesin convergente al punto fijo basta con que ella sea una contraccin en un conjunto
cerrado X que contenga al punto fijo. En ocasiones es difcil probar en forma directa que
una funcin de iteracin es una contraccin. Pero si g es una funcin suave (tiene derivada
continua en X), y si adems
kg 0 (x)k K, x X con 0 < K < 1 ,
entonces g es una contraccin en X con K = maxkg 0 (x)k < 1. En efecto, para x, y, X,
por el teorema del valor medio, se tiene

xX

kg(x) g(y)k kg 0 ()k kx yk con entre los puntos x, y .


As que
kg(x) g(y)k Kkx yk con K = maxkg 0 (x)k < 1 .
xX

106

L. Hctor Jurez V.

5.3.

Cota del error en la iteracin de punto fijo

La desigualdad
kxn xm k

Km
kx1 x0 k ,
1K

obtenida anteriormente es vlida para toda n > m. Luego, cuando n , xn , y por


tanto
Km
kxm k
kx1 x0 k m N .
1K
Esta desigualdad, aparte de que proporciona una cota para el error en la msima iteracin,
sirve para estimar el nmero de iteraciones necesarias par alcanzar una precisin determinada
en el clculo del punto fijo :

kxn k
n log
(1 K) / log K
kx1 x0 k
Ejemplo 5.5. Encontrar la raz de f (x) = x2 x 2 = 0 que se encuentra en el intervalo
[1, 3].
Solucin. Anteriormente se propusieron algunas funciones de iteracin. La 1a funcin g(x) =
x2 2 es tal que su derivada es g 0 (x) = 2x, y en el intervalo [1, 3] esta es mayor que 1, de
hecho 2 g 0 (x) 3. Luego g(x) = x2 2 no define una contraccin en [1, 3], y esto explica
porqu la sucesin generada por iteracin de punto fijo diverge, a pesar de que escoge como
punto inicial x0 = 2,1 muy cercano al punto fijo = 2. La Figura 5.1 ilustra esta situacin.
3

y
y = x2 2

2.5

1.5

y=x
0.5

0
0

0.5

1.5

2.5

Figura 5.1: La funcin de iteracin g(x) = x2 2 es tal |g 0 (x)| > 1 en [1, 3], y produce una
sucesin divergente.

Anlisis Numrico

107

La 2a funcion de iteracin g(x) = x + 2 produjo una sucesin convergente al punto


fijo = 2. En la Seccin 3.2 se demostr que esta funcin es una contraccin en [1, 3], as
que cualquier punto de comienzo x0 en este intervalo producir, bajo las iteraciones, una
sucesin que converge al punto fijo = 2. Si comenzamos con x0 = 1, cul es el nmero de
iteraciones para alcanzar un error menor a 104 ? Como
|xn | = 104 , |x0 x1 | = |1
Entonces

log
n

1
3| = 3 1, K = .
2 3

1
104 (1
)
2 3
31

2
log( 3
)
3

7,436

As que podemos tomar n = 8. La Tabla 5.1 muestra las iteraciones con precisin a 6 cifras
decimales, junto con el error y la estimacin del error. Observese que el error real siempre es
n

xn

en = |xn |

0
1
2
3
4
5
6
7
8

1
1.732051
1.931852
1.982890
1.995718
1.998930
1.999732
1.999933
1.999983

1
0.267949
0.068148
0.017110
0.004282
0.001070
0.000268
0.000067
0.000017

Cuadro 5.1: Iteraciones de g(x) =

Kn
1K |x1

x0 |

1.029137
0.297086
0.085761
0.024757
0.007147
0.002063
0.000715
0.000172
0.000050

x + 2, el error y la estimacin del error.

Kn
|x1 x0 |, como debe de suceder. Adems, en la prctica, el nmero
1K
de iteraciones para alcanzar un error menor que 104 es 7. La Figura 5.2 ilustra este ejemplo
menor que la cota

2
Finalmente, la 3a funcin de iteracin g(x) = 1 +
tambin produce una sucesin
x
convergente cuando x0 = 2,1. Para saber que rango de valores puede tomar x0 y obtener
una sucesin que converja a = 2 con esta funcin de iteracin hacemos

2
|g (x)| = 2 1 x2 2 x 2 x 2 .
x
0

108

L. Hctor Jurez V.

y
2.5
_

y = x+2

2
_

1.5

y=x
0.5

0
0

0.5

Figura 5.2: La funcin de iteracin g(x) =


gente.

1.5

2.5

x + 2 produce una sucesin montona conver-

Entonces para obtener una sucesin convergente = 2 basta tomar x0 2. Es decir, la

funcin de iteracin es una buena eleccin si nos restringimos al intervalo [ 2, 3]. En este
intervalo podemos tomar x0 = 1,5, y obtenemos x0 = 1,5, x1 = 2,333333, x2 = 1,85714,
x3 = 2,07692, x4 = 1,96296,. . . Observese el caracter alternante de la sucesin alrededor de
2
= 2. Esto debido a que g 0 (x) = 2 < 0 y, en particular, g 0 () = g 0 (2) = 0,5. La Figura
x
5.3 ilustra esta situacin.
3

y = 1 + 2/x

2.5

1.5

y=x
0.5

0
0

0.5

1.5

2.5

Figura 5.3: La funcin de iteracin g(x) = 1 + 2/x produce una sucesin alternante convergente.

En general, si g es la funcin de iteracin y sta es una contraccin en X, con X, se

Anlisis Numrico

109

satisfacen las siguientes propiedades para la sucesin generada por iteracin de punto fijo:
1. Cuando g 0 (x) > 0 para toda x X. La sucesin xn es creciente si x0 < . La sucesin
xn es decreciente si x0 > .
2. Cuando g 0 (x) < 0 para toda x X. La sucesin es alternante alrededor de en
la forma x0 < x2 < x4 < . . . < < . . . < x5 < x3 < x1 , o bien en la forma
x1 < x3 < x5 < . . . < < . . . < x4 < x2 < x0 .

5.4.

Orden de convergencia

Teorema 5.6. Sea f (x) = 0 una ecuacin no lineal y x = g(x) su correspondiente ecuacin
de punto fijo. Bajo las siguientes condiciones:
1. g es una contraccin sobre X.
0

2. g C 1 (X) (g y g son continuas en X).


3. g es estrictamente montona sobre X (g 0 (x) 6= 0 , x X).
se tiene que
Si x0 6= , entonces xn 6= , n N ,
es decir, el proceso iterativo no puede terminar en un nmero finito de pasos.
Demostracin. Una demostracin de este hecho se obtiene suponiendo lo contrario, es
decir que g(xn ) = xn para algn n. Si n es el primer ndice para el cual esto ocurre, entonces
xn = g(xn1 ) y xn = g(xn ) con xn1 6= xn .
Luego, por el teorema del valor medio
0 = g(xn ) g(xn1 ) = g 0 (n)(xn xn1 ) con entre xn1 y xn ,
y debe tenerse g 0 () = 0 con X, lo cual contradice la hiptesis de que g 0 (x) 6= 0 x I.
Comportamiento asinttico del error
Una vez hecho lo anterior, ahora podemos analizar como se comporta el error en el
mtodo iterativo de punto fijo la ir aumentando n:
en+1 = xn+1 = g(xn ) g() = g 0 (n )(xn ) = g 0 (n )en .

110

L. Hctor Jurez V.

Es decir
en+1 = g 0 (n )en

con n entre xn y .

Como n est entre xn y para cada n, y es el lmite de xn , necesariamente se tiene que


lm n = .

Adems
lm g 0 (n ) = g 0 (),

por ser g 0 (x) continua. As que


en+1 = g 0 (n )en = (g 0 () + n )en
donde n 0 cuando n . Luego
lm

en+1
= g 0 () + lm n = g 0 () .
n
en

De aqu que, para valores suficientemente grandes de n (asintticamente) se tendr que


en+1 g 0 ()en .
Esta ltima relacin establece que el error en la iteracin n + 1 depende (ms o menos) linealmente del error en la iteracin n. Por tanto, podemos decir que la sucesin {xn } converge
linealmente a , y que el mtodo de punto fijo es un mtodo con orden de convergencia
lineal o de orden uno. En general, como desconocemos g 0 () no es posible estimar en+1 en
tminos de en . Lo nico que sabemos es que en+1 es igual a una constante (menor que 1)
multiplicada por en , y en consecuencia en+1 < en .
Con el objeto de ilustrar este tipo de convergencia, consideremos la funcin de iteracin

g(x) = x + 2 en el Ejemplo 3.5. Para esta funcin g 0 () = g 0 (2) = 0,25, as que asintticamente tenemos que en+1 g 0 ()en = 0,25en . Es decir, asintticamente, el error en la
siguiente iteracin es un cuarto del error anterior. La Tabla 5.2 muestra que efectivamante
as es.
Definicin del orden de convergencia
Sea {xn } una sucesin que converge a un nmero , y sea en = xn . Si existe un
nmero p > 0, y una constante 6= 0 tal que
|en+1 |
=
n |en |p
lm

Anlisis Numrico

111
error exacto
e5
e6
e7
e8

= 0,001070
= 0,000268
= 0,000067
= 0,000017

0.25 en

0,00026750
0,00006700
0,00001675

Cuadro 5.2: Error real y error asinttico de la sucesin de punto fijo con funcin de iteracin

g(x) = x + 2.
entonces p se denomina el orden de convergencia de la sucesin y se denomina la constante
asinttica del error. Entre mayor sea p, mayor ser el orden de convergencia y la sucesin
converger ms rpido al lmite :
Si p = 1, la convergencia se denomina lineal, y asintticamente
|en+1 | |en | .
Si p = 2, la convergencia se denomina cuadrtica, y asintticamente
|en+1 | |en |2 .
Por otro lado, si 0 < < 1 decrece, la sucesin tambin tendra una mejor convergencia,
pero no tan dramtica como aquella cuando p aumenta.
Ejemplo 5.7. Ya hemos mostrado que la sucesin generada por la funcin de iteracin

g(x) = x + 2 converge linealmente al punto fijo = 2. Por otro lado, la funcin de iteracin
x2 + 2
g(x) =
produce una sucesin {xn } que aparentemente tiene un orden de convergencia
2x 1
mayor a uno.
En realidad, esta sucesin converge cuadrticamente al punto fijo = 2. Una forma de
verificar esto es la siguiente: La convergencia cuadrtica implica que existe > 0 tal que
|en+1 | |en |2 para n grande .
Para verificar esto basta con ver que los cocientes |en+1 |/|en |2 producen un valor aproximadamente constante 0,3.

5.5.

La convergencia cuadrtica

En la discusin de convergencia lineal supusimos g 0 (x) 6= 0 , x X, y en particular


g 0 () 6= 0. Ahora queremos investigar el comportamiento asinttico del error si g 0 () = 0.

112

L. Hctor Jurez V.

Suponiendo ahora que la contraccin g satisface g C 2 (X), y que g 00 (x) 6= 0 x X, se


puede demostrar que
1. si x0 6= , entonces xn 6= , n N.
2. El orden de la convergencia de la sucesin generada por iteracin de punto fijo es 2.
Demostracin. Primero demostraremos que en = xn 6= 0 , n N. Supongase lo
contrario, y sea n el primer entero para el cual xn = . Entonces
xn = g(xn1 ) = g(xn ) con xn1 6= xn .
Por el teorema de Taylor
0 = g(xn ) g(xn1 ) = g 0 (xn )(xn xn1 ) +

g 00 (cn )
(xn xn1 )2 .
2!

con cn entre xn1 y xn . Como g 0 (xn ) = g 0 () = 0 y xn1 6= xn se debe cumplir g 00 (cn ) = 0,


lo cual contradice la hiptesis g 00 (x) 6= 0 x X.
Ahora verificamos que bajo las suposiciones anteriores se obtiene convergencia cuadrtica:
1
en+1 = xn+1 = g(xn ) g() = g 0 ()(xn ) + g 00 (n )(xn )2
2
0
con n entre xn y . Dado que g () = 0, se obtiene
1
en+1 = g 00 (n )e2n ,
2
Como n cuando n y g C 2 (X), entonces
lm

|en+1 |
1
= |g 00 ()|
|en |2
2

lo cual implica que la sucesin {xn } converge cuadrticamente al punto fijo . Por lo tanto,
para valores grandes de n se tiene
1
|en+1 | |g 00 ()| |en |2 ,
2
lo cual muestra que el error en la iteracin n + 1 es proporcional al cuadrado del error en la
iteracin n, con constante de proporcionalidad igual a = 21 |g 00 ()| (la constante del error
asinttico).
Una mejor forma para ver el comportamiento de esquemas de segundo orden es tomar
dn = nmero de decimales correctos en la iteracin n, es decir
|en | = |xn | = 10dn , con dn > 0 .

Anlisis Numrico

113

Entonces
10dn = |xn | |xn1 |2 = 102dn1 .
Luego
dn log10 2dn1 .
Por lo tanto
dn 2dn1 log10 .
Entonces si < 1, se tiene log10 > 0, y el nmero de decimales correctos en la iteracin
n es mayor que el doble de decimales correctos en la iteracin n 1. Si > 1, se sigue
cumpliendo que dn 2dn1 para n sufcientemente grande pues en este caso dn log .
Ejemplo 5.8. Consideremos de nuevo el problema de calcular la raz = 2 de la funcin
f (x) = x2 x 2. Verificar que la funcin de iteracin
g(x) =

x2 + 2
2x 1

produce una sucesin que converge cuadrticamente a = 2, tomando el valor de comienzo


x0 = 2,1.
Solucin. El nmero de decimales correctos en la primera iteracin es d1 = 2 debido a que
x1 = 2,003125, por lo que el nmero de decimales en la segunda iteracin ser
d2 2d1 log10 = 4 log10 0,3 = 4,52
Como x2 = 2,00003, el nmero de decimales correctos en realidad es 4. La frmula predice
que el nmero de decimales correctos en la tercera iteracin ser
d3 2d2 log10 = 8 + 0,52 = 8,52
Pero en realidad se obtiene 11 decimales correctos, pues
x3 = 2,000000000004
Convergencia de orden mayor a dos
Generalizando, podemos describir fcilmente los esquemos que convergen ms rpidamente que los de segundo orden: supngase que g C k con k > 2, y que en el punto fijo

g 0 () = g 00 () = . . . = g (k1) () = 0 ,

114

L. Hctor Jurez V.

y que g (k) (x) 6= 0 , x X. Haciendo una expansin en series de Taylor obtenemos:


en+1 = xn+1 = g(xn ) g() =

g (k) (cn ) k
g (k) (cn )
(xn )k =
en .
k!
k!

por ser g 0 () = g 00 () = . . . = g (k1) () = 0. Por lo tanto


lm

|en+1 |
= ,
|en |k

lo cual implica un orden de convergencia k, con constante asinttica del error = |g (k) ()/k!|.

5.6.

El mtodo de Newton

Puede tenerse la impresin que la discusin de convergencia cuadrica en la seccin anterior no tiene mucho valor prtico, ya que en una ecuacin de la forma x = g(x) esperariamos
que la condicin g 0 () = 0 se satisfaga solo accidentalmente. Sin embargo, mostraremos que,
al menos para funciones diferenciales g, el procedimiento bsico del mtodo de iteracin de
punto fijo puede reformularse de tal manera que llegue a ser cuadrticamente convergente.
El problema general es calcular las raices de f (x) = 0 en algn intervalo, digamos
a x b, que llamamos X. Sea (x) una funcin en C (1) (X) que no tenga raices en X, es
decir
0 < |(x)| < , x X .
Entonces, la ecuacin
x = g(x) x (x)f (x) ,
tiene exactamente las mismas raices que f (x) en [a, b]. Muchos de los mtodos iterativos
usuales pueden obtenerse con elecciones especiales de (x). Por ejemplo, para que el mtodo
de iteracin de punto fijo tenga convergencia cuadrtica, una de las condiciones es que
g 0 () = 0. Como
g 0 (x) = 1 0 (x)f (x) (x)f 0 (x) ,
entonces para que
g 0 () = 1 0 ()f () ()f 0 () = 0
se debe tener () = 1/f 0 (). Por lo tanto, es suficiente con escoger (x) = 1/f 0 (x), y con
esta eleccin se obtiene la funcin de iteracin
g(x) = x

f (x)
.
f 0 (x)

Anlisis Numrico

115

Suponiendo f 0 (x) 6= 0, x X, el algoritmo que resulta es conocido como el Mtodo de


Newton (tambin conocido como mtodo de Newton-Raphson):
Escoger x0 cercano a , y determinar la sucesin {xn } por medio de la relacin de
recurrencia
f (xn )
xn+1 = xn 0
, n = 0, 1, 2, . . .
f (xn )
La convergencia de este mtodo inmediatamente se sigue del teorema de convergencia
cuadrtica, dado que se escogi g(x) = xf (x)/f 0 (x) para satisfacer g 0 () = 0. Sin embargo,
como veremos ms adelante, en general debemos tener x0 suficientemente cercano al punto
fijo para asegurar el xito del algoritmo.
Ejemplo 5.9. Encontrar al raiz de f (x) = x2 x 2 en el intervalo [1, 3] utilizando el
mtodo de Newton.
Solucin. El mtodo de Newton para la ecuacin correspondiente es: Dado x0 , generar {xn }
por medio de
f (xn )
f 0 (xn )
x2 xn 2
= xn n
2xn 1
2
xn + 2
=
2xn 1

xn+1 = xn

La funcin de iteracin g(x) = x f (x)/f 0 (x) = (x2 + 2)/(2x 1) es la misma que en los
dos ejemplos anteriores. Esta funcin satisface
f 00 ()f ()
2( 2 2)
=
= 0 , pues f () = 0,
[f 0 ()]2
(2 1)2
18
2
g 00 () =
= , pues = 2,
3
(2 1)
3
1 00
1
1
= | g ()| = = en+1 e2n = e2n para n grande.
2
3
3
g 0 () =

Por lo tanto, si comenzamos las iteraciones con x0 = 1.5 obtenemos


n

xn

en

e2n

0
1
2
3
4

1.5
2.125
2.00480769230769
2.00000768001966
2.00000000001966

0.5
0.125
0.0048077
0.00000768
1,97 1011

0.083333
0.0052083
0.0000077
1,966 1011

116

L. Hctor Jurez V.

Observese como el valor asinttico e2n se aproxima a en+1 cuando n aumenta. Adems, dado
que el nmero de decimales correctos en la segunda iteracin es 2, en la tercera iteracin
ser
1
d3 2d2 log10
= 4,477
3
Como en la tercera iteracin d3 = 5, en la cuarta ser aproximadamente
d4 2d3 + 0,477 = 10,477
y el valor real es d4 = 11.

5.6.1.

Interpretacin geomtrica del mtodo de Newton

El mtodo de Newton tiene una interpretacin geomtrica muy sencilla. Dada la ecuacin
f (x) = 0 en una variable, suponiendo conocido la aproximacin xn a la raz , xn+1 se calcula
como
f (xn )
,
xn+1 = xn 0
f (xn )
es decir
f (xn ) + (xn+1 xn )f 0 (xn ) = 0 .
Si reemplazamos xn+1 por la variable x, obtenemos la funcin y = f (xn ) + f 0 (xn )(x xn ),
la cual tiene como grfica a la recta tangente a f (x) en el punto (xn , f (xn )). As que xn+1
es la interseccin de esta recta con el eje x, como se ilustra en la figura siguiente.
y
y = f(x)
y = f(xn) + f(xn)(xxn)

xn+1 xn

Figura 5.4: Interpretacin geomtrica del mtodo de Newton

El mtodo de Newton es uno de los mtodos ms usados para calcular numericamente


raices de ecuaciones no lineales, pues si se escoge adecuadamente la aproximacin inicial

Anlisis Numrico

117

x0 , la sucesin obtenida por iteracin converge razonablemente rpido a la solucin. Sin


embargo, este es un mtodo denominado local, pues si x0 no es lo suficientemente cercano a
y la funcin f (x) no tiene buenas propiedades, se pueden presentar algunos problemas.
El siguiente ejemplo muestra algunas de las situaciones indeseables en el mtodo de Newton.
Ejemplo 5.10. Considere el problema f (x) = sin(x) = 0 en el intervalo X = [/2, /2].
El mtodo de Newton es: dado x0 [/2, /2], generar {xn } por medio de
xn+1 = xn

sin(xn )
f (xn )
= xn
= xn tan(xn ) .
0
f (xn )
cos(xn )

Si escogemos x0 = /2, entonces x1 = . De hecho, si escogemos x0 cerca de /2 /2,


la linea tangente intersecta al eje x fuera del intervalo y muy lejos del mismo. Por ejemplo,
tomando x0 = 1,4 se obtiene x1 = 4,3979. Esta situacin se ilustra en la Figura 5.5.
y
(/2,1)

=0

x1

y = senx

(/2,1)

Figura 5.5: Situacin indeseable en el mtodo de Newton: x1 cae muy lejos de


Otro aspecto indeseable es que si escogemos x0 = x tal que
tan(x ) = 2x

(x 1,1655 . . .) ,

entonces
x1 = x0 tan(x0 ) = x0 2x0 = x0
x2 = x1 tan(x1 ) = x0 tan(x0 ) = x0
y entramos dentro de un ciclo obteniendo x0 , x0 , x0 , x0 , . . . como se ilustra en la Figura
5.6.
La primera situacin indeseable se suprime si exigimos que
aa

f (a)
b,
f 0 (a)

y ab

f (b)
b
f 0 (b)

118

L. Hctor Jurez V.
y
(/2,1)

y = senx
x

=0

x0

(/2,1)

Figura 5.6: Situacin indeseable en el mtodo de Newton: ciclo infinito

es decir si
0

f (a)
b a,
f 0 (a)

o equivalentemente si exigimos que

f (a)

f 0 (a) b a ,

y ab

f (b)
0,
f 0 (b)

f (b)

f 0 (b) b a.

La segunda situacin indeseable se suprime si exigimos que la funcin f (x) no cambie de


concavidad en el intervalo, es decir si exigimos
f 00 (x) 0 f 00 (x) 0 , x X .
Estas observaciones se incorporan para establecer condiciones suficientes para asegurar la
convergencia del mtodo de Newton.

5.6.2.

Teorema de convergencia no-local para el modo de Newton

El siguiente teorema resume las observaciones anteriores especificando condiciones suficientes para que el mtodo de Newton converja a la raz independientemente de como se
escoja x0 dentro del intervalo [a, b] = X.
Teorema 5.11. Sea f C 2 (X), y supngase que f satisface las siguientes condiciones
1. f (a)f (b) < 0,
2. f 0 (x) 6= 0 , x X,

Anlisis Numrico

119

3. f 00 (x) 0 f 00 (x) 0, x X

f (a)
f (b)
4. 0 b a y 0 b a,
f (a)
f (b)
entonces el mtodo de Newton converger la nica solucin de f (x) = 0, para cualquier
elemento x0 X = [a, b]
La literatura sobre el mtodo de Newton es muy extensa. En particular, la convergencia
puede demostrarse bajo varios conjuntos de condiciones diferentes a las del teorema anterior.
Sin embargo, en este curso no consdieraremos otro tipo de condiciones.

Ejemplo 5.12. El problema que hemos venido considerando, f (x) = x2 x 2 = 0, cumple


las condiciones del ejemplo anterior en el intervalo [1, 3]:
1. f (1)f (3) = 8 < 0;
2. f 0 (x) = 2x 1 > 0 en [1, 3];
3. f 00 (x) = 2 > 0 , x [1, 3];

f (3) 4
f (1) 2

4. 0 = 3 1, 0 = 3 1
f (1)
1
f (3)
5

5.6.3.

Algunas modificaciones del mtodo de Newton

El mtodo de Newton requiere de la evaluacin de f y f 0 en cada iteracin. Mientras que


en muchos problemas el clculo de f 0 es trivial, en muchos otro puede llegar a representar
un verdadero problema. Por otro lado, desde el punto de vista computacional, la precisin
alcanzada con el mtodo de Newton depende de la precisin con cual ff0(x)
(x) puede evaluarse.
Puede suceder que f 0 (x) sea muy pequeo aunque no sea cero, y cualquier error al calcular
f 0 (x) ser aumentado al dividir por esta cantidad. Por estas razones, en ocasiones es conveniente considerar otros mtodos que no requieran evaluaciones de f 0 (x) y que retengan
algunas de las propiedades de convergencia del mtodo de Newton.
Mtodo de la cuerda (Whittaker)
Una forma fcil de evitar el clculo de f 0 (xn ) es reemplazar este valor por un valor
constante m, obteniendo el mtodo
xn+1 = xn

f (xn )
.
m

120

L. Hctor Jurez V.

Suponiendo que xn es cercano a la raiz , entre ms cercana sea la constante m a f 0 ()


mejor ser el mtodo.
Ejemplo 5.13. Para calcular la raz = 2 de f (x) = x2 x 2 = 0 en el intervalo [1, 3]
podemos escoger
f 0 (1) + f 0 (3)
1+5
m=
=
= 3.
2
2
Si tomamos x0 = 1, la regla xn+1 = xn f (xn )/m produce en doble precisin x1 =
1.6666666666667, x2 = 1.96296296296296, x3 = 1.99954275262917, x4 = 1.99999993030828,
x5 = 2, y observamos que en este caso la sucesin converge cuadrticamente.
En realidad, en este ejemplo se obtiene convergencia cuadrtica porqu casualmente
m = 3 es igual a f 0 (2). Sin embargo, en general el mtodo tiene convergencia lineal, y como
ya mencionamos arriba la convergencia solo ser cercana a la cuadrtica cuando m = f 0 ().
Si la estimacin de m es buena, la convergencia puede ser muy rpida. Especialmente en los
estados finales del mtodo de Newton no es necesario recalcular f 0 (x) en cada paso, y una
buena estrategia es cambiar al mtodo de la cuerda.
Mtodo de la secante
En este caso el valor de la derivada f 0 (xn ) en el mtodo de Newton se reemplaza por el
cociente de diferencias:
f (xn ) f (xn1 )
,
xn xn1
obteniendo la frmula de recurrencia:
xn1 f (xn ) xn f (xn1 )
.
xn+1 =
f (xn ) f (xn1 )
En el mtodo de la secante debemos encontrar dos iteraciones sucesivas x0 , x1 antes de
empezar a usar la frmula de recurrencia. Sin embargo, solo es necesario evaluar la funcin
una vez en cada paso, ya que el valor anterior f (xn1 ) puede retenerse. Esto representa una
ventaja sobre el mtodo de Newton donde forzosamente necesitamos dos evaluaciones, una
para f (xn ) y otra para f 0 (xn ).
El orden de convergencia de la sucesin generada por el mtodo de la secante no puede
deducirse por un anlisis semejante al de punto fijo, pues este mtodo no puede expresarse
en la forma de punto fijo xn+1 = g(xn ). Una investigacin detallada del mtodo muestra
que su orden de convergencia es fraccionario y se encuentra entre 1 y 2. Asintticamente
(Conte-deBoor)

00

f () 1/p
1
+
5
p
|en+1 | 0 |en | con p =
1,618
2f ()
2

Anlisis Numrico

121

A una convergencia de este tipo se le denomina superlineal


El mtodo de la secante tiene una interpretacin geomtrica anloga a la del mtodo
de Newton. El valor xn+1 representa la interseccin con el eje x de la recta que pasa por
los puntos (xn1 , f (xn1 )) y (xn , f (xn )), de ah el nombre de mtodo de la secante. Esto se
ilustra en la Figura 5.7.

y = f(xn) + mn (xxn)

xn+1

n+1

y = f(x)

Figura 5.7: Ilustracin geomtrica del mtodo de la secante

Ejemplo 5.14. Utilizar el mtodo de la secante para encontrar la solucin de f (x) = x2


x 2 = 0, x [1, 3] en el intervalo [1, 3].
Solucin. Escogiendo x0 = 1, x1 = 3, al aplicar el mtodo de la secante, se obtienen los
valores mostrados en la Tabla 5.3 cuando se utiliza aritmtica de punto flotante de doble
precisin en el ambiente MATLAB.
Analizando estos resultados se observa la denominada convergencia superlineal.

5.7.

Mtodo de punto fijo para sistemas de ecuaciones

Consideraremos brevemente el caso de sistemas no lineales de ecuaciones de la forma


f (x) = 0,
donde f : Rn Rn , f = (f1 , . . . , fn ). Es decir, f es una funcin vectorial con las funciones
componentes f1 , f2 , . . . , fn , cada una de las cuales es una funcin escalar en las variables

122

L. Hctor Jurez V.
00

f () 1/p
p

2f 0 () |en | (error asinttico)

xn

en

0
1
2
3
4
5
6
7
8

1
3
1.66666666666667
1.90909090909091
2.01176470588235
1.99963383376053
1.99999856948921
2.00000000017462
2.00000000000000

1
1
0.33333333333333
0.09090909090909
0.01176470588235
3.661662397104
1.43051079106
1.74621010
0

0.08572834524805
0.01047403661108
3.830517471104
1.39648907106
1.77221010
0

Cuadro 5.3: Resultados obtenidos por el mtodo de la secante.


x1 , x2 , . . . , xn : fi (x) = fi (x1 , x2 , . . . , xn ), i = 1, , n. Primero expresamos el anterior
sistema de ecuaciones en la forma de un sistema de ecuaciones de punto fijo
x = g(x) ,
o bien, escribiendo componente a componente
xi = gi (x1 , x2 , . . . , xn ) ,

i = 1, 2, . . . , n .

Esperamos que la funcin de iteracin g : Rn Rn tenga un punto fijo en un subconjunto


X Rn . El algoritmo de iteracin de punto fijo es: Dado x0 X, generamos la sucesin
{xk }
k=1 por medio de
xk+1 = g(xk ) , k = 0, 1, 2, . . .
Est claro que para cada k, xk es el vector con componentes xk1 , xk2 , , xkn .
El anlisis de los mtodos de iteracin de punto fijo para sistemas es el mismo que aquel
para ecuaciones de una variable. La nica diferencia es que para los temas de convergencia
y error utilizamos una norma vectorial en lugar del valor absoluto. Por ejemplo, para que la
funcin de iteracin sea una contraccin basta con que en alguna norma matricial k k,
kJg(x)k K < 1 ,

x X ,

donde 0 < K < 1 es alguna constante, y Jg(x) la matriz Jacobiana de g en x X:


g (x)
i
Jg(x) =
xj 1 i, j n

Anlisis Numrico

123

La anterior es una condicin suficiente y se puede jusificar utilizando del teorema del valor
medio para derivadas:
g(x) g(y) = Jg() (x y) ,

x, y X ,

y = x + (y x) ,

con 0 < < 1. En consecuencia


kg(x) g(y)k kJg()k k(x y)k Kk(x y)k
Por supuesto, la norma de la matriz Jacobiana es la norma matricial inducida por la norma

1
0
0
1

1
0
0
1

1
0
0
1

Figura 5.8: se encuentra entre x y y.

vectorial aplicada a la diferencia x y y tambin a g(x) g(y).

Ejemplo 5.15. Encontrar una solucin del sistema tres ecuaciones no lineales con tres
incgnitas
1
2
2
2
x1 81(x2 + 0.1) + sen x3 + 1.06 = 0
10 3
ex1 x2 + 20x3 +
= 0
3
3x1 cos(x2 x3 ) =

en el conjunto X = [1, 1]3 .


Solucion. La funcin vectorial f (x), x = (x1 , x2 , x3 )T , que define el sistema de ecuaciones
tiene las funciones componentes
1
2
f2 (x1 , x2 , x3 ) = x21 81(x2 + 0.1)2 + sen x3 + 1.06
10 3
f3 (x1 , x2 , x3 ) = ex1 x2 + 20x3 +
3
f1 (x1 , x2 , x3 ) = 3x1 cos(x2 x3 )

124

L. Hctor Jurez V.

Un posible sistema de punto fijo se obtiene despejando x1 de la primera ecuacin, x2 de la


segunda y x3 de la tercera:
1 1
+ cos(x2 x3 )
= g1 (x1 , x2 , x3 )
6q 3
1
x2 =
x21 + sen x3 + 1,06 0,1 = g2 (x1 , x2 , x3 )
9
1
10 3
x3 = ex1 x2
= g3 (x1 , x2 , x3 )
20
60
x1 =

La matriz Jacobiana de la funcin de iteracin

g1
x1
g

2
Jg(x) =
x1
g3
x1

g1
x2
g2
x2
g3
x2

g1
x3
g2
x3
g3
x3

en este caso es

0
x1

Jg(x) = p 2
9 x1 + sen x3 + 1,06
x2 x1 x2
e
20

x3
sen(x2 x3 )
3
0
x1 x1 x2
e
20

x21 + sen x3 + 1,06


0

18

x2
sen(x2 x3 )
3 cos x
3

Si tomamos X = [1, 1]3 , es decir 1 x1 , x2 , x3 1, entonces la ecuacin de punto fijo


satisface g(X) X, pues
1 1
1 1
+ cos(1) x1 + cos(0)
6 3
6
p
p 3
0 + sen(1) + 1,06
1 + sen(1) + 1,06
0,1 x2
0,1
9
9
e
10 3
e1 10 3

x3

20
60
20
60
es decir
0,346 g1 (x1 , x2 , x3 ) 0,5
0,048 g2 (x1 , x2 , x3 ) 0,089
0,610 g3 (x1 , x2 , x3 ) 0,492 .
Por lo tanto, la funcin de iteracin tiene su imagen dentro de X = [1, 1]3 . Adems, si
consideramos la norma infinito, se obtiene kJg(x)k es el mximo de las cantidades
| sen(x2 x3 )|
|x1 | + | cos x3 |/2
ex1 x2
(|x2 | + |x3 |), p 2
,
(|x1 | + |x2 |)
3
20
9 x1 + sen x3 + 1,06

Anlisis Numrico

125

con 1 x1 , x2 , x3 1. Es decir

kJg(x)k max

2 sen(1)
3/2
2e
,
,
3
9 0,06 20

)
0,6804 ,

de tal forma que g es una contraccin en X = [1, 1]3 con K 0,6804. Si tomamos como
punto de comienzo x0 = (0,2, 0,1, 0,1)T , se obtienen los valores mostrados en la Tabla 5.4
k

x1

x2

x3

0
1
2
3
4
5
6
7
8
9
10

0.2
0.49998333347222
0.49999437090050
0.49999999987705
0.49999999999043
0.5
0.5
0.5
0.5
0.5
0.5

0.1
0.01112036535646
0.00005190019018
0.00001447284345
0.00000006935321
0.00000001934170
0.00000000009269
0.00000000002585
0.00000000000012
0.00000000000003
0.0

-0.1
-0.52260870926364
-0.52332154714020
-0.52359747812499
-0.52359841377852
-0.52359877386447
-0.52359877511476
-0.52359877559598
-0.52359877559765
-0.52359877559830
-0.52359877559830

Cuadro 5.4: Resultados de la iteracin de punto fijo.


1

La solucin exacta el sistema es x1 = , x2 = 0, x3 = .


2
6

5.7.1.

Aceleracin de tipo Seidel en las iteraciones

Para sistemas de ecuaciones puede acelerarse la convergencia del mtodo de punto fijo
k+1
k+1
k
k
k
utilizando las ltimas estimaciones xk+1
1 , x2 , . . . , xi1 en lugar de x1 , x2 , . . . , xi1 para
calcular xk+1
, para 2 i n, como se hace en el mtodo de Gauss-Seidel para sistemas
i
lineales. En el ejemplo anterior, las nueva realcin de recursin al realizar aceleracin del
tipo Seidel es:
1 1
xk+1
= + cos(xk2 xk3 )
1
6q 3
1
k
2
xk+1
=
(xk+1
2
1 ) + sen x3 + 1,06 0,1
9
k+1 k+1
1
10 3
xk+1
= ex1 x2
3
20
60
Tomando el mismo punto de comienzo x0 = (0,2, 0,1, 0,1)T , se obtienen los valores mostrados en la Tabla 5.5. Claramente se observa la aceleracin de la convergencia.

126

L. Hctor Jurez V.
k

x1

x2

x3

0
1
2
3
4
5
6

0.2
0.49998333347222
0.49997746826183
0.49999999996378
0.5
0.5
0.5

0.1
0.02222979355858
0.00002815366194
0.00000003762202
0.00000000005028
0.00000000000007
0.0

-0.1
-0.52304612619137
-0.52359807179342
-0.52359877465775
-0.52359877559704
-0.52359877559830
-0.52359877559830

Cuadro 5.5: Resultados al aplicar acelacin de tipo Seidel.

5.8.

Mtodo Newton para sistemas de ecuaciones

Al igual que en el caso de una variable el mtodo de punto fijo converger cuadrticamente si g C 2 (X)), y si la matriz Jacobiana es nula en el punto fijo , es decir si todas
las derivadas parciales gj /xi evaluadas en el punto fijo son cero. Asimismo, el mtodo de
Newton para sistemas de ecuaciones no lineales f (x) = 0, con f : X Rn , se puede constuir
en forma anloga a como lo hicmos en el caso escalar. En este caso hacemos la eleccin para
la funcin de iteracin en la forma
g(x) = x A(x)f (x) ,
donde la matriz A(x) Rnn depende de x Rn . El sistema de ecuaciones f (x) = 0 y el
sistema de punto fijo x = g(x) tienen la misma solucin si la matriz A(x) es no-singular
para toda x del dominio de f , dado que en este caso
x = g(x) A(x)f (x) = 0 f (x) = 0 .
Adems, para que el mtodo sea de segundo orden, se debe satisfacer
0 = Jg() = I A0 () f () A() Jf () = I A() Jf () .
Para que esto suceda basta pedir A(x) = [Jf (x)]1 , x. Con esta eleccin se tiene
g(x) = x [Jf (x)]1 f (x) ,
donde Jf (x) debe ser invertible para toda x cerca de la raz (al menos). Por lo tanto, el
mtodo de Newton es:
Dado x0 cerca de la solucin , generar la sucesin {xk }
k=1 por medio de
xk+1 = xk [Jf (xk )]1 f (xk ) .

Anlisis Numrico

127

Para evadir el costo excesivo la evaluacin de la inversa de Jf (xk ) en cada iteracin, podemos
expresar la iteracin en la forma
xk+1 = xk + y ,
donde y Rn resuelve el sistema lineal
Jf (xk )y = f (xk ) .
Por lo tanto el mayor costo del Mtodo de Newton consiste resolver un sistema lineal de n
ecuaciones con n incgnitas en cada iteracin. Podemos utilizar el mtodo de factorizacin
LU para resolver estos sistemas lineales.
Si cada una de las funciones fi (x), i = 1, 2, . . . , n tienen segundas derivadas continuas
y adems Jf (x) es no singular x X, entonces el mtodo converge cuadrticamente si el
punto inicial x0 se escoge suficientemente cercano a la raz .
Ejemplo 5.16. Consideremos el sistema no lineal de el ejemplo anterior. La matriz Jacobiana del sistema f (x) = 0 es

Jg(x) =
2x1
x2 ex1 x2

x3 sen(x2 x3 ) x2 sen(x2 x3 )

162(x2 + 0,1)
cos x3

x
x
1
2
x1 e
20

(5.1)

Tomando x0 = (0,2, 0, 1, 0,1)T , como en los ejemplos anteriores, obtenemos los resultados
mostrados en la Tabla 5.6. Se observa claramente la convergencia cuadrtica del mtodo.
k

x1

x2

x3

0
1
2
3
4
5

0.2
0.49986882803679
0.50001730001008
0.50000016585639
0.50000000001512
0.5

0.1
0.02161464530261
0.00192386026501
0.00001819182542
0.00000000165766
0.0

-0.1
-0.52190738633341
-0.52354815221340
-0.52359829975132
-0.52359877555494
-0.52359877559830

Cuadro 5.6: Resultados obtenidos con el mtodo de Newton.

128

L. Hctor Jurez V.

Captulo 6

Interpolacin Polinomial e
Integracin Nmerica
Los polinomios son utilizados como el medio bsico de aproximacin de funciones en
muchas reas como son:
a) Aproximacin de derivadas e integrales,
b) Solucin numrica de ecuaciones diferenciales e integrales,
c) Solucin de ecuaciones no lineales,
entre otras, debido a que tienen una estructura muy simple. La interpolacin polinmial es un
rea particular de la teora de aproximacin de funciones y, de hecho, es la tcnica ms usada
para aproximar funciones, ms ampliamente incluso que los mtodos de mnimos cuadrados,
funciones racionales, funciones trigonomtricas y splines. El teorema de aproximacin de
Weierstrass garantiza la existencia de un polinomio que aproxima a una funcin continua
dada con la precisin deseada:
Teorema 6.1. Teorema de aproximacin de Weierstrass. Dada f C[a, b], para toda
> 0, existe un polinomio p tal que |f (x) p (x)| < , x [a, b].
Geomtricamente, el teorema de aproximacin de Weierstrass establece que para cualquier
> 0 podemos encontrar una f ranja con grosor 2 alrededor de f (x) sobre [a, b] dentro de
la cual se encuentra un polinomio P , sin importar que tan pequea sea . Sin embargo, este
teorema es til solo desde el punto de vista terico, pero no lo es desde el punto de vista
computacional, pues no ofrece un mtodo constructivo para calcular dicho polinomio. Por
129

130

L. Hctor Jurez V.
y
y=Pe(x)

Ancho 2e

y=f(x)

Figura 6.1: Teorema de aproximacin de Weierstrass

tal motivo es necesario recurrir a otras herramientas para contruir polinomios que aproximen
a las funciones.

6.1.

Polinomio de Taylor

Una forma de aproximar una funcin suave localmente y cerca de un punto dado x0 ,
es por medio del polinomio de Taylor. Sea Ix0 un intervalo que contiene x0 . Entonces
Dada la funcin f C n+1 (Ix0 ), donde Ix0 es un intervalo que contiene x0 , el polinomio
de Taylor de grado n que aproxima f (x) en Ix0 es
pn (x) = f (x0 ) + f 0 (x0 )(x x0 ) + . . . +

f (n) (x0 )
(x x0 )n .
n!

El trmino de error o trmino complementario de la aproximacin es


en (x) = f (x) pn (x) =

f (n+1) ()
(x x0 )n+1 ,
(n + 1)!

con entre x y x0 . Este error aumenta conforme x se aleja del punto x0 , y tambin si la
derivada f n+1 () es muy grande.
Ejemplo 6.2. El polinomio de Taylor de f (x) = ex cerca de x0 = 0 es
pn (x) = 1 + x +
y el error es
en (x) =

x2 x3
xn
+
+ ... +
,
2!
3!
n!

e
xn+1 ,
(n + 1)!

con entre 0 y x.

Anlisis Numrico

131
8
x

y=e
p (x)
1

p (x)

p3(x)

5
4
3
2
1

0
1
2

1.5

0.5

0.5

1.5

Figura 6.2: Polinomios de Taylor de orden 1, 2 y 3 para la funcin exponencial

La Figura 6.2 muestra la grfica de la funcin exponencial junto con la grfica de los
polinomios de Taylor de grado 1, 2 y 3 en el intervalo [1, 1]. Se observa que al aumentar
el grado, la aproximacin mejora, mientras que al aumentar |x| la aproximacin se deteriora
en cada caso, como era de esperarse.

6.2.

Interpolacin de Lagrange

La forma ms usual de aproximar una funcin dada mediante un polinomio de interpolacin es por medio del denominado polinomio de interpolacin de Lagrange. Este polinomio
se obtiene resolviendo el siguiente problema:
Dados n + 1 puntos distintos x0 , x1 , . . . , xn y los valores f (x0 ), f (x1 ), . . ., f (xn ) de
una funcin continua f (x) definida en un intervalo [a, b], encontrar un polinomio pn (x) de
grado n tal que
pn (xj ) = f (xj ) , j = 0, 1, . . . , n .
Debido a que se deben satisfacer n + 1 condiciones y se deben calcular n + 1 coeficientes
c0 , c1 , . . . , cn que definen al polinomio
pn (x) = c0 + c1 x + . . . + cn xn ,
debemos esperar que el problema tenga una solucin nica. Anteriormente hemos demostrado que, efectivamente, este polinomio es nico si los puntos xj , j = 0, 1, . . . , n, son distintos,

132

L. Hctor Jurez V.

dado que en este caso la matriz de Vandermonde es nosingular. En realidad, la existencia y


unicidad no depende de la estructura de la matriz de Vandermonde, y podemos demostrar
que el polinomio existe y es nico por otros medios. Por ejemplo, la unicidad puede demostrarse como sigue:
Supongase que pn (x) y qn (x) son dos polinomios de grado n que interpolan a f (x) en
xj , j = 0, . . . , n, es decir
pn (xj ) = qn (xj ) = f (xj ) ,

j = 0, 1, . . . , n .

Entonces, rn (x) = pn (x)qn (x) es un polinomio de grado n con n+1 raices x0 , x1 , . . . , xn .


Pero cualquier polinomio de grado n con un nmero de raices mayor a n debe ser constante
e igual a cero. Por lo tanto rn (x) 0, x, y en consecuencia pn (x) = qn (x), x [a, b].
Para probar la existencia de tal polinomio basta con construirlo. Para lograr esto primero
construirmos los n + 1 polinomios de Lagrange `j (x), j = 0, 1, . . . , n, de grado n. Cada
uno de estos polinomios esta asociado a un nodo. Por ejemplo, el polinomio `(x) tiene la
propiedad de que `j (xj ) = 1 y `j (xj ) = 0 si i 6= j, y se puede representar como el producto
n
Y

`j (x) =

k=0, k6=j

(x xk )
(xj xk )

Esta claro que se satisface `j (xi ) = ij . La Figura 6.3 muestra la grfica de este polinomio
cerca de su punto correspondiente xj .

(xj ,1)
y = l (x)
j

j2

xj 1

xj

j+1

xj + 2

Figura 6.3: Polinomio bsico de Lagrange asociado al punto xj

Una vez que hemos construido los polinomios de Lagrange, se procede a construir el
polinomio de interpolacin como una combinacin de los n + 1 polinomios de Lagrange

Anlisis Numrico

133

como se indica a continuacin.


pn (x) =

n
X

f (xj )`j (x).

j=0

Claramente este polinomio es de grado n y satisface


pn (xi ) =

n
X

f (xj )`j (xi ) =

j=0

n
X

f (xj )ij = f (xi ) ,

i = 1, . . . , n .

j=0

Aunque el polinomio de interpolacin es nico, hay varias formas de representarlo. Una de


ellas es la anterior, y se le conoce como la forma de Lagrange del polinomio de interpolacin.
Ejemplo 6.3. Dado la funcin f (x) definida sobre el intervalo [a, b]. El polinomio p1 (x) de
grado 1 que interpola f (x) en dos puntos distintos x0 y x1 del intervalo es
p1 (x) =

x x0
x x1
f (x0 ) +
f (x1 ) .
x0 x1
x1 x0

Este polinomio tiene como grfica una recta. La Figura 6.4 ilustra esta situacin.

y=P1(x)
y=f(x)
f(x1)
f(x0)
x0=a

x1=b

Figura 6.4: Polinomio de interpolacin de Lagrange de grado 1.

El polinomio p2 (x) de grado 2 y que interpola f (x) tres puntos distintos x0 , x1 y x2 = b


del intervalo es
p2 (x) =

(x x1 )(x x2 )
(x x0 )(x x2 )
f (x0 ) +
f (x1 )
(x0 x1 )(x0 x2 )
(x1 x0 )(x1 x2 )
(x x0 )(x x1 )
+
f (x2 ),
(x2 x0 )(x2 x1 )

el tiene como grfica una parbola como se muestra el la Figura 6.5

134

L. Hctor Jurez V.

y=P2(x)
y=f(x)

f(x0)
x0=a

f(x1)
x1

f(x2)
x1=b

Figura 6.5: Polinomio de interpolacin de Lagrange de grado 2.

6.3.

Error en el polinomio de interpolacin

La funcin f (x) y su polinomio de interpolacin coinciden en los puntos de interpolacin.


Sin embargo, tambin queremos el polinomio de interpolacin para aproximar la funcin
en puntos distintos a puntos los de interpolacin, asi como estimar la diferencia en (x)
f (x) pn (x) en cualquier x [a, b]. Sin hiptesis adicionales para f (x) no podemos decir
gran cosa sobre el error en (x). Sin embargo, si suponemos que f (x) es suficientemente suave,
es decir si la funcin tiene suficientes derivadas continuas, podemos establecer una estimacin
del error.
Teorema 6.4. Si f C n+1 [a, b] y pn (x) es el polinomio de interpolacin n+1 puntos distintos x0 = a, x1 , . . . , xn = b, entonces para cada x [a, b] existe (x) I[x0 , x1 , . . . , xn , x]
(el intervalo cerrado ms pequeo que contiene x0 , x1 , . . . , xn , x) tal que
f (x) pn (x) =

f n+1 ((x))
w(x)
(n + 1)!

con

w(x) =

n
Y

(x xk ).

k=0

Demostracin. Si x = xi para algn 0 i n, la igualdad se satisface trivialmente pues


ambos lados de son iguales a cero. As que supongase que x 6= xi , i = 0, 1, . . . , n, y sea
F (t) = f (t) pn (t)

f (x) pn (x)
w(t) ,
w(x)

t [a, b] .

Claramente F (t) esta bin definida pues w(x) 6= 0 ya que x 6= xi , i. Adems F (t) es de
clase C n+1 [a, b] y tiene al menos n + 2, a saber x0 , x1 , . . ., xn , x. Luego F 0 (t) tiene al menos
n + 1 ceros, F 00 (t) tiene al menos n ceros , . . . , y F (n+1) (t) tiene al menos un cero en [a, b]

Anlisis Numrico

135

que llamaremos (x). Por lo tanto


0 = F n+1 ((x)) = f n+1 ((x)) 0

f (x) pn (x)
(n + 1)! .
w(x)

Se concluye que
f (x) pn (x) =

f n+1 ((x))
w(x).
(n + 1)!

Ejemplo 6.5. Cuando se hace interpolacin lineal en los puntos x0 , x1 la frmula del error
es
f 00 ((x))
f (x) p1 (x) =
(x x0 )(x x1 ) con (x) [x0 , x1 ] .
2
Supopiendo f C 2 [a, b], sea M2 = maxaxb |f 00 (x)|. El punto x donde |w(x)| = |(x
1
x0 )(x x1 )| toma su valor mximo es x = (x0 + x1 ) (ver Figura 6.6 ). Por lo tanto
2
max |w(x)| = |w(x )| =

axb

h2
4

donde h = x1 x0 .

y= w(x)

x*
x0

x1

Figura 6.6: El punto mximo de |w(x)|

Utilizando estas expresiones se encuentra la siguiente cota para el error


max |f (x) p1 (x)|

axb

M2 2
M2 h2
=
h .
2 4
8

es decir
kf (x) p1 (x)k

M2 2
h .
8

136

L. Hctor Jurez V.

Se puede hacer el mismo clculo en el caso de interpolacin cuadrtica en x0 , x1 , x2 puntos


igualmente espaciados, es decir x0 , x1 = x0 + h, x2 = x0 + 2h. En este caso se obtiene
f (x) p2 (x) =

f (3) ((x))
(x x0 )(x x1 )(x x2 ) con (x) (x0 , x0 + 2h) ,
3!

es decir

M3
M3
kwk = h3 ,
6
9 3
2
= h3 .
3 3

kf (x) p2 (x)k
donde M3 = maxaxb |f (3) (x)| y kwk

Ejemplo 6.6. Sea

Z
K(y) = 2 p
0

dx
1 sen2 y sen2 x

Para ciertos valores de y medidos en grados se tiene K(1) = 1,5709, K(4) = 1,5727, K(b) =
1,5751. Calcular K(3,5) usando interpolacin polinomial cuadrtica.
Solucin. Los puntos de interpolacin son y0 = 1, y1 = 4, y2 = 6. El polinomio de Lagrange
es
(y y1 )(y y2 )
(y y0 )(y y2 )
+ K(y1 )
(y0 y1 )(y0 y2 )
(y1 y0 )(y1 y2 )
(y y0 )(y y1 )
+K(y2 )
(y2 y0 )(y2 y1 )

p2 (y) = K(y0 )

Por lo tanto
(3,5 4)(3,5 6)
(3,5 1)(3,5 6)
+ 1,5727
(1 4)(1 6)
(4 1)(4 6)
(3,5 1)(3,5 4)
+1,5751
(6 1)(6 4)
= 1,57225

p2 (3,5) = 1,5703

El nmero de operaciones para construir y evaluar el polinomio de interpolacin en forma


de Lagrange es:
Qn

(x xk )
se necesitan 2(n 1) multiplicaciones, 1
(xj xk )
divisin, y 2n restas, para cada j. En total se necesitan [2(n 1) + 1](n + 1) =
(2n 1)(n + 1) multiplicaciones/divisiones y 2n(n + 1) restas.

a) Para evaluar `j (x) =

k=0, k6=j

Anlisis Numrico

137

b) Para evaluar pn (x) =

Pn

j=0 f (xj )`j (x)

se requieren n + 1 multiplicaciones, y n sumas.

El nmero total de operaciones es: 2n(n + 1) multiplicaciones/divisiones y n(2n + 3)


sumas/restas.

6.4.

Forma de Newton del polinomio de interpolacin

En ocasiones uno no sabe a ciencia cierta cuantos puntos de interpolacin usar. Dada esta
circunstancia sera deseable calcular los polinomios de interpolacin p0 (x), p1 (x), p2 (x), . . .
en forma sucesiva aumentando el nmero de puntos de interpolacin hasta obtener una
aproximacin pn (x) satisfactoria para la funcin f (x). En un proceso de este tipo el uso de
la forma de Lagrange no es adecuada pues no es posible utilizar ninguna ventaja obvia del
polinomio anterior pk1 para construir el siguiente pk (x). Para este y otros propsitos, la
forma de Newton del polinomio de interpolacin es mejor. En esta forma, dada la funcin
f (x) y los puntos de interpolacin x0 , x1 , . . . , xn , el polinomio de interpolacin pn (x) se
expresa utilizando los primeros n puntos de interpolacin x0 , x1 , . . . , xn1 como centros
para escribir
pn (x) = a0 + a1 (x x0 )+a2 (x x0 )(x x1 ) + . . .
+ an (x x0 )(x x1 ) . . . (x xn1 )
es decir
pn (x) = a0 +

n
X
j=1

aj

j1
Y

(x xk ) ,

k=0

donde a0 , a1 , . . . , an son coeficientes a determinar. Antes de abordar el clculo de estos


coeficientes estudiaremos algunas propiedades de esta forma de representar el polinomio de
interpolacin. Estas propiedades nos permitirn verificar que esta representacin permite la
construccin de un polinomio de interpolacion de grado k a partir del de grado menor k 1.
Sea qk (x) la suma de los primeros k + 1 trminos de pn (x), es decir
qk (x) = a0 + a1 (x x0 )+a2 (x x0 )(x x1 ) + . . .
+ ak (x x0 )(x x1 ) . . . (x xk1 )
Entonces los trminos restantes de pn (x) tienen como factor comn el producto
(x x0 )(x x1 ) . . . (x xk ) .
As que
pn (x) = qk (x) + (x x0 )(x x1 ) . . . (x xk )r(x)

138

L. Hctor Jurez V.

donde r(x) es un polinomio de grado n (k + 1). Adems qk (x) interpola f (x) en los
puntos x0 , x1 , . . . , xk , pues
qk (xj ) = pn (xj ) (xj x0 )(xj x1 ) . . . (xj xk )r(xj )
= pn (xj ) si 0 j k
= f (xj )
Entonces qk (x) es el nico polinomio de interpolacin pk (x) para f (x) en x0 , x1 , . . . , xk , y
podemos escribir
pk (x) = qk (x) + (x x0 )(x x1 ) . . . (x xk ) r(x),
y con k = n 1, obtenemos
pn (x) = pn1 (x) + an (x x0 )(x x1 ) . . . (x xn1 )
Entonces, el polinomio de interpolacin pn (x) puede construirse paso a paso construyendo
la sucesin de polinomios de interpolacin p0 (x), p1 (x),. . ., pn (x), donde pk (x) se construye
de pk1 (x) agregando el siguiente trmino en la forma de Newton , el cual es
ak (x x0 )(x x1 ) . . . (x xk1 ).

6.4.1.

Clculo de los coeficientes a0 , a1 , . . . , an

Observese que cada coeficiente ak es el coeficiente principal del polinomio pk (x) que
interpola a f (x) en los puntos x0 , x1 , . . . , xk . Adems este coeficiente depende de los puntos
y los valores de f (x) en estos puntos pues
f (x0 )

f (x1 )

f (xk )

p0 (x0 ) = a0

p1 (x1 ) = f (x0 ) + a1 (x1 x0 )


f (x1 ) f (x0 )
a1 =
x1 x0
f (x2 ) = p2 (x2 ) = p1 (x2 ) + a2 (x2 x0 )(x2 x1 )
f (x2 ) p1 (x2 )
a2 =
(x2 x0 )(x2 x1 )
..
.
pk (xk ) = pk1 (xk ) + ak (xk x0 )(xk x1 ) . . . (xk xk1 )
f (xk ) pk1 (xk )
ak = Qk1
j=0 (xk xj )

Anlisis Numrico

139

Para indicar la dependencia de ak de x0 , x1 , . . . , xk y f (x0 ), f (x1 ), . . . , f (xk ) escribimos


ak := f [x0 , x1 , . . . , xk ] .
Esta expresin se denomina la ksima diferencia dividida de f (x) en los puntos x0 , x1 , . . . , xk ,
y es igual al coeficiente principal del polinomio que interpola f (x) en dichos puntos.
Podemos encontrar una forma ms conveniente de calcular las diferencias divididas, en
lugar del mtodo recursivo anterior. Sabemos que
a0 = f (x0 )
f (x1 ) f (x0 )
a1 =
x1 x0

f [x0 ]
f [x0 , x1 ]

Las diferencias de orden mayor pueden construirse utilizando la frmula


ak =

f [x1 , . . . , xk ] f [x0 , . . . , xk1 ]


f [x0 , x1 , . . . , xk ]
(xk x0 )

La validez de esta ltima frmula viene dada por el siguiente argumento debido a Neville:
Supngase que la frmula se ha obtenido para diferencias divididas hasta el orden k 1,
y considerense los puntos x0 , x1 , . . . , xk . Sea pk1 (x) el polinomio de grado k 1 que
interpola f (x) en x0 , x1 , . . . , xk1 , y sea qk1 (x) el polinomio de grado k 1 que interpola
f (x) en x1 , x2 , . . . , xk como se muestra en la Figura 6.7.

qk-1(x)

x1

...

xk-1

x0

xk

pk-1(x)

Figura 6.7: Polinomios en el argumento de Neville.

Luego, el polinomio
p(x) =

x x0
xk x
qk1 (x) +
pk1 (x),
xk x0
xk x0

140

L. Hctor Jurez V.

es un polinomio de grado k. Adems se puede verificar directamente que este polinomio


interpola f (x) en los puntos x0 , x1 , . . . , xk . Por unicidad en el polinomio de interpolacin,
pk (x) = p(x), y en consecuencia
pk (x) =

x x0
x xk
qk1 (x)
pk1 (x).
xk x0
xk x0

Claramente
coef. principal de pk =

coef. principal de qk1 coef. principal de pk1

xk x0
xk x0

Es decir

f [x1 , . . . , xk ] f [x0 , . . . , xk1 ]


(xk x0 )
Resumiendo, la forma de Newton del polinomio de interpolacin en los puntos
x0 , x1 , . . . , xn para f (x) es
f [x0 , x1 , . . . , xk ] =

pn (x) = f (x0 ) + f [x0 , x1 ](x x0 ) + f [x0 , x1 , x2 ](x x0 )(x x1 ) + . . .


+f [x0 , x1 , . . . , xn ](x x0 ) . . . (x xn1 )
= f (x0 ) +

n
X

f [x0 , . . . , xk ]

k1
Y

(x xj )

j=0

k=1

donde

f [x1 , . . . , xk ] f [x0 , . . . , xk1 ]


, k = 1, 2, . . . , n .
(xk x0 )
Esta ltima expresin se utiliza para generar las diferencias divididas en forma simple por
medio de una tabla denominada tabla de diferencias divididas. Por ejemplo, para el
caso n = 3, esta tabla queda de la siguiente manera
f [x0 , x1 , . . . , xk ] =

f []

f [, ]

f [, , ]

f [, , , ]

x0 f (x0 )
f [x0 , x1 ] =

f (x1 )f (x0 )
x1 x0

x1 f (x1 )
f [x1 , x2 ] =

f [x1 ,x2 ]f [x0 ,x1 ]


x2 x0

f [x1 , x2 , x3 ] =

f [x2 ,x3 ]f [x1 ,x2 ]


x3 x1

f (x2 )f (x1 )
x2 x1

x2 f (x2 )
f [x2 , x3 ] =

f [x0 , x1 , x2 ] =

f [x0 , x1 , x2 , x3 ]

f (x3 )f (x2 )
x3 x2

x3 f (x3 )

donde
f [x0 , x1 , x2 , x3 ] =

f [x1 , x2 , x3 ] f [x0 , x1 , x2 ]
x3 x0

Anlisis Numrico

141

Ejemplo 6.7. Consideremos de nuevo el ejemplo anterior, donde K(1) = 1,5709, K(4) =
1,5727 y K(6) = 1,5751. Calcular K(3,5) con interpolacin cuadrtica utilizando la forma
de Newton.
Solucin. Primero calculamos la tabla de diferencias divididas:
y

K[]

K[, ]

K[, , ]

1 1.5709
1,57271,5709
41

= 0,0006

1,57511,5727
64

0,00120,0006
61

1,5727

= 0.00012

= 0,0012

1,5751

Despus, tomamos los coeficientes en la diagonal superior (en negrita) para construir el
polinomio de interpolacin:
p2 (y) = K(1) + K[1, 4](y 1) + K[1, 4, 6](y 1)(y 4)
= 1,5709 + 0,0006(y 1) + 0,00012(y 1)(y 4),
y evaluamos directamente en y = 3,5:
p2 (3,5) = 1,5709 + 0,0006(3,5 1) + 0,00012(3,5 1)(3,5 4) = 1,57225
Este resultado coincide con el encontrado con el polinomio de interpolacin en forma de
Lagrange.

6.4.2.

Nmero de operaciones en la forma de Newton

Para hacer interpolacin en la forma de Newton se requieren


a) 2 restas y 1 divisin para evaluar cada una de las n(n + 1)/2 diferencias divididas. Es
decir, se requieren n(n + 1) restas y n(n + 1)/2 disiones.
b) n(n + 1)/2 + n sumas y n(n + 1)/2 multiplicaciones para evaluar el polinomio .
Luego, el nmero total de operaciones es
3(n + 1)
n(n + 1)
+ n = n[
+ 1] sumas/restas
2
2
n(n + 1) n(n + 1)
+
= n(n + 1) multiplicaciones/divisiones
2
2

n(n + 1) +

142

L. Hctor Jurez V.

El nmero de operaciones para evaluar el polinomio puede reducirse expresando el polinomio


de interpolacin de Newton en forma anidada:
pn (x) = a0 + a1 (x x0 ) + a2 (x x0 )(x x1 ) + a3 (x x0 )(x x1 )(x x2 )
+ . . . + an (x x0 )(x x1 ) . . . (x xn1 )
= a0 + (x x0 )[a1 + a2 (x x1 ) + a3 (x x1 )(x x2 )
+ . . . + an (x x1 ) . . . (x xn1 )]
= a0 + (x x0 )[a1 + (x x1 )[a2 + a3 (x x2 )
+ . . . + an (x x2 ) . . . (x xn1 )]]
..
.
= a0 + (x x0 )[a1 + (x x1 )[a2 + (x x2 )[a3
+ . . . + (x xn2 )[an1 + an (x xn1 )] . . .]]]
cuya evaluacin toma n multiplicaciones y 2n sumas. As que para calcular pn (x) y evaluarlo
se requieren en total
n(n + 1) + 2n = n(n + 3) sumas y
n+3
n(n + 1)
+ n = n(
) multiplicaciones
2
2
El algoritmo para evaluar el polinomio en forma anidada se puede escribir de la siguiente
manera:
Algoritmo para evaluar pn (z) An := an
Para k = n 1, n 2, . . . , 0 hacer
Ak := ak + Ak+1 (z xk )
Fn
Entonces pn (z) = A0 . Los coeficientes ak son las correspondientes diferencias divididas
f [x0 , x1 , . . . , xk ].
Ejemplo 6.8. Con este algoritmo, la evaluacin del polinomio en el ejemplo anterior se
escribe
A2 = a2 = 0,00012
A1 = a1 + A2 (3,5 x1 ) = 0,0006 + 0,00012(3,5 4) = 0,00054
A0 = a0 + A1 (3,5 x0 ) = 1,5709 + 0,00054(3,5 1) = 1,57225

Anlisis Numrico

143

Por lo tanto p2 (3,5) = 1,57225.

6.4.3.

Interpolacin en un nmero creciente de puntos

Si conocemos el polinomio de interpolacin pn (x) de f (x) en x0 , x1 , . . . , xn , y agregamos


un punto adicional xn+1 , entonces, como ya hemos anteriormente, el polinomio pn+1 (x) que
interpola f (x) en x0 , x1 , . . . , xn , xn+1 es
pn+1 (x) = pn (x) + f [x0 , x1 , . . . , xn+1 ](x x0 )(x x1 ) . . . (x xn ) .
Ejemplo 6.9. Anteriormente hemos encontrado el polinomio de grado dos que interpola
K(y) en y = 1, 4, 6. Si agregamos el valor K[0] = 1,5708, obtenemos la tabla:

K[]

K[, ]

K[, , ]

K[, , , ]

1 1.5709
0,0006
4

1,5727

0.00012
0,0012

1,5751

-0.000001
0,000121

0,000717
0

1,5708

Por lo tanto, el polinomio p3 (y) que interpola K(y) en y = 1, 4, 6, 0, es


p3 (y) = p2 (y) + K[1, 4, 6, 0](y 1)(y 4)(y 6) ,
y su valor en y = 3,5 es
p3 (3,5) = p2 (3,5) + (0,000001)(2,5)(0,5)(2,5)
= 1,57225 0,000003125
= 1,5722469

6.4.4.

El error del polinomio en forma de Newton

Sea f (x) definida en [a, b] y pn (x) el polinomio que interpola a f (x) en los puntos
x0 , x1 , . . . , xn . Consideremos x un punto en [a, b] distinto de los puntos de interpolacin

144

L. Hctor Jurez V.

xi , i = 0, 1, . . . , n, y sea pn+1 (x) el polinomio que interpola f (x) en los puntos x0 , x1 , . . . , xn , x,


entonces
pn+1 (x) = pn (x) + f [x0 , . . . , xn , x]w(x),
donde w(x) = (x x0 ) . . . (x xn ). As que
f (x) = pn+1 (x) = pn (x) + f [x0 , . . . , xn , x]w(x)
es decir
en (x) = f (x) pn (x) = f [x0 , . . . , xn , x]w(x)
En general, para toda x en [a, b]
en (x) = f (x) pn (x) = f [x0 , . . . , xn , x]w(x) .
Anteriormente encontramos, en el anlisis del error del polinomio de la forma de Lagrange,
que si f C n+1 [a, b], entonces
en (x) = f (x) pn (x) =

f (n+1) ((x))
w(x), con (x) I[x0 ,...,xk ]
(n + 1)!

Comparando las dos ltimas expresiones arriba, hemos encontrado que si f C n+1 [a, b],
entonces
f [x0 , . . . , xn , x] =

f (n+1) ((x))
.
(n + 1)!

En general, se tiene que si f C (k) (I[x0 ,...,xk ] ), entonces


f [x0 , . . . , xk ] =

6.5.
6.5.1.

f (k) ()
con I[x0 ,...,xk ] .
(k)!

(6.1)

Integracin Numrica
Frmulas de NewtonCotes

Nuestro objetivo es estimar la integral de una funcin f (x) sobre un intervalo dado
[a, b], especialmente cuando esta integral no puede calcularse analticamente o cuando solo
se conocen valores de f en un nmero finito de puntos. Una de las estrategias para aproximar
esta integral consiste en aproximar f (x) por el polinomio pk (x) que interpola f en los puntos
conocidos x0 , . . . , xk del intervalo. Entonces
Z b
Z b
f (x)dx
pk (x)dx
a

Anlisis Numrico

145

Si utilizamos la forma de Lagrange del polinomio de interpolacin


pk (x) =

k
X

f (xj )`j (x)

j=0

obtenemos

f (x)dx
a

k
X

Z
wj f (xj )

con wj =

j=0

`j (x)dx.

Entonces, la integral de f (x) sobre [a, b] se aproxima por medio de un promedio pesado de
valores de f (x) en los puntos de interpolacin, en donde los pesos wj son las integrales de las
funciones de Lagrange `j (x). A estas frmulas de integracin numrica se les conoce como
de Newton-Cotes. Por supuesto, tambin podemos realizar la aproximacin utilizando la
forma de Newton del polinomio de interpolacin
pk (x) = f (x0 ) +

k
X

f [x0 , . . . , xj ]

j=1

j1
Y

(x xl ) .

l=0

En este caso obtenemos


Z b
Z
k
X
f (x)dx (b a)f (x0 ) +
f [x0 , . . . , xj ]
a

6.5.2.

j=1

b j1
Y

a l=0

(x xl )dx .

El error en las frmulas de integracin de Newton-Cotes

Como vimos anteriormente, el error en el polinomio de interpolacin en forma de Newton


es para toda x I[x0 , x1 , . . . , xk ] es
ek (x) = f (x) pk (x) = f [x0 , . . . , xk , x]wk+1 (x) , con wk+1 (x) =

k
Y

(x xj ).

j=0

Luego, el error en la integracin numrica es:


Z b
Z b
e=
ek (x)dx =
f [x0 , . . . , xk , x]wk+1 (x)dx .
a

El clculo de esta ltima integral puede ser complicado. Sin embargo, puede simplificarse si
consideramos dos casos:
Rb
1er caso: Si wk+1 (x) es de un solo signo en [a, b], es decir si a wk+1 (x)dx > 0
Rb
a wk+1 (x)dx < 0, entonces
Z b
e = f [x0 , . . . , xk , ]
wk+1 (x)dx con (a, b).
a

146

L. Hctor Jurez V.
Rb
2o caso: Si a wk+1 (x)dx = 0, entonces se puede introducir un punto adicional xk+1
para que wk+2 (x) = wk+1 (x)(x xk+1 ) sea de un solo signo en [a, b]. Si esto es posible,
entonces
Z b
e = f [x0 , . . . , xk+1 , ]
wk+2 (x)dx
a

Demostracin. 1er caso: f [x0 , . . . , xk , x] es una funcin continua de x en [a, b] y toma sus
valores mximo M y mnimo m en el intervalo
m f [x0 , . . . , xk , x] M .
Rb

Suponiendo

wk+1 (x)dx > 0, x [a, b], se obtiene

m
a

Z
wk+1 (x)dx

Por lo tanto

Rb
m

wk+1 (x)f [x0 , . . . , xk , x]dx M

wk+1 (x)dx .

wk+1 (x)f [x0 , . . . , xk , x]dx


M.
Rb
a wk+1 (x)dx

Por el teorema del valor intermedio para funciones continuas, debe existir un en [a, b] tal
que
Rb
wk+1 (x)f [x0 , . . . , xk , x]dx
f [x0 , . . . , xk , ] = a
,
Rb
a wk+1 (x)dx
de donde se sigue la expresin para el error. Se obtiene la misma expresin suponiendo
Rb
a wk+1 (x)dx < 0, x [a, b].
2o caso: Sea xk+1 un punto adicional a x0 , . . . , xk . Entonces
f [x0 , . . . , xk , xk+1 , x] = f [xk+1 , x0 , . . . , xk , x]
f [x0 , . . . , xk , x] f [xk+1 , x0 , . . . , xk ]
=
x xk+1
f [x0 , . . . , xk , x] = f [xk+1 , x0 , . . . , xk ] + f [x0 , . . . , xk , xk+1 , x](x xk+1 ) .
Luego
Z

e=

f [x0 , . . . , xk ]wk+1 (x)dx


Z b
Z b
= f [xk+1 , x0 , . . . , xk ]
wk+1 (x)dx +
f [x0 , . . . , xk , xk+1 , x]wk+2 (x)dx .
a

Anlisis Numrico

147

La primera integral en la ltima expresin es cero por hiptesis. Adems, si se escoge xk+1
de tal manera que wk+2 (x) = wk+1 (x)(x xk+1 ) sea de un solo signo en [a, b], entonces se
obtiene la expresin para el error:
Z b
e = f [x0 , . . . , xk , xk+1 , ]
wk+2 (x)dx
a

Nota. En caso de que la funcin f (x) sea suficientemente suave, cada diferencia dividida
es igual a una derivada del mismo orden dividida por un factorial. Tomando en cuenta esta
propiedad, se obtienen las siguientes expresiones para el error en la integracin numrica:
Caso 1: Si wk+1 (x) es de un solo signo en [a, b], entonces
Z b
Z
f (k+1) () b
e = f [x0 , . . . , xk , ]
wk+1 (x)dx .
wk+1 (x)dx =
(k + 1)! a
a
Rb
Caso 2: Si a wk+1 (x)dx = 0, se introduce un punto adicional xk+1 tal que wk+2 (x) =
wk+1 (x)(x xk+1 ) sea de un solo signo en [a, b], y
Z b
Z
f (k+2) () b
e = f [x0 , . . . , xk+1 , ]
wk+2 (x)dx =
wk+2 (x)dx .
(k + 2)! a
a
Observese que el error en este caso tiene un orden mayor que el del caso 1.

6.5.3.

Frmulas de integracin numrica ms comunes

Consideraremos las reglas de NewtonCotes ms utilizadas en la prctica:


1. Regla del rectngulo.
Consideremos un solo punto de interpolacin x0 , es decir k = 0. En este caso f (x) se
aproxima por el polinomio constante p0 (x) = f (x0 ), y la integral de f (x) se aproxima
por
Z b
Z b
f (x)dx
f (x0 )dx = (b a)f (x0 ) .
a

Si se escoge x0 = a, entonces
Z

f (x)dx (b a)f (a) .


a

Como w1 (x) = (x a) es de un solo signo en [a, b] y el error en este caso es


Z b
Z b
(b a)2
,
e = f [x0 , ]
w1 (x)dx = f [a, ]
(x a)dx = f [a, ]
2
a
a

148

L. Hctor Jurez V.
con en [a, b]. Suponiendo f C 1 [a, b], podemos expresar el error en la forma
e=

f 0 ()
(b a)2
2

2. Regla del trapecio.


Considermos dos puntos de interpolacin x0 y x1 , es decir k = 1. En este caso f (x) se
aproxima por el polinomio lineal
p1 (x) = f (x0 ) + f [x0 , x1 ](x x0 ),
y la integral de f (x) sobre el intervalo [a, b] se aproxima por
Z
a

{f (x0 ) + f [x0 , x1 ](x x0 )}dx = f (x0 )(b a) +

f [x0 , x1 ]
{(b x0 )2 (a x0 )2 } .
2

Si se escoge x0 = a, x1 = b, la regla de cuadratura es


Z

f (x)dx
a

ba
{f (a) + f (b)} .
2

Adems w2 (x) = (x a)(x b) 0 es de un solo signo en [a, b] (ver Fig. 6.8). Luego
x0=a

x1=b

Figura 6.8: El polinomio cuadrtico w2 (x)

el error en este caso se obtiene de


Z
e = f [x0 , x1 , ]

w2 (x)dx = f [a, b, ]

(x a)(x b)dx = f [a, b, ]


a

con en [a, b]. Suponiendo f C 2 [a, b], entonces


e=

f 2 ()
(b a)3 ,
12

en [a, b] .

(a b)3
,
6

Anlisis Numrico

149

3. Regla de Simpson.
Consideremos tres puntos de interpolacin x0 , x1 y x2 , es decir k = 2. En este caso el
polinomio de interpolacin para f (x) es
p2 (x) = f (x0 ) + f [x0 , x1 ](x x0 ) + f [x0 , x1 , x2 ](x x0 )(x x1 ) .
a+b
, entonces la regla de cuadratura es
2

Z b
Z b
a + b (a b)3
(b a)2
+ f a, b,
f (x)dx
p2 (x)dx = f (a)(b a) + f [a, b]
2
2
6
a
a

ba
a+b
=
f (a) + 4f (
) + f (b)
6
2

Si elegimos x0 = a, x1 = b, x2 =

En este caso se tiene que w3 (x) = (x a)(x b)(x


Figura 6.9)
Z b
w3 (x)dx = 0 .

a+b
), el cual satisface (ver
2

x0=a

x2=(a+b)/2

x =b
1

Figura 6.9: El polinomio cbico w3 (x)

Si introducimos x3 =

a+b
como punto adicional entonces
2
w3 (x) = (x a)(x b)(x

a+b 2
) 0,
2

es de un solo signo en [a, b]. Por lo tanto

Z b

a+b a+b
a+b 2
e = f a, b,
,
,
(x a)(x b) x
dx
2
2
2
a

a+b a+b
4 ba 5
f 4 () b a 5
= f a, b,
,
,

=
,
2
2
15
2
90
2
donde [a, b]. En la ltima igualdad hemos supuesto que f C 4 [a, b].

150

L. Hctor Jurez V.

4. Regla del punto medio.


En este caso volvemos a considerar un solo punto de interpolacin, pero ahora tomamos
a+b
el punto medio del intervalo: x0 =
. Luego
2

a+b
f (x) p0 (x) = f
2
y la regla de cuadratura es
Z

f (x)dx f
a

a+b
2

(b a) .

Adems (ver Figura 6.10)


Z

w1 (x)dx

(x
a

a+b
)dx = 0 .
2

x0 = (a+b)/2

Figura 6.10: El polinomio lineal w1 (x)


a+b
a+b 2
Si tomamos x1 =
como punto adicional, entonces la funcin w2 (x) = (x
)
2
2
es de un solo signo en [a, b], y
Z
e = f [x0 , x1 , ]

f 2 ()
w2 (x)dx =
2

Z b
a+b 2
f 2 ()
x
dx =
(b a)3 .
2
24
a

R1
2
Ejemplo 6.10. Consideremos la integral I = 0 ex dx, cuyo valor exacto a ocho cifras
decimales es 0.74682413. Aplicando las reglas de integracin anteriores, con a = 0, b = 1,
a+b
a+b
= 0,5, f (a) = 1, f (b) = e1 , f (
) = e1/4 , obtenemos
2
2

Anlisis Numrico

151

REGLA DE CUADRATURA
Rectngulo

I (b a)f (a)

Punto medio

I (b a)f (

Trapecio
Simpson

RESULTADO

a+b
)
2

0,7788007

(b a)
(f (a) + f (b))
=
2
a+b
(b a)
I
(f (a) + 4f (
) + f (b)) =
6
2
I

0,6839397
0,7471804

Los errores obtenidos con cada regla son

6.6.

REGLA

ERROR REAL

Rectngulo

0.25318

Punto medio

0.03198

Trapecio

0.06288

Simpson

3,6 104

ESTIMACION
DEL ERROR
0
f ()
2

2 (b a) 0,4288819
00
f ()
3

24 (b a) 0,0833333
00
f ()
(b a)3 0,166666

12
4

f () b a 5

4,1666103

90
2

Reglas compuestas de integracin

Rb
Las estimaciones de I = a f (x)dx presentadas anteriormente no producen una buena
aproximacin, particularmente cuando el intervalo [a, b] es grande. Introducir ms puntos
de interpolacin para compensar el aumento en el tamao del intervalo no es conveniente
Q
pues la acumulacin del error debido a que el trmino wk+1 (x) = nj=0 (x xj ) es cada
vez mayor conforme n aumenta. La alternativa prctica es dividir [a, b] en un conjunto de
subintervalos pequeos y aplicar las reglas simples de integracin numrica en cada uno de
estos subintervalos.
Sea f (x) definida e integrable sobre [a, b]. Consideremos una subdivisin de [a, b] en n
ba
como se ilustra en la Figura 6.11, y sean
subintervalos iguales de longitud h =
n
xi = a + ih, i = 0, 1, . . . , n.

152

L. Hctor Jurez V.

...

x1

a=x0

xn-1

xn=b

Figura 6.11: Subdivisin del intervalo en n subintervalos.

Esta claro que x0 = a, xn = b. Entonces


Z

f (x)dx =

n Z
X

i=1

xi

f (x)dx ,

xi1

y las integrales delante de la sumatoria se aproximan utilizando las reglas simples en cada
subintervalo.

1. Regla del trapecio compuesta. Para cada i = 1, 2, . . . , n, se tiene


Z xi
f 00 (i ) 3
h
{f (xi1 ) + f (xi )}
h ,
f (x)dx =
2
12
xi1
para algn i [xi1 , xi ]. Entonces
Z

f (x)dx =
a

hX
h3 X 00
[f (xi1 ) + f (xi )]
f (i )
2
12
i=1

i=1

h
[f (x0 ) + 2
2

n1
X

f (xi ) + f (xn )]

i=1

h3 X 00
f (i )
12
i=1

La ltima sumatoria se puede simplificar cuando f C 2 [a, b], pues en este caso
m f 00 (i ) M

para cada i = 1, . . . , n ,

en donde
m = mn f 00 (x) y M = max f 00 (x) .
axb

As que

axb

Pn

f 00 (i )
M.
n
Por el teorema del valor intermedio aplicado a la funcin continua f 00 (x) sobre [a, b],
existe en [a, b] tal que
Pn
f 00 (i )
00
f () = i=1
n
m

i=1

Anlisis Numrico

153

es decir
nf 00 () =

n
X

f 00 (i )

i=1

Por lo tanto, el trmino del error en la regla de cuadratura es

h3 00
h2
nf () = (b a)f 00 ()
12
12

pues nh = b a. Resumiendo, la regla del trapecio compuesta es


Z

n1

f (x)dx
a

X
h
[f (x0 ) + 2
f (xi ) + f (xn )]
2
i=1

y la expresin del error es


e=

b a 00
f ()h2
12

2. Regla de Simpson compuesta


Sabemos que para cada i = 1, 2, . . . , n
Z xi
i f 4 ( ) h 5
hh
i
,
f (x)dx =
f (xi1 ) + 4f (xi 1 ) + f (xi )
2
6
90
2
xi1
donde hemos usado la notacin
xi 1 =
2

xi1 + xi
.
2

Sumando de i = 1 a i = n obtenemos
n
Z b
n
hX
1 h 5X 4
f (x)dx =
[f (xi1 ) + 4f (xi 1 ) + f (xi )]
f (i )
2
6
90 2
a
i=1
i=1
"
#
n1
n
X
X
h
=
f (x0 ) + 2
f (xi ) + 4
f (xi 1 ) + f (xn )
2
6
i=1
i=1
4
h
ba 4
f (i )
,

180
2
en donde en el trmino del error hemos utilizado un argumento similar al utilizado en
la regla del trapecio:
Suponiendo f C 4 [a, b] :

n
X
i=1

para algn en [a, b].

f 4 (i ) = nf 4 () ,

154

L. Hctor Jurez V.

Ejemplo 6.11. Estimar el nmero de subintervalos en los que hay que dividir el intervalo
R1
2
[0, 1] para que la regla compuesta del trapecio calcule 0 ex dx con un valor correcto a 6
dgitos.
Solucin. El error en la regla de trapecio es

con a = 0, b = 1, y h =

h2
h2
1 00
f ()
(b a)f 00 () = f 00 () =
12
12
12n2

1
. Entonces debemos pedir que
n
1
|f 00 ()| 106 .
12n2

Como no conocemos , basta con calcular


M = max |f 00 ()|
0x1

y despues determinar n tal que

1
M 106 .
12n2

Pero f 00 (x) = ex (4x2 2) es creciente en 0 x 1, pues f 000 (x) = 4xex (3 2x2 ) > 0 en
el mismo intervalo. Luego el mximo de |f 00 (x)| debe tomarse en x = 0 en x = 1, as que
M = max{|f 00 (0)|, |f 00 (1)|} = max{2, 2e1 } = 2 ,
y n debe ser tal que

1
2 106 . Es decir
12n2
r
106
n
408
6

El valor n = 408 subintervalos es realmente una sobreestimacin del nmero necesario ya


que estamos usando M = max{|f 00 (x)| : 0 x 1} en lugar de |f 00 ()|. A continuacin
mostramos los valores obtenidos usando diferentes valores de n.
n
50
100
200
400
800

I
0.74679961
0.74681800
0.74682260
0.74682375
0.74682404

error
106

2,452
6,13 106
1,53 106
3,8 107
9 108

Estimacin del error


6,67 105
1,67 105
4,17 106
1,04 106
2,6 107

Anlisis Numrico

155

Notese que con n = 400 subintervalos ya se obtiene un error menor a 106 . En la tabla de
arriba la estimacin del error es
ba
ba
M h2
M
2
1
max |f 00 (x)|h2 =
M h2 =
=
=
= 2
2
2
2 0x1
2
12
12n
12n
6n
Con el objeto de comparar hacemos lo mismo con el mtodo de Simpson.
4
1
h
h4
12h4
1
ba 4

106 ,
|f ()|
m
ax |f 4 (x)|
=
=
180
2
180
16
180 16
240n4
en donde max0x1 |f 4 (x)| = 12. Por lo tanto
r
6
4 10
n
8,
240
y, como era de esperarse, este resultado muestra un aumento drmatico en la precisin
cuando se utiliza el mtodo de Simpson. A continuacin mostramos los resultados para
diferentes valores de n
n
2
4
6
8
22

error

0.74685538
0.74682612
0.74682452
0.74682426
0.74682413

105

3,125
1,99 106
3,96 107
1,27 107
4,99 109

Estimacin del error


2,604 104
1,628 105
3,215 106
1,017 106
1,780 108

en donde la estimacin del error se obtuvo por medio de


ba
h4
1
m
ax |f (4) (x)|
=
.
180
16
240 n4

6.7.

Frmulas de cuadratura de Gauss

Todas las reglas de integracin numrica que hemos obtenido son de la forma
Z b
f (x)dx w0 f (x0 ) + w1 f (x1 ) + . . . + wn f (xn )

(6.2)

donde x0 , x1 , . . . , xn son puntos de interpolacin y w0 , w1 , . . . , wn son pesos tales que


Rb
Pn
i=0 wi /(b a) = 1. Si se escogen los wi como wi = a `i (x)dx, donde `i (x) es el polinomio
de Lagrange asociado al punto xi , entonces la regla es exacta al menos para polinomios de
grado n. Sin embargo, es posible hacer que la regla sea exacta para polinomio de grado 2n+1

156

L. Hctor Jurez V.

si se escogen los puntos x0 , x1 , . . . , xn de manera apropiada, y no igualmente separados


como lo hemos hecho hasta ahora. Esta es la idea bsica de las reglas de cuadratura de
Gauss.
Como los valores w0 , w1 , . . . , wn se escogen de manera arbitraria y los puntos x0 , x1 , . . . , xn
tienen como nica restriccin que f (x) este definida en ellos, entonces hay 2n+2 parmetros
(grados de libertad) involucrados. Dado que los polinomios de grado 2n + 1 contienen 2n + 2
coeficientes, entonces esta es la clase de polinomios de mayor grado para los cuales se espera
que la frmula (6.2) arriba sea exacta.
Primero discutiremos brevemente el concepto de conjunto ortogonal de funciones.
Definicin 6.12. El conjunto de funciones 0 (x), 1 (x), . . . , n (x), es un conjunto ortogonal en [a, b] con respecto a la funcin de peso v(x) siempre y cuando para toda 0 i, j n
Z

v(x)i (x)j (x)dx = ij .

Ejemplo 6.13. Polinomios de Legendre


Los polinomios de Legendre pueden generarse en forma recursiva:
0 (x) = 1
1 (x) = x
(k + 1)k+1 (x) = (2k + 1) x k (x) kk1 (x) ,

k = 1, 2, . . . .

Se puede verificar fcilmente que estos polinomios son ortogonales en el intervalo [1, 1] con
respecto a la funcin de peso v(x) = 1. Algunas propiedades de estos polinomios son
1. El polinomio k (x) tiene k raices distintas en (1, 1). Por ejemplo
2 (x) =
3 (x) =

3 2
(x
2
5 2
(x
2

r
1
1
) tiene raices x =
3
3
r
3
3
) x tiene raices x = 0, x =
.
5
5

2. Los polinomios 0 (x), 1 (x), . . . , n (x), al ser ortogonales y tener grados 0, 1, . . . , n,


generan el espacio de polinomios de grado n.

Anlisis Numrico

157

Si escogemos como puntos de interpolacin las raices x1 , x2 , . . . , xn del polinomio de Legendre de grado n, n (x) sobre [1, 1], entonces podemos expresar f (x) por medio de su
polinomio de interpolacin de la siguiente manera
f (x) =

n
X

f (n) ((x)) Y
(x xi )
n!

f (xi )`i (x) +

i=1

i=1

Esta claro que la regla de cuadratura


Z 1
Z
n
X
f (x)dx
wi f (xi ) con wi =
1

i=1

`i (x)dx =

n
Y

1 j=1, j6=i

(x xj )
dx
(xi xj )

integra de manera exacta al menos polinomios de grado n 1 cualquier otra funcin


suave cuya derivada de orden n 1 sea cero sobre [a, b]. Verifiquemos que esta regla en
realidad es exacta para polinomios de grado 2n 1:
Sea p(x) un polinomio de grado 2n 1. Si dividimos este polinomio entre el polinomio
de Legendre de grado n, n (x), obtenemos un polinomio cociente q(x) de grado n 1, y
un polinomio residuo r(x) de grado n 1, tales que
p(x) = q(x)n (x) + r(x) .
As que

p(x)dx =
1

q(x)n (x)dx +

r(x)dx
1

Adems como q(x) es polinomio de grado n 1, entonces es combinacin lineal de los


polinomios de Legendre 0 (x), 1 (x), . . . , n1 (x). Es decir, existen d0 , d1 , . . . , dn1 R
tales que
n1
X
q(x) =
di i (x).
i=0

Luego
Z

p(x)dx =
1

n1
X
i=0
1

Z
=

Z
di

i (x)n (x)dx +

r(x)dx
1

r(x)dx ,
1

debido a la ortogonalidad de los polinomios de Legendre. Por otro lado como r(x) es un
polinomio de grado n 1, entonces la ltima integral en la expresin anterior se puede
sustituir por
Z 1
Z 1Y
n
X
(x xj )
r(xi )wi con wi =
`i (x)dx =
dx .
(xi xj )
1
1
i=1

i6=j

158

L. Hctor Jurez V.
n

xi

wi

x2 = x1 = 0,5773502692

x3 = x1 = 0,7745966692

w1 = w2 = 1
5
w1 = w3 =
9
8
w2 =
9
w1 = w4 = 0,3478548451
w2 = w3 = 0,6521451549

x2 = 0
4

x4 = x1 = 0,8611363116
x3 = x2 = 0,3399810436

x5 = x1 = 0,9061798459
x4 = x2 = 0,5384693101
x3 = 0

w1 = w5 = 0,2369268851
w2 = w4 = 0,4786286705
128
w3 =
= 0,5688888889
225

Cuadro 6.1: Puntos y pesos para reglas de cuadratura de Gauss.


Pero adems, como cada punto xi , 1 i n, es raiz de n (x), se tiene p(xi ) = q(xi )n (xi )+
r(xi ) = r(xi ). Por lo tanto,
Z 1
n
X
p(x)dx =
wi p(xi )
1

i=1

lo cual comprueba que la regla de la cuadratura es exacta para el polinomio arbitrario p(x)
de grado 2n 1.
En la siguiente tabla se muestran valores xi , wi a diez cifras decimales para distintos
valores de n.
En la prctica, queremos integrar en un intervalo arbitrario [a, b] y no solamente en
[1, 1]. En estos casos utilizamos el cambio de variable
t=

2x a b
ba

el cual transforma [a, b] en [1, 1] si a < b. En este caso


x=
y

(b a)t + a + b
2

f (x)dx =

(b a)t + a + b
2

ba
dt
2

La regla Gaussiana se aplica a esta ltima integral.

Ejemplo 6.14. Calcular I =

R1
0

ex dx utilizando la frmula Gausiana de 5 puntos (n = 5).

Anlisis Numrico

159
t+1
. Por lo tanto
2
Z 1
Z 1
Z
1 1 ( t+1 )2
21
x2
( t+1
)
e dx =
e 2
dt =
e 2 dt
2
2 1
0
1

Solucin: a = 0, b = 1 implica x =

xi +1 2
1X
wi e( 2 ) = 0,74682413
2

i=1

utilizando los valores xi y wi de la tabla con n = 5.


Observacin. Para obtener una precisin comparable con la regla del trapecio se requieren
2, 800 subdivisiones de [0, 1], mientras que con la regla de Simpson se necesitan 20 subdivisiones aproximadamente.
Otros casos que llevan a reglas de integracin de Gauss son
Intervalo
[1, 1]
[1, 1]
[0, )
(, )

Funcin de peso v(x)


x2 )1/2

(1

(1
+ x) , , > 1
ex
2
ex

x) (1

Nombre
Tn (x), Chebishev
Pn, (x), Jacobi
Ln (x), Laguerre
Hn (x), Hermite

160

L. Hctor Jurez V.

Captulo 7

Aproximacin Numrica de
Ecuaciones Diferenciales Ordinarias
7.1.

Conceptos bsicos

Los problemas de valores iniciales ecuaciones diferenciales ordinarias ocurren en muchas


reas de la ciencia, pero ms particularmente en la mecnica (incluyendo la mecnica celeste), donde el movimiento de partulas (planetas) obedece la 2a ley de Newton. Algunos
astrnomos como Adams, Moulton, Cowell, contribuyeron al desarrollo de tnicas numricas para resolver ecuaciones diferenciales ordinarias. Las ecuaciones diferenciales ordinarias
tambin juegan un papel importante en la mecnica cuntica, en el estudio de dinmica de
poblaciones, modelos biolgicos, desintegracin radiactiva, economa, circuitos elctricos, entre otros campos. Los sistemas de ecuaciones diferenciales ordinarias aparecen tambin como
parte importante de la busqueda de soluciones de las ecuaciones diferenciales parciales.
El problema tpico de valores iniciales (que denotaremos por PVI) involucra sistemas de
ecuaciones diferenciales de 1er orden de la forma
dy
= f (t, y), a < t b,
dt
y(t0 ) = y0
(t0 = a),

(7.1)
(7.2)

donde y = y(t) = (y1 (t), y2 (t), . . . , yn (t))T , y0 = (y01 , y02 , . . . , y0n )T Rn , f = (f1 , f2 , . . . , fn )T
funcin vectorial con cada una de sus funciones componentes fi = fi (t, y1 , y2 , . . . , yn ) de Rn+1
en R.
Ejemplos de ecuaciones diferenciales ordinarias (e.d.o.)
161

162

L. Hctor Jurez V.

1. Geometra: La ecuacin de una circunferencia de radio r con centro en el origen es


x2 + y 2 = r2 . Suponer y = y(x), entonces derivando implcitamente la ecuacin de la
circunferencia, se obtiene:
2x + 2y

dy
dy
x
=0
=
dx
dx
y

Si identificamos x con t entonces y = y(t), y obtenemos la ecuacin diferencial ordinaria


dy
t
= ,
dt
y
y(0) = r
2. Oscilador armnico simple: Consideremos un bloque de masa m suspendido de
un resorte. Si a partir de su posicin de equilibrio estiramos encogemos el resorte,
entonces despreciando la friccin con el aire, este bloque comienza a oscilar. La ecuacin
que describe el movimiento oscilatorio se obtiene a partir de la segunda Ley de Newton.
mx00 (t) = kx(t),
donde x(t) indica la desviacin del bloque respecto a la posicin de equilibrio, k es la
constante de rgidez ( restitucin) del resorte. La anterior ecuacin ecuacin puede

equilibrio
x(t)<0

x(t)>0

m
Figura 7.1: Bloque de masa m suspendido por un resorte.
reescribirse en la forma
x00 + w2 x = 0, con w =

p
k/m.

A su vez, esta ecuacin diferencial de segundo orden puede expresarse como un sistema
de dos ecuaciones diferenciales de primer orden (7.1), con
y(t) = (y1 (t), y2 (t))T ,
f (t, y) = (y2 , w2 y1 )T =

"

0
1
2
w 0

#"

y1
y2

(7.3)
(7.4)

Anlisis Numrico

163

si hacemos la sustitucin:
y1 (t) = x(t)

y10 (t) = y2 (t)

y2 (t) = x0 (t)

y20 (t) = w2 y1 (t)

En forma anloga, una ecuacin diferencial ordinaria de orden n de la forma


y (n) (t) = g(t, y(t), y 0 (t), . . . , y (n1) (t)),
se puede transformar en un problema del tipo y 0 = f (t, y), haciendo la sustitucin:
y1 (t) = y(t) y10 (t) = y 0 (t) = y2 (t)
y2 (t) = y 0 (t) y20 (t) = y 00 (t) = y3 (t)
..
.

..
.

0
yn1 (t) = y (n2) (t) yn1
(t) = y (n1) (t) = yn (t)

yn (t) = y (n1) (t) yn0 (t) = y (n) (t) = g(t, y1 , y2 , . . . , yn )


e identificando a y(t) y f (t, y) con
y(t) = (y1 (t), y2 (t), . . . , yn (t))T ,
f (t, y) = (y2 (t), y3 (t), . . . , yn (t), g(t, y1 (t), y2 (t), . . . , yn (t)))T ,
respectivamente.
3. Problema de dos cuerpos. Un problema ligeramente ms complicado de la mecnica
celeste es el que describe la rbita de un cuerpo de masa m bajo la atraccin de otro
cuerpo de masa mucho mayor M como se ilustra en la Figura 7.2 .
m
r(t)
M

Figura 7.2: Dinmica de dos cuerpos.

Usando coordenadas cartesianas x1 (t), x2 (t), centradas en el cuerpo ms pesado, las


ecuaciones son:
x001 (t) = GM x1 (t)/r(t)3 ,
x002 (t) = GM x2 (t)/r(t)3 ,

164

L. Hctor Jurez V.
donde G es la constante de gravitacin universal y r(t) =
la sustitucin:

p
x1 (t)2 + x2 (t)2 . Si hacemos

y1 (t) = x1 (t) y10 (t) = x01 (t) = y3 (t)


y2 (t) = x2 (t) y20 (t) = x02 (t) = y4 (t)
y3 (t) = x01 (t) y30 (t) = x001 (t) = GM y1 (t)/r(t)3
y4 (t) = x02 (t) y40 (t) = x002 (t) = GM y2 (t)/r(t)3
p
p
con r(t) = x1 (t)2 + x2 (t)2 = y1 (t)2 + y2 (t)2 , obtenemos el sistema de ecuaciones
0
diferenciales ordinarias de primer orden y (y) = f (t, y) donde
y(t) = (y1 (t), y2 (t), y3 (t), y4 (t))T ,
f (t, y) = (f1 , f2 , f3 , f4 )T ,
con
f1 (t, y) = y3 ,
f2 (t, y) = y4 ,
f3 (t, y) = GM y1 /(y12 + y22 )3/2 ,
f4 (t, y) = GM y2 /(y12 + y22 )3/2 .
El teorema fundamental del clculo establece una conexin importante entre ecuaciones diferenciales e integrales
Z t+h
dy
= f (t, y) y(t + h) = y(t) +
f (s, y(s))ds
dt
t
No podemos usar integracin numrica directamente en el problema de la derecha por que
y(s) es una funcin desconocida. De cualquier manera la idea bsica es escoger una sucesin
de valores h (pasos del tiempo) y a partir de dicha frmula generar nuestra solucin numrica.
Un caso especial que hay que tomar en cuenta es cuando f (t, y) = f (t) es solamente funcin
de t. En este caso la solucin de la ecuacin diferencial autnoma consiste en encontrar la
antiderivada de f (t), es decir su integral:
Z t+h
y(t + h) = y(t) +
f (s)ds
t

La solucin numrica es entonces una sucesin de cuadraturas de la forma


Z tn+1
yn+1 = yn +
f (s)ds
tn

Anlisis Numrico

7.2.

165

Existencia y unicidad de la solucin

La existencia y unicidad de soluciones del problema (7.1)(7.2) depende fundamentalmente de las propiedades de suavidad de la funcin f (t, y). En particular se requiere que
f sea continua respecto a t y Lipschitz continua respecto a y. Antes de ununciar el teorema,
recordamos este ltimo concepto.
Definicin 7.1. Una funcin f : [a, b] Rn Rn se dice que es Lipschitz continua respecto
a la variable y si existe una constante L > 0 tal que
kf (t, y) f (t, y )k Lky y k,

t [a, b], y, y Rn

en alguna norma vectorial k k en Rn


Ejemplo 7.2. En el problema del oscilador armnico encontramos que f (t, y) = (y2 , w2 y1 )T ,
con w constante. Entonces en la norma euclidiana tenemos
kf (t, y) f (t, y )k2 = k(y2 y2 , w2 (y1 y1 ))T k2
q
=
(y2 y2 )2 + w4 (y1 y1 )2
q
2
m
ax{1, w } (y2 y2 )2 + (y1 y1 )2
= max{1, w2 }ky y k2
Por tanto, si tomamos L = max{1, w2 }, entonces se satisface una condicin de Lipschitz
para f (t, y) (en realidad en este caso f no depende de t).
Observese que la condicin tipo Lipschitz es parecida a la propiedad que define a una
aplicacin como una contraccin (ver captulo 3). Sin embargo, la constante de Lipschitz
no tiene que ser L < 1, pudiendo ser incluso muy grande, pero constante. Intuitivamente
hablando, la condicin de Lipschitz asegura que la funcin f (t, y) no tenga cambios muy
bruscos infinitos cuando y vara.
Teorema 7.3. Teorema de existencia y unicidad. Si f (t, y) es una funcin continua
respecto a t en [a, b], Lipschitz continua respecto a y en Rn , entonces el problema de valores
iniciales (PVI) tiene una solucin nica y(t), a t b para cualquier condicin inicial
y0 Rn . Adems y(t) depende continuamente de t0 y y0 (los datos iniciales).
Nota 1. En ocasiones la condicin de Lipschitz no se satisface para toda y Rn , sino en un
subconjunto Y de Rn . En este caso el teorema de existencia y unicidad sigue siendo vlido
en [a, b] Y .

166

L. Hctor Jurez V.

Nota 2. En ocasiones es muy difcil verificar una condicin de Lipschitz en forma directa.
fi
(t, y) son continuas y acotadas en [a, b] Rn
Sin embargo si las derivadas parciales
yi
[a, b] Y (con Y Rn ), entonces f (t, y) es Lipschitz continua respecto a y en Rn Y,
respectivamente.
Ejemplo 7.4. La funcin f (t, y) = t/y no es Lipschitz continua en cualquier conjunto que
tenga y = 0. Sin embargo como f /y = t/y 2 es continua respecto a t y respecto a toda
y 6= 0, entonces f (t, y) es Lipschitz continua en cualquier t [a, b] y cualquier conjunto Y
que no contenga y = 0. Geomtricamente es fcil observar que el problema no tiene solucin
si la condicin inicial fuese y(0) = 0 y(0) = r < 0, pues no hay circunferencias de radio
nulo negativo.

7.3.

Mtodos de aproximacin con series de Taylor

En el presente estudio solo consideraremos mtodos de aproximacin de variable discreta


del problema PVI. En estos mtodos se encuentran aproximaciones yi de la solucin exacta
y(ti ) solo en puntos discretos ti [a, b], como se muestra en la Figura 7.3. Los mtodos

yN

y(t0)=y0

y1

y2

y(tN)

y(t1) y(t2)

t0=a

t1

t2

...

tn=b

Figura 7.3: Aproximacin de variable discreta.

de series de Taylor son mtodos de este tipo. La idea para obtener este tipo de mtodos
consiste en lo siguiente: Sea y(t) la solucin de (7.1)(7.2) al tiempo arbitrario t. Si h es un
incremento del tiempo, entonces
y(t + h) = y(t) + y 0 (t)h +

y 00 (t) 2 y 000 (t) 3


h +
h + ....
2!
3!

(7.5)

Anlisis Numrico

167

Si y(t) no es conocida, las derivadas de y(t) tampoco lo son. Sin embargo, sabemos que
y 0 (t) = f (t, y),
y 00 (t) = f (1) (t, y) = ft (t, y) + fy (t, y)f (t, y),
(1)

y 000 (t) = f (2) (t, y) = ft (t, y) + fy(1) (t, y)f (t, y),
..
.
(k1)

y (k+1) (t) = f (k) (t, y) = ft

(t, y) + fy(k1) (t, y)f (t, y) ,

en donde f (1) y f (2) , . . . , f (k) , k 0, indican derivadas totales de f respecto a t. Por lo tanto
(7.5) puede reescribirse como
y(t + h) = y(t) + hf (t, y) +

h2 (1)
h3
f (t, y) + f (2) (t, y) + . . .
2
3!

(7.6)

Observese que si la funcin f (t, y) no es simple, las derivadas f (1) , f (2) , f (3) sern cada vez
ms complicadas. Adems por razones prcticas debemos limitarnos a un nmero finito de
trminos en la serie. Esta limitacin restringe los valores de h para los cuales (7.6) es una
buena aproximacin a y(t). Si cortamos la serie a p + 1 trminos (p 1), se obtiene
h2
hp
hp+1 (p)
y(t + h) = y(t) + hf (t, y) + f (1) (t, y) + . . . + f (p1) (t, y) +
f (, y())
2!
p!
(p + 1)!

hp1 (p1)
hp+1 (p)
h
f
(t, y) +
f (, y())
= y(t) + h f (t, y) + f (1) (t, y) + . . . +
2!
p!
(p + 1)!
con entre t y t + h. Entonces, podemos escribir
y(t + h) = y(t) + h(t, y; h) +
con
(t, y; h) =

p1
X
k=0

hp+1 (p)
f (, y()),
(p + 1)!

f (k) (t, y)

hk
(k + 1)!

(7.7)

(7.8)

El algoritmo de Taylor, y otros mtodos basados en este tipo de algoritmos calculan y en


ti+1 usando solamente informacin de y en ti , donde ti+1 = ti + hi es un incremento en
tiempo de ti . La forma ms sencilla de llevar a cabo esta estrategia es dividir el intervalo
[a, b] en N subintervalos de igual longitud h = (b a)/N , obteniendo el
Algoritmo de Taylor de orden p
1. Escoger h = (b a)/N y sean ti = t0 + ih, con i = 0, 1, . . . , N .

168

L. Hctor Jurez V.

2. Dado el valor inicial y0 , para cada i = 0, 1, . . . , N 1 generar una aproximacion yi+1


de la solucin exacta y(ti+1 ) por medio de la relacin de recurrencia
yi+1 = yi + h(ti , yi ; h),

(7.9)

Por ejemplo, cuando p = 1 se obtiene (t, y; h) = f (t, y) y obtenemos el mtodo de Euler,


cuya relacin de recurrencia es:
yi+1 = yi + hf (ti , yi ),

i = 0, 1, . . . , N 1.

(7.10)

El mtodo de Taylor de 2o orden se obtiene con p = 2. En este caso (t, y; h) =


f (t, y) + h2 f (1) (t, y), y la relacin de recurrencia es

h
yi+1 = yi + h f (ti , yi ) + f (1) (ti , yi ) ,
2

i = 0, 1, . . . , N 1

(7.11)

Ejemplo 7.5. Considerese la ecuacin diferencial ordinaria escalar


y 0 (t) = 2y y 2 ,

0<t2

y(0) = 1.
La solucin exacta de esta ecuacin es y(t) = 2/(1+e2t ). En la Figura 7.4 y en la Tabla 7.1 se
muestran los resultados con el mtodo de Euler (7.10) y el mtodo de Taylor (7.11) tomando
h = 0.1. Tanto en la tabla como en la grfica se observa una mejor aproximacin con el
2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
exacta
Euler
Taylor 2

1.1
1
0

0.5

1.5

Figura 7.4: Grficas de las soluciones con los mtodos de Euler y Taylor de 2o orden.

mtodo de Taylor de orden 2 que con el mtodo de Euler como era de esperarse. Observese
que en este caso f (t, y) = 2y y 2 y entonces f (1) (t, y) = (2 2y)(2y y 2 ) = 2y(1 y)(2 y).

Anlisis Numrico

169
t
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0

Sol. Euler
1.0000000
1.1000000
1.1990000
1.2950399
1.3863350
1.4714096
1.5491869
1.6190262
1.6807069
1.7343707
1.7804407
1.8195319
1.8523687
1.8797154
1.9023255
1.9209064
1.9360995
1.9484713
1.9585115
1.9666371
1.9731984

Sol. Taylor
1.0000000
1.1000000
1.1980100
1.2921867
1.3809770
1.4632059
1.5381117
1.6053323
1.6648544
1.7169416
1.7620568
1.8007886
1.8337897
1.8617278
1.8852520
1.9049698
1.9214345
1.9351394
1.9465171
1.9559423
1.9637359

Error Euler
0.0000000
3.3200538e-4
1.6246798e-3
3.7272875e-3
6.3860835e-3
9.2924117e-3
1.2137304e-2
1.4658472e-2
1.6670129e-2
1.8072841e-2
1.8846521e-2
1.9032890e-2
1.8714049e-2
1.7992264e-2
1.6973853e-2
1.5758116e-2
1.4430961e-2
1.3062215e-2
1.1705495e-2
1.0399618e-2
9.1707727e-3

Error Taylor
0.0000000
3.3200538e-4
6.3467978e-4
8.7412722e-4
1.0280498e-3
1.0886996e-3
1.0621176e-3
9.6455088e-4
8.1761418e-4
6.4369998e-4
4.6259408e-4
2.8960765e-4
1.3504982e-4
4.6307489e-6
9.9641180e-5
1.7841400e-4
2.3401902e-4
2.6967832e-4
2.8892268e-4
2.9520355e-4
2.9166246e-4

Cuadro 7.1: Comparacin entre los mtodos de Euler y Taylor de 2o orden.


Ejemplo 7.6. Consideremos la ecuacin del oscilador armnico simple
x00 (t) + w2 x(t) = 0,
x(0) = 1,

0 < t 2,

x0 (0) = 0.

Transformamos la ecuacin diferencial de segundo orden en un sistema de dos ecuaciones de


0
primer orden y = f (t, y) con y y f (t, y) como se indica en (7.3)(7.4). La condicin inicial
es y(0) = (y1 (0), y2 (0))T = (1, 0)T , adems
" # "
#"
#
"
#
0
0
1
y2
y1
(1)
2
f (t, y) = ft (t, y) + fy (t, y)f (t, y) =
+
= w
0
w2 0
w2 y1
y2
Tomando w = 2, se obtiene
f (t, y) = (y2 , 4y1 )T ,

f (1) (t, y) = 4(y1 , y2 )T ,

y el mtodo de Euler (7.10) y Taylor de 2o orden (7.11) con h = 0.1 producen los resultados
mostrados en la Figura 7.5. De nuevo es evidente la superioridad del mtodo de Taylor de
2o orden. Observese que en este caso la diferencia entre ambos mtodos es an mayor que
en el caso anterior debido a que la solucin con el mtodo de Euler se deteriora cada vez
ms conforme avanza el tiempo.
A continuacin introducimos algunas definiciones tiles para analizar los mtodos de
Taylor y otros mtodos que estudiaremos ms adelante.

170

L. Hctor Jurez V.
4

exacta
Euler
Taylor

4
0

tiempo

Figura 7.5: Soluciones numricas para el oscilador armnico simple.

Definicin 7.7. Error de truncamiento. El error de truncamiento del mtodo de un paso


yi+1 = yi + h(ti , yi ; h),
se define como
T (t, y; h) =

(7.12)

1
(yaprox y(t + h)),
h

donde
yaprox = y(t) + h(t, y(t); h).
Entonces el error de truncamiento es una medida de la diferencia entre la soluciones aproximada y exacta de la ecuacin diferencial por unidad del paso de tiempo h. Sustituyendo
la expresin yaprox en la expresin T (t, y; h), obtenemos
T (t, y; h) = (t, y; h)

1
[y(t + h) y(t)]
h

Definicin 7.8. Consistencia. El mtodo de un paso (7.12) es consistente si


T (t, y; h) 0,

cuando

h 0.

De la relacin (7.13) se obtiene que el mtodo es consistente si


y(t + h) y(t)
h0
h0
h0
h
= (t, y; 0) y 0 (t) = (t, y; 0) f (t, y).

0 =

lm T (t, y; h) = lm (t, y; h) lm

(7.13)

Anlisis Numrico

171

Es decir, el mtodo de un paso es consistente si


(t, y; 0) = f (t, y)

(7.14)

Definicin 7.9. Orden del mtodo El mtodo (7.12) se dice que tiene orden p, con p
entero 1, si en alguna norma vectorial
kT (t, y; h)k c hp

(7.15)

uniformemente sobre [a, b] Rn , donde c no depende de t, y h.


Para expresar que el mtodo es de orden p, usualmente escribimos
T (t, y; h) = O(hp ), h 0
Observese que si p > 1, entonces automticamente se tiene consistencia en el mtodo. El
nmero p se denomina el orden exacto del mtodo si la desigualdad (7.15) no se cumple
para ningn nmero mayor a p.

Definicin 7.10. Funcin principal del error. Si determina un mtodo de orden p,


a una funcin : [a, b] Rn Rn que satisfaga
(x, y) 6= 0

T (t, y; h) = (t, y)hp + O(hp+1 ), h 0,

se denomina la funcin principal del error.


La funcin principal del error determina el trmino lder en el error de truncamiento. El
nmero p en
T (t, y; h) = (t, y)hp + O(hp+1 )
es el orden exacto del mtodo ya que (t, y) 6= 0.
Nota. Todas las definiciones anteriores se hacen con la idea en mente de que h > 0 es
un nmero pequeo. Entonces entre mayor es p ms preciso es el mtodo. Por ejemplo, el
mtodo de Taylor de 2o orden (p = 2) es ms preciso que el mtodo de Euler (p = 1).

Ejemplo 7.11. Ilustraremos las definiciones anteriores para el mtodo de Euler:


yi+1 = yi + hf (ti , yi ),

i = 0, 1, 2, . . . , N 1

172

L. Hctor Jurez V.

Dado que (t, y; h) = f (t, y) no depende de h, entonces (t, y, 0) = f (t, y) e inmediatamente


concluimos que el mtodo es consistente. El error de truncamiento es: (suponiendo que
y C 2 [a, b])
1
1
(y(t + h) y(t)) = f (t, y) (y(t + h) y(t))
h
h
1
h2
h
h
= y 0 (t) (hy 0 (t) + y 00 ()) = y 00 () = f (1) (, y())
h
2
2
2

T (t, y; h) = (t, y; h)

donde f (1) ft + fy f , con entre t y t + h. Por lo tanto, si f y todas sus derivadas parciales
de primer orden estn uniformemente acotadas en [a, b] Rn , entonces
kT (t, y; h)k c h.
Esto muestra que efectivametne el mtodo de Euler tiene p = 1.
Si hacemos la misma suposicin de acotamiento uniforme sobre las segundas derivadas
de y, entonces y 00 () = y 00 (t) + O(h), as que
h
T (t, y; h) = [ft + fy f ] (t, y) + Oh2 ,
2

h 0,

lo cual demuestra que la funcin principal del error es


1
1
(t, y) = [ft + fy f ](t, y) = f (1) (t, y).
2
2
As pues, a menos que ft + fy f 0, el mtodo de Euler tiene exactamente orden p = 1.
Ejemplo 7.12. En forma anloga podemos hacer un anlisis para el mtodo de Taylor
general (7.9).
Suponiendo que f C p sobre [a, b] Rn de (7.7), (7.8) y (7.13) se obtiene
T (t, y; h) =

hp
f (p) (, y())
(p + 1)!

con entre t y t + h. As que


kT (t, y; h)k

cp
hp ,
(p + 1)!

con cp = cota de f (p) (t, y) en [a, b] Rn . Entonces, el mtodo tiene exactamente el orden p,
a menos que f p (t, y) 0 y, por lo tanto, la funcin principal del error es
(t, y) =

1
f p (t, y)
(p + 1)!

(7.16)

Anlisis Numrico

173

Claramente el mtodo es consistente, pues de (7.8) se obtiene


(t, y; 0) = f (t, y).
Una de las principales desventajas de los mtodos de Taylor de orden mayor es que es
necesario clcular derivadas de orden superior f (k) (t, y). Por esta razn los investigadores
optaron por buscar mtodos de orden mayor al mtodo de Euler pero sin la necesidad de calcular derivadas de f (t, y). En la siguiente seccin se introducen tales mtodos, denominados
mtodos de Runge-Kutta.

7.4.

Mtodos de Runge-Kutta

En el mtodo de Euler, para calcular y(t + h) a partir de y(t), se corrige el valor y(t)
sumando hf (t, y), para obtener
yaprox = y(t) + hf (t, y),
donde yaprox denota una aproximacin al valor exacto y(t + h). La Figura 7.6 ilustra la
diferencia entre yaprox y y(t + h). Se toma en cuenta que f (t, y) = y 0 (t) representa la
pendiente de la tangente a y en t.

yaprox
Pendiente
1
y (t)=f(t,y)

y(t+h)

y(t)

t+h

Figura 7.6: Interpretacin geomtrica del mtodo de Euler.

Habiendo hecho esta descripcin geomtrica, observamos que para mejorar el clculo es
necesario seguir una mejor direccin a partir del punto (t, y(t)). Esto se logra reevaluando
la pendiente a la mitad del intervalo [t, t + h], y entonces seguir la pendiente revisada sobre

174

L. Hctor Jurez V.

el intervalo completo. Es decir

h
h
f t + , y + f (t, y)
2
2

h
h
yaprox = y + h f t + , y + f (t, y)
2
2

Pendiente revisada:
Nuevo mtodo:
En este caso obtenemos

h
h
, y + f (t, y)).
2
2
Esta construccin se muestra en la Figura 7.7. Notese la caracterstica anidada de f en la
(t, y, h) = f (t +

yaprox
m=f(t+h/2,y+h/2 f(t,y))
y(t+h)

y(t)

t+h/2

t+h

Figura 7.7: Interpretacin del mtodo de Euler mejorado.

frmula de aproximacin. Para propsitos de programacin se deshace el anidamiento de f


y escribimos:
Mtodo de Euler modificado ( mejorado)

k (t, y) = f (t, y)

1
k2 (t, y) = f (t + h2 , y + h2 k1 )

yaprox = y + hk2

(7.17)

En este mtodo, hemos tomado dos pendientes de prueba: k1 y k2 . La primera se toma en el


punto inicial, y la segunda a la mitad del camino, y al final hemos tomado la segunda como
pendiente para avanzar.
Es posible tambin tomar la segunda pendiente de prueba en el punto (t+h, y +hf (t, y)),
pero entonces se corre el peligro de haber esperado mucho para revaluar la pendiente. Una

Anlisis Numrico

175

mejor opcin es tomar la pendiente final como el promedio de las dos pendientes m1 = f (t, y)
y m2 = f (t + h, y + hf (t, y)). Con esta estrategia obtenemos el siguiente mtodo, cuya
interpretacin grfica se muestra en la Figura 7.8: Mtodo de Heun ( del trapecio)

m2=f(t+h,y+hf(t,y))

yaprox
y(t+h)
m1=f(t,y)

m= m1+m2
2

t+h

Figura 7.8: Interpretacin del mtodo del Trapecio.

k (t, y) = f (t, y)

1
k2 (t, y) = f (t + h, y + hk1 )

yaprox = y + h (k1 + k2 )
2

(7.18)

En este caso

1
(t, y; h) = [f (t, y) + f (t + h, y + hf (t, y))].
2
En los algoritmos usualmente no se utiliza la letra m para denotar las pendientes en los mtodos. En su lugar se utliza la letra k. Las ventajas que se obtienen con estas modificaciones
para revaluar la pendiente son bsicamente dos:
1. Los mtodos obtenidos tienen un orden p = 2, el cual es mayor que el mtodo de Euler.
2. No se evalan derivadas de f . Solo se evala f dos veces en cada paso de tiempo.

7.5.

Mtodos de Runge-Kutta de dos etapas

Una forma ms sistemtica para obtener los mtodos anteriores (7.17) y (7.18) consiste
en suponer que es un promedio pesado de dos pendientes k1 y k2 . Es decir
(t, y; h) = 1 k1 + 2 k2

176

L. Hctor Jurez V.

con 1 + 2 = 1, 1 , 2 0, y
k1 (t, y) = f (t, y),
k2 (t, y) = f (t + h, y + hk1 ),
En las pendientes anteriores el parmetro expresa que fraccin de tiempo nos movemos
entre t y t + h. La idea fundamental de los mtodos de RungeKutta es intentar escoger los
parmetros 1 , 2 y de tal manera que el orden del mtodo se pueda maximizar. Es decir,
de tal forma que

T (t, y; h) = (t, y; h)

y(t + h) y(t)
h

= 1 f (t, y) + 2 f (t + h, y + hk1 )
= O(hp ), h 0

y(t + h) y(t)
h

con p mximo. Si escribimos t = h y y = h k1 = t f (t, y), entonces


f (t + h, y + hk1 ) = f (t + t, y + y)
= f (t, y) + [ft t + fy y] (t, y)

1
+
ftt t2 + 2fty ty + y T fyy y (t, y) + . . .
2
= f (t, y) + h [ft + fy f ] (t, y)
+

2 h2
[ftt + 2fty + f T fyy f ](t, y) + O(h3 )
2

Anlogamente
y(t + h) y(t)
h
h2
= y 0 (t) + y 00 (t) + y (3) (t) + O(h3 )
h
2
3!
h2
h (1)
= f (t, y) + f (t, y) + f (2) (t, y) + O(h3 )
2
6
h
= f (t, y) + [ft + fy f ](t, y)
2
2
h
+ [ftt + 2fty f + f T fyy f + fy (ft + fy f )](t, y) + O(h3 )
6

Anlisis Numrico

177

Sustituyendo estas dos expresiones en la expresin del error de truncamiento, obtenemos:

2 h2
T
T (t, y; h) = 1 f + 2 f + h[ft + fy f ] +
[ftt + 2fty f + f fyy f ]
2
h2
h
f [ft + fy f ] [ftt + 2fty f + f T fyy f + fy (ft + fy f )] + O(h3 )
2
6
= (1 + 2 1)f + (2 1/2)h[ft + fy f ]

h2
1
2
T
+
(2 1/3)(ftt + 2fty f + f fyy f ) fy (ft + fy f ) + O(h3 )
2
3
En esta expresin el primer coeficiente es cero pues 1 + 2 = 1; el segundo coeficiente es
cero si 2 = 1/2; el tercer coeficiente no puede hacerse cero, a menos que se impongan
restricciones muy severas sobre f . Por lo tanto, el mximo orden alcanzable es p = 2 si
escogemos 1 , 2 , , tales que
1
2 = .
2
Si despejamos 1 de la primera ecuacin y de la segunda, se obtiene una familia de
soluciones que dependen del parmetro 2 6= 0:
1 + 2 = 1,

1 = 1 2

y =

1
.
22

Se puede verificar muy facilmente que el mtodo de Euler modificado se obtiene escogiendo
2 = 1, y el mtodo de Heun se obtiene escogiendo 2 = 1/2. Otra posible eleccin se
obtiene considerando la funcin principal del error (recuerdese que = 1/22 )

1
1
1
1
T
(x, y) =
(
)(ftt + 2fty f + f fyy f ) fy (ft + fy f ) (t, y)
2 42 3
3
Observese que la suma de los valores absolutos de los coeficientes se puede minimizar si
escogemos 2 = 3/4, con lo cual se obtiene
1
1 = ,
4
Con estos valores se obtiene el mtodo:
Mtodo RK2 ptimo

3
2 = ,
4

2
= .
3

k1 = f (t, y)

k2 = f (t + 23 h, y + 32 hk1 )

yaprox = y(t) + h (k1 + 3k2 )


4

178

L. Hctor Jurez V.

Ejemplo 7.13. Resolvemos de nuevo el problema del oscilador armnico simple con w = 2,
utilizando el mtodo de Euler modificado y el mtodo de Heun con h = 0.1 en el intervalo
0 t 2.
Hacemos la transformacin de la ecuacin de segundo orden a un sistema de dos ecuaciones
de primer orden como en el ejemplo anterior. Los resultados numricos con los mtodos de
Euler modificado y Heun son casi idnticos. En la Tabla 7.2 se muestra el error al utilizar
ambos mtodos as como la diferencia en valor absoluto de los resultados obtenidos con
ambos mtodos para los ltimos 19 valores. Se observa una diferencia entre ambos mtodos
de orden 1016 . En la Figura 7.9 se muestra una grfica de la solucin exacta x(t) = cos(2t)
junto con las soluciones aproximadas.
t
4.5
4.6
4.7
4.8
4.9
5.0
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
6.0
6.1
6.2
6.3

Error Euler-mod
3.1253742e-2
2.0823611e-2
9.0537770e-3
3.6095901e-3
1.6663189e-2
2.9566583e-2
4.1764547e-2
5.2710839e-2
6.1892396e-2
6.8852876e-2
7.3214496e-2
7.4697138e-2
7.3133807e-2
6.8481647e-2
6.0827900e-2
5.0390400e-2
3.7512415e-2
2.2651917e-2
6.3655670e-3

Error Heun
3.1253742e-2
2.0823611e-2
9.0537770e-3
3.6095901e-3
1.6663189e-2
2.9566583e-2
4.1764547e-2
5.2710839e-2
6.1892396e-2
6.8852876e-2
7.3214496e-2
7.4697138e-2
7.3133807e-2
6.8481647e-2
6.0827900e-2
5.0390400e-2
3.7512415e-2
2.2651917e-2
6.3655670e-3

Dif. EM y Heun
7.7715612e-16
7.7715612e-16
8.8817842e-16
7.7715612e-16
6.6613381e-16
4.4408921e-16
2.2204460e-16
1.1102230e-16
5.5511151e-17
2.4980018e-16
4.4408921e-16
5.5511151e-16
6.1062266e-16
7.7715612e-16
8.8817842e-16
8.8817842e-16
7.7715612e-16
6.6613381e-16
6.6613381e-16

Cuadro 7.2: Comparacin de los mtodos de Euler modificado y Heun

1
0.8

exacta
Euler Modificado
Heun

0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
0

Figura 7.9: Comparacin de los mtodos de Euler mejorado y Heun.

Anlisis Numrico

7.6.

179

Mtodos de un paso de retapas

En forma anloga en como se introducen los mtodos de dos etapas se pueden generar
mtodos de orden mayor. Por ejemplo, en un mtodo de r etapas se proponen r pendientes
de la forma
k1 (t, y) = f (t, y),
k2 (t, y) = f (t + 2 h, y + h21 k1 ),
k3 (t, y) = f (t + 3 h, y + h31 k1 + h32 k2 ),
..
.
kr (t, y) = f (t + r h, y + hr1 k1 + hr2 k2 + . . . + hr,r1 kr1 ),
donde los incrementos 2 , 3 , . . . , r se escogen para para que 2 = 21 , 3 = 31 + 32 , . . .,
r = r1 + r2 + . . . + r,r1 . Posteriormente se forma un promedio ponderado de las
pendientes propuestas, para obtener
(t, y; h) = 1 k1 + 2 k2 + . . . + r kr
de tal manera que 1 + 2 + . . . + r = 1. As que
yaprox = y(t) + h(t, y; h)
Los parmetros introducidos se escogen en la forma adecuada para obtener el mximo orden
en el error de truncamiento. Es decir de tal forma que
r

y(t + h) y(t) X
y(t + h) y(t)
T (t, y; h) = (t, y; h)
=
i ki
h
h
i=1

= O(hp ),

h0

con p mximo.
El procedimiento es ms engorroso que en el caso de los mtodos de dos etapas, y no
intentaremos abordarlo con detalle en este escrito. Basta decir que el algoritmo general de r
etapas requiere r evaluaciones de f por cada paso del tiempo. El mtodo ms popular es el
denominado mtodo de Runge-Kutta de cuarto orden. Este es un mtodo de cuatro etapas
y viene dado por

180

L. Hctor Jurez V.

Mtodo de Runge-Kutta clsico (r=4)


k1 (t, y) = f (t, y),
h
1
k2 (t, y) = f (t + , y + hk1 )
2
2
1
h
k3 (t, y) = f (t + , y + hk2 )
2
2
k4 (t, y) = f (t + h, y + hk3 )
h
yaprox = y(t) + (k1 + 2k2 + 2k3 + k4 )
6
Observese que en este caso
1
(t, y, ; h) = (k1 + 2k2 + 2k3 + k4 ).
6
El mtodo es de orden p = 4, y cuando la funcin f (t, y) no depende de y se puede demostrar
Rt
facilmente que este mtodo se reduce al mtodo de Simpson para calcular t0 f ( )d . En
forma anloga puede demostrarse que si f (t, y) no depende explcitamente de y, el mtodo
de Euler modificado se reduce al mtodo del punto medio para aproximar la integral de f (t),
y el mtodo de Heun se reduce al mtodo del trapecio.
A continuacin se muestran los resultados numricos que se obtienen cuando se utiliza el
mtodo de Runge-Kutta clsico con h = 0.1, para resolver la ecuacin del oscilador armnico
simple con w = 2 en 0 t 2. En la tabla se muestran los valores de la solucin numrica
y el error para valores desde t = 4.5 hasta t = 6.3. Los resultados muestran la superioridad
de este mtodo respecto de los mtodos anteriores.
t
4.5
4.6
4.7
4.8
4.9
5.0
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
6.0
6.1
6.2
6.3

Sol. RK-4
-9.1106338e-1
-9.7479683e-1
-9.9966920e-1
-9.8468894e-1
-9.3045331e-1
-8.3912447e-1
-7.1434336e-1
-5.6108451e-1
-3.8545771e-1
-1.9446450e-1
4.2810183e-3
2.0285570e-1
3.9334320e-1
5.6814960e-1
7.2030612e-1
8.4374693e-1
9.3355101e-1
9.8613826e-1
9.9941230e-1

Error
6.6886305e-5
4.6788469e-5
2.3846367e-5
1.0861609e-6
2.7034469e-5
5.2941197e-5
7.7709332e-5
1.0024850e-4
1.1952256e-4
1.3459635e-4
1.4467967e-4
1.4916631e-4
1.4766633e-4
1.4003006e-4
1.2636242e-4
1.0702665e-4
8.2637098e-5
5.4040974e-5
2.2289544e-5

Cuadro 7.3: Resultados con el mtodo RK4 para el oscilador armnico simple.

Anlisis Numrico

181
1

exacta
RungeKutta 4

0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
0

Figura 7.10: Grfica de resultados con el mtodo de RungeKutta 4.

7.7.

Estabilidad y convergencia de los mtodos de un paso

Para el estudio de la estabilidad y convergencia de los mtodos de un paso, consideraremos el caso ms general en el que el paso del tiempo puede ser variable:
yi+1 = yi + hi (ti , yi ; hi ).
A continuacin introducimos algunas definiciones y notacin til para el estudio de la convergencia y estabilidad de los mtodos de un paso.
Mallas. Una malla en [a, b] es un conjunto de puntos {ti }N
i=0 tales que
a = t0 < t1 < . . . < tN = b,
con longitudes de malla hi = ti+1 ti , i = 0, 1, . . . , N 1. A menudo se usa la letra h
1
para sealar la coleccin de longitudes {hi }N
i=0 . El tamao finura de la malla se mide por
medio de
|h| := max hi = khk ,
0iN 1

Si hi es constante e igual a (b a)/N para toda 0 i N 1, se dice que la malla es


uniforme, de otra manera se dice que la malla es no uniforme. Si la malla no es uniforme se
dice que el mtodo es de paso variable.
Funciones de malla. La funcin vectorial
vh = {vi }N
i=0 ,

con vi Rn ,

182

L. Hctor Jurez V.

se denomina funcin de malla, y al conjunto coleccin de funciones de malla definidas


sobre [a, b] lo denotamos por Fh [a, b]. Podemos definir normas de funciones de malla. Por
ejemplo, dado vh = {vi }i=0N Fh [a, b], definimos
kvh k = max kvi k,
0iN

en donde kvi k indica una norma vectorial de vi Rn .


Los mtodos de un paso, y cualquier otro mtodo de variable discreta, produce una
N
funcin de malla yh = {y(ti )}N
i=0 en los puntos de malla {ti }i=0 . Es decir, dado el valor
incial y0 Rn , t0 = a, el mtodo
ti+1 = ti + hi

(7.19)

yi+1 = yi + hi (ti , yi ; hi ),

(7.20)

con i = 0, 1, . . . , N 1, aproxima la solucin del problema de valores inciales (7.1)(7.2).


Operadores Residuales. Para el estudio de la estabilidad y convergencia es til introducir
los siguientes operadores residuales:
(Ry)(t) := y 0 (t) f (t, y(t)), y (C (1) [a, b])n .
yi+1 yi
(Rh yh )i :=
(ti , yi ; hi ), yh Fh [a, b] .
hi
De la definicin de estos operadores residuales, se deduce que:

Si Ry 0 , entonces y(t) resuelve la ecuacin diferencial ordinaria (7.1).

Si Rh yh 0 , entonces yh = {yi }N
i=0 resuelve la ecuacin en diferencias (7.19)(7.20).
Si hacemos la interpretacin
(Rh y)(t) :=

y(t + h) y(t)
(t, y; h),
h

entonces
(Rh y)(t) = T (t, y; h).

7.7.1.

Estabilidad

La estabilidad es una propiedad del esquema numrico solamente, y no tiene nada que ver
con la precisin poder de aproximacin del mismo. La estabilidad caracteriza la robustez
del esquema con respecto a las perturbaciones pequeas. Es decir, pequeos cambios en los
datos , producen cambios pequeos en las soluciones numricas. Veremos que la estabilidad
del esquema junto con la consistencia del mismo, implica la convergencia de la solucin
numrica a la solucin exacta.

Anlisis Numrico

183

Definicin 7.14. El mtodo (7.19)(7.20) es estable sobre [a, b] si existe K > 0, independiente de cualquier malla h sobre [a, b], tal que para cualesquier dos funciones de malla
N
yh = {yi }N
i=0 , wh = {wi }i=0 , se satisface
kyh wh k K(ky0 w0 k + kRh yh Rh wh k )
h con |h| pequeo.
Esta definicin est motivada por la siguiente propiedad: Supongase que yh = {yi }N
i=0
es la solucin de la ecuacin en diferencias (7.19)(7.20), obtenida con precisin infinita.
Entonces
Rh yh = 0,
y(t0 ) = y0 .
Ahora bin, cuando utilizamos una computadora o cualquier otro medio de clculo para
aplicar el esquema (7.19)(7.20), la precisin es finita y el error de redondeo estar presente
en los clculos. Entonces, en lugar de obtener yh obtenemos la solucin en punto flotante
wh = {wi }N
i=0 , la cual satisface
Rh wh = ,

con = {i }N
i=0

w0 = y0 + 0 ,
en donde w0 es la representacin en punto flotante de y0 (es decir, si 0 = (01 , 02 , . . . , 0n )T ,
entonces |0i | maq ). Por lo tanto, la estabilidad del mtodo (7.19)(7.20) se satisface si
existe K > 0 tal que
kyh wh k K(k0 k + kk )

(7.21)

Esta ltima relacin nos indica que el mtodo (7.19)(7.20) es estable si el cambio global en
yh es del mismo orden de magnitud que los errores residuales = {i }N
i=0 y el error inicial
0 . Tambin observamos que Rh wh = significa que para 0 i N 1, (Rh wh )i = ()i , es
decir
wi+1 wi
(ti , wi ; hi ) = i ,
h
bin
wi+1 = wi + hi (ti , wi ; hi ) + hi i .
De la ltima expresin se deduce que el efecto del error de redondeo se desvanece cuando
|h| 0, pues
wi+1 wi + hi (ti , wi ; hi ) cuando |h| 0.

184

L. Hctor Jurez V.

Teorema 7.15. El mtodo (7.19)(7.20) es estable si (t, y; h) satisface una condicin de


Lipschitz con respecto a y sobre [a, b] Rn [0, h0 ] con h0 > 0. Es decir, si
k(t, y; h) (t, y ; h)k M ky y k,

y, y Rn

N
N
Demostracin. Sea h = {hi }N
i=1 una malla en [a, b] y sean yh = {yi }i=0 , wh = {wi }i=0 dos
funciones de malla. Se satisface

yi+1 = yi + hi (ti , yi ; hi ) + hi (Rh yh )i


wi+1 = wi + hi (ti , wi ; hi ) + hi (Rh wh )i .
Entonces
yi+1 wi+1 = yi wi + hi [(ti , yi ; hi ) (ti , wi ; hi )] + hi [(Rh yh )i (Rh wh )i ].
Sean ei = kyi wi k y di = k(Rh yh )i (Rh wh )i k en alguna norma vectorial k k, y sea
= kdk = max0iN di . Debido a que satisface una condicin de Lipschitz y utilizando
la desigualdad del triangulo, se obtiene:
ei+1 (1 + hi M )ei + hi ,

i = 0, 1, . . . , N 1

(7.22)

donde M es la constante de Lipschitz asociada a (t, y; h). Por recurrencia de la desigualdad


(7.22) obtenemos
Y
i
i
i
Y
Y
(1 + hk M )
(1 + hk M )+h1
(1 + hk M )e0 + h0
ei+1
k=2

k=1

k=0

+ + hi1 (1 + hi M ) + hi .
Se puede demostrar facilmente que cada uno de los productos es menor igual a e(ba)M
P
pues 1 + hk M ehk M y N
k=1 hk = b a. As que
ei+1 e

(ba)M

e0 + e

(ba)M

i
X

hk e(ba)M [e0 + (b a)]

k=0

En la ltima desigualdad se ultiz que

Pi

k=0 hk

b a. Por lo tanto

kek = kyh wh k e

(ba)M

ky0 w0 k + (b a)kRh yh Rh wh k

K ky0 w0 k + kRh yh Rh wh k

con K = e(ba)M max{1, b a}

Anlisis Numrico

185

Ejemplo 7.16. El mtodo de Euler es estable si f (t, y) es Lipschitz continua respecto a y,


dado que en el mtodo de Euler (t, y; h) = f (t, y).
En realidad todos los mtodos de un paso que se usan en la prctica satisfacen una
condicin de Lipschitz si f (t, y) satisface una condicin de este tipo. En este caso la constante
de Lipschitz M para puede expresarse en trminos de la constante de Lipschitz L para f .
Por ejemplo, para el mtodo de Heun:
1
(t, y; h) = (k1 + k2 ),
2

con k1 = f (t, y), k2 = f (t + h, y + hk1 ).

Entonces
1
k (t, y; h) (t, y ; h) k = k f (t, y) f (t, y ) + f (t + h, y + hk1 ) f (t + h, y + hk1 ) k
2
donde k1 = f (t, y ). Por la desigualdad del tringulo y la condicin de Lipschitz se obtiene
L
L
ky y k + ky + hk1 y hk1 k
2
2
Lh
L2 h
Lky y k +
kf (t, y) f (t, y )k Lky y k +
ky y k.
2
2

k (t, y; h) (t, y ; h) k

Tomando M = L(1 +

7.7.2.

hL
2 )

se obtiene la condicin de estabilidad.

Convergencia

Definicin 7.17. El mtodo de un paso (7.19)(7.20) es convergente si


max kyi y(ti )k 0 cuando |h| 0,

0iN

es decir si kyh yk 0 cuando |h| 0.

Teorema 7.18. Si el mtodo (7.19)(7.20) es consistente y estable sobre [a, b], entonces el
mtodo es convergente.
N
Demostracin. Sea yh = {yi }N
i=0 solucin de (7.19)(7.20), y sea y = {y(ti )}i=0 solucin
de (7.1)(7.2) en los puntos de malla. Entonces, debido a la estabilidad

kyh yk K{ky0 y(t0 )k + kRh yh Rh yk },

para alguna constante K > 0. Como y0 = y(t0 ) y Rh yh = 0 , entonces


kyh yk KkRh yk = KkT (, y; h)k = O(|h|p )

186

L. Hctor Jurez V.

suponiendo un error de truncamiento de orden p. Claramente


kyh yk 0, cuando |h| 0

Conclusin. Todos los mtodos de un paso que se han considerado en esta seccin son
estables y convergentes, y de orden p 1, bajo suposiciones razonables de suavidad para
f (t, y).

7.8.

Estudio asinttico del error global

Hasta el momento solo hemos considerado el error de truncamiento para hablar de la


precisin de un mtodo de aproximacin. Si el mtodo es de orden p el error de truncamiento
puede expresarse en trminos de la funcin principal del error en la forma
T (t, y; h) = (t, y)hp + O(hp+1 ).
Como sabemos el error de truncamiento indica una medida del error por unidad de paso del
tiempo. Esta claro que la distribucin de este error local esta descrita por la funcin principal
del error y juega el papel de trmino lider en el error de truncamiento. Quisieramos saber si,
en forma anloga, el error global contiene un trmino lider que describe la distrubucin del
error global kyh yk cuando |h| 0. Es decir, estamos interesados en el comportamiento
asinttico de yi y(ti ), i = 1, . . . , N . El siguiente teorema indica que, bajo suposiciones
razonables, el trmino lider del error global es una funcin (t) que resuelve el problema
variacional
d
= fy (t, y) + (t, y), a < t b
dt
(a) = 0
Para simplificar la exposicin consideraremos que la malla es uniforme, es decir hi = h,
i = 1, . . . , N .
Teorema 7.19. Supongase que
a) (t, y; h) C 2 [a, b] Rn [0, h0 ],
b) es un mtodo de orden p 1 en funcin del error principal (t, y) continua sobre
[a, b] Rn .

Anlisis Numrico

187

c) (t) es la solucin del problema de valores iniciales.


d
= fy (t, y(t)) + (t, y(t)), a < t b
dt
(a) = 0

(7.23)
(7.24)

entonces
yi y(ti ) = (ti )hp + O(hp+1 ), cuando |h| 0

(7.25)

para i = 1, . . . , N .
Antes de demostrar este teorema hacemos las siguientes observaciones:
1. El significado preciso de la expresin (7.25) es
kyh y hp k = O(hp+1 ) cuando |h| 0,
N
N
donde y = {y(ti )}N
i=0 , yh = {yi }i=0 , = {i }i=0 son funciones de malla y k k se
define como el valor mximo en valor absoluto de la funcin de malla.

2. Como (t, y; 0) = f (t, y), entonces la primera suposicin del teorema implica que
f C 2 sobre [a, b]Rn , y esto ltimo es ms que suficiente para garantizar la existencia
y unicidad de la solucin (t) del problema (7.23)(7.24) sobre [a, b].
Demostracin. Utilizando el teorema de Taylor el teorema del valor medio, y la consistencia del mtodo, se puede demostrar (Gautschi) que
(ti , yi ; hi ) (ti , y(ti ); hi ) = fy (ti , y(ti )) [yi y(ti )] + O(hp+1 )

(7.26)

Para resaltar el trmino lider en el error global, definimos la funcin de malla = (yh y)/hp ,
es decir i = (yi y(ti ))/hp implica

i+1 i
1 yi+1 y(ti+1 ) yi y(ti )
=

h
h
hp
hp

1 yi+1 yi y(ti+1 ) y(ti )

= p
h
h
h
1
= p [(ti , yi ; h) {(ti , y(ti ); h) T (ti , y(ti ); h)}]
h
En la ltima igualdad se ha hecho uso de que
yi+1 = yi + h(ti , yi ; h) y T (ti , y(ti ); h) = (ti , y(ti ); h)

y(ti+1 ) y(ti )
h

188

L. Hctor Jurez V.

Adems, si hacemos uso de la expresin del error de truncamiento en trminos del error
principal
T (ti , y(ti ); h) = (ti , y(ti ))hp + O(hp+1 ),
obtenemos, utilizando (7.26),
i+1 i
h

1
(ti , yi ; h) (ti , y(ti ); h) + (ti , y(ti ))hp + O(hp+1 )
p
h
yi y(ti )
+ (ti , y(ti )) + O(h)
= fy (ti , y(ti ))
hp
= fy (ti , y(ti ))i + (ti , y(ti )) + O(h),
=

i = 1, . . . , N . Por lo tanto, despejando i+1 , de la anterior ecuacin, obtenemos


i+1 = i + h [fy (ti , y(ti ))i + (ti , y(ti ))] + O(h2 ),

0 = 0

la cual puede verse como el mtodo de Euler para aproximar la ecuacin (7.23). Dado que
el mtodo de Euler es estable y la funcin g(t, y) = fy (t, y(t)) + (t, y(t)) es lineal en y, sta
satisface una condicin de Lipschitz. Entonces se satisface la condicin
k k K[k0 0 k + kRh Rh k ] = KkT (, ; h)k = O(h)
debido a que T (, ; h) es el error de truncamiento en el mtodo de Euler. Como = hp (yh
y), entonces multiplicando por hp la ltima desigualdad se obtiene
kyh y + hp k = O(hp+1 ).

7.9.

Monitoreo del error y control del paso

La mayora de los programas modernos disponibles para resolver ecuaciones diferenciales


ordinarias tienen integrada la posibilidad de monitorear errores locales de truncamiento y, en
consecuencia, controlar la longitud del paso h sobre la base de la estimacin de estos errores.
Nosotros utilizaremos el resultado asinttico del teorema anterior para tratar de monitorear
el error global dado por la ecuacin (7.25). Observamos que para ello necesitamos calcular
la matriz Jacobiana a lo largo de la trayectoria solucin fy (t, y(t)) y una estimacin de la
funcin principal del error (t, y(t)), como se muestra en la ecuacin (7.23).
Estimacin del error global.

Anlisis Numrico

189

La idea principal para hacer una estimacin del error global es hacer uso de las expresiones (7.23)(7.25). Es decir, integrar la ecuacin variacional (7.23) junto con la ecuacin
principal (7.1)(7.2). Observese que en (7.25) necesitamos una estimacin de (ti ) con un
error de orden a lo ms O(h), dado que cualquier estimacin con orden adicional sera absorbida por el trmino O(hp+1 ). Por lo tanto, (ti ) puede obtenerse del problema variacional
(7.23) por medio del mtodo de Euler:
i+1 = i + h[fy (ti , yi )i + (ti , yi ; h)].
Sin embargo tenemos un problema adicional: necesitamos calcular la funcin del error principal (t, y), lo cual generalmente no ser posible. Pero, de nuevo, como solo necesitamos
una estimacin de primer orden i , podemos sustituir (t, y) por una funcin r(t, y ; h) que
satisfaga
r(t, y; h) = (t, y) + O(h), h 0

(7.27)

uniformemente sobre [a, b]Rn . Ms adelante presentaremos dos tcnicas mediante las cuales
se puede obtener r(t, y; h).
Resumiendo, si (t, y; h) satisface las condiciones del teorema 7.19 y si r(t, y; h) es una
estimacin del error principal que satisface (7.27), generamos simultaneamente las funciones
N
de malla yh = {yi }N
i=0 y h = {i }i=0 por medio de
ti+1 = ti + h

(7.28)

yi+1 = yi + h(ti , yi ; h)

(7.29)

i+1 = i + h[fy (ti , yi )i + r(ti , yi ; h)],

(7.30)

donde t0 = a, y0 = y(t0 ) y 0 = 0. Entonces la estimacin del error global de orden hp+1


viene dada por
yi y(ti ) = i hp ,

|h| 0

Estimacin del error de truncamiento


Esta claro que para poder utilizar (7.28)(7.30) debemos estimar r(t, y; h) la cual es una
aproximacin de orden h para la funcin del error principal (t, y). A continuacin describimos dos mtodos que producen una estimacin de r(t, y; h).
1. Extrapolacin local de Richardson a cero.

190

L. Hctor Jurez V.

Funciona bin para cualquier mtodo de un paso, pero se considera que es muy caro
computacionalmente. Si tiene orden p, el procedimiento es calcular
yh = y + h(t, y; h)
h
yh/2 = y + (t, y; h/2)
2
h
yh = yh/2 + (t + h/2, yh/2 ; h/2)
2
y entonces una estimacin de r(t, y; h) es (Gautschi)
r(t, y; h) =

yh yh
1
1 1/2p hp+1

(7.31)

Observese que yh es el resultado de aplicar sobre dos pasos consecutivos de tamao h/2,
mientras que yh es el resultado de una aplicacin de sobre el intervalo completo de tamao
h. Este procedimiento es costoso. Por ejemplo, para un mtodo de Runge-Kutta de cuarto
orden se necesitan 11 evaluaciones de f por paso, es decir casi el triple nmero de evaluaciones
necesarias para un paso del mtodo simple de Runge-Kutta. Por esta razn es que el mtodo
de extrapolacin de Richardson normalmente se utiliza despues de cada dos pasos de , es
decir se calcula
yh = y + h(t, y; h)

y2h
= yh + h(t + h, yh ; h)

y2h = y + 2h(t, y; 2h)


y entonces la expresin (7.31) se transforma en
r(t, y; h) =

y2h y2h
1
2(2p 1) hp+1

= (t, y) + O(h)

Para un mtodo de Runge-Kutta clsico, el procedimiento necesita 7 evaluaciones de f por


paso, es decir 3 evaluaciones adicionales a las necesarias para un paso simple de Runge-Kutta.
An con este ahorro el procedimiento sigue siendo caro.
A continuacin presentamos un mtodo ms eficiente.
2. Mtodos de encajamiento (RungeKuttaFehlberg).
Se pueden obtener mtodos ms eficientes para el control del paso, si en lugar de dos
aproximaciones con pasos h y h/2 como en los mtodos anteriores, se sigue la idea de
Fehlberg: generar dos mtodos de discretizacin diferentes, uno de orden p y otro de orden

Anlisis Numrico

191

p + 1:
y(t + h) y(t) + h (t, y; h),
y (t + h) y(t) + h (t, y; h),

(orden p)
(orden p + 1).

Dado que
y(t + h) y(t)
h
y(t
+
h)
y(t)
(t, y; h)
h
(t, y; h)

= T (t, y; h) = (t, y)hp + O(hp+1 ),


= T (t, y; h) = O(hp+1 ),

al restar y dividir por hp , se obtiene


1
[(t, y; h) (t, y; h)] = (t, y) + O(h),
hp

(7.32)

de tal forma que


r(t, y; h) =

1
[(t, y; h) (t, y; h)]
hp

(7.33)

es una aproximacin de orden O(h) de la funcin principal del error (t, y) para el mtodo
de orden p con (t, y; h). Para que el mtodo valga la pena es necesario que sea ms eficiente
que los mtodos de extrapolacin. Siguiendo la idea de Fehlberg, esto se puede lograr encajando anidando un mtodo de RungeKutta de orden p dentro de otro de orden p + 1. La
forma explcita de construir este tipo de procedimiento se muestra con el siguiente ejemplo.

Ejemplo 7.20. Mtodo de RungeKuttaFehlberg con p = 2 y p + 1 = 3


Consideremos los mtodos
yi+1 = yi + h (ti , yi ; h),

con T (t, y; h) O(h2 ),

yi+1
= yi + h (ti , yi ; h),

con T (t, y; h) O(h3 ),

donde y se construyen de la siguiente manera


(t, y; h) = 1 k1 (t, y; h) + 2 k2 (t, y; h) + 3 k3 (t, y; h),
(t, y; h) = 1 k1 (t, y; h) + 2 k2 (t, y; h) + 3 k3 (t, y; h) + 4 k4 (t, y; h).
Notese que en la construccin de los valores k1 , k2 y k3 usados para calcular se han
reutilizado, por lo que solo se necesita un valor adicional k4 para construir el segundo mtodo

192

L. Hctor Jurez V.

. Las funciones k1 , k2 , k3 y k4 se construyen de la siguiente manera:


k1 = f (t, y),
k2 = f (t + 2 h, y + h21 k1 ),
k3 = f (t + 3 h, y + h[31 k1 + 32 k2 ]),
k4 = f (t + 4 h, y + h[41 k1 + 42 k2 + 43 k3 ]),
Las constantes r , rj , con r = 2, 3, 4, y 1 j r 1, as como r , r , r = 1, 2, 3,
4, se calculan de tal forma que los errores de truncamiento sean O(h2 ) para (t, y; h) y
O(h3 ) para (t, y; h). Este clculo se realiza en forma anloga a como se hizo en el caso
del mtodo de RungeKutta de dos etapas. Si en el clculo se utiliza la condicin adicional
Pr1
r =
j=1 rj , r = 2, 3, 4, se obtienen las ecuaciones siguientes para las constantes a
determinar:
1 + 2 + 3 = 1,
1
2 2 + 3 3 = ,
2
1
2
2
2
2 2 + 3 3 + 4 4 = ,
3

1 + 2 + 3 + 4 = 1,
1
2 2 + 3 3 + 4 4 = ,
2
1

2 32 3 + (2 42 + 3 43 )4 = .
6

Este sistema de ecuaciones tiene una infinidad de soluciones, y se pueden imponerse restricciones adicionales para reducir el costo del mtodo. Por ejemplo, puede pedirse que k4 en el
isimo paso sea reusable como k1 en el (i + 1)simo paso. Es decir, podemos imponer
f (t + h, y + h) f (t + 4 h, y + h[41 k1 + 42 k2 + 43 k3 ]),
lo cual produce las restricciones adicionales
4 = 1,

41 = 1 ,

42 = 2 ,

43 = 3 .

Se pueden imponer restricciones adicionales para mnimizar los coeficientes de la funcin


principal del error. Sin embargo, no consideramos esto en detalle. En lugar de esto, escribimos a continuacin un conjunto de valores para las constantes:
r

r1

r2

r3

1
2
3
4

0
1/4
27/40
1

0
1/4
189/800
214/891

729/800
1/33

650/891

214/891
1/33
650/891

533/2106
0
800/1053
1/78

Anlisis Numrico

193

Con estas constantes se obtiene el mtodo siguiente al cual denominaremos RKF23 :


k1 = f (ti , yi ),

(7.34)

h
h
, yi + k1 ),
4
4
27
189
729
k3 = f (ti + h, yi
hk1 +
hk2 ),
40
800
800
214
1
650
k4 = f (ti + h, yi +
hk1 + hk2 +
hk3 ),
819
33
891
h
yi+1 = yi +
(214k1 + 27k2 + 650k3 ),
891
h

yi+1
= yi +
(533k1 + 1600k3 27k4 ).
2106
k2 = f (ti +

(7.35)
(7.36)
(7.37)
(7.38)
(7.39)

Observese que debido a que


k4 (ti , yi ; h) = f (ti + h, yi + h(ti , yi ; h)) = f (ti+1 , yi+1 ) = k1 (ti+1 , yi+1 ; h)
entonces solo se requieren tres evaluaciones de f por paso.
Control del paso
El control del paso h se obtiene de la siguiente forma

yi+1 yi+1
= h[(ti , yi ; h)) (ti , yi ; h))] = h3 r(ti , yi ; h),

(ver ecuacin (7.33) con p = 2). Supongase que queremos que el error global sea menor a un
valor dado (tolerancia). Para que esto ocurra se debe cumplir que

kyi+1 yi+1
k = h3 kr(ti , yi ; h)k .

(7.40)

Para que el nuevo paso del tiempo hnew sea exitoso, es decir produzca un error menor a ,
se debe satisfacer
kr(ti+1 , yi+1 ; h)k h3new .
(7.41)
Pero, salvo errores de orden h,
r(ti+1 , yi+1 ; h) r(ti , yi ; h) =

k
kyi+1 yi+1
h3

por (7.40). Sustituyendo esta expresin en (7.41), obtenemos


k
kyi+1 yi+1
h3new
h3

194

L. Hctor Jurez V.

Por lo tanto, para garantizar que el error global sea menor a en cada paso debemos escoger

hnew h

k
kyi+1 yi+1

1/3

Para el caso general, cuando las aproximaciones yi+1 y yi+1


se han realizado con mtodos
de orden p y p + 1 respectivamente, se tiene

hnew h

k
kyi+1 yi+1

1/(p+1)
(7.42)

Muchos autores, basados en una amplia experiencia numrica, recomiendan hacer el


siguiente ajuste
hnew q h
con

q=

h
k
kyi+1 yi+1

1/p
y 0.9

Ejemplo 7.21. Ecuacin de Van der Pol.


x00 (t) c(1 x(t)2 ) x0 (t) + x(t) = 0,

0 < t 10 ,

x(0) = 1 ,
x0 (0) = 0.
Con c = 0, se obtiene la ecuacin del oscilador armnico simple. Si c 6= 0, la ecuacin es
no lineal. Primero, transformamos la ecuacin en un sistema de dos ecuaciones diferenciales
ordinarias de primer orden.
y1 (t) = x(t) y10 (t) = y2 (t)
y2 (t) = x0 (t) y20 (t) = c(1 y1 (t)2 )y2 (t) y1 (t)
En notacin matricial se puede escribir
#"
# "
#
" #
# "
"
y1
0
1
0 1
y10

, y0 =
=
2
0
y2
cy1 y2
0
1 c
y2
Se resuelve numricamente esta ecuacin diferencial no lineal, para el caso c = 3, utilizando
el mtodo RKF23 (7.34)(7.39) con tolerancia = 0.01. La Figura 7.11 muestra las grficas
de y1 (t) = x(t) y y2 (t) = x0 (t) contra t. La Figura 7.12 muestra el retrato fase de la solucin,

Anlisis Numrico

195

x(t)
x(t)

10

15
tiempo

20

25

30

Figura 7.11: Solucin de la ecuacin de Van der Pol. Mtodo RKF3 con = 0.01

6
4
2

x(t)
0
2
4
6

1.5

0.5

0.5

1.5

x(t)

Figura 7.12: Retrato fase de la solucin de la ecuacin de Van der Pol.

es decir la grfica de x(t) contra x0 (t). Se observa que el retrato fase de la solucin representa
un ciclo lmite no simple y la solucin es perodica. En ambas figuras se observa claramente
el tamao variable de los pasos de tiempo. El nmero de pasos del tiempo en este ejemplo fu
de 156. Con un mtodo de paso fijo se toma h = 0.1 para obtener una precisin equivalente
y se requieren 10/0,1 314 pasos del tiempo, es decir cerca del doble. Con el objeto de
obtener una mejor solucin, escogemos la tolerancia del error como = 104 , y repetimos el
clculo. Las Figuras 7.13 y 7.14 muestran la solucin. En este caso se necesitan 501 pasos
del tiempo. Con un mtodo de paso fijo se necesitaran 3142 pasos del tiempo para obtener
la misma precisin, es decir ms de 6 veces que con paso variable.

196

L. Hctor Jurez V.
x(t)
x(t)

10

15
tiempo

20

25

30

Figura 7.13: Solucin con mayor precisin: = 104 .

6
4
2
x(t)
0
2
4
6

0
x(t)

Figura 7.14: Retrato fase correspondiente.

7.9.1.

Mtodo RungeKuttaFehlberg de cuarto orden

Este es un mtodo que tambin es muy usado en la prctica. En este caso se combinan
un mtodo de orden p = 4 con uno de orden p + 1 = 5. Evitando los detalles de deduccin

Anlisis Numrico

197

del mtodo, solamente presentamos a continuacin este mtodo de paso variable:


k1 = f (ti , yi )

h
h
k2 = f ti + , yi + k1
4
4

3h
3
9
k3 = f ti +
, yi + hk1 + hk2
8
32
32

12h
1932
7200
7296
k4 = f ti +
, yi + h
k1
k2 +
k3
13
2197
2197
2197

439
3680
845
k5 = f ti + h, yi + h
k1 8k2 +
k3
k4
216
513
4104

8
3544
1859
11
h
k3 +
k4 k5
k6 = f ti + , yi + h k1 + 2k2
2
27
2565
4104
40

25
1408
2197
1
yi+1 = yi + h
k1 +
k3 +
k4 k5
216
2565
4104
5

16
6656
28561
9
2

yi+1
= yi + h
k1 +
k3 +
k4 k5 + k6
135
12825
56430
50
55
El paso de tiempo nuevo en cada iteracin se calcula por medio de

hnew = 0.84 h

h
k
kyi+1 yi+1

1/4

donde es la tolerancia deseada para el error global. En ocasiones, en lugar de calcular yi+1
k. Por ejemplo, en el caso del mtodo
se calcula directamente la diferencia ei+1 = kyi+1 yi+1
RKF-45 (RungeKuttaFehlberg de cuarto orden), se tiene

1
128
2197
1
2

ei+1 = h
k1
k3
k4 + k5 + k6
360
4275
75240
50
55

Ejemplo 7.22. Se resuelve la ecuacin de Vander Pol con c = 3 utilizando el mtodo


RKF45 con una tolerancia = 104 . Las Figuras 7.15 y 7.16 muestran las grficas de los
resultados obtenidos. En este caso se realizaron 288 pasos de tiempo para obtener la solucin.

198

L. Hctor Jurez V.

x(t)
x(t)

10

15
tiempo

20

25

Figura 7.15: Solucin con el mtodo RKF45.

6
4
2
x(t)
0
2
4
6

0
x(t)

Figura 7.16: Retrato fase correspondiente.

30

Bibliografa
[1] E. Isaacson, H. B. Keller, Analysis of Numerical Methods, Wiley 1966.(Dover en 1994).
[2] W.Gautschi, Numerical Analysis: An Introduction, Birkhauser, 1998.
[3] L. N. Trefethen, D. Bau III, Numerical Linear Algebra, SIAM, 1997.
[4] S. D. Conte, C. de Boor, Elementary Numerical Analysis, Mc. Graw-Hill 3rd. Ed. 1980
[5] J. Stoer, R. Bulirsch, Introduction to Numerical Analysis, Springer-Verlag 1st. Ed. 1980,
2nd. Ed. 199, 3rd. Ed. 2002.
[6] Cleve Moler, Numerical Computing Whit Matlab, Disponible en linea:
http://www.mathworks.com/moler/index.html
[7] J. M. Ortega, Numerical Analysis: A Second Course, Classics in Applied Mathematics,
SIAM, 1990.
[8] P. Henrici, Elements of Numerical Analysis, Wiley 1964.
[9] A. Quarteroni, R. Sacco, F. Saleri, Numerical Mathematics, Text in Applied Mathematics 37, Springer, 2000.
[10] E. Suli, D. F. Mayers, An Introduction to Numerical Analysis, CUP, 2003.
[11] S. Ross, Simulation, Academic Press, 2nd. Ed. 1997.
[12] G.Golub, C. Van Loan, Matrix Computation, John Hopkins University Press, 2nd. Ed.
1989, 3rd. Ed. 1996.
[13] W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery, Numerical Recipes: The
Art of Scientific Computing, Cambridge University Press. Gratis versiones para F77,
F90 y C en
http://www.lanl.gov/numerical/index.html
199

200

L. Hctor Jurez V.

[14] G. Engeln-Mullges, F. Uhlig, Numerical Algorithms whit Fortran, Springer-Verlag,


Berlin, 1996. QA297 E5.6613
[15] Hammerlin, Gunther-Karl-Heinz Hoffmann, Numerical Mathematics, Springer-Verlag.
QA297 H2.53
[16] R. Burden, J. D. Faires, Anlisis Numrico, Grupo Editorial Iberoamericana, 2a. Ed.
1996.
[17] K. E. Atkinson, An introduction to Numerical Analysis, Wiley 1st Ed.1978, 2nd. Ed.
1989.
[18] D. Kincaid, W. Cheney, Numerical Analysis: Mathematics of Scientific Computing,
Books/Cole Pub. Co., 2nd Ed. 1996.

You might also like