1. ´ ´
METODOS NUMERICOS
Una exploraci´n basada en Scheme
o
Enrique Comer Barrag´n
a
24 de marzo, 2009
→ Edici´n Preliminar 0.23 ←
o
Instituto Tecnol´gico de Tijuana
o
2. ii
c Licencia de uso: Esta obra se publica bajo una licencia de Creative
Commons (ver: http://creativecommons.org/licences/by-nc-nd/2.5/). B´si- a
camente, usted puede distribuir y comunicar p´blicamente la obra, siempre
u
que se cumpla con (1) dar cr´dito al autor de la obra, (2) no la utilice para
e
fines comerciales y (3) no la altere, transforme o genere una obra derivada de
ella. Adem´s, al utilizar o distribuir la obra, debe especificar claramente los
a
t´rminos de esta licencia. Estas condiciones pueden modificarse con permiso
e
escrito del autor.
Edici´n preliminar 0.23
o
24 de marzo, 2009
7. Prefacio
The purpose of computing is
insight, not numbers.
R. W. Hamming. Autor de
Numerical Methods for Scientist
and Engineers
El contenido de esta obra se conforma de acuerdo al curso de M´todos e
Num´ricos en el plan de estudios actual de Ingenier´ en Sistemas Computa-
e ıa
cionales del Instituto Tecnol´gico de Tijuana. Se hace ´nfasis tanto en los as-
o e
pectos matem´ticos conceptuales como algor´
a ıtmicos. Para la implementaci´n
o
de estos ultimos se utiliza el lenguaje de programaci´n Scheme [25].
´ o
La edici´n de este libro se realiz´ con TeXnicCenter (ambiente para La-
o o
TeX/MiKTeX) y software auxiliar como WinGCLC y Asymptote.
Agradezco a la Academia de Sistemas y Computaci´n por la revisi´n y
o o
observaciones para mejorar esta obra, as´ como a la DGEST por el per´
ı ıodo
sab´tico 2007-2008, gracias al cual se ha realizado este proyecto.
a
ECB
comer@cemati.com
vii
9. Cap´
ıtulo 1
Teor´ de errores
ıa
1.1. Importancia de los m´todos num´ricos
e e
La simulaci´n y el modelado
o
matem´tico, mover´n el siglo
a a
XXI, as´ como el vapor movi´ el
ı o
siglo XIX.
William H. Press. Autor de
Numerical Recipes
Gran parte de la tecnolog´ actual depende de la soluci´n de modelos
ıa o
matem´ticos, desde la programaci´n empotrada de una calculadora cient´
a o ıfi-
ca y el c´lculo estructural de un edificio multinivel con estructuras de acero,
a
hasta el dise˜o y simulaci´n de aeronaves y vuelos espaciales. La soluci´n
n o o
de un modelo matem´tico relativamente sencillo puede obtenerse de manera
a
anal´ıtica. Sin embargo, para la gran mayor´ de los modelos matem´ticos del
ıa a
mundo real, las soluciones anal´ ıticas pueden no existir o ser extremadamente
complejas, por lo cual se recurre a m´todos num´ricos que aproximen las
e e
soluciones dentro de ciertos m´rgenes de tolerancia.
a
El an´lisis de los m´todos num´ricos nos permite realizar estimaciones
a e e
tanto de la eficiencia o complejidad de los algoritmos asociados, as´ como de
ı
la confiabilidad de los resultados num´ricos obtenidos durante su aplicaci´n.
e o
Entre las disciplinas que hacen uso intensivo de los m´todos num´ricos
e e
podemos mencionar:
An´lisis Estad´
a ıstico
1
10. 2 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
Matem´ticas financieras
a
An´lisis de elemento finito
a
An´lisis estructural
a
Qu´
ımica computacional
Investigaci´n de operaciones
o
Electromagnetismo computacional
Mec´nica computacional
a
Procesamiento de im´genes
a
Procesamiento de se˜ales
n
Simulaci´n por computadora
o
Computaci´n multi-escala
o
Metereolog´
ıa
Debido a la gran variedad de aplicaciones y especialidades atendidas por los
m´todos num´ricos, podemos encontrar en la literatura t´rminos asociados
e e e
como los siguientes:
Matem´ticas num´ricas
a e
Algoritmos num´ricos
e
Computaci´n cient´
o ıfica
An´lisis num´rico
a e
Matem´ticas algor´
a ıtmicas
Matem´ticas computacionales
a
Teor´ de la aproximaci´n1
ıa o
1
Esta disciplina matem´tica, forma la base te´rica de gran parte de los m´todos num´ri-
a o e e
cos
11. ´
1.2. CONCEPTOS BASICOS 3
1.2. Conceptos b´sicos
a
El estudio y aplicaci´n de los m´todos num´ricos se basa en forma esencial
o e e
en la representaci´n y manipulaci´n de los n´meros reales en una computa-
o o u
dora digital. Ya que la memoria de una computadora es finita, ´sta s´lo puede
e o
representar n´meros racionales. La estrategia para hacer funcional y eficiente
u
la aproximaci´n de los n´meros reales por n´meros de m´quina en binario se
o u u a
presenta en el est´ndar IEEE 754 [13]
a
Los t´rminos asociados en esta secci´n incluyen:
e o
Confiabilidad
Estabilidad y convergencia
Propagaci´n del error
o
An´lisis asint´tico
a o
Notaci´n cient´
o ıfica
Forma decimal normalizada
N´meros de m´quina decimales con k d´
u a ıgitos
N´meros de punto flotante (Est´ndar IEEE 754)
u a
1.2.1. Cifras significativas
La noci´n intuitiva de cifras significativas de un n´mero est´ directamente
o u a
relacionada con la precisi´n de los ins-trumentos o procesos que lo generan.
o
Definici´n 1.2.1 (Cifras significativas). El n´mero de cifras significati-
o u
vas de un n´mero x corresponde al n´mero de cifras en la mantisa de su
u u
representaci´n en notaci´n cient´
o o ıfica.
Ejemplo 1.2.1. Ya que 0.00123 = 1.23·10−3 , decimos que 0.00123 tiene tres
cifras significativas.
Ejemplo 1.2.2. El n´mero 3210 = 3.210 · 103 posee cuatro cifras significa-
u
tivas.
12. 4 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
Note que en el ejemplo anterior, hemos mantenido el 0 de las unidades.
Si el origen del n´mero no garantizara el valor de sus unidades, entonces
u
deber´ıamos escribir directamente 3.21 · 103 lo que indicar´ que contamos con
ıa
s´lo tres cifras significativas.
o
Definici´n 1.2.2 (Aproximaci´n con t cifras significativas). Sean xv y xc los
o o
valores verdadero y calculado de una cierta cantidad, con xv = xc . Decimos
que xc aproxima a xv con t cifras significativas si t es el mayor entero no
negativo para el cual
xv − xc
≤ 5 × 10−t (1.1)
xv
Para el caso xv = xc , xc aproxima xv con las cifras significativas propias.
Como se observa en [8, p´g. 53] esta definici´n dada para decimales puede
a o
2
extenderse para cualquier base dada.
Ejemplo 1.2.3. El n´mero 3.1416 aproxima a 3.1415926 en 6 cifras signi-
u
ficativas, ya que
|3.1415926 − 3.1416|
= 2.3554932 × 10−6 ≤ 5 × 10−6
|3.1415926|
Como se observa, no es necesario que coincidan los d´
ıgitos de las cifras sig-
nificativas.
Ejercicio 1.2.1. Calcular el n´mero de cifras significativas con que 9.99
u
aproxima a 10
Ejercicio 1.2.2. Calcular el n´mero de cifras significativas con que 1005
u
aproxima a 1000
1.2.2. Precisi´n y exactitud
o
El estudio e implementaci´n en computadora de los m´todos num´ricos
o e e
requiere de un cuidado especial en el manejo de los n´meros, de forma que los
u
2
Es importante notar que en la desigualdad (1.1) se utiliza algunas veces < como en
el caso de [5, p´g. 21]. Se recomienda resolver el ejercicio 1.2.2, para ambas definiciones y
a
reflexionar sobre sus respuestas.
13. ´
1.2. CONCEPTOS BASICOS 5
resultados que entregue un programa sean confiables. Para hablar de dicha
confiabilidad3 distinguiremos entre los t´rminos precisi´n y exactitud.
e o
Aunque en las aplicaciones es necesario conocer la precisi´n de los datos
o
de entrada (a un algoritmo), que pueden depender directamente de los ins-
trumentos utilizados4 , nos concentraremos aqu´ en la precisi´n de la repre-
ı o
sentaci´n de un n´mero en la memoria de la computadora, lo cual est´ rela-
o u a
cionado con la siguiente representaci´n de n´meros reales.
o u
Definici´n 1.2.3 (n´meros de punto flotante). De-cimos que un n´mero x
o u u
est´ representado como n´mero de punto flotante si se expresa como
a u
x = ±d0 .d1 d2 · · · dp−1 × β e (1.2)
donde p es el n´mero de d´
u ıgitos en la mantisa o significando, β es la base y e
es el exponente entero. Adem´s, cuando d0 = 0 decimos que est´ en su forma
a a
normalizada .
Ejemplo 1.2.4. El n´mero 314.159 en representaci´n de punto flotante es
u o
0.314159 × 10 y como punto flotante normalizado 3.14159 × 102 .
3
Ya que las computadoras digitales trabajan (en su mayor´ con el sis-
ıa)
tema binario, el est´ndar IEEE 754 especifica tanto la representaci´n como
a o
5
el manejo de los n´meros binarios de punto flotante.
u
Definici´n 1.2.4 (n´meros binarios de punto flotante normalizado). De-
o u
cimos que un n´mero x est´ representado como n´mero binario de punto
u a u
flotante normalizado si se expresa como
x = (−1)s (1 + f )2e (1.3)
donde s es el signo, f es la fracci´n en binario y e el exponente.
o
La precisi´n de un n´mero est´ directamente relacionada con el n´mero
o u a u
de d´
ıgitos en su representaci´n de punto flotante.
o
3
La revista Reliable Computing se especializa en m´todos basados en intervalos (entre
e
otros) que garantizan y acotan todos sus resultados.
4
El Peque˜o Larousse Ilustrado, 2002 define Precisi´n (de un instrumento de medida)
n o
como la cualidad global de un instrumento que le permite dar indicaciones que coinciden,
con mucha aproximaci´n, con el valor verdadero de la magnitud que debe medirse.
o
5
Para informaci´n adicional sobre este est´ndar puede consultar el excelente art´
o a ıculo
de Goldberg en [10].
14. 6 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
Definici´n 1.2.5 (precisi´n en formatos IEEE 754). En base a la ecuaci´n
o o o
(1.3) el est´ndar IEEE 754 define los siguientes cuatro tipos de formatos6
a
(ver tabla (1.1))que determinan la precisi´n de un n´mero de punto flotante
o u
(adaptaci´n de [10, pp. 173-174]):
o
Tabla 1.1: Precisi´n en Formatos IEEE 754
o
par´metro
a Formatos
sencillo s. extendido doble d. extendido
emax +127 ≥ 1023 +1023 > 16383
emin −126 ≤ −1022 −1022 ≤ −16382
e bits 8 ≤ 11 11 ≥ 15
f bits 23 31 52 ≥ 63
total bits 32 ≥ 43 64 ≥ 79
Ya que 2−23 ≈ 1.19 · 10−7 y 2−52 ≈ 2.22 · 10−16 , el formato sencillo tiene
una fracci´n con precisi´n de 7 decimales y el formato doble, una precisi´n
o o o
de 15 decimales.
Las operaciones con n´meros reales tanto en MATLAB7 como en DrScheme8
u
se realizan en doble precisi´n.
o
Ejemplo 1.2.5. Utilizando la funci´n en Scheme9 , real->ieee-doble, en la
o
figura (1.1), podemos obtener la representaci´n en formato de doble precisi´n
o o
mediante para los n´meros 0.3 y 64
u
6
Los formatos extendidos en la tabla 1.1, ofrecen flexibilidad de dise˜o para los distintos
n
fabricantes de computadoras. Por ejemplo, para el formato doble extendido, las computa-
doras SPARC y PowerPC ofrecen los siguientes campos (en bits): e = 15, f = 112. En
cambio INTEL ofrece: e = 15 y f = 63 con un bit extra para manejo expl´ ıcito del d´ıgito
m´s significativo de la fracci´n.
a o
7
MATLAB (MATrix LABoratory) es uno de los sistemas de software num´rico m´s ex-
e a
itosos en la actualidad. Para una introducci´n sobresaliente, orientada a m´todos num´ri-
o e e
cos, se le invita a consultar el libro de Cleve Moler [18]
8
Una de las implementaciones m´s completas del lenguaje de programaci´n Scheme, el
a o
cual emplearemos a lo largo del texto para ilustrar e implementar los m´todos num´ricos.
e e
Para una excelente introducci´n se recomienda el tutorial de Dorai Sitaram [25]
o
9
Esta funci´n as´ como el resto de las utilizadas en este libro, podr´n ser obtenidas
o ı a
(eventualmente) visitando http://cemati.com/math/areas/scheme/, o bien el sitio de dis-
tribuci´n PLaneT Package Repository en [21]. Se recomienda instalar PLT-Scheme versi´n
o o
4.1 (o superior) disponible en http://www.plt-scheme.org, y por el momento, sencillamente
copiar el archivo slab.ss (que complementa este libro) al folder PLT de su instalaci´n. o
15. ´
1.2. CONCEPTOS BASICOS 7
> ( r e a l −>i e e e −d o b l e 0 . 3 )
(”0” ”01111111101”
”0011001100110011001100110011001100110011001100110011”)
> ( r e a l −>i e e e −d o b l e 6 4 )
(”0” ”10000000101”
”0000000000000000000000000000000000000000000000000000”)
>
Ya que (0.3)10 = (0.10011)2 nunca podr´ representarse de forma exacta
a
en un sistema binario finito.
Como se observa en el ejemplo 1.2.5 hay n´meros reales (de hecho una
u
cantidad infinita) que no podr´n ser representados en forma exacta en un
a
sistema num´rico de base fija. Note adem´s que el exponente e en el formato
e a
IEEE 754 obedece (en el caso de doble precisi´n) a la ecuaci´n e = e − 1023.
o o
Ejercicio 1.2.3. Confirme los resultados del ejemplo 1.2.5, utilizando la
ecuacion 1.3.
Ejercicio 1.2.4. Determine las representaciones en binario de punto flotante
normalizado (en formato de doble precisi´n) de los siguientes n´meros en base
o u
10
a) −0.1
b) 1024
c) 1.1920928955078125e − 007
Problema 1.2.1. Ya que la recta de los flotantes no “cubre” la recta real,
calcular la distancia que existe entre los siguientes n´meros reales y sus dos
u
10
n´meros flotantes vecinos bajo el formato de doble precisi´n del est´ndar
u o a
IEEE 754:
a) 2008.09 · 1077
b) 64.3
c) −444.7 · 10−27
10
Esto ser´ equivalente a encontrar para un n´mero real x, funciones piso x y techo
ıa u
x pero en el edificio de los n´meros flotantes.
u
16. 8 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
Problema 1.2.2. Generalice el resultado del problema 1.2.1 y descubra una
expresi´n o modelo matem´tico para determinar la distancia entre n´meros
o a u
k k+1
flotantes consecutivos en intervalos de la forma [2 , 2 ], donde k es un
entero en el rango permitido.
En contraste con el concepto de precisi´n que se asocia a la representaci´n
o o
de un n´mero en particular (p. ej. bajo el formato de doble precisi´n del
u o
est´ndar IEEE 754), la exactitud de un n´mero hace referencia a una cantidad
a u
objetivo, y busca el m´ximo acercamiento posible a dicho objetivo11 , en el
a
sentido de la definici´n 1.2.2.
o
Obtener resultados rigurosos y confiables, con la precisi´n y exactitud ade-
o
cuadas para cada aplicaci´n es uno de los prop´sitos principales del dise˜o,
o o n
an´lisis e implementaci´n de los m´todos num´ricos.
a o e e
Conceptos como convergencia y acotaci´n del error mediante el an´lisis
o a
asint´tico, son claves y se considerar´n en diferentes partes de nuestro texto.
o a
C´digo Scheme 1.1: Funci´n real->ieee-doble
o o
; r e a l a i e e e de 64− b i t
2 ; numero r e a l −> l i s t a de s t r i n g s
; entrada : r
4 ; salida : ( s e ’ f )
; donde : s c o n t i e n e e l b i t d e l s i g n o
6 ; : e ’ t a l que e=e ’ −1023 , r e p r e s e n t a e l exponente
; : f contiene la fraccion
8 ( define ( r e a l −>i e e e −d o b l e r )
( i e e e 8 −>i e e e −d o b l e
10 (map f i l l −byte
(map (lambda( n ) ( number−>s t r i n g n 2 ) )
12 ( bytes −> l i s t
( r e a l −>f l o a t i n g −p o i n t −b y t e s r 8 #t ) ) ) ) ) )
1.2.3. Incertidumbre y sesgo
En el an´lisis de datos num´ricos generalmente podemos tener errores que
a e
tienen que ver con la falta ya sea de precisi´n o de exactitud.
o
11
Peque˜o Larousse Ilustrado: exactitud : Cualidad de ser medido, calculado o expresado
n
con todo rigor: hora exacta.
17. 1.3. TIPOS DE ERRORES 9
Definici´n 1.2.6 (incertidumbre y sesgo). Llamamos incertidumbre o impre-
o
cisi´n a la falta de precisi´n, y sesgo o inexactitud, a la falta sistem´tica de
o o a
exactitud, ya sea por debajo o bien por arriba de la cantidad exacta.
El manejo de la incertidumbre o imprecisi´n puede realizarse mediante
o
distribuciones de probabilidad, en tanto que el manejo de la inexactitud,
mediante rangos o intervalos.
Ejemplo 1.2.6. Supongamos que un profesor debe iniciar siempre sus clases
a las 7 : 00 am. Si existe incertidumbre, podr´ iniciar con una distribuci´n
ıa o
normal con media de 7 : 05 y desviaci´n est´ndar de 1 minuto, lo cual indica
o a
que el 99.7 % de las veces iniciar´ en el intervalo [7 : 02, 7 : 08]. Por otro
ıa
lado, si existe (solamente) sesgo, entonces empezar´ sistem´ticamente (por
ıa a
ejemplo) a las 7 : 07.
Ejemplo 1.2.7. Si especificamos que el valor de una resistencia el´ctrica es
e
de 100 ± 5 % Ω, estamos indicando que su valor real debe estar en el intervalo
[95, 105].
Existe actualmente una nueva generaci´n de m´todos num´ricos basados
o e e
en intervalos, rect´ngulos, cajas e hipercajas (para espacios mayores que 3D),
a
cuyo prop´sito es obtener soluciones num´ricas precisas y exactas. Para may-
o e
or informaci´n puede consultar el texto de Aberth [2] y el curso de Warwick
o
Tucker en [27].
1.3. Tipos de errores
En esta secci´n veremos los tipos esenciales de errores presentes (en mayor
o
o menor grado) en la aplicaci´n de los m´todos num´ricos. Adem´s de estos
o e e a
errores, podemos considerar: el error humano, observaciones inexactas pro-
pios del equipo experimental y errores de modelado. Ver el texto de Friedman
y Kolman [8, pp. 54-55] para ejemplos.
1.3.1. Error absoluto y relativo
Definici´n 1.3.1 (Error absoluto y relativo). Sea xv un valor num´rico
o e
verdadero y sea xc el valor calculado que aproxima el verdadero, entonces
definimos al error er(xc ) y al error relativo rel(xc ), as´ como sus correspon-
ı
dientes en valores absolutos, como sigue:
18. 10 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
er(xc ) = xv − xc (1.4)
era (xc ) = |xv − xc | (1.5)
xv − xc
rel(xc ) = (1.6)
xv
xv − xc
rela (xc ) = (1.7)
xv
Asumiendo claro, que en las ecuaciones (1.6) y (1.7) se cumple xv = 0.
Ejemplo 1.3.1. Calculemos los errores en la definici´n (1.3.1) para el caso de
√ o
aproximar el valor de 11 con 3.31. Consideraremos que el valor verdadero de
√
11 est´ redondeado12 a siete decimales, es decir xv = 3.3166248, entonces:
a
er(3.31) = 3.3166248 − 3.31
= 0.0066248
era (3.31) = |0.0066248| = 0.0066248
3.3166248 − 3.31
rel(3.31) =
3.3166248
= 0.0019975
rela (3.31) = |0.0019975| = 0.0019975
Los errores relativos tambi´n pueden ser expresados en %. En nuestro caso,
e
rel(3.31) ≈ 0.20 %.
Ejercicio 1.3.1. Calcule los cuatro errores de la definici´n (1.3.1) para el ca-
o
so de aproximar el valor verdadero de π/2 con 11/7. Para iniciar sus c´lculos,
a
favor de utilizar redondeo a siete decimales.
Problema 1.3.1. Extienda la definici´n (1.3.1) especificando c´mo manejar
o o
el caso xv = 0.
12
La operaci´n de redondeo aqu´ es distinta a la que veremos en la secci´n 1.3.2
o ı o
19. 1.3. TIPOS DE ERRORES 11
1.3.2. Error por redondeo
A diferencia del error “externo” que provocamos cuando redondeamos a
cierto n´mero de decimales (p. ej. 9.9 a 10), el error por redondeo que interesa
u
en c´lculo num´rico es el que ocurre en la computadora o calculadora debido
a e
a las limitaciones propias de la representaci´n del n´mero (digamos en el
o u
sistema de punto flotante de precisi´n sencilla o de doble precisi´n en el
o o
est´ndar IEEE 754)
a
Definici´n 1.3.2 (Error por redondeo). Dado un n´mero real x y un sistema
o u
de representaci´n de punto flotante que “almacena” x como f l(x), el error
o
por redondeo es
erf l (x) = x − f l(x) (1.8)
El error por redondeo acumulado erf lops (x, y) es el que resulta despu´s de
e
realizar una serie de operaciones aritm´ticas de punto flotante (o flops13 ),
e
donde cada operaci´n contribuye su ”cuota” de error por redondeo. Estas
o
operaciones aritm´ticas podemos definirlas como:
e
x⊕y = f l(f l(x) + f l(y))
x y = f l(f l(x) − f l(y))
(1.9)
x⊗y = f l(f l(x) × f l(y))
x y = f l(f l(x) / f l(y))
Para calcular erf lops (x, y) es necesario realizar en secuencia cada una de
las flops y en cada etapa (como lo indican las ecuaciones en (1.9)) calcular
el error por redondeo resultante.
Ejemplo 1.3.2 (Moler [17]). Calculemos los resultados de la siguiente se-
cuencia:
a = 4/3
b=a−1
c=b+b+b
e=1−c
Una implementaci´n en Scheme resulta en el c´digo y su ejecuci´n indicado
o o o
en la figura 1.1.
13
flops: (del ingl´s) floating point operations. Algunos sistemas (como MATLAB) tienen
e
la capacidad de contar las flops realizadas durante una serie de c´lculos.
a
20. 12 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
Figura 1.1: Ejemplo de error por redondeo
C´digo
o =⇒ Resultado
(define a (/ 4. 3)) {a=1.3333333333333333}
(define b (- a 1)) {b= 0.33333333333333326}
(define c (+ b b b)) {c= 0.9999999999999998}
(define e (- 1 c)) {e=2.220446049250313e-016}
e 2.220446049250313e-016
Note que la primera linea del c´digo anterior utiliza (define a (/ 4. 3)) para
o
indicar (con el punto) que 4 es un n´mero real, simplemente quitando el punto
u
14
obtenemos el resultado indicado en la figura 1.2, donde se ha eliminado el
error, debido a que en el lenguaje Scheme, las operaciones aritm´ticas con
e
enteros y racionales son exactas.
Hay dos errores de redondeo especiales: error de underflow (o bajoflujo,)
cuando x(= 0) es m´s peque˜o que el menor (en magnitud ) de los n´meros
a n u
de punto flotante disponibles y el sistema lo representa como cero (o bien
genera una excepci´n durante el c´lculo).
o a
Por otra parte, se genera un error de overflow (o sobreflujo,) cuando x
excede el m´ximo (en magnitud) de los n´meros representables como punto
a u
flotante y el sistema lo representa como +inf o -inf seg´n sea el caso.
u
Ejercicio 1.3.2. Explore y descubra cu´les son los n´meros que generan
a u
underflow o bien overflow bajo diferentes sistemas (p. ej. en MATLAB y PLT
Scheme).
Para medir el error por redondeo utilizamos ya sea el error relativo o bien
las ulps15 . En general (como lo indica Goldberg en [10]) si el n´mero de punto
u
14
Los resultados entre llaves, indican que no hay resultado en pantalla; s´lo se actualiza
o
la tabla de asociaciones entre variables y valores.
15
ulps: units of the last place, unidades de la ultima posici´n.
´ o
21. 1.3. TIPOS DE ERRORES 13
Figura 1.2: Ejemplo de eliminaci´n del error por redondeo, al utilizar n´meros
o u
racionales
C´digo
o =⇒ Resultado
(define a (/ 4 3)) {a = 1 1 }
3
(define b (- a 1)) {b = 1 }
3
(define c (+ b b b)) {c = 1}
(define e (- 1 c)) {e = 0}
e 0
flotante d0 .d1 · · · dp−1 ×β e se utiliza para representar x, entonces se tendr´ un
a
error en ulps de:
erf l (x) = |d0 .d1 · · · dp−1 − (x/β e )| β p−1 (1.10)
Ejercicio 1.3.3. Utilizando la ecuaci´n (1.10) calcule el error por redondeo
o
en ulps para el caso de aproximar 0.0123456 con 1.23 × 10−2 .
Proyecto 1.1. Dise˜e e implemente un programa en Scheme (o en el lenguaje
n
de su preferencia) que ofrezca la funcionalidad de definir un sistema de punto
flotante parametrizado, y permita realizar experimentos y c´lculo de errores,
a
en secuencias de operaciones aritm´ticas.
e
1.3.3. Error por truncamiento
De forma similar al caso del error por redondeo, hay que distinguir entre
el error “externo” que provocamos cuando truncamos un n´mero a cierta
u
cantidad de decimales (p. ej. 9.99 a 9.9) y el error de truncamiento que interesa
fundamentalmente en el an´lisis num´rico. Este ultimo tiene que ver con la
a e ´
famosa serie de Taylor16 y la propiedad de que toda funci´n anal´
o ıtica puede
ser aproximada mediante polinomios.
16
Brook Taylor (1685-1731). Analista, ge´metra y fil´sofo ingl´s. Public´ libros de pers-
o o e o
pectiva y diferencias finitas.
22. 14 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
Teorema 1.3.1 (Teorema de Taylor). Sea f (x) una funci´n en los reales
o
definida en el intervalo [a, b] y que satisface
1. f (x) ∈ C n [a, b]
2. f n+1 (x) existe para x ∈ (a, b)
Entonces, para cualesquier x0 , x en [a, b],
n
f (k) (x0 )
f (x) = (x − x0 )k + Rn (x) (1.11)
k=0
k!
(n+1)
donde Rn (x) = f (n+1)!x ) (x − x0 )n+1 (para cx entre x0 y x inclusive) se de-
(c
nomina residuo y a la sumatoria llamamos polinomio de Taylor17 de orden
n, denotado por Pn (x). Cuando fijamos x0 , la ecuaci´n (1.11) se denomina
o
expansi´n de Taylor de orden n de f (x) alrededor de x0 . Adem´s si hacemos
o a
18
h = x − x0 podemos expresar el orden de crecimiento del residuo como
Rn (x) = O(hn+1 ) 3
Demostraci´n. (Adaptada de Banach [3] pp. 114-116) Consideremos la ecuaci´n:
o o
x − x0 (x − x0 )2
f (x) = f (x0 ) + f (x0 ) + f (x0 ) + · · ·
1! 2!
(x − x0 )n (n)
+ f (x0 ) + w(x − x0 )n+1
n!
Si la ecuaci´n anterior ha de cumplirse, encontraremos que w deber´ ser igual
o a
f (n+1) (ξ)
a (n+1)! (que corresponde al factor correspondiente en Rn (x)) para un valor
de ξ entre x0 y x.
Definamos ϕ(t) como sigue:
x−t (x − t)2
ϕ(t) = f (x) − f (t) − f (t) − f (t) − · · ·
1! 2!
(x − t)n (n)
− f (t) − w(x − t)n+1
n!
17
Cuando x0 = 0 el nombre de la serie cambia a serie de MacLaurin, en honor a Colin
MacLaurin (1698-1746) matem´tico y f´
a ısico escoc´s.
e
18
La notaci´n b´sica para orden de crecimiento es (usando nuestra “variable” h) O(g(h))
o a
(pron. “O grande” de g(h)) y nos proporciona una estimaci´n del error. Si escribimos
o
f (h) = O(g(h)) (para toda h) esto significa que existe una constante C tal que se cumple
|f (h)| ≤ C|g(h)| (para toda h). Para un excelente tratamiento de este tema y del an´lisis
a
asint´tico se recomienda el libro de Graham, Knuth y Patashnik [11, pp. 443-463].
o
23. 1.3. TIPOS DE ERRORES 15
Observamos que se cumple ϕ(x0 ) = ϕ(x) = 0. Si ahora derivamos ϕ(t) con
respecto a t obtenemos:
x−t
ϕ (t) = −f (t) − f (t) − f (t)
1!
(x − t)2 (3) x−t
− f (t) − f (t) − · · ·
2! 1!
(x − t)n (n+1) (x − t)(n−1) (n)
− f (t) − f (t)
n! (n − 1)!
+ w(n + 1)(x − t)n
Simplificando la ecuaci´n anterior (cancelando t´rminos iguales) obtenemos:
o e
(x − t)n (n+1)
ϕ (t) = − f (t) + w(n + 1)(x − t)n
n!
Aplicando ahora el teorema de Rolle19 , sabemos que existe una ξ entre x y
x0 tal que ϕ (ξ) = 0, por tanto:
(x − t)n (n+1)
w(n + 1)(x − t)n = f (t)
n!
de donde obtenemos el resultado deseado:
f (n+1) (ξ)
w= (n+1)!
, con ξ entre x y x0 .
Nota: La f´rmula para el residuo en el teorema anterior garantiza que
o
ˆ
|Rn (x)| ≤ |Rn (x)|, donde:
ˆ Mx
Rn (x) = (x − x0 )n+1 (1.12)
(n + 1)!
donde Mx = max{f (n+1) (cx )} tal que cx est´ entre x0 y x inclusive. De esta
a
forma, |Rˆ n (x)| nos proporciona una cota superior efectiva para la magnitud
del residuo.
19
Michel Rolle (1652-1719). Matem´tico franc´s, especialista en an´lisis, ´lgebra y ge-
a e a a
ometr´ El teorema de Rolle nos dice que si una curva continua cruza el eje x en dos
ıa.
puntos y tiene una tangente en todos sus puntos intermedios, entonces tiene al menos una
tangente paralela al eje x.
24. 16 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
Ejemplo 1.3.3. Calculemos P3 (x) alrededor de x0 = 0 para la funci´n ex , y
o
ˆ 3 (x).
estimemos R
e0 0 e0 1 e0 2 e0 3
P3 (x) = x + x + x + x
0! 1! 2! 3!
1 2 1 3
=1+x+ x + x
2 6
ecx 4
R3 (x) = x
4!
ˆ Mx 4
R3 (x) = x
24
donde, debido a que la funci´n ex es creciente, tenemos:
o
1 x≤0
Mx =
ex x>0
Ejercicio 1.3.4. Calcule P3 (x), el polinomio de aproximaci´n de Taylor de
o
orden 3, alrededor de x0 = 0, as´ como el residuo Re (x), para la funci´n
ı o
f (x) = cos(x/2),
Definici´n 1.3.3 (Error por truncamiento). Decimos que existe un error por
o
truncamiento, cuando no podemos calcular un valor verdadero yv de forma
expl´
ıcita y tenemos que reemplazarlo por un c´lculo aproximado yc , y lo
a
denotamos por ertr (yv ) = yv −yc . Normalmente, la aproximaci´n yc se obtiene
o
mediante la suma de los primeros t´rminos de una serie infinita convergente.
e
Ejemplo 1.3.4. Utilizando el resultado del ejemplo (1.3.3), calculemos los
errores de truncamiento, cuando:
a) Aproximamos e con P3 (1)
b) Aproximamos e−1 con P3 (−1)
Para el caso (a), tenemos yv = e y yc = P3 (1), por lo cual, utilizando siete
decimales obtenemos: yv = 2.7182818, y
1 1
yc = 1 + 1 + (1)2 + (1)3
2 6
= 2 + 1/2 + 1/6
= 8/3
25. ´ ´
1.4. SOFTWARE DE COMPUTO NUMERICO 17
Ya que 8/3 = 2.6666667 (redondeando a siete decimales,) entonces
ertr (2.7182818) = 2.7182818 − 2.6666667 = 0.0516151.
Para el caso (b) tenemos yv = e−1 y yc = P3 (−1), por lo cual, utilizando
siete decimales obtenemos: yv = 0.3678794, y
1 1
yc = 1 + (−1) + (−1)2 + (−1)3
2 6
= 0 + 1/2 − 1/6
= 1/3
Ya que 1/3 = 0.3333333 (redondeando a siete decimales,) entonces
ertr (0.3678794) = 0.3678794 − 0.3333333 = 0.0345461.
Ejercicio 1.3.5. Verifique que los errores de truncamiento encontrados en el
ˆ
ejemplo (1.3.4), estan por debajo de los R3 (x) correspondientes encontrados
en el ejemplo (1.3.3).
1.3.4. Error num´rico total
e
Por lo visto hasta este punto, los m´todos num´ricos requieren un cuida-
e e
doso reconocimiento y estudio de los errores involucrados.
Definici´n 1.3.4 (Error num´rico total). El error num´rico total es la suma
o e e
de los errores por redondeo y los errores por truncamiento.
Los errores por redondeo y por truncamiento guardan una relaci´n muy
o
interesante que se˜ala Chapra y Canale [6, pp. 97-99] y denominan princi-
n
pio de incertidumbre num´rica, ya que conforme aumenta el incremento h
e
(p. ej. (x − x0 ) en la expansi´n de Taylor) tambi´n aumenta el error por
o e
truncamiento, y para reducirlo es necesario aumentar el n´mero de t´rminos
u e
en la sumatoria, pero al hacerlo aumenta el n´mero de operaciones de punto
u
flotante, lo que aumenta el error por redondeo. Se trata entonces de encontrar
un punto de equilibrio a partir del cual, se tienen rendimientos decrecientes.
1.4. Software de c´mputo num´rico
o e
El software num´rico actual20 ofrece un panorama muy prometedor, ya
e
que adem´s de la calidad en los programas y la b´squeda de conectividad en-
a u
20
Que incluye con frecuencia funcionalidad propia de los CAS (Computer Algebra Sys-
tems).
26. 18 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
tre los diferentes sistemas, tambi´n se busca estandarizar algunos aspectos de
e
la sem´ntica (ver p. ej. la iniciativa del Numerical Mathematics Consortium
a
[20]).
1.4.1. Software de acceso libre
Entre los sistemas de acceso libre orientados al software num´rico se pode-
e
mos incluir:
Axiom: sistema de ´lgebra computacional (con MathAction)
a
Calc3D: software para c´lculo y graficaci´n orientado a geometr´ y
a o ıa
estad´
ıstica
EULER: poderoso laboratorio de computaci´n num´rica (con Yacas)
o e
FreeMat: Colecci´n de funciones b´sicas para matem´ticas
o a a
GnuPlot: Excelente graficador de dominio p´blico (no GNU)
u
Jacal: Sistema de ´lgebra computacional basado en Scheme
a
Mathscribe: herramientas para mentes cient´
ıficas
NonEuclid: software interactivo en Java para geometr´ hiperb´lica
ıa o
Octave: excelente sistema afin a MATLAB
PyLab: una colecci´n de funciones para c´lculo num´rico y visualizaci´n.
o a e o
Basado en Python
RLab: laboratorio para computaci´n num´rica
o e
Sage: Sistema integrador de gran potencia y versatilidad que incluye
otros paquetes matem´ticos Open Source de alta calidad.
a
http://www.sagemath.org
Scilab: uno de los paquetes de computaci´n num´rica y cient´
o e ıfica m´s
a
importantes y exitosos (desarrollado en el instituto franc´s INRIA)
e
Singular: un sistema de ´lgebra computacional para computaci´n con
a o
polinomios
27. ´ ´
1.4. SOFTWARE DE COMPUTO NUMERICO 19
Surf: software para visualizaci´n de geometr´ algebraica real
o ıa
Winplot: un programa sencillo pero muy vers´til para graficar funciones
a
matem´ticas
a
wxMaxima: un paquete cl´sico para matem´ticas num´ricas y com-
a a e
putaci´n simb´lica. Sistema basado en Lisp
o o
1.4.2. Software comercial
Entre los sistemas m´s relevantes tenemos:
a
Derive: Sistema shareware para c´mputo num´rico y simb´lico.
o e o
LabView: Plataforma de c´mputo num´rico y simulaci´n con ´nfasis en
o e o e
sistemas electr´nicos empotrados, de gran importancia en la industria
o
MAPLE: Sistema preferido en ambientes acad´micos y cuyo n´cleo de
e u
procesamiento simb´lico se incorpora en otros sistemas comerciales
o
MathCAD: Editor de documentos que integra valiosas capacidades de
c´mputo num´rico y de visualizaci´n
o e o
Mathematica: Sofisticado y muy exitoso sistema de c´mputo num´rico
o e
y simb´lico, con grandes capacidades de visualizaci´n
o o
MATLAB: Abreviaci´n de “MATrix LABoratory”, este es el sistema
o
est´ndar en aplicaciones de ingenier´
a ıa
Scientific Workplace: Excelente editor cient´
ıfico de gran flexibilidad y
que integra MAPLE como su n´cleo de computaci´n simb´lica
u o o
1.4.3. Bibliotecas de funciones
Orientadas principalmente a la eficiencia en la soluci´n de sistemas lin-
o
eales de dimensi´n muy grande, estas bibliotecas son esenciales para el desar-
o
rollo de aplicaciones en la industria, as´ como en laboratorios de investigaci´n.
ı o
Entre las m´s recomendadas podemos mencionar:
a
IMSL
JavaNumerics
28. 20 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
LAPACK/BLAS
EISPACK
LINPACK
NAG
En las pr´ximas revisiones se presentar´n referencias y una breve descrip-
o a
ci´n de estos importantes sistemas de apoyo a la computaci´n num´rica.
o o e
1.5. M´todos iterativos
e
A diferencia de los m´todos directos donde la soluci´n a una ecuaci´n
e o o
o sistema de ecuaciones se logra siempre “al primer intento” siguiendo paso
a paso un procedimiento determinado21 , los m´todos iterativos obtienen
e
la soluci´n como resultado de una serie de aproximaciones generadas sucesi-
o
vamente a partir de una “aproximaci´n inicial a la soluci´n”.
o o
Definici´n 1.5.1 (M´todo iterativo). Llamamos M´todo iterativo (uni-
o e e
variable) a un procedimiento que acepta:
a) f (x), la funci´n a iterar22 , tal que ran(f ) ⊆ dom(f ) y adem´s cumple
o a
cierto criterio de convergencia23
b) x0 ∈ dom(f ), la aproximaci´n inicial a la soluci´n
o o
c) , la tolerancia del error
y encuentra, mediante un n´mero finito de iteraciones, una soluci´n aproxi-
u o
∗
mada x (con error ≤ ) , para la ecuaci´n x = f (x). Llamamos punto fijo
o
al valor x que cumple x = f (x).
Normalmente, la implementaci´n de un m´todo iterativo incluye como
o e
par´metro adicional, el n´mero m´ximo de iteraciones permitidas, para el
a u a
21
Como ejemplo podemos mencionar el procedimiento para calcular la derivada de una
funci´n que veremos en la secci´n 4.1
o o
22
Iterar una funci´n significa aqu´ aplicarla repetidamente, p. ej. x3 := f (f (f (x0 )))
o ı,
asigna a x3 el valor de la tercera iteraci´n de f aplicada a x0
o
23
P. ej. la condici´n de Lipschitz, que veremos en la secci´n 2.3.1
o o
29. ´
1.5. METODOS ITERATIVOS 21
caso en que se utilice una funci´n que no cumpla con el criterio de conver-
o
gencia.
En la figura 1.2 presentamos el c´digo Scheme para una m´quina itera-
o a
tiva b´sica, que utilizando el enfoque de programaci´n orientada a objetos,
a o
implementa el m´todo iterativo univariable de la definici´n 1.5.1 anterior.
e o
1
Ejemplo 1.5.1. Resolvamos la ecuaci´n x = cos(x + 4 ) con ayuda de la
o
funci´n crea-mit.
o
> ( define mit ( c r e a −mit ’ g (lambda( x )
(+ ( c o s x ) 1 / 4 ) )
0.01 15))
> ( mit ’ i t e r a 0 . 7 )
(0 : 0 . 7 )
(1 : 1.0148421872844886)
(2 : 0.7777539838103506)
(3 : 0.9624913205131414)
(4 : 0.8214773395993339)
(5 : 0.9311403125086086)
(6 : 0.8469194965541674)
(7 : 0.9122943326484682)
(8 : 0.8619327515053936)
(9 : 0.900971529122722)
(1 0 : 0 . 8 7 0 8 4 8 6 5 0 1 2 5 9 5 1 8 )
(1 1 : 0 . 8 9 4 1 7 7 6 6 7 2 6 4 8 9 1 7 )
(1 2 : 0 . 8 7 6 1 6 0 1 9 6 2 8 8 8 2 5 2 )
(1 3 : 0 . 8 9 0 1 0 5 9 2 5 8 3 1 6 9 4 3 )
(0.7
converge
a
0.8793297110716177
en
14
iteraciones )
>
30. 22 CAP´
ITULO 1. TEOR´ DE ERRORES
IA
C´digo Scheme 1.2: Funci´n crea-mit para crear una m´quina iterativa b´sica
o o a a
; ; f u n c i ´ n c r e a −mit ( r e v . 0 2 , 2008 −05 −27; en mit . scm )
o
2 ; ; p r o p ´ s i t o : : c r e a r una M´ quina I T e r a t i v a (MIT) b ´ s i c a
o a a
; ; atributos : : idf : string ; i d de l a f u n c i ´ n o
4 ;; f : procedimiento ; funci´n a i t e r a r
o
;; epsi : real ; tolerancia
6 ;; n : e n t e r o p o s i t i v o ; m´x de i t e r a c i o n e s
a
; ; m´ todos : : ’ show
e −> p r e s e n t a l o s a t r i b u t o s
8 ;; ’ i t e r a <r e a l > −> i t e r a empezando con <r e a l >
;; ’ fun <proced> −> r e d e f i n e l a f u n c i ´ n f o
10 ;; ’ i d f <s t r i n g > −> r e d e f i n e nombre f u n c i ´ n o
;;
12 ( define ( c r e a −mit i d f f e p s i n )
( l e t ( ( i m i t i d f ) ( f m i t f ) ( emit e p s i ) ( nmit n ) )
14 (lambda( mensaje . param )
( c a s e mensaje
16 (( itera )
( d i s p l a y ‘ ( 0 : , ( c a r param ) ) ) ( n e w l i n e )
18 (do ( ( k 1 (+ k 1 ) )
( xp ( c a r param ) ( f m i t xp ) )
20 ( x ( f m i t ( c a r param ) ) ( f m i t x ) ) )
( ( o r (<= ( abs (− x xp ) ) emit )
22 (>= k nmit ) )
( i f (<= k nmit )
24 ‘ ( , ( c a r param ) c o n v e r g e a , x en
,k iteraciones )
26 ‘ ( , ( c a r param ) no c o n v e r g e en
,k iteraciones )))
28 ( d i s p l a y ‘ ( , k : , x , ( f m i t x ) , ( abs (− x xp ) ) ) )
( newline ) ) )
30 ( ( fun ) ( s e t ! f m i t ( c a r param ) ) )
( ( e ps ) ( s e t ! emit ( c a r param ) ) )
32 ( ( i d ) ( s e t ! i m i t ( c a r param ) ) )
( ( show ) ( d i s p l a y ‘ ( ”MIT” i d f =, i m i t eps=
34 , emit n=, nmit ) )
( newline ))
36 ( e l s e ‘ ( no conozco e l mensaje , mensaje ) ) ) ) ) )
31. ´
1.5. METODOS ITERATIVOS 23
Nota: en la secci´n 3.1, veremos m´todos iterativos aplicados a la soluci´n
o e o
de sistemas de ecuaciones lineales de la forma Ax = b.
33. Cap´
ıtulo 2
M´todos de soluci´n de
e o
ecuaciones
Presentamos aqu´ algunos m´todos num´ricos fundamentales para la solu-
ı e e
ci´n de una ecuaci´n no lineal univariable. Los sistemas de ecuaciones
o o
no lineales ser´n tratados en el siguiente cap´
a ıtulo.
2.1. M´todos basados en intervalos
e
Cuando para encontrar la soluci´n a una ecuaci´n, digamos f (x) = 0
o o
partimos de un intervalo [a, b] dentro del cual sabemos que se encuentra la
soluci´n, y paso a paso reducimos dicho intervalo hasta obtener [an , bn ] tal
o
que |bn − an | < , para > 0 como la tolerancia, decimos que hemos utilizado
un m´todo de intervalo o m´todo cerrado.
e e
El m´todo de intervalo cl´sico es el m´todo de bisecci´n de Bolzano, que
e a e o
veremos en la secci´n siguiente (2.2).
o
Como se mencion´ en la secci´n 1.2.2, recientemente se han desarrollado
o o
m´todos basados en intervalos (en general hiper-cajas) que van “encerrando”
e
la soluci´n en regiones cada vez m´s peque˜as, logrando con ello lo que ac-
o a n
tualmente se conoce como computaci´n confiable (en ingl. reliable computing).
o
Para mayores detalles sobre estos nuevos m´todos se recomienda consultar
e
[27].
25
34. 26 CAP´ ´ ´
ITULO 2. METODOS DE SOLUCION DE ECUACIONES
2.2. M´todo de bisecci´n
e o
El m´todo de bisecci´n se basa en el siguiente teorema de Bolzano1
e o
Teorema 2.2.1 (Teorema de Bolzano). Una funci´n f : R → R es cero de
o
al menos un valor de x entre a y b si f es continua en el intervalo cerrado
[a, b] y f (a) y f (b) tienen signos opuestos.
La estrategia de este m´todo, es partir de un intervalo [a, b] que cumple la
e
condici´n f (a)f (b) < 0 y en cada iteraci´n bisectarlo para obtener un nuevo
o o
intervalo [a1 , b1 ] que tambi´n cumple con f (a1 )f (b1 ) < 0 , hasta obtener un
e
intervalo [an , bn ] que cumple f (an )f (bn ) < 0 pero adem´s |b − a| ≤ , para
a
un correspondiente a la tolerancia del error.
Presentamos a continuaci´n el algoritmo resultante:
o
Algoritmo 2.1 M´todo de bisecci´n
e o
Dado: f : funci´n asociada a la ecuaci´n f (x) = 0 a resolver, a y b: valores
o o
iniciales que cumplen f (a)f (b) < 0, : tolerancia del error.
Entrega: c: la soluci´n aproximada a la ecuaci´n f (x) = 0 con un error ≤ .
o o
Biseccion(f, a, b, )
´
2: repeat
s ← (a + b)/2
4: if f (s) = 0 then caso excepcional
return s
6: else if f (a)f (s) < 0 then
b←s
8: else
a←s
10: end if
until |b − a| ≤
12: return s
end
Ejemplo 2.2.1. La siguiente interacci´n con la funci´n biseccion (ver c´di-
o o o
go 2.1) nos permite resolver cos(x) = 0 con una tolerancia de 10−3 mediante
el m´todo de bisecci´n, utilizando a = 0 y b = 2.
e o
1
Bernhard Bolzano (1781-1848), matem´tico checoescovaco especializado en an´lisis,
a a
cuyo trabajo ayud´ a establecer la importancia de las demostraciones rigurosas [14].
o
35. ´ ´
2.2. METODO DE BISECCION 27
C´digo Scheme 2.1: Funci´n biseccion asociada al algoritmo 2.1
o o
; ; implementa e l m´todo de b i s e c c i ´ n
e o
2 ; ; asume : f ( a0 ) f ( b0)<0
( define ( b i s e c c i o n f a0 b0 ep )
4 ( l e t c i c l o ( ( a a0 ) ( b b0 ) )
( l e t ( ( s ( / (+ a b ) 2 ) ) ) ; b i s e c c i o n de [ a , b ]
6 ( cond [ ( z e r o ? ( f s ) ) s ] ; f ( s )=0? => e n t r e g a s
[( < ( abs (− b a ) ) ep ) ; cumple t o l e r a n c i a ?
8 s] ; entrega s
[( < (∗ ( f a ) ( f s ) ) 0 ) ; f ( a ) f ( s )<0?
10 ( ciclo a s )] ; busca en [ a , s ]
[ e l s e ( c i c l o s b ) ] ) ) ) ) ; busca en [ s , b ]
> ( b i s e c c i o n cos 0 2. .001)
1.57080078125
A continuaci´n presentamos las interacciones resultantes al resolver este
o
problema mediante la funci´n biseccion-data (presentada en el c´digo 2.2)
o o
> ( b i s e c c i o n −data c o s 0 2 . . 0 0 1 6 )
(1.57080078125
−4.454455103366037 e −006
(0 0 2 . 0 )
(1 1.0 2 . 0 )
(2 1.5 2 . 0 )
(3 1.5 1 . 7 5 )
(4 1.5 1.625)
(5 1.5625 1.625)
(6 1.5625 1.59375)
(7 1.5625 1.578125)
(8 1.570312 1.578125)
(9 1.570312 1.574219)
(1 0 1 . 5 7 0 3 1 2 1 . 5 7 2 2 6 6 )
(1 1 1 . 5 7 0 3 1 2 1 . 5 7 1 2 8 9 ) )
Note que en este caso, la funci´n entrega una lista que contiene respectiva-
o
mente, la soluci´n s, el error f (s) y los datos de las iteraciones en la forma
o
36. 28 CAP´ ´ ´
ITULO 2. METODOS DE SOLUCION DE ECUACIONES
(ki ai bi ).
C´digo Scheme 2.2: Funci´n biseccion-data asociada al algoritmo 2.1
o o
; ; implementa e l m´todo de b i s e c c i ´ n
e o
2 ; ; e n t r e g a ( s o l u c i o n e r r o r data )
; ; donde : data = { i a ( i ) b ( i )}
4 ; ; asume : f ( a0 ) f ( b0)<0
( define ( b i s e c c i o n −data f a0 b0 ep d e c s )
6 ( l e t ( ( f t ( make−f o r m a t e r −round−d e c s d e c s ) )
( data ’ ( ) ) )
8 ( l e t c i c l o ( ( a a0 ) ( b b0 ) ( k 0 ) )
( s e t ! data ( cons ( l i s t k ( f t a ) ( f t b ) )
10 data ) )
( l e t ( ( s ( / (+ a b ) 2 ) ) )
12 ( cond [ ( z e r o ? ( f s ) ) ; caso excepcional
( cons s ( cons 0 ( r e v e r s e data ) ) ) ]
14 [( < ( abs (− b a ) ) ep ) ; cumple t o l e r a n c i a ?
( cons s ( cons ( f s ) ; e n t r e g a s , f ( s )
16 ( r e v e r s e data ) ) ) ] ; y data en orden
[( < (∗ ( f a ) ( f s ) ) 0 ) ; f ( a ) f ( s )<0?
18 ( c i c l o a s (+ k 1 ) ) ] ; busca en [ a , s ]
[ else ( c i c l o s b ; busca en [ s , b ]
20 (+ k 1 ) ) ] ) ) ) ) )
Sugerencia 2.1. Si la funci´n f (x) de nuestro problema no es muy conoci-
o
da, o demasiado laboriosa para bosquejar “a mano”, se recomienda utilizar
alguno de los paquetes de software matem´tico vistos en la secci´n 1.4, y
a o
hacer un an´lisis gr´fico de la funci´n, para determinar el n´mero de ceros
a a o u
dentro de cierto intervalo, as´ como para determinar los valores cercanos a
ı
dicho cero(s). Este an´lisis ser´ especialmente importante para el m´todo de
a a e
Newton-Raphson que veremos en la secci´n 2.4.1.
o
Ejemplo 2.2.2. Resolvamos ahora la ecuaci´n 3cos( x ) + 2 = 0 con una
o 2
−2
tolerancia de 10 , llamando a la funci´n biseccion-data para a = 1 y
o
b = 6.
>( b i s e c c i o n −data (lambda( x)(+ (∗ 3 ( c o s ( / x 2 ) ) ) 2 ) )
1 6 . 0.01 6)
37. ´ ´
2.2. METODO DE BISECCION 29
(4.5986328125
0.002701681335155026
(0 1 6 . 0 )
(1 3.5 6 . 0 )
(2 3.5 4 . 7 5 )
(3 4.125 4 . 7 5 )
(4 4.4375 4 . 7 5 )
(5 4.59375 4 . 7 5 )
(6 4.59375 4.671875)
(7 4.59375 4.632812)
(8 4.59375 4.613281)
(9 4.59375 4.603516))
La figura 2.2 nos permite visualizar el proceso para este ejemplo.
Figura 2.1: Bisecciones para el ejemplo 2.2.2
38. 30 CAP´ ´ ´
ITULO 2. METODOS DE SOLUCION DE ECUACIONES
Ejercicio 2.2.1. Encuentre todos los ceros de las siguientes funciones en el
intervalo indicado y para la precisi´n indicada.
o
2
a). f (x) = πx
cos(x − π ) en [1, 7], con = 0.001
4
b). f (x) = xsenh(x − 2) − 100, en [−4, 8], con = 10−7
Problema 2.2.1. ¿Cu´l es el n´mero m´ximo posible de iteraciones del
a u a
m´todo de bisecci´n, dado un intervalo [a, b] y un valor para ?
e o
Problema 2.2.2. Una vez resuelto el problema 2.2.1, encuentre una funci´no
f (x) as´ como su intervalo [a, b] y asociado, de manera que se encuentre el
ı
cero justo en el n´mero m´ximo de iteraciones.
u a
Sugerencia 2.2. Explore algunas otras implementaciones del m´todo de bisec-
e
ci´n. Se recomienda especialmente revisar ejemplos en MATLAB o si-milares.
o
2.3. M´todo de aproximaciones sucesivas
e
Este m´todo, conocido tambi´n como m´todo de punto fijo o m´todo itera-
e e e e
tivo est´ndar es uno de los m´todos recomendados cuando queremos resolver
a e
una ecuaci´n de la forma x = f (x) y la funci´n f (x) cumple ciertas condi-
o o
ciones como lo veremos en las siguientes dos secciones.
2.3.1. Condici´n de Lipschitz
o
Definici´n 2.3.1 (Condici´n de Lipschitz). Una funci´n f (x) definida en el
o o o
intervalo [a, b] se dice que satisface una condici´n de Lipschitz, si existe una
o
constante L > 0 tal que
|f (x1 ) − f (x2 )| ≤ L |x1 − x2 | (2.1)
para cualquier par de n´meros x1 , x2 ∈ [a, b].
u
Observamos que cualquier funci´n f (x) donde la expresi´n |f (x11 −x2 | 2 )| se
o o |x
)−f (x
pueda simplificar a g(xK,x2 ) , donde K es una constante y el valor de g(x1 , x2 ) se
1
pueda hacer arbitrariamente peque˜o para x1 , x2 ∈ [a, b], no puede satisfacer
n
una condici´n de Lipschitz.
o
39. ´
2.3. METODO DE APROXIMACIONES SUCESIVAS 31
Si f (x) ∈ C 1 [a, b] (es decir, si f (x) existe y es continua) entonces f (x)
satisface tambi´n una condici´n de Lipschitz. Esto se cumple ya que, por el
e o
teorema del valor medio para derivadas existe una c entre x1 y x2 tal que:
f (x1 ) − f (x2 )
f (c) = (2.2)
x1 − x2
y entonces, |f (x1 ) − f (x2 )| = |f (c)(x1 − x2 )| ≤ L |x1 − x2 |, para cualesquiera
x1 , x2 ∈ [a, b].
2.3.2. Iteraci´n y convergencia
o
El m´todo de aproximaciones sucesivas, m´todo iterativo y tambi´n
e e e
conocido como m´todo de punto fijo, es uno de los m´todos m´s sencillos
e e a
e ilustra (a diferencia del m´todo de bisecci´n) el caso cuando no se tiene
e o
garant´ de obtener la soluci´n. Por tal motivo, el tema central aqu´ es el
ıa o ı
concepto de convergencia de una sucesi´n de aproximaciones.
o
Definici´n 2.3.2 (Velocidad de convergencia). Sea {xn }∞ una sucesi´n
o n=1 o
de aproximaciones que convergen a s, de forma que l´ n→∞ xn = s. Si la
ım
sucesi´n de errores { n }∞ (donde n = xn − s) satisface
o n=1
| n+1 |
l´
ım α = K, K > 0 (2.3)
n→∞ | n |
para algunos n´meros fijos α, K, entonces α es el orden de convergencia para
u
{xn }, y K es la constante asint´tica o factor de convergencia.
o
En base a la definici´n anterior, destacamos los casos para cuando α = 1,
o
y α = 2 que corresponden a convergencia lineal, y convergencia cuadr´tica
a
respectivamente.
El algoritmo 2.2 describe el m´todo.
e
40. 32 CAP´ ´ ´
ITULO 2. METODOS DE SOLUCION DE ECUACIONES
Algoritmo 2.2 M´todo de punto fijo
e
Dado: f : funci´n asociada a la ecuaci´n f (x) = x a resolver, x0 : valor inicial
o o
de la soluci´n, : tolerancia del error, m: n´mero m´ximo de iteraciones
o u a
permitidas.
Entrega: s: la soluci´n aproximada a la ecuaci´n f (x) = x con un error ≤ ,
o o
o bien el mensaje: “sin convergencia en m iteraciones” si la soluci´n no
o
converge en las iteraciones y la precisi´n deseada.
o
Punto-Fijo(f, x0 , , m)
2: if f (x0 ) = x0 then caso excepcional
return x0
4: else
n←0
6: repeat
xn+1 ← f (xn )
8: n←n+1
until |xn − xn−1 | ≤ ´ n > m
o
10: if |xn − xn−1 | ≤ then
return xn
12: else
return “sin convergencia en m iteraciones”
14: end if
end if
16: end
Presentamos en el listado 2.3, una implementaci´n b´sica del m´todo.
o a e
41. ´
2.3. METODO DE APROXIMACIONES SUCESIVAS 33
C´digo Scheme 2.3: Funci´n punto-fijo asociada al algoritmo 2.2
o o
; ; implementa e l m´todo de punto f i j o
e
2 ( define ( punto− f i j o f x0 e ps m)
( i f (= (− ( f x0 ) x0 ) 0 ) ; f ( x0)=x0 ?
4 x0 ; e n t r e g a x0
( l e t c i c l o ( ( k 1 ) ( x ( f x0 ) ) ) ; x1=f ( x0 )
6 ( cond
((<= ( abs (− x ( f x ) ) ) ep s ) ; | f ( x)−x|< e ps
8 ( f x)) ; entrega f (x)
((> k m) ; k> m?
10 ( s t r i n g −append
” s i n c o n v e r g e n c i a en ” ( number−>s t r i n g m)
12 ” iteraciones ”)) ; mensaje
( else ; e oc
14 ( c i c l o (+ k 1 ) ( f x ) ) ) ) ) ) ) ; x ( k+1)= f [ x ( k ) ]
Una variante de la funci´n punto-fijo que nos da informaci´n adicional se
o o
presenta en el listado 2.4.
42. 34 CAP´ ´ ´
ITULO 2. METODOS DE SOLUCION DE ECUACIONES
C´digo Scheme 2.4: Funci´n punto-fijo-data asociada al algoritmo 2.2
o o
; ; implementa e l m´todo de punto f i j o
e
2 ; ; e n t r e g a ( ( s o l u c i o n | mensaje ) e r r o r data )
; ; donde : data = { i f [ x ( i ) ] }
4 ( define ( punto−f i j o −data f x0 eps m d e c s )
( l e t ( ( f t ( make−f o r m a t e r −round−d e c s d e c s ) )
6 ( data ( l i s t ( l i s t 0 x0 ) ) ) )
( i f (= (− ( f x0 ) x0 ) 0 )
8 ( cons x0 ( cons 0 data ) )
( l e t c i c l o ( ( k 1 ) ( x ( f x0 ) ) )
10 ( s e t ! data ( cons ( l i s t k ( f t x ) )
data ) )
12 ( cond ((<= ( abs (− x ( f x ) ) ) ep s )
( cons ( f x )
14 ( cons (− ( f x ) x )
( r e v e r s e data ) ) ) )
16 ((>= k m)
( cons
18 ( s t r i n g −append
” s i n c o n v e r g e n c i a en ”
20 ( number−>s t r i n g m)
” i t e r a c i o n e s ”)
22 ( cons (− ( f x ) x )
( r e v e r s e data ) ) ) )
24 ( else
( c i c l o (+ k 1 ) ( f x ) ) ) ) ) ) ) )
43. ´ ´
2.4. METODOS BASADOS EN INTERPOLACION 35
2.4. M´todos basados en interpolaci´n
e o
2.4.1. M´todo de Newton-Raphson
e
Entre los m´todos m´s populares en matem´ticas computacionales ten-
e a a
emos al creado por Isaac Newton y Joseph Raphson3 .
2
El atractivo de ´ste m´todo es su rapidez cuadr´tica de convergencia,
e e a
como veremos m´s adelante. Una desventaja es que para la aplicaci´n del
a o
m´todo se requiere tener tanto la funci´n f (x) que quiere resolverse, as´ como
e o ı
su derivada.
Dada una funci´n f (x) definida en un intervalo [a, b], tal que
o
2
f (x) ∈ C [a, b] y existe una s ∈ [a, b] tal que f (s) = 0 entonces si escojemos
un valor inicial de x cercano a s, podemos utilizar un polinomio interpolador
de Taylor para aproximar la funci´n f (x) por:
o
f (x0 ) f (c)
f (s) = f (x0 ) + (s − x0 ) + (s − x0 )2
1! 2!
Haciendo f (s) = 0 y asumiendo que el t´rmino de segundo grado es muy
e
peque˜o, se tiene:
n
f (x0 )
0 ≈ f (x0 ) + (s − x0 )
1!
Ahora podemos despejar s para obtener:
f (x0 )
s ≈ x0 −
f (x0 )
Si lo expresamos en t´rminos del m´todo iterativo univariable, la funci´n
e e o
a iterar es:
f (xn )
xn+1 = xn − (2.4)
f (xn )
El pseudoc´digo para el m´todo de Newton-Raphson est´ndar se presenta
o e a
en el algoritmo 2.3
2
Sir Isaac Newton (1642-1727), reconocido matem´tico, f´
a ısico y astr´nomo ingl´s, su
o e
obra maestra Philosophae Naturalis Principia Mathematica es considerada como uno de
los libros cient´
ıficos m´s importantes de todos los tiempos. Destaca junto con (Gottfried
a
Wilhelm von) Leibniz (1646-1716), por su invenci´n independiente del C´lculo.
o a
3
Joseph Raphson (1648-1715), matem´tico ingl´s
a e
44. 36 CAP´ ´ ´
ITULO 2. METODOS DE SOLUCION DE ECUACIONES
Algoritmo 2.3 M´todo de Newton-Raphson est´ndar
e a
Dado: f : funci´n asociada a la ecuaci´n f (x) = 0 a resolver, f : derivada de
o o
f (x), x0 : aproximaci´n inicial a la soluci´n, : tolerancia del error, y m:
o o
n´mero m´ximo de iteraciones
u a
Entrega: s: la soluci´n aproximada a la ecuaci´n f (x) = 0, o bien el men-
o o
saje “sin soluci´n aceptable en m iteraciones”, o bien “f (xn ) = 0 en la
o
iteraci´n n”
o
Newton-Raphson(f, f , x0 , , m)
2: n←0
repeat
4: if f (xn ) = 0 then return “f (xn ) = 0 en la iteraci´n n”
o
else
6: xn+1 = xn − f (xn )/f (xn )
n←n+1
8: end if
until |xn − xn−1 | ≤ ´ n > m
o
10: if |xn − xn−1 | ≤ then return xn
else return “sin soluci´n aceptable en m iteraciones”
o
12: end if
end
45. ´ ´
2.4. METODOS BASADOS EN INTERPOLACION 37
Presentamos a continuaci´n una implementaci´n en Scheme:
o o
C´digo Scheme 2.5: Funci´n para el m´todo de Newton-Raphson
o o e
( define ( newton−raphson f d f x0 eps m)
2 ( d i s p l a y ‘ ( x ( ,0)= , x0 ) ) ( n e w l i n e )
( l e t c i c l o ( ( xp x0 ) ( dfp ( d f x0 ) ) ( k 1 ) )
4 ( i f (= dfp 0 )
‘ ( l o s i e n t o : l a d e r i v a d a de f en , x0
6 e s 0 en l a , k i t e r a c i o n )
( l e t ( ( x (− xp ( / ( f xp ) dfp ) ) ) )
8 ( cond
((<= ( abs (− x xp ) ) eps )
10 ( d i s p l a y ‘ ( x ( , k)= , x d e l t a= , ( abs (− x xp ) ) ) )
( newline )
12 ‘ ( s o l u c i o n , x en , k i t e r a c i o n e s ) )
((> k m) ‘ ( s i n s o l u c i o n en
14 ,( − k 1 ) i t e r a c i o n e s ) )
( e l s e ( d i s p l a y ‘ ( x ( , k)= , x d e l t a=
16 , ( abs (− x xp ) ) ) )
( newline )
18 ( c i c l o x ( d f x ) (+ k 1 ) ) ) ) ) ) ) )
Ejercicio 2.4.1. Aplique el m´todo de Newton-Raphson para encontrar una
e
raiz de la ecuaci´n x3 + x − 2 = 0. Utilice x0 = 2 y = 10−5 . Compruebe la
o
soluci´n encontrada.
o
2.4.2. M´todo de la secante
e
Este m´todo se basa en la utilizaci´n de dos puntos x0 y x1 como apro-
e o
xi-maciones iniciales a la soluci´n de la ecuaci´n f (x) = 0, y calcula el tercer
o o
punto x2 , resolviendo la siguiente ecuaci´n de la secante, para y = 0 y x2 = x:
o
f (x1 ) − f (x0 )
y − f (x1 ) = (x − x1 ) (2.5)
x1 − x0
para obtener:
(x1 − x0 )f (x1 )
x2 = x1 −
f (x1 ) − f (x0 )