Documente Academic
Documente Profesional
Documente Cultură
yacerque@gmail.com
TEORA DE ERRORES1
Ing Yamil Armando Cerquera Rojas yacerque@gmail.com
Especialista en Sistemas Universidad Nacional
Docente Universidad Surcolombiana
Neiva - Huila Julio 2008
Contenido
LISTA DE FIGURAS............................................................................................................ 3
Nociones bsicas de errores en clculo numrico .................................................... 4
Nociones bsicas de errores en clculo numrico .................................................... 4
Porque son importantes los errores numricos .................................................................. 4
El fallo de un misil Patriot.................................................................................................................... 4
La explosin del cohete Ariane 5 ........................................................................................................ 6
El hundimiento de la plataforma petrolfera Sleipner A ................................................................. 7
Las vibraciones del puente del Milenio en Londres. ........................................................................ 8
Introduccin. ....................................................................................................................... 9
Definiciones ............................................................................................................................... 14
Cifras significativas................................................................................................................... 14
Aritmtica finita........................................................................................................................ 15
Representacin de nmeros en el ordenador ................................................................... 16
Nmeros naturales y la regla de Horner .......................................................................................... 16
Nmeros enteros en binario ............................................................................................................... 17
Representacin de fracciones en computador................................................................................ 19
Fracciones binarias: ................................................................................................................................ 19
Nmeros reales en punto flotante............................................................................................................ 20
El formato en punto flotante IEEE-754 .................................................................................................. 22
Estas notas estn protegidas por derechos de copyright y podrn ser distribuidas libremente solo con
propsitos educativos sin nimo de lucro. These notes are copyright-protected, but may be freely
distributed for instructional nonprofit purposes.
1 de 53
Error relativo........................................................................................................................................ 35
Observaciones: ..................................................................................................................................... 35
Definicin del
de la mquina ........................................................................................... 45
Conclusiones ...................................................................................................................... 47
Problemas propuestos:............................................................................................................ 48
2 de 53
LISTA DE FIGURAS
Figura 1 Misiles Patriot americanos en Dharan .............................................................. 5
Figura 2 Cohete Ariane 5.................................................................................................... 6
Figura 3 Plataforma petrolfera Sleipner A ..................................................................... 7
Figura 4 Millenium Bridge................................................................................................... 8
Figura 5 Intervalo asociado al resultado de una medicin. Note que, en lugar de
dar un nico nmero, se define un intervalo. Al valor representativo del centro
del intervalo (x ) se le llama el mejor valor de la magnitud en cuestin. El
semiancho del intervalo (x D ) se denomina la incertidumbre o error absoluto de
la medicin......................................................................................................................... 12
Figura 6 Tratamiento de la informacin........................................................................ 13
Figura 7 Anlisis del error ................................................................................................ 13
Figura 8 Representacin de los nmeros flotantes positivos en un sistema (m; e) =
(3; 2). Los nmeros con asterisco y crculo son normales y subnormales,
respectivamente................................................................................................................ 21
3 de 53
Turing realiz en 1948 uno de los primeros anlisis de propagacin de errores para el mtodo de Gauss
para resolver sistemas lineales.
4 de 53
Los ordenadores de los Patriot que han de seguir la trayectoria del misil Scud, la
predicen punto a punto en funcin de su velocidad conocida y del momento en
que fue detectado por ltima vez en el radar. La velocidad es un nmero real. El
tiempo es una magnitud real pero el sistema la calculaba mediante un reloj
interno que contaba dcimas de segundo, por lo que representaban el tiempo
como una variable entera. Cuanto mas tiempo lleva el sistema funcionando mas
grande es el entero que representa el tiempo. Los ordenadores del Patriot
almacenan los nmeros reales representados en punto flotante con una mantisa
de 24 bits. Para convertir el tiempo entero en un nmero real se multiplica este
por 1/10, y se trunca el resultado (en lugar de redondearlo). El nmero 1/10 se
almacenaba truncado a 24 bits. El pequeo error debido al truncado, se hace
grande cuando se multiplica por un nmero (entero) grande, y puede conducir a
un error significativo. La batera de los Patriot llevaba en funcionamiento ms de
100 horas, por lo que el tiempo entero era un nmero muy grande y el nmero
real resultante tena un error cercano a 0.34 segundos.
Vea el clculo en detalle. El nmero 1/10 es 1/24 + 1/25 + 1/28 + 1/29 + 1/212 +
1/213 +, (explicar porque?) es decir, (0.0001100110011001100110011001100 )2,
que almacenado en un registro de 24 bits conduce al nmero
que
introduce
un
error
de
(0.00011001100110011001100)2
(0.0000000000000000000000011001100 )2, igual en decimal a 0.000000095.
En 100 horas este pequeo error se multiplica y amplifica hasta alcanzar
0.000000095 * 100 * 60 * 60 * 10 = 0.34. Como un misil Scud viaja a unos 1676 m/s,
es decir, unos 6033 km/hora, en 0.34 segundos recorre ms de medio kilmetro.
Esta distancia fue suficiente para que el misil Patriot no pudiera alcanzar al misil
Scud y destruirlo.
3
Douglas N. Arnold, The Patriot Missile Failure, Institute for Mathematics and its
Minneapolis (2000). Fuente http://www.ima.umn.edu/~arnold/disasters/patriot.html.
Applications,
5 de 53
4
Douglas N. Arnold, The Explosion of the Ariane 5 Rocket, Institute for Mathematics and its Applications,
Minneapolis (2000). Fuente http://www.ima.umn.edu/~arnold/disasters/ariane.html.
6 de 53
5
Douglas N. Arnold, The sinking of the Sleipner A oshore platform, Institute for Mathematics and its
Applications, Minneapolis (2000). Reproduced at http://www.ima.umn.edu/~arnold/disasters/sleipner.html.
7 de 53
La sincrona fue del todo involuntaria, pero esas pisadas fueron las responsables
del balanceo. El 12 de junio de 2000 se cerr el paso de personas por el famoso
puente del milenio (Millenium Bridge) en Londres, slo dos das despus de su
inauguracin. La causa de la clausura: el puente vibraba lateralmente mucho ms
de lo esperado debido al caminar de la gente, fenmeno actualmente
denominado excitacin lateral sncrona6.
Al vibrar el puente, resultaba ms cmodo a las personas caminar de forma
sincronizada con esta vibracin, lo que la acentuaba mediante una resonancia.
Durante el verano del ao 2000 se contrat a la empresa de consultora Arup para
estudiar el problema. Se realizaron varios experimentos con grupos de personas
con objeto de medir experimentalmente la magnitud del efecto bajo varias
condiciones. Se observ que el efecto no era gradual, sino que la sincronizacin
6
8 de 53
Introduccin.
Una magnitud fsica es un atributo de un cuerpo, un fenmeno o una sustancia,
que puede determinarse cuantitativamente, es decir, es un atributo susceptible
de ser medido. Ejemplos de magnitudes son la longitud, la masa, la potencia, la
velocidad, etc. A la magnitud de un objeto especfico que se esta interesado en
medir, se la llama mesurando. Por ejemplo, si se esta interesado en medir la
longitud de una barra, esa longitud especfica ser el mesurando.
Para establecer el valor de un mesurando se tiene que usar instrumentos de
medicin y un mtodo de medicin. Asimismo es necesario definir unidades de
medicin. Por ejemplo, si se desea medir el largo de una mesa, el instrumento
de medicin ser una regla. Si se ha elegido el Sistema Internacional de Unidades
(SI), la unidad ser el metro y la regla a usar deber estar calibrada en esa
unidad (o submltiplos). El mtodo de medicin consistir en determinar cuantas
veces la regla y fracciones de ella entran en la longitud buscada.
En el curso de anlisis numrico se estudian por lo general mtodos o modelos
matemticos que permiten hallar la solucin numrica a problemas relacionados
entre otros con Ecuaciones diferenciales, Integrales definidas, Sistemas de
ecuaciones simultneas, Races de ecuaciones, Interpolacin. Como criterio
general de trabajo, el objetivo ser llegar a la solucin correcta ( con un nivel de
9 de 53
error aceptable) en forma eficiente (en un tiempo razonable usando los recursos
disponibles).
A = 0 1 2 1 0 y b = 2
0 0 1 2 1
2
0 0 0 1 2
1
b. El sistema no lineal
x + xy 3 = 9
2
3x y y 3 = 4
4. Dada la siguiente tabla de datos correspondiente a una cierta funcin
y = f (x)
-2 -1 0 1 2 3
xk
f ( xk ) -5 1 1 1 7 25
Encontrar el polinomio de menor grado que pase a travs de los puntos
dados. Cul ser una estimacin para los valores f(x) correspondientes a
x = 1.5, x = 1.5 ? .
5. Hallar el valor de cada una de las siguientes integrales
1
sin( x)
x dx ,
0
x
e dx ,
/2
3
sin 2 x
1
dx ,
dx
4
ln(
x
)
2
10 de 53
d 2 d
+
+
16
sin(
)
=
0
dt
dt
4
En relacin con los problemas anteriores, se tiene que:
En el problema 1, es necesario determinar los puntos de interseccin de las
grficas de y = 2 sin( x ), y y = e
d 2 d
11 de 53
Figura 5 Intervalo asociado al resultado de una medicin. Note que, en lugar de dar un nico nmero, se define un
intervalo. Al valor representativo del centro del intervalo (x ) se le llama el mejor valor de la magnitud en cuestin. El
semiancho del intervalo (x D ) se denomina la incertidumbre o error absoluto de la medicin.
Mientras
la eficiencia computacional conduce al estudio del nmero de
operaciones necesarias en los algoritmos utilizados, tratando de obtener al
menos una estimacin de su orden de magnitud, verificar lo correcto de los
resultados obtenidos implica el estudio del origen y posterior propagacin de
los errores de clculo.
En la aproximacin de un fenmeno fsico mediante un modelo
matemtico y su posterior solucin numrica, se cometen diferentes clases de
errores.
Los errores son de distintos tipos, y pueden estar relacionados con:
9
9
9
9
12 de 53
Los errores de redondeo se asocian con el nmero limitado de dgitos con que se
representan los nmeros en una computadora. Para comprender la naturaleza de
estos errores, es necesario aprender las formas en que se almacenan los nmeros
y como se lleva a cabo las sumas y restas dentro de una PC.
7
8
13 de 53
Definiciones
Cifras significativas
La exactitud de los datos obtenidos en un experimento depende tanto de los
instrumentos de medida como de la calidad del experimentador. Por cuanto todo
instrumento de medida tiene un lmite de sensibilidad, es lgico pensar que al
medir, por ejemplo el tiempo, con un reloj de pulsera, es imposible obtener una
exactitud de milsimas o millonsimas de segundo. El correcto manejo de los
datos obtenidos en un experimento, en cuanto a su precisin se refiere, se
trabaja con las cifras significativas.
Al afirmar que la medicin de cierta longitud dio como resultado 15,4cm, se
quiere decir que sobre el valor de 15cm se tiene plena certeza, mientras que el 4
decimal es un tanto ambiguo y est afectado por cierto error. Lo nico que se
puede decir con seguridad es que el valor obtenido est ms cerca de 15cm que
de 16cm de 14cm. Acerca de las centsimas no se dice nada. No se sabe si el
resultado de la medicin es 15,42cm 15,38cm, pero si que este valor se
encuentra entre 15,35cm y 15,45cm, presentndose entonces una incertidumbre
total de 0,1cm. Como se nota no es lo mismo escribir 15,4cm que escribir
15,40cm ya que en este caso se est afirmando que se conoce la longitud con una
exactitud de hasta una centsima, (que es diez veces ms exacto que en el caso
anterior) y as, la incertidumbre es ya de una milsima de centmetro, es decir el
valor de la longitud se encuentra entre 15,395cm y 15,415cm. Las dos cifras
14 de 53
Aritmtica finita
Siendo los computadores la herramienta bsica en los mtodos numricos es
conveniente indicar cmo son los nmeros del computador y cmo se simula su
aritmtica.
La mayora de los computadores usan slo un subconjunto finito, relativamente
pequeo, de los nmeros reales para representar a "todos" los nmeros reales;
este conjunto, que slo contiene nmeros racionales y que se describen ms
adelante, es llamado conjunto de nmeros de punto flotante o conjunto de
nmeros de mquina en punto flotante o simplemente conjunto de punto
flotante.
Cada nmero del computador se representa mediante un nmero finito de dgitos
(aritmtica finita), segn se indica a continuacin:
Un nmero del computador o de punto flotante, distinto de cero, se describe
matemticamente en la forma
(.a1a 2 ...at ) e
Forma en la cual los smbolos que all aparecen, tienen el siguiente significado:
= +1 = 1 es el signo del nmero. es un entero que denota la base
del sistema numrico usado. Por lo general = 2 (Sistema Binario), = 8
(Sistema Octal) o = 16 (Sistema Hexadecimal). ai , i = 1,2,..., t , es un entero
con 0 ai 1 . Los enteros 0,1,...., 1 son llamados dgitos en la base
15 de 53
Se asumir en todo lo que sigue que a1 0 , en cuyo caso el nmero se dice que
est en forma normalizada.
16 de 53
x x x
17 de 53
n 1
n 1
1 ; finalmente,
representables en complemento a dos con n bits es 2 ,2
en orden creciente de representacin, los nmeros estn ordenados de la forma
[0,1,2,...,2
n 1
[ 2
n 1
,2 n 1 + 1,...,2,1,0,1,2,...,2 n 1 1 .
[ 2
n 1
[ 2
n 1
+ 1,...,2,1,0,1,2,...,2 n1 1,2 n1 .
18 de 53
) (
r = d1 * 2 1 + d 2 * 2 2 + ... + d n * 2 n
2 F1 = d 2 + (d 3 * 2 1 ) + (d 4 * 2 2 ) + ... + (d n * 2 n+ 2 )
d k = [2 Fk 1 ]
Fk = frac(2 Fk 1 )
Ejemplo.
19 de 53
Sea la fraccin 7
Solucin.
10
R = 0.7, entonces
2R = 1.4,
2F1 = 0.8,
2F2 = 1.6,
2F3 = 1.2,
2F4 = 0.4,
2F5 = 0.8,
2F6 = 1.6,
Ntese que 2F2 =1.6=2F6. Se tiene entonces que dk=dk+4 y Fk=Fk+4, para k = 2,3,4.
Es decir, la fraccin tiene una representacin binaria peridica:
= 1011001100110...
10
Periodicidad que se denota por 7
= 10110 .
10
Para comprobar el resultado anterior, se emplea la expresin de conversin a
sistema decimal:
R = d j (2) j , d j {0,1}
j =1
1 1 1
8
2
1 11
+ +
=
+ +
=
= 0.6875 0.7
2 8 16 16 16 16 16
En castellano se suele utilizar la coma decimal, reservando el punto para los millares, por lo que se suele
hablar de nmeros en coma flotante. Sin embargo, dado que la mayora de los programas y lenguajes de
ordenador utilizados para problemas numricos utiliza el punto decimal, he preferido utilizar el punto
decimal. Adems, no se utiliza la coma para los millares, para evitar confusiones.
20 de 53
Figura 8 Representacin de los nmeros flotantes positivos en un sistema (m; e) = (3; 2). Los nmeros con asterisco y
crculo son normales y subnormales, respectivamente.
x = (0.d1d 2 ...d n ) b b E = (
d
d1 d 2
+ 2 + ... + nn )b E
b b
b
d1 0
0.10111 corresponde a 1 * 2
(.100) 2 =
1 0
0 1 8
+ 2+ 3 = =
2 2
2 16
2
(.101) 2 =
1 0
1 5 10
+ 2+ 3 = =
2 2
8 16
2
21 de 53
10
22 de 53
Es fcil observar que hay nmeros binarios de 64 bits que representan nmeros
flotantes con exponente 0 que no se utilizan en el sistema descrito hasta ahora,
ya que la mantisa siempre est normalizada. Para aprovechar dichos valores se
definen los nmeros subnormales, y se denomina normales a los que tienen la
representacin (Tabla 1). Los nmeros subnormales no tienen la mantisa
normalizada y permiten representar nmeros mucho ms pequeos, en valor
absoluto, que los que se obtienen con los nmeros normales. El valor
representado por un nmero subnormal con signo S, mantisa en binario M y
exponente decimal siempre E = 0 es:
(1) S * (0.M ) 2 * 2 1022
23 de 53
Fuentes de error.
1.
2.
3.
4.
12
GERALD, Curtis F y otro. Anlisis numrico con aplicaciones. 6 Ed. Pearson Educacin. 200 P17
24 de 53
xn
.
n =0 n!
Sin embargo, una aproximacin a dicho valor, puede obtenerse a travs de
k
xn
x
su expresin finita: e , k < , Teniendo en cuenta lo anterior, se
n =0 n!
puede observar que si se encuentra el valor de la serie con cuatro trminos
nada ms ( k = 3 ) se obtiene una respuesta inexacta. El error se debe al
truncamiento de la serie y no tiene nada que ver con la computadora.
Error de redondeo. Las computadoras digitales casi siempre operan con
nmeros de punto flotante de longitud de palabra fija, Los valores
verdaderos no se expresan exactamente mediante tales representaciones13.
La casi totalidad de los nmeros reales requieren, para su representacin
decimal, de una infinidad de dgitos. En la prctica, para su manejo slo
debe considerarse un nmero finito de dgitos en su representacin,
procedindose a su determinacin mediante un adecuado redondeo. Un caso
tpico lo presentan los computadores que, en su memoria, almacenan slo
representaciones finitas de los nmeros reales. En este caso se habla de
redondeo inherente.
Error de propagacin. Por error de propagacin se entiende una falla en los
pasos sucesivos de un procedimiento debido a la ocurrencia de un error
previo, este error existe adems de los errores locales.
Al operar aritmticamente con cantidades aproximadas, los errores
asociados a stas son propagados al resultado de la operacin. A veces estos
errores pueden ser tan significativos que el resultado carece de sentido.
Error de discretizacin. Muchos problemas de clculo aproximado se
resuelven por discretizacin del problema original. Es as como integrales
definidas se aproximan por sumas finitas, derivadas se aproximan por
cuocientes de diferencias, etc.
5.
6.
7.
13
25 de 53
14
Francisco R. Villatoro, Carmen M. Garca, Juan I. Ramos. ARITMTICA FLOTANTE Y ANLISIS DE ERRORES
26 de 53
yi y i = f i ( x ) f i ( x )
xj xj *
j =1
f i ( x)
.
x j
As, una forma de aproximar el efecto que tienen los datos de entrada en la
salida (en trminos de errores absolutos) es:
yi
f i ( x)
* x j
j =1 x j
y i =
Al valor de
n
x j f i ( x)
yi
* x j
yi
j =1 f i ( x ) x j
x j f i ( x)
se le llama nmero de condicin.
f i ( x) x j
27 de 53
f ' ( x0 )
f ( x0 + h) f ( x0 )
h
f ( x0 + h ) = f ( xo ) + f ' ( x0 ) h +
1
1
f ' ' ( x0 )h 2 + f ' ' ' ( x0 )h 3 + ..
2!
3!
De donde,
f ( x0 + h ) f ( xo )
1
1
= f ' ( x0 ) + f ' ' ( x0 )h + f ' ' ' ( x0 )h 2 + ..
2!
3!
h
As el error cometido es
f ( x0 + h ) f ( xo )
1
1
= f ' ( x0 ) + f ' ' ( x0 )h + f ' ' ' ( x0 )h 2 + ... = 0(h)
2!
3!
h
Otro caso donde aparecen errores de truncamiento es al aproximar un proceso
infinito por uno finito (por ejemplo, truncando los trminos de una serie). Sea (an)
una sucesin de trminos no negativos, montona decreciente y con lim n!1 an = 0,
por el criterio de Leibnitz, se sabe que si:
s=
(1) n an y s k =
n =1
(1) n an
n =1
Se tiene:
S = S S k ak +1
Error de redondeo.
La causa fundamental de errores en una computadora se atribuye al error de
representar un valor numrico real mediante un nmero limitado de bits.
El error de redondeo es resultado directo de las limitaciones de los computadores:
la aritmtica de la mquina slo comprende valores con un nmero finito de
dgitos; as que cuando se combinan valores a travs de una operacin aritmtica
los errores son automticos.
Los nmeros se almacenan en la computadora como una secuencia de dgitos
binarios o bits (unos o ceros), pero para analizar los efectos de los errores de
redondeo, se supone que los nmeros se representan en la forma normalizada
decimal de punto flotante. Se reitera que la computadoras no trabajan con
todos los nmeros reales, sino solo con un conjunto finito de nmero racionales,
que tpicamente es de la forma:
FP = x 0, d1 , d 2 ,..., d m x e , d 1 N con 1 d1 , d i 0, e Z , L e U
Y al que designa por sus siglas en ingles como (Floating Point: FP)
28 de 53
Signo.
El manejo finito que hace el computador de los nmeros implica que existe un
nmero mximo, digamos m, de dgitos por medio del cual puede representarse
un valor; esto es, la mantisa slo debe contener m dgitos. Cualquier nmero real
puede escribirse en la forma:
Notaciones:
FPi = {x FP : exp onente( x) = i}
t
Ejemplo
Un caso comn de cancelacin de cifras significativas ocurre en el clculo de un
nmero mediante una sumatoria donde los trminos de la sumatoria son mucho
mayores que el resultado y alternan en signo. Considere el problema de evaluar
7
29 de 53
30 de 53
-2.32348862372334E-14,-1.99866165284668E-14,-1.71373332191749E-14,
-1.46441019033272E-14,-1.24648555366313E-14,-1.05714048626027E-14,
-8.93122381606659E-15,-7.51525577880052E-15,-6.29531149431983E-15,
-5.24667115309185E-15,-4.35589064817776E-15,-3.59391336135495E-15,
-2.94816254742258E-15,-2.40953090813179E-15,-1.95590071916385E-15,
-1.57729732053191E-15,-1.26114396703514E-15,-1.00180280737661E-15,
-7.91033905045424E-16,-6.18862600054726E-16,-4.7791631763161 E-16,
. . . . .
. . . . .
2.16840434497101E-18, 8.67361737988404E-19, 3.46944695195361E-18
9.54097911787244E-18, 1.51788304147971E-17, 1.90819582357449E-17,
2.86229373536173E-17, 4.16333634234434E-17, 5.76795555762288E-17
8.5868812060852 E-17, 1.14491749414469E-16, 1.58727198051878E-16,
2.11202583200176E-16, 2.79290479632266E-16, 3.70363462121048E-16,
4.80518402845576E-16, 6.17995238316738E-16, 7.91901266783412E-16,
1.00093544563862E-15, 1.26027660529715E-15, 1.57469523531795E-15,
1.95329863394988E-15, 2.41039826986977E-15, 2.95076463263655E-15,
3.59478072309294E-15, 4.3532885629638 E-15, 5.24753851482984E-15,
6.29097468562989E-15, 7.51612314053851E-15, 8.9303564543286 E-15,
1.05722722243407E-14, 1.24674576218453E-14, 1.46432345415892E-14,
1.71382005809129E-14, 1.99857491667288E-14, 2.32392230459233E-14,
2.6924209389767 E-14, 3.11053266477401E-14, 3.58333154815149E-14];
x = 0.988:0.00024:1.012;
plot(x,y');
x 10
3
2
1
0
-1
-2
-3
-4
0.985
0.99
0.995
1.005
1.01
1.015
31 de 53
Ejemplo
t = 3, = 10, L = 10,U = 10
Los nmeros sern de la forma {0.d1d 2 d 3 x10 e , con 0 d1 9, 10 e 10} .
Cmo se distribuyen los nmeros de FPe en este caso sobre los reales?. Para e = 1 ,
se tiene que:
Un nmero cualquiera del conjunto FPi puede expresarse mediante la suma:
1 = (
d
d
d1 d 2
d
+
+ 3 ) x101 = d1 + 2 + 3
10 100 1000
10 100
2 = (
d
d
d1 d 2
d
+
+ 3 ) x10 2 = 10 x(d1 + 2 + 3 ) ,
10 100 1000
10 100
32 de 53
modo
de
ejemplo:
mquina
redondea
(si
Ejemplo
El nmero es un nmero irracional, luego tiene una expresin decimal infinita
de la forma = 3.14159265358979... En forma decimal normalizado es
= 0.314159265358979 * 101 . El nmero en punto flotante (fl) con cinco dgitos
y corte se representa por: fl ( ) =0.31415*101=3.1415.
Con redondeo ser fl ( ) = (0.31415 + 0.00001) *101 = 3.1416
El error cometido al reemplazar un nmero por su forma en punto flotante recibe
el nombre de error de redondeo independientemente de si se ha aplicado el
mtodo de corte o de redondeo.
A continuacin se presentan algunas estrategias para minimizar el error de
redondeo al emplear mtodos numricos en la resolucin de problemas
matemticos.
33 de 53
Error Absoluto
Definicin: Si x fl ( x) es una aproximacin a x, entonces se define el error
absoluto como x x . El error absoluto ea de un nmero b como aproximacin a
otro nmero a es la diferencia entre ellos, ea = b a , luego b = a + ea . A veces se
define este error en valor absoluto, b = a + ea . Por ejemplo, si b aproxima a
a = 22.43 con un error absoluto ea = 0.01221, entonces b = 22.44 , coincide con a
en aproximadamente 4 dgitos. Sin embargo, con ese error absoluto, pero con
a = 0.02243 , el nmero b = 0.03464 , no coincide con a en ninguno de sus dgitos.
Aunque un error de 0.01 pueda parecer pequeo, lo sera solo si el nmero
original es grande. Por ello, el error absoluto no nos permite decidir
correctamente si un error es grande o no lo es.
x fl ( x) 5 * x *10 t * k
Con k=2 si es por corte y k=1 si es por redondeo.
34 de 53
Error relativo
El error relativo er de un nmero b como aproximacin a otro a se define como:
er =
ba
, b = a + er a = a (1 + er ) , siempre que a sea diferente de cero.
a
Observaciones:
A partir de la definicin anterior, se observa que la representacin de punto
flotante de x tiene un error relativo igual a:
x fl ( x)
x
Si se dispone de k dgitos, entonces se encuentra que un lmite de error relativo
de 10 k +1 por truncamiento y 5 *10 k por redondeo.
Definicin: Se dice que los nmeros x y x coinciden hasta s dgitos (cifras)
significativos si s es el mayor nmero entero no negativo para el cual:
35 de 53
x x*
x
< 5 *10 s
x + y = fl ( fl ( x) + fl ( y ))
x y = fl ( fl ( x) fl ( y ))
Un
ejemplo
del
modus
operandi.
Sean
36 de 53
x * y = fl ( fl ( x) * fl ( y ))
x / y = fl ( fl ( x) / fl ( y ))
Vea un ejemplo sencillo. Sean x = 1867 = 0.1867 *10 4 , e y = 0.201*10 0 , entonces:
fl ( x, y ) = fl (0.1867 *10 4 0.2010 *10 0 ) = fl (0.0375267 *10 4 ) = 0.3753 *10 3 x * y
y
fl ( x, y ) = fl (0.1867 *10 4 / 0.2010 *10 0 ) = fl (0.928855... *10 4 ) = 0.9289 *10 4 x / y
fl ( x) x, fl ( x y ) x y, fl ( x * y ) x * y, fl ( x / y ) x / y
Aunque el resultado sea exacto, se puede haber producido una prdida de dgitos
significativos, como en el caso de las diferencias cancelativas, que a todos los
efectos podemos interpretar como un error.
Segundo, todos los coprocesadores matemticos estn diseados para cometer un
error mximo igual a la unidad de redondeo, u = / 2 , al realizar cualquiera de
las operaciones elementales (incluidas la evaluacin de races cuadradas,
logaritmos, trigonomtricas, etc.). Para ello, muchos procesadores utilizan los
llamados dgitos de reserva, dgitos adicionales que se utilizan internamente
durante los clculos que permiten garantizar que el resultado de una operacin
con nmeros flotantes tiene como resultado un nmero flotante redondeado de
forma exacta (por ejemplo, los coprocesadores Intel ix87 utilizan internamente
80 dgitos para operar con nmeros en doble precisin de slo 64 dgitos). Un
estudio de los efectos de los dgitos de reserva en los errores est fuera de los
objetivos de este curso.
Tercero, las operaciones de suma y multiplicacin flotantes son conmutativas,
pero no son asociativas ni distributivas. Por ejemplo, aunque x + y + z = (x + y) +
z = x + (y + z), se tiene que:
fl ( fl ( x + y ) + z ) fl ( x + fl ( y + z ))
Y por tanto el orden con el que se opera es importante por cuanto afecta a como
se acumulan los errores. Un orden adecuado puede llegar a reducir los errores en
el resultado final. Y por el contrario, un orden inadecuado puede incrementar
estos.
Ejemplo
37 de 53
Sean x = 1
Operacin Resultado
Error Absoluto Error Relativo
1
x+ y
0.10476*10
0.190*10-5
0.182*10-4
0
-5
x y
-0.38095*10
0.238*10
0.625*10-5
0.23809*100
0.524*10-5
0.220*10-4
x* y
0.46666*100
0.667*10-5
0.143*10-4
/ yx
fl ( y ) = 0.71428 * 10 0
u = 0.714251
fl (u ) = 0.71425 * 10 0
v = 98765.9
w = 0.111111 * 10 4 fl ( w) = 0.11111 * 10 4
Operacin
y u
( y u) / w
( y u) * v
u+v
yw
Error Absoluto
0.472*10-5
0.425
0.466
0.162*101
0.779
Error Relativo
0.136
0.136
0.136
0.164*10-4
0.122*10-4
Problemas
1.
2.
38 de 53
3.
< 5 *10 t
Ejemplo:
Conociendo los lados de un rectngulo a=23,975cm y b=17,03cm se quiere
calcular su rea A=a*b.
Segn la calculadora: A=23,975cm*17,03cm=408,29425cm2
Pero si la exactitud con que conocemos el valor del lado es de una milsima de
centmetro y del lado b es de una centsima de centmetro, es evidente que el
resultado no puede tener una exactitud de una cien milsima. Por lo tanto la
notacin correcta, atenindonos a la regla expuesta sera:
A=408,29cm2 (o, segn sea la situacin, A=408,3cm2, teniendo en cuenta el
redondeo)
39 de 53
2.
40 de 53
Ejemplo
Resuelva la ecuacin x 2 + 62.10 x + 1 = 0 . Las races aproximadas son:
x1 =
b + b 2 4ac
= 0.0161072
2a
b b 2 4ac
x2 =
= 62.08390
2a
Como b 2 es mucho mayor que 4ac en el clculo de x1 , el numerador tiene una
resta de nmeros casi iguales.
Trabajando con redondeo a cuatro dgitos se tiene que:
62.10 + 62.06
= 0.15 *10 1
2
0.0161072 + 0.015
6.9 *10 1
0.0161072
El calculo de x2 no presenta ese problema (no aparece la resta).
Solucin: hacer desaparecer la resta en el calculo de x1 .
x1 =
b 2 (b 2 4ac)
2a(b b 2 4ac )
2c
b + b 2 4ac
fl ( x1 ) = 0.1611 *10 1
2 *10 4
Ejemplo
Evaluacin del polinomio P ( x) = x 3 6.1x 2 + 3.2 x + 1.5 en el punto x = 4.71 usando
aritmtica de tres dgitos.
41 de 53
x
x2
x3
6.1x 2
3 .2 x
Exacto
4.71 22.1841 104.487 135.323 15.072
Corte
4.71
22.1
104.
135.
15.0
Redondeo 4.71
22.2
104.
135.
15.1
Exacto
Corte 3 dgitos
Redondeo 3 dgitos
: P(4.71)=104.487-135.323+15.072+1.5=-14.2639
: P(4.71)=((104.-135.)+15.0)+1.52=-14.5
: P(4.71)=((104.-135.)+15.1)+1.5=-14.4
14.2639 (14.5)
0.017
14.2639
En redondeo
14.2639 (14.4)
0.00962
14.2639
: P(4.71)=-14.2
En redondeo
: P(4.71)=-14.3
14.2639 + 14.2
0.0045
14.2639
14.2639 + 14.3
0.0026
14.2639
42 de 53
puede
manejar
es
Inestabilidad numrica15
Un proceso numrico es inestable cuando pequeos errores en alguna de sus
etapas generan, a lo largo del resto del proceso, errores que degradan
seriamente la exactitud de los resultados del clculo en su conjunto.
Ejemplo
Es sabido que las potencias de la razn urea verifican la relacin de recurrencia:
r^(n+1) = r^(n-1)-r^n. Esto nos permite generar dichas potencias mediante el
algoritmo implementado en MATLAB siguiente:
r=zeros(1,100; % para evitar el redimensionamiento del for
15
Aritmtica computacional, Algunos aspectos tericos. Profesor Jos A. Cordn. Dpto. de Matemticas, Estadstica y
Computacin (MATESCO). Facultad de Ciencias. Universidad de Cantabria, mail: cordon@matesco.unican.es
43 de 53
r(1)=1;r(2)=(sqrt(5)-1)/2;
for n=2:100
r(n+1)=r(n-1)-r(n);
end
for n=1:10:100
fprintf('r^%g=%10.5f error = %g \n', n, r(n+1),... abs(r(n+1)-r(2)^n))
end
Al ejecutar el programa anterior se vera el siguiente resultado.
r^1 = 0.61803 error = 0
r^11= 0.00502 error = 4.83207e-015
r^21= 0.00004 error = 5.94599e-013
r^31= 0.00000 error = 7.31309e-011
r^41= 0.00000 error = 8.9945e-009
r^51= 0.00000 error = 1.10625e-006
r^61= 0.00014 error = 0.00013606
r^71= 0.01673 error = 0.0167343
r^81= 2.05818 error = 2.05818
r^91= 253.13910 error = 253.139
Se observa que las 15 cifras correctas del r^11, van disminuyendo
paulatinamente hasta hacerse los resultados ltimos enormemente imprecisos.
El algoritmo es inestable.
44 de 53
mach
1 e t
( para mquina que redondea
= 2
e t ( Para mquina que trunca )
45 de 53
46 de 53
desde su arranque, etime, tic, toc, clock y cputime realizan diversas mediciones
del tiempo. Estas ltimas medidas sern dependientes de la mquina, no
obstante posibilitan una cierta medida de la complejidad relativa y la
comparacin de algoritmos. (Para una ms completa descripcin de estas
funciones utilice el help correspondiente dentro del entorno MATLAB)
Ejemplo
help flops
El tamao de los errores es ciertamente un criterio til: podra elegir el mtodo
que diese menores errores. No obstante hay un criterio mejor: quedarse con el
mtodo que, dando errores dentro de unos lmites predeterminados, necesite el
menor trabajo. Este equilibrio entre precisin y coste operativo se llama
eficiencia y dir que un mtodo es ms eficiente que otro si dando errores
parecidos es menos costoso o que siendo parecido de costoso es ms preciso.
Ejemplo
Algoritmo de Horner. Suponga que se debe evaluar para un valor dado z un
polinomio curtico a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0 . El mtodo ingenuo calculara
z 2 = z z, z 3 = z 2 z, z 4 = z 3 z
los
sucesivos
productos
que
son
tres
multiplicaciones, despus calculara los productos por los coeficientes que son
otras cuatro multiplicaciones, y finalmente las cuatro sumas o restas
dependiendo del signo del coeficiente. En total son cuatro sumas o restas y siete
multiplicaciones.
Si ahora opera en otro orden:
Ecuacin 5
a 0 + z (a 1 + z (a 2 + z (a 3 + z a 4 )))
Conclusiones
47 de 53
Problemas propuestos:
1. Convierta los siguientes valores expresados en binario al correspondiente
en sistema decimal.
.11000112 , .11111112 , 1010 2 , 1001012 , 101.012
p=, p*=22/7
p=e, p*=2.718
p=e10, p*=22000
p=8!, p*=39900
b.
d.
f.
h.
p=, p*=3.1416
p= 2 , p*=1.1414
p=10, p*=1400
p=9!, p*= 18 (9 / e) 9
x x 2 x3
xn
e = 1+ +
+
+ ... +
1! 2! 3!
n!
x
48 de 53
d)
e)
f)
g)
h)
b= 3000.001
c= 3
b=-400.2
c=80
y = 2 x 3 4 x 2 6 x + 23 / 12 En x= 2.73
Valor verdadero en x= 2.73, y = -3.58
Calcular la cota el error cometido en la evaluacin del polinomio y el error
relativo porcentual cometido utilizando los valores verdaderos.
7. Utilizar los trminos de la Serie de Taylor con n=0 hasta 6, para aproximar
la funcin:
f ( x) = (23 ) * cos( x) En xi +1 = 1 / 3
18
Siendo el centro de la serie /4, utilizar cinco cifras significativas en los
clculos.
49 de 53
b. 900
c. 1500
d. 90
b. e
c.
d.
b. 4/5 1/3
d. (1/3 + 3/11) 3/20
b. 133-0.499
d. (121-119)-0.327
13 6
14
7
e.
2e 5.4
f. 10 + 6e
2 9
9 7
g.
3
62
22
7
1
17
h.
50 de 53
aib j ?
i =1 j=1
x+5
dx
I n = 5 I n 1 + n
b
2
b
ac ; x 2 =
b
2
ac
51 de 53
b
x1 = 2 +
b
2
b
x1 = 2
b
2
ac ;
ac ;
Teniendo en cuenta que una solucin con cinco cifras decimales exactas
es x1 = 0.17944 * 10 2 ; x 2 = 0.55728 *10 1 , comente los resultados e intente
dar una explicacin a los mismos.
Recursos Bibliogrficos
1. ALTZ, Franz L. Electronic. Digital. computers: Their use in science
and Engineering. 1958 Academic Press inc. New York.
2. BURDEN Richard L., J. Douglas Faires; Anlisis numrico. tr. Efrn
Alatorre Miguel; Revisin Tcnica. Ildefonso. 1998 (Biblioteca USCO.
Nro Topogrfico: 515 / B949a.)
3. CHAPRA Steven C., CANALE Raymond P, Numerical Methods for
engineers. McGraw Hill, Inc. 1988. 839p. ISBN 0-07-909944-0.
4. CHAPRA Steven C., CANALE Raymond P. Mtodos numricos para
ingenieros: con aplicaciones en computadoras personales. 1988
(Biblioteca USCO Nro Topogrfico: 519.5 / C467m)
5. CONDE S. D, Carl de Boor. Anlisis numrico elemental: Un enfoque
algortmico. Mc. Graw-Hill 1972, (Biblioteca USCO Nro Topogrfico:
511.8 / C761 Biblioteca).
6. CORMICK MC., John M. and SALVADOR M.C. Numerical Methods in
FORTRAN. 1964. Prentice-Hall Inc Englewood Cliffs N:J.
7. CURTIS, F. Gerald, WHEATLEY, O. Patrick. Anlisis numrico con
aplicaciones. Tr. Hugo Villagomez Vasquez. 6 Ed. Pearson Educacin.
2000, 698p. ISBN 968-444-393-5.
8. D. Goldberg, What Every Computer Scientist Should Know About FloatingPoint Arithmetic, ACM Computing Surveys, Vol. 23, pp. 153230 (1991).
Reproduced at http://citeseer.nj.nec.com/goldberg91what.html.
52 de 53
53 de 53