1.2 ARITMÉTICA A K DÍGITOS Ó ARITMÉTICA DE PRECISIÓN FINITA Significa que los cálculos se hacen con un número constante de dígitos así por ejemplo: si se quiere x =12.16 y z = 8.7243 usando aritmética de corte a 3 dígitos, el resultado es x + z = 12.1 sumar x 12.1 + 8.72 8.72 = 20.8; ahora si x y z se suman usando aritmética de redondeo a tres dígitos, el resultado es x + z = 12.2 + 8.72 = 20.9. Observe que el resultado que se obtiene en ambos casos es una aproximación al valor exacto x + z = 20.8843. En general, cuando se usa a ritmética a k dígitos lo primero que se hace es escribir los números en la forma: n x = ± 0 d 1 d 2 d 3 . . . d k d k fl(x) = ± 0 d 1 d 2 d 3 . . 0; después se aproxima x por fl(x) + +2 . . . x10 , d 1 k d k+1 1 d k k +2 n . d k k x10 si se usa corte; y si se usa redondeo, x se aproxima por fl(x) = ± 0 + k = d k k si d k k+1 1
es 0, 1, 2, 3, 4 o
+1 k = d k k +1
d 1 d 2 d 3 . . .
k x
10n donde
si d k + k+1 1 es 5,6, 7, 8, 9.
Ejemplo 1. El núme númerro
tien tiene e una una expa expans nsió ión n dec decimal imal de la for forma: = 3.142857... = 0.3142857... x 101.
La repr repres ese enta ntación ción de punt punto o flflotan otante te de
fl
usan usando do cort corte e a 4 díg dígiitos tos es es
= 0.3142 x 101 = 3.142.
Si se usa redondeo a 4 dígitos fl
= 0.3143 x 101 = 3.143.
Observe que el cuarto dígito ahora es 3 y no 2, esto se debe a que el quinto dígito en la expansión de 22/7 es 8 y como 8 es mayor mayor que 5 se le suma 1 al cuarto dígito.
Ejemplo 2. Escribir el número x = 148.17 en la forma de punto flotante usando corte y redondeo a 4, 3 y 2 dígitos. Solución: x = 148.17 = 0.14817 x 103 El error que resulta al reemplazar un número cualquiera x por su forma de punto flotante fl(x) se conoce como error de redondeo independientemente de si se aplica corte o redondeo para hallar la forma de punto flotante fl(x). corte 4 dígitos fl(x) = 0.1481 x 103 = 3 dígitos fl(x) = 0.148 x 103 = 2 dígitos fl(x) = 0.14 x 103 =
redondeo 148.1 fl(x) = 0.1482 x 103 = 148.2 148 fl(x) = 0.148 x 103 = 148 140 fl(x) = 0.15 x 103 = 150
x es una A continuación se define el error absoluto y el error error relativo. Si x aproximaci ación de de x entonce nces el el er error abs abso olut luto es es y el er error re relativo ivo es es
y el el
error relativo es
Ejemplos
Observe que el error relativo es el mismo en los tres casos, pero el error absoluto es distinto en cada caso. Es aconsejable como una medida de precisión trabajar con el error relativo ya que el error absoluto puede ser engañoso. Nota
Ejercicio 1. Si fl(x) es una aproximación de x con corte a k dígitos. Demuestre que el error relativo que se comete al reemplazar x por fl(x) está acotado por 10-k +1. Solución: n Suponga que x = 0 d 1 d 2 . . . d kd k +1d k+ 2 . . . x10 . fl(x) = 0 d 1 d 2 . . . d k x 10n
(La desigualdad es porque una cota para el numerador 0 d k +1 d k+ 2….x 10-k es 0.99 . . . x 10-k 1 x 10-k ; y una fracción alcanza su valor más grande cuando el denominador es el más pequeño, en este caso el valor más pequeño para 0 d 1d 2 . . . d k d k +1 d k +2. . . es 0.1).
Ejercicio 2. (Para el lector) x por fl(x) usando Demuestre que el error relativo que se comete al reemplazar
redondeo a k dígitos está acotado por
Sugerencia: se deben considerar dos casos: Si d k +1 < 5 entonces fl(x) = 0 d 1 d 2 . . . d k x 10n . Si d k +1
5 entonces fl(x) = 0
d 1 d 2 . . . d k x 10n + 10n-k .
Definición 2 Se dice que el número x aproxima a x con t dígitos (o cifras) significativos, si t es el entero no negativo más grande para el cual,
Ejemplos 1) x = 3.141592 x =3.1
x
aproxima a x con 2 cifras significativas.
2) x = 100000 x = 99996
x
aproxima a x con 4 cifras significativas
3) x = 0.000012 x = 0.00004
x
aproxima a x sin cifras significativas
4) x = 0.000012 x = 0.00001
x
aproxima a x con 1 cifra significativa
1.3 ARITMÉTICA EN UNA MÁQUINA Para analizar los errores que surgen al efectuar cálculos en una máquina debido a la limitante de la longitud de palabra (precisión simple, precisión doble etc.) se supondrá una máquina que opera en decimal y trabaja aritmética a 5 dígitos usando redondeo. Si fl(x) y fl(z) son las representaciones para x y z, y además la máquina, entonces:
,
,
y
denotan las operaciones suma, resta, multiplicación y división en
Ejemplo. para x =
z =
= 0.66666 . . . x 100 , fl(x) = 0.66667 x 100 = 0.66667 = 0.3142857142 . . . x 101 , fl(z) = 0.31429 x 101 = 3.14 29
x x
z = fl (0.66667 + 3.1429) = fl(3.80957) = 3.8096 = 0.38096 x 101 z = fl (0.66667 - 3.1429) = fl(-2.47623) = -2.4762 = -0.24762 x 101
x x
z = fl (0.66667 x 3.1429) = fl(2.095277143) = 2.0953 = 0.209653 x 101 z = fl (0.66667 /3.1429) = fl(0.21211938) = 0.21212 = 0.21212 x 100
En la tabla siguiente se muestran los valores de las operaciones en la máquina, los valores reales y el error relativo en cada operación.
Como el error relativo más grande en las operaciones es 0.295 x 10-4 los resultados tienen 5 dígitos significativos ya que 0.295 x 10-4 = 2.95 x 10-5 < 5 x 10-5.
1.4 PÉRDIDA DE DÍGITOS O CIFRAS SIGNIFICATIVAS Se presenta cuando se restan cantidades casi iguales en una máquina, por ejemplo, si x = 2.1784301 y z = 2.1765628 se restan en una máquina decimal que maneja 5 dígitos y usa redondeo se tendría que:
fl(x) = 0.21784 x 101 fl(z) = 0.21766 x 101 fl(x) – fl(z) = 0.00018 x 101 x z = fl (fl(x) – fl(z)) = 0.18000 x 10-2 z en su forma de punto flotante se necesito desplazar dígitos en la Observe que para representar a x mantisa añadiendo tres ceros en el lado derecho, estos ceros carecen de sentido y no representan una exactitud adicional ya que sólo sirven para denotar el lugar decimal. El valor real de x – z es 0.0018673 y el error relativo es de 0.036041. El valor dado por la máquina tiene 2 cifras significativas ya que 0.036041 = 3.6041 x 10-2 < 5 x 10-2. En este caso, aunque se trabaja con 5 dígitos, el número 0.18000 x 10-2 sólo tiene 2 cifras significativas, ya que las primeras tres cifras de x y z coinciden, su diferencia x – z sólo contiene 2 cifras decimales. Para apreciar la pérdida de dígitos significativos cuando se restan números casi iguales suponga que x y z son números reales tales que x > z, y
x = 0 z = 0
d 1 d 2 d 3 . . . d p d p+1 d p+2 . . . d k d k +1 . . . × 10n y d 1 d 2 d 3 . . . d p a p+1 a p+2 . . . ak ak+1 . . . × 10n
si se utiliza una máquina decimal que usa una mantisa a k dígitos (corte) entonces n fl(x) = 0 d 1 d 2 d 3 . . . d p d p+1 d p+2 . . . d k× 10 fl(z) =0 d 1 d 2 d 3 . . . d p a p+1 a p+2 . . . ak × 10n
Ahora,
Por lo tanto el número que se usa para representar a x – z tendrá solamente k – p cifras significativas. La pérdida de dígitos significativos debido al error de redondeo a veces se puede evitar reformulando el problema o reordenando los cálculos o reemplazando en el caso de haber una función por un polinomio de Taylor.
Ejemplo 1.
El enunciado
implica perdida de cifras significativas para valores de x cercanos a 0 ya
que para x 0 , y se restarían dos números casi iguales. Si se evalúa en x = 0.1 y se usa aritmética a 6 dígitos usando redondeo se tiene:
Para evitar la pérdida de dígitos significativos el enunciado como
se puede presentar también
(redondeo a 6 dígitos)
El valor real de
en x = 0.1 es 0.498756211 x 10-2.
El error relativo con la expresión es: 4.88793913 × 10-4 < 5 ×10-4. (cuatro cifras significativas).
El error relativo con la expresión
es:
4.230523758 × 10-7< 5 ×10-7 (siete cifras significativas).
Ejemplo 2. El valor del polinomio 3.5 x2 – 4.9 x evaluado en x = 5.8 es 89.32. Si se usa aritmética de 3 dígitos redondeo, se tiene: x2 33.6, 3.5 x2 118, 4.9 x 28.4 luego 3.5 x2 - 4.9 x 89.6 El error relativo es aproximadamente 3.135 ×10-3. Si el polinomio se escribe como x(3.5 x – 4.9) y se evalúa en x = 5.8 usando aritmética de 3 dígitos y redondeo entonces: 3.5 x 20.3, 3.5 x – 4.9 15.4 x(3.5 x – 4.9) 89.3 En este caso el error relativo es 0 (no siempre es así). El error se ha reducido porque en la segunda parte
se ha disminuido el número de cálculos, en la primera se necesitan 3 multiplicaciones y una resta. En la segunda sólo dos multiplicaciones y una resta. En general los polinomios deben expresarse en fo rma anidada antes de realizar una e valuación, porque así se disminuye al mínimo la cantidad de cálculos aritméticos. Si el polinomio ax3 + bx3 + cx + d se expresa como x [x(ax + b) + c] + d ¿Cuántas operaciones necesita cada expresión para su evaluación?
Ejemplo 3.
La cantidad
presenta pérdida de cifras significativas por
que se restan números casi iguales. Una forma alternativa para aproximar esta cantidad es la siguiente. El polinomio de Taylor de grado 1 para la función f(x) = x0 = 4 es:
alrededor de
Ahora se puede aproximar f(x) por P1(x), y evaluar en x = 4.000000024
Luego
Los tres primeros dígitos significativos son 1.67 × 109. Encuentre en diferentes calculadoras o en un computador el número i gual a
¿Qué puede concluir?.
Ejercicios Capitulo 1 1. Escriba los números 275.5, 79.625 y 22 + 22-10 en base 2, 8 y 16. 2. Halle en decimal (16.1)8, (1C.AF)16, (1.0011)2, (1001.01)2. 3. Escriba los números del ejercicio 1 en la notación científica en el sistema binario. 4. Veamos cómo hallar el número racional en base 10 representada por el número binario Escribiéndolo en forma desarrollada:
5. Represente los números 7.2 y –8/7 en un formato de precisión simple (use corte) (Sugerencia: utilice el resultado del ejercicio 4)
6. Obtenga el equivalente decimal de los números dados en los siguientes formatos a)Precisión simple
b)Precisión doble
7. Encuentre en decimal el número siguiente y el anterior a los números del ejercicio 6 a). 8. Demuestre que 4/5 no se puede representar de manera exacta en una máquina que tiene un formato de precisión simple. ¿Cuál es el número de máquina más cercano?.
9. ¿Es
un número que se puede representar de manera exacta en un formato de precisión
simple?
10. ¿Cuáles de los siguientes números se pueden representar exactamente en un formato de precisión simple? 1040, 2-1, 1/5, 1/3, 1/256.
11. Sea x=216+2-8+2-9+2-10. Sea x* el número máquina más cercano a x en un formato de precisión simple ¿Cuál es el valor de |x- x*|?.
12. Convierta los siguientes números binarios en su forma decimal. a) 1.0110101
b)11.0010010001
13. Los números del ejercicio anterior son aproximadamente
y
. Halle el error de dichas
aproximaciones; es decir, halle
a) b)
- 1.0110101 (use
=1.41421356237309...)
-11.0010010001 (use
=3.14159265358979...)
14. La serie infinita
es divergente. Escriba un programa que evalúe esta suma. ¿Es divergente la serie de la computadora? En caso negativo, ¿por qué no?
15. El término epsilon de la máquina es el menor valor positivo tal que la máquina es capaz de distinguir entre (1 + ) y 1. Este valor depende del hardware y de cómo el compilador de un lenguaje de programación almacena la mantisa de un número de punto flotante. El epsilon de la máquina para una mantisa normalizada (1 f ) donde se f almacena en ubicaciones de n bits es igual a 2-n. Para una mantisa no normalizada ( 1 f ) que se almacena en ubicaciones de n bits, el epsilon de la máquina es 21 - n. El error al almacenar una cantidad x tiene una cota superior x | |. A continuación se muestra un seudocódigo para calcular
.
Determine el epsilon de su máquina.
16. El epsilon de la máquina (ver el problema 15) permite estimar una cota superior para el error en una operación. Sea f(x, y) el resultado verdadero de una operación sobre x y y y sea máquina. El error E al calcular y almacenar f(x, y) está acotado por
el epsilon de la
Los términos con las derivadas parciales explican los errores en la operación debidos a representaciones inexactas de x y y; la multiplicación por (1 + ) y la adición de f | ( x, y)| explica los errores al almacenar el resultado. Con el resultado del problema 15 (o un valor ficticio de 10-7 para ), estimar la cota superior B para el error en z en las operaciones siguientes. a) z = 1.897 + 9.635 b) z = 4.058 x 13.27 c) z = 2.345 ÷ 19.28
d ) z = 19.28 ÷ 2.345 Ver respuesta
17. Aplique la aritmética de redondeo a tres dígitos para realizar los siguientes cálculos. Calcule los errores absolutos y relativos con el valor exacto determinado por lo menos a 5 dígitos .
a) (121-0.327)-119
b)
c)
Ver respuesta
18. Repita el ejercicio anterior aplicando la aritmética de corte a 3 dígitos. Ver respuesta
19. Sea a) Encuentre b) Aplique la aritmética de redondeo a cuatro dígitos para evaluar f (0.1). c) Reemplace las funciones trigonométricas con su tercer polinomio de Maclaurin y repita la parte b). d ) El valor real es f (0.1)=-1.99899998. Encuentre el error relativo de los valores obtenidos en las partes b) y c). Ver respuesta
20. Suponga que los puntos (x0, y0) y ( x1, y1) se encuentran en una recta y, que y1
y0. Se cuenta con
dos fórmulas para hallar la intersección x de la línea:
a) Demuestre que ambas fórmulas son algebraicamente correctas. b) Use los datos ( x0 ,y0)=(1.31,3.24) ( x1 ,y1)=(1.93,4.26) y la aritmética de redondeo a tres dígitos para calcular la intersección x en ambas fórmulas ¿Cuál de los métodos es mejor?. Ver respuesta
21. El polinomio de Taylor de grado n para f(x)=e x es
. Use este polinomio y la aritmética de corte a tres dígitos para encontrar una aproximación a e mediante cada uno de los siguientes métodos. -5
a)
b)
¿Cuál fórmula da mayor exactitud?
22. Sugiera cómo se podría evitar la pérdida de dígitos significativos en los siguientes cálculos:
a)
b)
c)
d )
23. La fórmula mejorada para la resolución de la ecuación de segundo grado. Suponga que a
0y que b - 4ac > 0 y consideremos la ecuación ax + bx + c=0. Sus raíces se pueden hallar mediante la conocida fórmula: 2
2
a) Pruebe que estas raíces pueden calcularse mediante las fórmulas equivalentes
b)
Indicación:
Racionalice el numerador de a).
Observación: Cuando
, hay que proceder con cuidado para evitar la pérdida de precisión por cancelación. Si b>0, entonces x1 debería ser calculado con la segunda fórmula y x2 con la primer fórmula; mientras si b<0, entonces x1 debería ser calculado usando la primera fórmula y x2 debería ser calculado usando la segunda.
24. Use la fórmula adecuada para calcular x1 y x2, tal como se explica en el anterior ejercicio, para hallar las raíces de las siguientes ecuaciones de segundo grado. (Use aritmética de corte a 6 dígitos).
a) x2-1000.001 x+1=0 b) x2 +10000.0001 x+1=0
25. Determine los tres primeros dígitos significativos de los números a) [(8.0000000025)1/3-2]-1 Sugerencia: Utilice serie de Taylor para aproximar (8+ x)1/3
b) Sugerencia: Utilice la serie de Taylor para aproximar ln(1+ x)
c)
use radianes.