Professional Documents
Culture Documents
1.1.
CIFRAS SIGNIFICATIVAS
En esta obra se trata de manera extensa con aproximaciones que se relacionan con el manejo de nmeros. En consecuencia, antes de analizar los
errores asociados con los mtodos numricos, es til repasar algunos conceptos bsicos referentes a la representacin aproximada de los nmeros mismos.
Cuando se emplea un nmero para realizar un clculo, debe haber seguridad de que pueda usarse con conanza. Por ejemplo, la gura 1 muestra
2
1.2.
EXACTITUD Y PRECISIN
1.3.
DEFINICIONES DE ERROR
Los errores numricos surgen del uso de aproximaciones para representar operaciones y cantidades matemticas exactas. stas incluyen los errores de truncamiento que resultan del empleo de aproximaciones como un
proce-dimiento matemtico exacto, y los errores de redondeo que se producen
cuando se usan nmeros que tienen un lmite de cifras signicativas para representar nmeros exactos. Para ambos tipos de errores, la relacin entre el
(1)
valor aproximado
(2)
donde Et se usa para denotar el valor exacto del error. El subndice t indica
que se trata del error verdadero(true). Como ya se mencion brevemente,
esto contrasta con los otros casos, donde se debe emplear una estimacin
aproximadadel error.
Una desventaja en esta denicin es que no toma en consideracin el
orden de la magnitud del valor que se estima. Por ejemplo, un error de un
centmetro es mucho ms signicativo si se est midiendo un remache en
lugar de un puente. Una manera de tomar en cuenta las magnitudes de las
cantidades que se evalan consiste en normalizar el error respecto al valor
verdadero, es decir
Error relativo fraccional verdadero =
6
error verdadero
valor verdadero
error verdadero
valor verdadero
100 %
(3)
9999 = 1cm;
y en la del remache es de
Et = 10
9 = 1cm
1
10000
100 % = 0;01 %
y para el remache es de
"t =
1
10
100 % = 10 %
Por lo tanto, aunque ambas medidas tienen un error de 1 cm, el error relativo
porcentual del remache es mucho mayor. Se concluye entonces que se ha hecho
un buen trabajo en la medicin del puente; mientras que la estimacin para
el remache dej mucho que desear.
Observe que en las ecuaciones (2) y (3), E y tienen un subndice t que
signica que el error ha sido normalizado al valor verdadero. En el ejemplo 3.1 tenamos el valor verdadero. Sin embargo, en las situaciones reales
a veces es difcil contar con tal informacin. En los mtodos numricos, el
valor verdadero slo se conocer cuando se tengan funciones que se resuelvan
7
analticamente. ste comnmente ser el caso cuando se estudie el comportamiento terico de una tcnica especca para sistemas simples. Sin embargo,
en muchas aplicaciones reales, no se conoce a priori la respuesta verdadera.
Entonces en dichos casos, una alternativa es normalizar el error, usando la
mejor estimacin posible al valor verdadero; es decir, para la aproximacin
misma, como en
error aproximado
100 %
(4)
"a =
valor aproximado
donde el subndice a signica que el error est normalizado a un valor aproximado. Observe tambin que en aplicaciones reales la ecuacin (2) no se puede
usar para calcular el trmino del error de la ecuacin (4). Uno de los retos que
enfrentan los mtodos numricos es el de determinar estimaciones del error
en ausencia del conocimiento de los valores verdaderos. Por ejemplo, ciertos
mtodos numricos usan un mtodo iterativo para calcular los resultados. En
tales mtodos se hace una aproximacin considerando la aproximacin anterior. Este proceso se efecta varias veces, o de forma iterativa, para calcular
en forma sucesiva, esperando cada vez mejores aproximaciones. En tales casos, el error a menudo se calcula como la diferencia entre la aproximacin
previa y la actual. Por lo tanto, el error relativo porcentual est dado por
"a =
100 %
(5)
"s = (0;5
(7)
)%
x2 x3
+
+
2!
3!
xN
N!
102 3 ) % = 0;05 %
Por lo tanto, se agregarn trminos a la serie hasta que ea sea menor que
este valor.
1+x
y para x = 0;5,
e0;5
1 + 0;5 = 1;5
1;648721 1;5
1;648721
100 % = 9;02 %
Resultado
1
1;5
1;625
1;645833333
1;648437500
1;648697917
"t ( %)
9;3
9;02
1;44
0;175
0;0172
0;00142
"a ( %)
33;3
7;69
1;27
0;158
0;0158
As, despus de usar seis trminos, el error aproximado es menor que "s =
0;05 %, y el clculo termina. Sin embargo, observe que, el resultado es exacto
con cinco cifras signicativas! en vez de tres cifras signicativas. Esto se debe
a que, en este caso, las ecuaciones (5) y (7) son conservadoras. Es decir,
aseguran que el resultado es, por lo menos, tan bueno como lo especican.
Aunque, como se analiza en el captulo 6, ste no es siempre el caso al usar
la ecuacin (5), que es verdadera en la mayora de las veces.
Con las deniciones anteriores como antecedente, se procede ahora a
exa-minar los dos tipos de error relacionados directamente con los mtodos
numricos: el error de redondeo y el error de truncamiento.
10
1.4.
ERRORES DE REDONDEO
104 ) + (6
103 ) + (4
102 ) + (0
11
101 ) + (9
100 ) = 86409
La gura
ofrece una representacin de cmo se formula un nmero en el sistema de
base 10. Este tipo de representacin se llama notacin posicional.
Debido a que el sistema decimal resulta ser tan familiar, no es comn
darse cuenta de que existen otras alternativas. Por ejemplo, si el ser humano
tuviera ocho dedos en las manos y ocho en los pies, se tendra, sin duda, una
representacin en un sistema octal o de base 8. En tal sentido nuestra amiga la
computadora es como un animal que tiene dos dedos, limitado a dos estados:
0 o 1. Esto se relaciona con el hecho de que las unidades lgicas fundamentales de las computadoras digitales sean componentes electrnicos de apagado/encendido. Por lo tanto, los nmeros en la computadora se representan
con un sistema binario o de base 2. Del mismo modo que con el sistema decimal, las cantidades pueden representarse usando la notacin posicional. Por
ejemplo, el nmero binario 11 es equivalente a (1 21 ) + (1 20 ) = 2 + 1 = 3
en el sistema decimal. En la gura 3(b) se ilustra un ejemplo ms complejo.
Representacin entera. Ahora que se ha revisado cmo los nmeros de
base 10 se representan en forma binaria, es fcil concebir cmo los enteros se
representan en la computadora. El mtodo ms sencillo se denomina mtodo
de magnitud con signo y emplea el primer bit de una palabra para indicar
el signo: con un 0 para positivo y un 1 para el negativo. Los bits sobrantes
se usan para guardar el nmero. Por ejemplo, el valor entero 173 puede
guardarse en la memoria de una computadora de 16 bits como se muestra:
12
signo! 1
0 0 0 0 0 0 0 1 0 1 0 1 1 0 1
{z
}
Mantisa
214 ) + (1
213 ) +
+ (1
21 ) + (1
20 )
que es igual a 32767 (observe que esta expresin puede simplemente evaluarse
como 215 1). As, en una computadora de 16 bits una palabra puede guardar
en memoria un entero decimal en el rango de 32767 a 32767. Adems, debido a que el cero est ya denido como 0000000000000000, sera redundante
13
usar el nmero 1000000000000000 para denir menos cero. Por lo tanto, es usualmente empleado para representar un nmero negativo adicional:
32768, y el rango va de 32768 a 32767.
Observe que el mtodo de magnitud con signo descrito antes no se utiliza
para representar enteros en computadoras convencionales. Se preere usar
una tcnica llamada complemento de 2 que incorpora en forma directa el signo dentro de la magnitud del nmero, en lugar de emplear un bit adicional
para representar ms o menos (vase Chapra y Canale, 1994). Sin embargo,
en el ejemplo 3.3 sigue sirviendo para ilustrar cmo todas las computadoras
digitales estn limitadas en cuanto a su capacidad para representar enteros.
Esto es, los nmeros por encima o por debajo de este rango no pueden representarse. Una limitacin ms importante se encuentra en el almacenaje y la
manipulacin de cantidades fraccionarias, como se describe a continuacin.
Representacin del punto-otante. Las cantidades fraccionarias generalmente se representan en la computadora usando la forma de punto otante.
Con este mtodo, el nmero se expresa como una parte fraccionaria, llamada
mantisa o signicando, y una parte entera, denominada exponente o caracterstica, esto es,
m be
donde m = la mantisa, b = la base del sistema numrico que se va a utilizar
y e = el exponente. El nmero 156;78 se representa como 0;15678
103 en
un sistema de base 10 de punto otante.
Exponente
con signo
IEEE
precisin simple
Mantisa
23
Signo
punto binario
Figura 5 Como se guarda un nmero en punto otante
En 1a gura 5 se muestra una forma en que el nmero de punto otante se
guarda en una palabra. El primer bit se reserva para el signo; la siguiente
serie de bits, para el exponente con signo; y los ltimos bits, para la mantisa.
Observe que la mantisa es usualmente normalizada si tiene primero cero
dgitos. Por ejemplo, suponga que la cantidad 1=34 = 0;029411765 : : : se
guarda en un sistema de base 10 con punto otante, que nicamente permite
guardar 4 lugares decimales. Entonces, 1=34 se guardara como 0;0294 100
14
Sin embargo, al hacerlo as, la inclusin del cero intila la derecha del
punto decimal nos obliga a eliminar el dgito 1 del quinto lugar decimal. El
nmero puede normalizarse para eliminar el cero multiplicando la mantisa
por 10 y diminuyendo el exponente en 1, para quedar 0;2941 10 1 : As, se
conserva una cifra signicativa adicional al guardar el nmero.
La consecuencia de la normalizacin es que el valor absoluto de m queda
limitado. Esto es,
1
m<1
(8)
b
donde b = la base. Por ejemplo, para un sistema de base 10, m estara entre
0;1 y 1; y para un sistema de base 2, entre 0;5 y 1:
La representacin de punto otante permite que tanto fracciones como
nmeros muy grandes se expresen en la computadora. Sin embargo, hay algunas desventajas. Por ejemplo, los nmeros de punto otante requieren ms
espacio y ms tiempo de procesado que los nmeros enteros. Ms importante
aun es que su uso introduce una fuente de error debido a que la mantisa conserva slo un nmero nito de cifras signicativas. Por lo tanto, se introduce
un error de redondeo.
EJEMPLO 4 Conjunto hipottico de nmeros con punto otante
Planteamiento del problema. Determine un conjunto hipottico de
nmeros con punto otante para una mquina que guarda informacin usando palabras de 7 bits. Emplee el primer bit para el signo del nmero, los
siguientes tres para el signo y la magnitud del exponente, y los ltimos tres
para la magnitud de la mantisa (vase gura 6).
Signo
exponente 21 20 2 12
0
Signo
Mantisa
mantisa
Exponente
Figura 6 Nmero positivo ms pequeo del ejemplo 4
Solucin.
El nmero positivo ms pequeo posible se representa en la gura 6. El 0
inicial seala que la cantidad es positiva. El 1 en el segundo lugar indica que
15
21 + 1
20 = 3
+0
+0
= 0;5
21 + 0
20 = 2
16
Figura 7
b
numeros
pequeos
[r
0
4 5 6 7 4
4 4 4 4 2
[r r r r )[r
mantisa x2
5
2
5
8
4
8
6
2
6
8
7
8
)b
1
mantisa x2
7
2
mantisa x22
4
)[r
numeros
grandes
mantisa x23
7
]r
desbordamiento
En la gura 7 se presentan diversos aspectos de la representacin de punto otante, que son importantes respecto de los errores de redondeo en las
computadoras.
1. El rango de cantidades que pueden representarse es limitado. Como
en el caso de los enteros, hay nmeros grandes positivos y negativos
que no pueden representarse. Intentar emplear nmeros fuera del rango aceptable dar como resultado el llamado error de desbordamiento
(overow). Sin embargo, adems de las grandes cantidades, la representacin de punto otante tiene la limitacin adicional de que nmeros
muy pequeos no pueden representarse. Esto se ilustra por el agujero
underow entre el cero y el primer nmero positivo en la gura 7. Se
debe observar que este agujero aumenta por las limitaciones de normalizacin de la ecuacin (3.8).
2. Existe slo un nmero nito de cantidades que puede representarse
dentro de un rango. As, el grado de precisin es limitado. Es evidente
que los nmeros irracionales no pueden representarse de manera exacta. Adems, los nmeros racionales que no concuerdan exactamente
con uno de los valores en el conjunto tampoco pueden ser representados en forma precisa. A los errores ocasionados por la aproximacinen
ambos casos se les conoce como errores de cuanticacin. La aproximacin real se realiza por dos caminos: cortando o redondeando. Por
ejemplo, suponga que el valor de = 3;14159265358. . . se va a guardar
en un sistema de numeracin de base 10 con 7 cifras signicativas. Un
mtodo de aproximacin podra ser simplemente omitir, o cortar, el
octavo y dems trminos, como en = 3;141592, con la introduccin
17
de un error asociado de [ecuacin (2)] Et = 0;00000065 : : : Esta tcnica de mantener slo trminos signicativos fue originalmente conocida
como truncamiento en la jerga computacional. Preferimos llamarla
corte para distinguirla de los errores de truncamiento que se analizarn
en el captulo 4. Observe que en el sistema numrico de base 2 de la
gura 7, corte signica que cualquier cantidad que est dentro de un
intervalo de longitud x se guardar en memoria como una cantidad
en el extremo inferior del intervalo. As, el error mximo por corte es
x. Adems, se presenta un sesgo porque todos los errores son positivos. La deciencia del corte se atribuye al hecho de que los trminos
superiores de la representacin decimal completa no tienen impacto en
la versin cortada. As, en el ejemplo de , el primer dgito descartado es 6. El ltimo dgito retenido debera redondearse a 3;141593. Tal
redondeo reduce el error a Et = 0;00000035 : : : :En consecuencia, el
redondeo produce un error absoluto menor que el de corte. Observe
que, en el sistema numrico de base 2 de la gura 7, redondear signica que cualquier cantidad que est en un intervalo de longitud x se
representar como el nmero ms cercano permitido. Entonces, el error
mximo de redondeo es x=2. Adems, no se presenta sesgo porque
ciertos errores son positivos y otros son negativos. Algunas computadoras emplean redondeo. Sin embargo, esto aumenta el trabajo computacional y, en consecuencia, muchas mquinas simplemente usan el
corte. Dicho enfoque se justica con la suposicin de que el nmero de
cifras signicativas es sucientemente grande para que los errores de
redondeo resultantes sean despreciables.
3. El intervalo entre los nmeros, x, aumenta conforme los nmeros crecen en magnitud. sta es la caracterstica, por supuesto, que permite
que la representacin de punto otante conserve los dgitos signicativos. Sin embargo, tambin quiere decir que los errores de cuanticacin sean proporcionales a la magnitud del nmero que ser representado. Para normalizar los nmeros de punto otante, esta proporcionalidad se expresa, para los casos en que se emplea el corte, como
x
jxj
18
"M
(9)
"M
2
(10)
(11)
el ejemplo 2). En estos casos deber ser claro que ms que probar si las dos
cantidades son iguales, es recomendable probar si su diferencia es menor que
una pequea tolerancia aceptable. Adems, deber ser evidente que ms que
la diferencia absoluta, deber compararse la diferencia normalizada, en especial cuando se trabaja con nmeros de gran magnitud. El psilon de la
mquina, adems, se emplea al formular criterios de paro o de convergencia.
Esto asegura que los programas sean porttiles, es decir, que no sean dependientes de la computadora sobre la cual se hayan implementado. En la gura
9 se presenta un seudocdigo que automticamente determina el psilon de
la mquina en una computadora binaria.
Precisin extendida. Aqu se debe observar que, aunque los errores de
redondeo llegan a ser importantes en contextos tales como pruebas de convergencia, el nmero de dgitos signicativos que tiene la mayora de las
computadoras permite que muchos clculos de ingeniera se realicen con una
precisin ms que aceptable. Por ejemplo, el sistema numrico hipottico de
la gura 7 es una enorme exageracin que se us con propsitos ilustrativos.
En las computadoras comerciales se utilizan conjuntos mucho ms grandes y
por consiguiente se permite que los nmeros queden expresados con una precisin adecuada. Por ejemplo, las computadoras que usan el formato IEEE
permiten 24 bits para ser usados por la mantisa, lo cual se traduce en cerca
de siete cifras signicativas de precisin en dgitos de base 10 con un rango
aproximado de 10 38 a 1039 (Observe que, de hecho, nicamente 23 bits se
emplean en la memoria para la mantisa. Sin embargo, debido a la normalizacin, el primer bit de la mantisa es siempre 1 y, por lo tanto, no se guarda.
As, el primer bit junto con los 23 bits de memoria dan 24 bits en total para
la precisin de la mantisa.)
Se debe reconocer que an hay casos donde el error de redondeo resulta crtico. Por tal razn muchas computadoras permiten la especicacin de
precisin extendida. La ms comn de estas especicaciones es la doble precisin, en la cual se duplica el nmero de palabras utilizado para guardar
nmeros de punto otante. Esto proporciona de 15 a 16 dgitos decimales de
precisin y un rango aproximado de 10 308 a 10308 .
En muchos casos el uso de cantidades de doble precisin llega a reducir,
en gran medida, el efecto del error de redondeo. Sin embargo, el precio que
se paga por tales medidas remediales consiste en mayores requerimientos de
memoria y de tiempo de ejecucin. La diferencia en el tiempo de ejecucin de
20
Junto con las limitaciones del sistema numrico de una computadora, las
manipulaciones aritmticas que se usan con tales nmeros tambin pueden
dar como resultado errores de redondeo. En la siguiente seccin se ilustrar
primero cmo afectan las operaciones aritmticas comunes a los errores de
redondeo. De este modo, investigaremos varias manipulaciones que son especialmente propensas a errores de redondeo.
Operaciones aritmticas comunes. A causa de que estamos familiarizados con los nmeros de base 10, los emplearemos para ilustrar el efecto
del error de redondeo en las operaciones bsicas: suma, resta, multiplicacin
y divisin. Otras bases de nmeros pueden tener un comportamiento similar.
Para simplicar el anlisis, emplearemos una computadora decimal hipottica con una mantisa de 4 dgitos y un exponente de 1 dgito. Adems, se
usar el corte. El redondeo puede implicar errores similares, aunque menos
dramticos.
Cuando se suman dos nmeros de punto otante, el nmero de la mantisa
con el exponente menor se modica de tal forma que los exponentes sean los
mismos. Esto tiene el efecto de alinear los puntos decimales. Por ejemplo,
suponga que se quiere sumar 0;1557 101 + 0;4381 10 1 . El decimal de la
21
10
! 0;004381
101
101 +
101
101
y el resultado es cortado a 0;1600 101 . Note cmo los ltimos dos dgitos
del segundo nmero que se recorrieron a la derecha fueron eliminados de
los clculos. La resta se realiza en forma idntica a la suma. Por ejemplo,
suponga que hacemos la resta 36;41 menos 26;86. Esto es,
0;3641
0;2686
0;0955
102
102
102
103
103
103
que podra convertirse en 0;1000 100 = 0;1000. As, en este caso, se agregan
tres ceros no signicativos, lo cual introduce un error sustancial de clculo
debido a que las manipulaciones siguientes actan como si los ceros fueran
signicativos. Como se ver ms adelante en otra seccin, la prdida signicativa durante la resta de nmeros casi iguales es una de las principales
fuentes de errores de redondeo en los mtodos numricos.
La multiplicacin y la divisin resultan un poco ms sencillos que la suma
y la resta. Los exponentes se suman y la mantisa se multiplica. Debido a que
la multiplicacin de dos mantisas de n dgitos da como resultado 2n dgitos,
22
103
0;6423
10
= 0;08754549
102
102 ! 0;8754549
101
y cortando resulta
0;8754
101
IMPLICIT none
INTEGER::i
REAL::sum1, sum2, x1, x2
DOUBLE PRECISION::sum3, x3
sum1=0.
sum2=0.
sum3=0.
x1=1.
x2=1.e-5
x3=1.d-5
DO i=1, 100000
sum1=sum1+x1
sum2=sum2+x2
sum3=sum3+x3
END DO
PRINT *, sum1
PRINT *, sum2
PRINT *, sum3
END
24
104 +
104
104
26
aa = 1.
bb = 3000.001
cc = 3.
dd = SQRT(bb * bb 4. * aa * cc)
x11 = (-bb + dd) / (2. * aa)
x22 = (-bb dd) / (2. * aa)
PRINT *, resultados con precisin doble:
PRINT (1x,a10,f20.14), x1 = , x11
PRINT (1x,a10,f10.4), x2 = , x22
PRINT *
PRINT *, frmula modicada para la primer raz:
x1r = -2. * c / (b + d)
PRINT (1x,a10,f20.14), x1 = , x1r
END
Considere que, como en el ejemplo anterior, hay veces en las que la cancelacin por resta se evita empleando una transformacin. No obstante, el
nico remedio general es usar la precisin extendida.
Dispersin. La dispersin ocurre generalmente cuando los trminos individuales en la sumatoria son ms grandes que la sumatoria misma. Como
en el siguiente ejemplo, casos como stos ocurren en las series con signos
alternados.
EJEMPLO 3.8 Evaluacin de ex usando series innitas
Planteamiento del problema. La funcin exponencial y = ex est
dada por la serie innita
y =1+
x2 x3
x
+
+
+
1!
2!
3!
27
x i yi = x1 y1 + x2 y2 +
+ xN yN
i=1
29