Está en la página 1de 14

Unidad 1: Teoría del Error

UNIVERSIDAD DEL MAGDALENA


FACULTAD DE INGENIERÍA
ANÁLISIS NUMÉRICO
Guía 3: ARITMÉTICA DE COMPUTADORAS

Mg. Alvaro Espinosa Pérez

INTRODUCCIÓN
La aparición de los computadores ha hecho posible la solución de problemas que, por su tamaño antes eran
excluidos. Desafortunadamente los resultados en la solución de dichos problemas son afectados por el uso de
la Aritmética de Precisión Finita, en este sentido, para cada respuesta numérica se puede almacenar tantos
dígitos como lo permita el diseño del computador.

Casi siempre la representación y la aritmética computacional son satisfactorias y pasan inadvertidas. Sin
embargo, hay números que no admiten una representación finita, como es el caso de los números irracionales
𝜋 y 𝑒. Por otra parte, las operaciones aritméticas como la división generan números que no pueden ser
representados exactamente por un número finito de dígitos, como ejemplo 1/3 = 0,333. En el caso de los
números Reales ℛ se puede realizar una representación de números mediante un conjunto finito de números
racionales que se representan como números en punto flotante o números máquina.

Ahora, si los números son muy grandes o muy pequeños es conveniente utilizar la notación de coma flotante.
Por ejemplo, la velocidad de la luz, 𝑐 = 2,99792 𝑥 108 𝑚/𝑠. La representación del sistema de números
reales en una computadora basa su idea en la conocida notación científica. La notación científica nos permite
representar números reales sobre un amplio rango de valores con sólo unos pocos dígitos.

DEFINICIÓN: Todo número real 𝑥 no nulo puede ser escrito en forma única en notación científica normalizada,
si tiene la siguiente forma:
𝑓𝑡(𝑥) = ± 0, 𝑑1 𝑑2 𝑑 3 … 𝑑𝑡 𝑑𝑡+1 … 𝑥 10𝑛 = ± 𝑚 𝑥 10𝑛
Con 1 ≤ 𝑑1 ≤ 9 𝑦 0 ≤ 𝑑𝑖 ≤ 9, 𝑝𝑎𝑟𝑎 𝑖 = 2,3, … , y 𝑛 un entero positivo o negativo.

Ejemplo: La forma decimal normalizado se ilustra con los siguientes números fraccionarios:
1
1. − 11 = −0,909090 … 𝑥 10−1
15
2. = 0,13636363 … 𝑥 101
11

3. 123,52 = 0,12352 𝑥 103


4. 0,00256 = 0,256 𝑥 10−2
En este sentido, escribimos 79.325 como 0,79325 𝑥105 , no como 0,07932 5 𝑥 106 ó 7,9325 𝑥 104 ó de
alguna otra forma.

En general, todo número real no nulo puede representarse en forma única, respecto la base 𝛽, en la forma de
punto flotante normalizada:
± 0, 𝑑1 𝑑2 𝑑3 … 𝑑𝑡 𝑑𝑡+1 … 𝑥 𝛽 𝑒

Donde los “dígitos” 𝑑𝑖 respecto de la base 𝛽 son enteros positivos tales que 1 ≤ 𝑑1 ≤ 𝛽 − 1, 0 ≤ 𝑑𝑖 ≤ 𝛽 − 1
para 𝑖 = 2, . .. y constituyen la parte fraccional o mantisa del número, en tanto que 𝑒, el cual es un número
entero llamado el exponente, indica la posición del punto correspondiente a la base 𝛽.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 1
Unidad 1: Teoría del Error

Los números entonces, se denominan números de punto flotante con 𝑡 dígitos (o de precisión 𝑡) en la base
𝛽 y rango (𝐿, 𝑈). Así, un número en 𝐹(𝛽, 𝑡, 𝐿, 𝑈) estará representado por:

± 0, 𝑑1 𝑑2 𝑑3 … 𝑑𝑡 𝑥 𝛽 𝑒 donde 𝑑1 ≠ 0 y 𝐿 ≤ 𝑒 ≤ 𝑈.

Ahora, si 𝑚 es la fracción decimal correspondiente a (0, 𝑑1 𝑑2 𝑑3 … )𝛽 , entonces el número representado


corresponde al número decimal:
(−1)𝑠 𝑚 𝑥 𝛽 𝑒 , 𝛽 −1 ≤ 𝑚 < 1

Un sistema de números de punto flotante 𝐹(𝛽, 𝑡, 𝐿, 𝑈) es, pues, discreto y finito. El número de elementos del
conjunto, esto es, la cantidad de números de puntos flotantes de 𝐹, es:

2(𝛽 − 1)𝛽 𝑡−1 (𝑈 − 𝐿 + 1),

dado que existen dos posibles elecciones del signo, 𝛽 − 1 elecciones posibles para el dígito principal de la
mantisa, 𝛽 elecciones para cada uno de los restantes dígitos de la mantisa, y 𝑈 − 𝐿 + 1 posibles valores para
el exponente. Debido a la normalización el cero no puede ser representado como un número de punto flotante
y por lo tanto no está incluido en el conjunto 𝐹.

Por otra parte, es claro que si 𝑥 ∈ 𝐹 entonces su opuesto −𝑥 ∈ 𝐹. Más aún, el conjunto 𝐹 está acotado tanto
superior como inferiormente:

𝑥𝑚í𝑛 = 𝛽 𝐿−1 ≤ |𝑥 | ≤ 𝑥𝑚á𝑥 = 𝛽 𝑈 (1 − 𝛽 −𝑡 )

donde 𝑥𝑚í𝑛 y 𝑥𝑚á𝑥 son el menor y mayor número de punto flotante positivo representable, respectivamente.

De las consideraciones anteriores se sigue, entonces, que en la recta de los números reales hay cinco regiones
excluida para 𝐹, Veamos:
1. Los números negativos menores que −𝑥𝑚á𝑥 , región denominada desbordamiento (overflow)
negativo.
2. Los números negativos mayores que −𝑥𝑚í𝑛 , denominada desbordamiento a cero (underflow)
negativo.
3. El cero.
4. Los números positivos menores que 𝑥𝑚í𝑛 , denominada desbordamiento a cero (underflow) positivo.
5. Los números positivos mayores que 𝑥𝑚á𝑥 , denominada desbordamiento (overflow) positivo.

Nótese que los números de punto flotante no están uniformemente distribuidos sobre la recta real, sino que
están más próximos cerca del origen y más separados a medida que nos alejamos de él. Con más precisión;
dentro de un intervalo fijo de la forma [𝛽𝑒 , 𝛽 𝑒+1 ] los números de punto flotante presentes están Igualmente
espaciados con una separación igual a 𝛽𝑒+1−𝑡 . Conforme 𝑒 se incrementa, el espaciado entre los mismos
crece también.

Una medida de este espaciamiento es dada por el llamado Épsilon de la máquina: 𝜖𝑀 = 𝛽1−𝑡 , el cual
representa la distancia entre el número 1 y el número de punto flotante siguiente más próximo o bien, la

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 2
Unidad 1: Teoría del Error

distancia entre 1 y el siguiente número mayor que 1 que es representable (Se trata pues de hallar el primer
número positivo 𝜖 tal 1 + 𝜖 > 1).. Esto es, el Épsilon 𝜖𝑀 (eps) de la máquina (cero de la maquina) es una
manera de medir que tan preciso puede ser guardado un numero en la representación de punto flotante
utilizada.

Ejemplo. Los números de punto flotante positivos del conjunto 𝐹(2, 3, −1, 2) son:

Por lo tanto:
1. Junto con los respectivos opuestos, tenemos un total de:
2(𝛽 − 1)𝛽 𝑡−1 (𝑈 − 𝐿 + 1) = 2(2 − 1)23−1 (2 + 1 + 1) = 32 de números de punto flotante en este
sistema.
1
2. 𝑥𝑚í𝑛 = 𝛽 𝐿−1 = 2−2 = 4
7
3. 𝑥𝑚á𝑥 = 𝛽 𝑈 (1 − 𝛽 −𝑡 ), = 22 (1 − 2−3 ) = 2,
1
4. 𝜖𝑀 = 𝛽1−𝑡 = 2−2 = 4.
5. Al conjunto conjunto 𝐹(2, 3, −1, 2) lo representamos en la recta numérica así:

El hecho de que en una computadora sólo un subconjunto 𝐹 de los números reales es representable implica
que, dado un número real 𝑥, éste debe ser aproximado por un número de punto flotante de 𝐹 al que
designaremos por 𝑓𝑙(𝑥). La manera usual de proceder consiste en considerar el redondeo al más próximo,
esto es, 𝑓𝑙(𝑥) es el número de punto flotante más próximo a 𝑥.

El conjunto de los números en punto flotante se le llama, conjunto de números de máquina.

DEFINICIÓN: Un número de máquina es un número real que puede almacenarse de manera exacta en forma
normalizada de punto flotante en una computadora.

La gran mayoría de las computadoras actuales (y efectivamente todas las computadoras personales, o PC)
utilizan internamente el sistema binario (𝛽 = 2). Las calculadoras, por su parte, utilizan el sistema decimal
(𝛽 = 10). Ahora bien, cualquiera sea la base 𝛽 escogida, todo dispositivo de cálculo sólo puede almacenar un
número finito de dígitos para representar un número.

En las computadoras tradicionalmente, se han definido dos formatos de punto flotante con base 𝛽 = 2:
1. Precisión simple: 𝐹(2, 24, −127, 128) implementado en una longitud de palabra N = 32 bits,
2. Precisión doble: 𝐹(2, 53, −1022, 1023) implementado en una longitud de palabra N = 64 bits
La siguiente forma en la representación de punto flotante de precisión simple estándar:
( −1)𝑠 2𝑐−127 (1 + 𝑓 )2
El bit que está más a la izquierda se utiliza para el signo de la mantisa, donde 𝑠 = 0 corresponde a (+) y
𝑠 = 1 a (– ). Los siguientes ocho bits se utilizan para representar al número 𝑐 en el exponente de 2𝑐−127 ,

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 3
Unidad 1: Teoría del Error

que se interpreta como un código de exceso 127. Por último, los 23 bits finales representan 𝑓 de la parte
fraccionaria de la mantisa en la forma uno más: (1 + 𝑓)2 . Cada palabra de punto flotante y precisión simple
se particiona como se muestra en la figura:

El número más grande que se puede representar es, por tanto, 2128 ≈ 3,4 𝑥1038 . El número positivo más
pequeño es 2−126 ≈ 1,2 𝑥 10−38 .

Ejemplo: Veamos que Entero representa este número de máquina de precisión simple:

0 10001011 1011110 0100000000000000

Solución:
1. Hallamos el signo: 𝑆 = 0 entonces el signo del número es (+).
2. Hallamos el exponente (Característica) de la base 2: 𝑐 = 10001011 = 13910
Entonces:
2𝑐−127 = 2139−127 = 212
3. Hallamos la mantisa:
377
𝑓 = 0,1011110 0100000000000000 = 2−1 + 2−3 + 2−4 + 2−5 + 2−6 + 2−9 =
512
4. Representamos el número:
377
( −1)𝑠 2𝑐−127 (1 + 𝑓 )2 = (−1)0 . 212 . (1 + ) = + 7112
512
Luego:
[0 10001011 10111100100000000000000] 2 = +7112

En 1985, el IEEE (Institute for Electrical and Electronic Engineers, publicó la Norma de la aritmética binaria de
punto flotante 754 (estándar IEEE 754 de doble precisión). La siguiente forma en la representación de punto
flotante de precisión doble estándar:

(−1)𝑠 . 2𝑐−1023 . (1 + 𝑓)2 .

Se representa con 64 bits y consta de: 1 bit de signo (0) positivo, (1) negativo (𝑠), 11 bits de exponente (𝑐)
en exceso 1023  𝑐 − 1023 es el exponente, 52 bits de mantisa (𝑓) que se utiliza en la forma (1 + 𝑓).
La base es 2. Cada palabra de punto flotante y precisión doble se particiona como se muestra en la figura:

El número de máquina de doble precisión más grande es 21023 ≈ 1,8 𝑥 10308 . El número de máquina positivo
de doble precisión más pequeño es 2−1022 ≈ 2,2 𝑥 10−308 y tiene entre 15 y 16 dígitos decimales de
precisión y un rango aproximado entre 10−308 𝑦 10308 .

Ejemplo: Hallar la representación decimal del siguiente número de maquina:

0 10000000011 1011100100010000000000000000000000000000000000000000

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 4
Unidad 1: Teoría del Error

Solución:
1. Tiene el primer bit s = 0 ⇒ El número es positivo.
2. Característica:
𝑐 = 20 + 21 + 210 = 1027

La parte exponencial es, por tanto: 2𝑐−1023 = 21027−1023 = 24


3. Mantisa:
𝑓 = 0,1011100100010000000000000000000000000000000000000000
2961
𝑓 = 2−1 + 2−3 + 2−4 + 2−5 + 2−8 + 2−12 =
4096
4. Por lo tanto, el número de máquina representa al número decimal:
2961 7057
(−1)𝑠 . 2𝑐−1023 . (1 + 𝑓)2 = (−1)0 . 24 . [1 + ]= = 27,56640625
4096 256

La precisión simple en una computadora de 64 bits es comparable a la doble precisión de una computadora de
32 bits, mientras que la doble precisión en una computadora de 64 bits da cuatro veces la precisión disponible
en una computadora de 32 bits.

Se puede comprobar fácilmente el valor de Épsilon 𝜖𝑀 , si dado un número 𝑥 cuya aproximación es 𝑥 ∗ , el error
relativo al usar redondeo es:
𝑥 − 𝑥∗
⌈ ⌉ ≤ 0,5 𝑥 𝛽1−𝑡
𝑥
A la cantidad 𝛽1−𝑡 se la denomina precisión de la máquina o Épsilon 𝜖𝑀 .

Por ejemplo, El número de máquina binario de punto flotante 𝜖𝑀 = 2−23 ≈ 1,2 𝑥 10−7 es el Épsilon de
máquina cuando se usa precisión simple. Inferimos que, en un cálculo simple, aproximadamente seis dígitos
decimales significativos de exactitud se pueden obtener con precisión simple. El Épsilon de máquina de doble
precisión es 𝜖𝑀 = 2−52 ≈ 2,2 𝑥 10−16 , por lo que aproximadamente están disponibles 15 dígitos
significativos decimales de precisión. Se recomienda que los cálculos se deben hacer usando aritmética de
punto flotante con doble precisión.

Ejemplo: Los comandos realmin y realmax en OCTAVE devuelven, respectivamente, los menores y mayores
números reales representables en Octave, del mismo modo que 𝑒𝑝𝑠 representa al épsilon de la máquina:

>> 𝑟𝑒𝑎𝑙𝑚𝑎𝑥
𝑎𝑛𝑠 = 1.7977𝑒 + 308
>> 𝑟𝑒𝑎𝑙𝑚𝑖𝑛
𝑎𝑛𝑠 = 2.2251𝑒 − 308
>> 𝑒𝑝𝑠
𝑎𝑛𝑠 = 2.2204𝑒 − 16

Con frecuencia una operación aritmética con dos números válidos da como resultado un número tan grande o
pequeño que la computadora no puede manejarlo, esto es, se produce un número 𝑥 de la forma ±𝑞 𝑥 2𝑚 ,
donde 𝑚 está fuera del rango permisible de la computadora; como consecuencia se produce un overflow o
desbordamiento por exceso y se interrumpen los cálculos o bien, un underflow, o desbordamiento por defecto
y suele dársele el valor cero.

Ejemplos: En una calculadora tradicional.


1. 0,135 𝑥 10100 ⟹ 𝐸𝑟𝑟𝑜𝑟, produce un Overflow.
2. 0,135 𝑥 10−100 ⟹ 0, produce un Underflow.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 5
Unidad 1: Teoría del Error

En Octave los números se almacenan internamente en doble precisión guardando cada dato en ocho bytes (64
bits), lo que se traduce en unas 16 cifras decimales, aproximadamente, al convertirlo al sistema decimal. ¿Por
qué? Pues, porque en doble precisión el épsilon de máquina es 2−52 ≈ 2,22 × 10−16 . Eso significa que
sólo se representan números reales en un determinado rango entre 2,2 × 10−308 y 1,8 × 10308
aproximadamente.

El fenómeno Overflow y Underflow se puede observar así en OCTAVE:


1. Overflow:
>> 0.333𝑒350
𝑎𝑛𝑠 = 𝐼𝑛𝑓
2. Underflow:
>> 0.33𝑒 − 350
𝑎𝑛𝑠 = 0

1.10. TRUNCAMIENTO Y REDONDEO


Los errores de truncamiento también llamados errores algorítmicos, son los provenientes del método numérico
de aproximación. Por ejemplo: el área calculada con los rectángulos, en el ejemplo dado, no es igual al área
encerrada por la curva en la integración definida. Se los suele llamar errores de truncamiento, ya que en muchos
casos provienen de truncar una serie infinita.

El error de redondeo es una consecuencia de que en el ordenador los números se almacenan con un conjunto
finito de dígitos. Si nuestra precisión elegida es 𝑡, entonces debemos “recortar” el número, pues no podemos
representar los 𝑑𝑖 para 𝑖 > 𝑡.

En consecuencia, tenemos dos alternativas básicas para efectuar dicho recorte:


1. Corte o truncamiento: Ignorar los dígitos 𝑑𝑖 cuando 𝑖 > 𝑡.
2. Redondeo: Sumar 1 a 𝑑𝑡 si 𝑑𝑡+1 ≥ 5 e ignorar los restantes 𝑑𝑖 para 𝑖 > 𝑡 + 1, o aplicar corte si
𝑑𝑡+1 < 5

Ejemplos:
1. Sea  = 0,3141592654 … 𝑥 101 . Al truncar  en 5 dígitos nos queda:
𝑓𝑙() = 0,31415 𝑥 101
2. Sea  = 0,3141592654 … 𝑥 101 . Al redondear  en 5 dígitos nos queda:
𝑓𝑙() = 0,31416 x 101
3. Si 𝑥 = 4275.54. Al redondear 4275.54 en 4 dígitos nos queda:
𝑓𝑙(𝑥) = 0,4276 𝑥 104

4. Si 𝑦 = 0,004275. Al truncar 0,004275 en 3 dígitos nos queda:


𝑓𝑙(𝑦) = 0,427 𝑥 10−2

Los errores de redondeo pueden ser sutiles, cuando se realizan cálculos individuales, pero estos pueden
perjudicar la precisión computacional si existen situaciones las cuales son:
1. La suma de un número grande con un número pequeño produce un error absoluto grande pero no un
gran error relativo.
2. La resta entre dos números parecidos da un error absoluto pequeño pero un gran error relativo. Las
cifras significativas se pierden en un solo cálculo.
3. La multiplicación por números grandes amplifica el error absoluto, pero no modifica el error relativo.
4. La división entre números pequeños amplifica el error absoluto, pero no modifica el error relativo.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 6
Unidad 1: Teoría del Error

Ejemplo: Calcule en forma exacta y luego usando aritmética de redondeo a tres cifras (o dígitos), la siguiente
operación aritmética:
2 8 9
− +
3 7 4
Solución:
La solución exacta es:
2 8 9 149
− + = = 1,773809524
3 7 4 84

Si utilizamos la aritmética de redondeo a 3 dígitos tenemos:


𝑥 = 2/3 = 0,66666 … ⇒ 𝑓𝑡(𝑥) = 0,667
8
𝑦= = 1,142857 … ⇒ 𝑓𝑡(𝑦) = 1,14
7
9
𝑧 = = 2,25 ⇒ 𝑓𝑡(𝑧) = 2,25
4
𝑓𝑡[𝑓𝑡(𝑥) + 𝑓𝑡(𝑦) + 𝑓𝑡(𝑧)] = 0,667 − 1,14 + 2,25
𝑓𝑡[𝑓𝑡(𝑥) + 𝑓𝑡(𝑦) + 𝑓𝑡(𝑧)] = 1,777 ≈ 1,78

Se observa una pérdida de dígitos significativos.

Calculamos sus errores:


E = |1,773809524 − 1,78| = 0,006119
1,773809524 − 1.78
Er = | |
1,773809524
Er = 0,0034497 = 0,345%

En OCTAVE podemos encontrar algunas funciones para realizar redondeos de números:


1. 𝒓𝒐𝒖𝒏𝒅(𝒙): Redondea 𝑥 al entero más cercano.
2. 𝒇𝒍𝒐𝒐𝒓(𝒙): Redondea al entero inferior de 𝑥.
3. 𝒇𝒊𝒙(𝒙): Se queda con la parte entera del número (redondea hacia cero).
4. 𝒄𝒆𝒊𝒍(𝒙): Redondea al entero superior de 𝑥.

Ejemplo: Algunas formas de redondear π en OCTAVE:


>> pi
ans = 3.141592653589793
>> round(pi)
ans = 3
>> floor(pi)
ans = 3
>> ceil(pi)
ans = 4

Ejemplo: Para redondear las cifras decimales de un numero en Octave, lo puedes hacer usando el comando
"sprintf" de la siguiente manera:
>> x = pi
x = 3.1416
>> sprintf(′%. 3f\n′, x)
x = 3.142
Se observa que OCTAVE redondea a π con tres cifras decimales.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 7
Unidad 1: Teoría del Error

OCTAVE no distingue si sus elementos son enteros o reales, todos los números tienen la misma precisión en
coma flotante, que es doble precisión siempre que no le indiquemos lo contrario. Independientemente de cómo
se almacenan los datos en OCTAVE.

El programa OCTAVE también permite ver en la pantalla los resultados en diferentes formatos, los más
comunes y usados son los siguientes:
1. 𝒇𝒐𝒓𝒎𝒂𝒕 𝒔𝒉𝒐𝒓𝒕: (es el formato que emplea, por defecto): Formato en punto fijo con 4 dígitos en la
parte decimal,
2. 𝒇𝒐𝒓𝒎𝒂𝒕 𝒓𝒂𝒕: Cociente de dos números enteros,
3. 𝒇𝒐𝒓𝒎𝒂𝒕 𝒍𝒐𝒏𝒈: Punto fijo con 15 dígitos en la parte decimal,
4. 𝒇𝒐𝒓𝒎𝒂𝒕 𝒍𝒐𝒏𝒈 𝒆: Formato en coma flotante con notación exponencial hasta con 15 dígitos en la
parte decimal (No se debe confundir la letra e que aparece en la representación de los números en
pantalla con la letra que representa en matemáticas —de forma habitual— al número real que es base
de los logaritmos neperianos).
5. 𝒇𝒐𝒓𝒎𝒂𝒕 𝒔𝒉𝒐𝒓𝒕 𝒆: Se muestran hasta 5 dígitos significativos, con notación exponencial.

Ejemplo: Se muestra a continuación el uso de los diferentes formatos numéricos en Octave:

>> 8/7
ans = 1.1429
>> format long
>> 8/7
ans = 1.142857142857143
>> format rat
>> 8/7
ans = 8/7
>> format long e
>> 8/7
ans = 1.142857142857143e + 00
>> format short
>> 8/7
ans = 1.1429

Ejemplo: OCTAVE puede realizar las operaciones anteriores en diferentes formatos:


>> format
>> (2/3) − (8/7) + (9/4)
ans = 1.7738
>> format long
≫ (2/3) − (8/7) + (9/4)
ans = 1.773809523809524

1.11. PÉRDIDA DE DÍGITOS SIGNIFICATIVOS


Toda operación de punto flotante en un proceso computacional puede dar lugar a un error, que puede aumentar
o disminuir, una de las maneras más comunes de aumentar la importancia de un error se conoce como pérdida
de dígitos significativos. Esta se puede generar por la longitud de la palabra que almacena los números y en
este caso es inevitable, pero también se puede tener por la programación, en este caso es evitable.

Ejemplos:
1. SUMA DE NÚMEROS MUY DISTINTOS EN MAGNITUD:
Consideremos la siguiente suma usando aritmética de 4 dígitos:
𝑦 = 0,003 + 500 = 0,3000 𝑥 10−2 + 0,5000 𝑥 103

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 8
Unidad 1: Teoría del Error

Para sumar dos números en coma flotante, primero se representan con el mismo exponente, luego se
suman y el resultado se redondea:
0,000003 𝑥 103
+ 0,500000 𝑥 103
0,500003 𝑥 103
Como la computadora solo puede manejar cuatro dígitos la respuesta es: 0,5000 𝑥 103 o bien 500,
al parecer no se realizó la suma.

Nota: Para multiplicar (la división se hace por algoritmos más complicados) dos números en coma flotante se multiplican las
mantisas y luego se suman los exponentes.

Realizamos las anteriores operaciones en OCTAVE en diferentes formatos y estos son los resultados:
>> 𝑓𝑜𝑟𝑚𝑎𝑡
>> 0.003 + 500
𝑎𝑛𝑠 = 500.00
>> 𝑓𝑜𝑟𝑚𝑎𝑡 𝑙𝑜𝑛𝑔
>> 0.003 + 500
𝑎𝑛𝑠 = 500.0030000000000

2. RESTA DE NÚMEROS CASI IGUALES:


Sea 𝑝 = 0.54618 y 𝑞 = 0.54602 Además:
𝑟 = 𝑝 − 𝑞 = 0.00016
Utilicemos la aritmética de 4 dígitos por truncamiento y redondeo para hallar 𝑟 ∗ = 𝑝 ∗ − 𝑞 ∗

Por truncamiento: 𝑓𝑙(𝑝) = 0.5461 y 𝑓𝑙(𝑞) = 0.5460,


Entonces:
𝑓𝑙 (𝑟 ∗ ) = 𝑓𝑙 (𝑝) − 𝑓𝑙 (𝑞 )
𝑓𝑙 (𝑟 ∗ ) = 0.5461 − 0.5460
𝑓𝑙(𝑟 ∗ ) = 0.0001
𝑟 − 𝑓𝑙 (𝑟 ∗ ) 0.00016 − 0.0001
𝐸𝑟 = | |=| |
𝑟 0.00016
𝐸𝑟 == 0,375 = 37,5%
El resultado tiene un solo digito significativo correcto y su error es alto.

Por redondeo: 𝑓𝑙(𝑝) = 0.5462 y 𝑓𝑙(𝑞) = 0.5460,


Entonces:
𝑓𝑙 (𝑟 ∗ ) = 𝑓𝑙 (𝑝) − 𝑓𝑙 (𝑞 )
𝑓𝑙 (𝑟 ∗ ) == 0.5462 − 0.5460
𝑓𝑙(𝑟 ∗ ) = 0.0002
𝑟 − 𝑓𝑙 (𝑟 ∗ ) 0.00016 − 0.0002
𝐸𝑟 = | |=| |
𝑟 0.00016
𝐸𝑟 == 0,25 = 25%
El resultado tiene un solo digito significativo correcto y su error es alto.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 9
Unidad 1: Teoría del Error

3. LA PROPAGACIÓN DE ERRORES AL RESTO DE CÁLCULOS:


Podemos evitar estos problemas:
a. Minimizando el número de operaciones,
b. Ordenando adecuadamente las operaciones,
c. Replanteando el problema, en otros términos.

Ejemplo: Consideremos la siguiente ecuación: 𝑥 2 + 62.10𝑥 + 1 = 0,. Use aritmética de


redondeo de 4 cifras y determine las aproximaciones más precisas de sus raíces:

Solución:
Podemos escribir una serie de instrucciones de OCTAVE para calcular las raíces de la ecuación en un
fichero con extensión .m y luego ejecutarlo desde la consola.

Para ejecutarlo tendremos que situarnos en el directorio donde esté el fichero y teclear su nombre sin
extensión 𝑆𝑜𝑙_𝐸𝑐𝐶𝑢𝑎𝑑𝑟𝑎𝑡𝑖𝑐𝑎, en la consola de Octave se obtiene:

>> 𝑆𝑜𝑙_𝐸𝑐𝐶𝑢𝑎𝑑𝑟𝑎𝑡𝑖𝑐𝑎
… 𝑃𝑟𝑜𝑔𝑟𝑎𝑚𝑎 𝑆𝑜𝑙𝑢𝑐𝑖ó𝑛 − 𝐸𝑐𝑢𝑎𝑐𝑖𝑜𝑛𝑒𝑠 𝐶𝑢𝑎𝑑𝑟á𝑡𝑖𝑐𝑎𝑠 …
𝐷𝑖𝑔𝑖𝑡𝑎 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑎: 1
𝐷𝑖𝑔𝑖𝑡𝑎 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑏: 62.1
𝐷𝑖𝑔𝑖𝑡𝑎 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑐: 1
𝐿𝑎 𝑒𝑐𝑢𝑎𝑐𝑖𝑜𝑛𝑒𝑠 𝑒𝑠: 1.000000 𝑥^2 + 62.100000 𝑥 + 1.000000 = 0
𝐿𝑎 𝑒𝑐𝑢𝑎𝑐𝑖ó𝑛 𝑡𝑖𝑒𝑛𝑒 𝑑𝑜𝑠 𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛𝑒𝑠 𝑅𝑒𝑎𝑙𝑒𝑠: 𝑥1 = −0.016107 𝑦 𝑥2 = −62.083893

Consideremos ahora las raíces reales de la ecuación dadas por OCTAVE:


𝑥1 = −0.016107 y 𝑥2 = −62.083893.
Vamos a utilizar la ecuación cuadrática para hallar su solución utilizando la aritmética de precisión a
cuatro dígitos por redondeo:
−𝑏 ± √𝑏2 − 4𝑎𝑐
𝑥=
2𝑎
−(62,10) ± √(62,10)2 − 4,000(1,000)(1,000)
𝑥=
2(1,000)

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 10
Unidad 1: Teoría del Error

−62,10 ± √3856 − 4,000


𝑥=
2,000
−62,10 ± √3852
𝑥=
2,000
Entonces:
−62,10 + 62,06
𝑓𝑡(𝑥1 ) =
2,000
−0,04000
𝑓𝑡(𝑥1 ) = = −0,02000
2,000
−62,10 − 62,06
𝑓𝑡(𝑥2 ) =
2,000
−124,2
𝑓𝑡(𝑥2 ) = = −62,10
2,000
Utilizamos el programa de 𝐸𝑟𝑟𝑜𝑟𝑒𝑠_1. 𝑚 de OCTAVE para calcular los errores de las aproximaciones:
>> 𝐸𝑟𝑟𝑜𝑟𝑒𝑠_1
− − −𝑃𝑅𝑂𝐺𝑅𝐴𝑀𝐴 𝐶𝐴𝐿𝐶𝑈𝐿𝑂 𝐷𝐸 𝐸𝑅𝑅𝑂𝑅𝐸𝑆 − − −
𝐷𝑖𝑔𝑖𝑡𝑎 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑝: − 0.016107
𝐷𝑖𝑔𝑖𝑡𝑎 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑝 ∗ : −0.02000
𝐸𝑙 𝑒𝑟𝑟𝑜𝑟 𝑎𝑏𝑠𝑜𝑙𝑢𝑡𝑜 𝑒𝑠: 0.003893
𝐸𝑙 𝑒𝑟𝑟𝑜𝑟 𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑜 𝑒𝑠: 0.241696
𝐸𝑙 𝑒𝑟𝑟𝑜𝑟 𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑜 𝑝𝑜𝑟𝑐𝑒𝑛𝑡𝑢𝑎𝑙 𝑒𝑠: 24.1696%

𝐷𝑖𝑔𝑖𝑡𝑎 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑝: − 62.083893


𝐷𝑖𝑔𝑖𝑡𝑎 𝑒𝑙 𝑣𝑎𝑙𝑜𝑟 𝑑𝑒 𝑝 ∗: −62.10
𝐸𝑙 𝑒𝑟𝑟𝑜𝑟 𝑎𝑏𝑠𝑜𝑙𝑢𝑡𝑜 𝑒𝑠: 0.016107
𝐸𝑙 𝑒𝑟𝑟𝑜𝑟 𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑜 𝑒𝑠: 0.000259439
𝐸𝑙 𝑒𝑟𝑟𝑜𝑟 𝑅𝑒𝑙𝑎𝑡𝑖𝑣𝑜 𝑝𝑜𝑟𝑐𝑒𝑛𝑡𝑢𝑎𝑙 𝑒𝑠: 0.0259439%

Ahora tenemos:
−0.016107 − (−0,02000)
𝐸𝑟 (𝑓𝑡(𝑥1 )) = | |
−0.016107
𝐸𝑟 (𝑓𝑡(𝑥1 )) = 0.241696 = 24.1696%
Además:
−62.08393 − (−62,10)
𝐸𝑟 (𝑓𝑡(𝑥2 )) = | |
−62.08393
𝐸𝑟 (𝑓𝑡(𝑥2 )) = 0.000259439 = 0.0259439%

Una aproximación deficiente a la solución de la ecuación es la de 𝑥1 = −0.016107, con un error


relativo grande del 24.17%. En este caso, se restaron dos números "casi iguales" (números iguales
en aritmética de cuatro dígitos) y sufrieron pérdida de exactitud. ¿Cómo evitar esto?

Una forma sería reescribir la expresión para la solución de una ecuación cuadrática a fin de evitar la
resta de números "casi iguales". El problema, en este caso, se da en el signo negativo asignado a la
raíz cuadrada; esto es:

−𝑏 + √𝑏2 − 4𝑎𝑐 −𝑏 − √𝑏2 − 4𝑎𝑐


𝑓𝑡 (𝑥1 ) = ( )
2𝑎 −𝑏 − √𝑏2 − 4𝑎𝑐

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 11
Unidad 1: Teoría del Error

2𝑐 2(1,000)
𝑓𝑡 (𝑥1 ) = =
−𝑏 − √𝑏2 − 4𝑎𝑐 −62,10 − 62,06
2,000
𝑓𝑡 (𝑥1 ) = = −0,01610
−124,2
Esta forma alternativa para calcular una raíz pequeña de una ecuación cuadrática, casi siempre
produce una respuesta más exacta que la de la fórmula usual. Calculamos ahora el error relativo:

−0.016107 − (−0,01610)
𝐸𝑟 (𝑓𝑡(𝑥1 )) = | | = 4,3459 𝑥 10−4 = 0,0043469%
−0.016107

4. La pérdida de precisión debido a un error de redondeo también se puede reducir al reacomodar los
cálculos, como se muestra en el siguiente ejemplo:

Ejemplo: Sea 𝑓(𝑥) = 𝑥 3 − 6.2𝑥 2 + 3.5𝑥 + 1.2, halle 𝑓(4.25) y utilice aritmética de 3
dígitos por truncamiento y Redondeo

Solución:
En Octave los polinomios se representan por un vector de coeficientes ordenados de la mayor potencia
hacia la menor.

Ejemplo: El polinomio 𝑓(𝑥) = 𝑥 3 − 6.2𝑥 2 + 3.5𝑥 + 1.2 se representa en OCTAVE por el vector
𝑝 = [1 − 6.2 3.5 1.2] de la siguiente manera:

>> 𝑝 = [1 − 6.2 3.5 1.2]


𝑝 =
1.0000 − 6.2000 3.5000 1.2000

Hay varias funciones para operar con polinomios en OCTAVE:


1. 𝒑𝒐𝒍𝒚𝒐𝒖𝒕(𝒑, ‘𝒙’): Expresa el polinomio en términos de la variable 𝑥 .
2. 𝒑𝒐𝒍𝒚𝒗𝒂𝒍(𝒑, 𝒙): Devuelve el valor del polinomio para el valor 𝑥. Si 𝑥 es un vector o matriz,
devuelve un vector o matriz con la evaluación del polinomio 𝑝 en cada elemento.

>> 𝑝𝑜𝑙𝑦𝑜𝑢𝑡(𝑝, ′𝑥′)


1 ∗ 𝑥^3 − 6.2 ∗ 𝑥^2 + 3.5 ∗ 𝑥^1 + 1.2
>> 𝑥 = 4.25
𝑥 = 4.250000000000000
>> 𝑝𝑜𝑙𝑦𝑣𝑎𝑙(𝑝, 𝑥)
𝑎𝑛𝑠 = −19.14687500000000

Nos apoyaremos en la siguiente tabla para ilustrar la solución:

𝒙𝟑 𝒙𝟐 𝟔. 𝟐 𝒙𝟐 𝟑. 𝟓 𝒙 𝟏. 𝟐 TOTAL
Exacto 76.765625 18.0625 111.9875 14.875 1.2 −19.146875
Truncar 76.7 18.0 111 14.8 1.20 −18.3
Redondear 76.8 18.1 112 14.9 1.20 −19.1

Hallemos los errores para cada caso:

−19,146875 − (−19,1)
𝐸𝑟 = | | = 2,45𝑥10−3
−19,146875

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 12
Unidad 1: Teoría del Error

−19,146875 − (−18.3)
𝐸𝑟 = | | = 4,42𝑥10−2
−19,146875

Se puede mejorar la solución si se usa multiplicación anidada para evaluar un polinomio


eficientemente:
𝑃(𝑥) = 𝑎0 + 𝑎1 𝑥 + 𝑎2 𝑥 2 + · · · + 𝑎𝑛−1 𝑥 𝑛−1 + 𝑎𝑛 𝑥 𝑛
𝑃(𝑥) = 𝑎0 + 𝑥(𝑎1 + 𝑥(𝑎2 + · · · + 𝑥(𝑎𝑛−1 + 𝑥(𝑎𝑛 )) · · ·))
Entonces:
𝑓(𝑥) = 𝑥 3 − 6.2𝑥 2 + 3.5𝑥 + 1.2
= [(𝑥 – 6.2) 𝑥 + 3.5] 𝑥 + 1.2
= [(4.25 – 6.2)4.25 + 3.5] 4.25 + 1.2
= [(−1.95)4.25 + 3.5]4.25 + 1.2
= (−8.29 + 3.5)4.25 + 1.2
= (−4.79)4.25 + 1.2
= −20.4 + 1,2 = −19.2
Al hallar el error:
−19,146875 − (−19,2)
𝐸𝑟 = | | = 2,77 𝑥 10−3
−19,146875

Debería quedar claro ahora que, debido a los errores de redondeo, leves cambios en el orden de las
operaciones pueden cambiar los resultados. Más aún, ya que diferentes compiladores y procesadores
almacenan los cálculos intermedios con diferentes precisiones, tales resultados variarán dependiendo de la
implementación. Así dos números obtenidos a partir de cálculos independientes que se esperan sea iguales,
no lo serán, en general, dentro de la aritmética de punto flotante.

Es usual usar algunos trucos para minimizar este fenómeno de cancelación:


𝑎−𝑏
a. Cambiar √𝑎 − √𝑏 por
𝑎+√𝑏

𝑎+𝑏 𝑎−𝑏
b. Cambiar 𝑠𝑒𝑛(𝑎) – 𝑠𝑒𝑛 (𝑏) por 2𝑐𝑜𝑠 ( ) 𝑠𝑒𝑛 ( )
2 2
𝑎
c. Cambiar 𝑙𝑜𝑔 (𝑎) – 𝑙𝑜𝑔 (𝑏) por 𝑙𝑜𝑔 ( )
𝑏
d. Los polinomios siempre deberían expresarse en forma anidada antes de realizar una evaluación
porque esta forma minimiza el número de cálculos aritméticos. La disminución del error en la ilustración
se debe a la reducción de los cálculos de cuatro multiplicaciones y tres sumas a dos multiplicaciones
y tres sumas. Una forma de disminuir el error de redondeo es reducir el número de cálculos.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 13
Unidad 1: Teoría del Error

ACTIVIDAD VIRTUAL:
1. Efectúe los siguientes cálculos:
a. Exactamente.
b. Usando aritmética de truncamiento a tres dígitos.
c. Usando aritmética de redondeo a tres dígitos.
d. Calcule los errores absoluto y relativo para cada caso.
A. 14,1 + 0,0981
3
B. −12𝜋 + 7𝑒 −
62
22
𝜋− 5
C. 1
12
2. Sea la función 𝑓(𝑥) = √𝑥 2 + 1 − 1 presenta cancelación catastrófica para 𝑥 ≈ 0. Evalúela en
𝑥 = 0.01 con aritmética exacta, truncamiento y redondeo con tres cifras. Calcule sus errores absoluto
y relativo.

3. Sea 𝑓(𝑥) = 1.01𝑒 4𝑥 − 4.6𝑒 3𝑥 − 3.11𝑒 2𝑥 + 12.2𝑒 𝑥 − 1.99. Use la aritmética de redondeo a
tres dígitos para evaluar 𝑓(1.53). Calcule el error relativo.

𝑥𝑖
4. El polinomio de Taylor de grado 𝑛 para 𝑒 𝑥 es ∑𝑛𝑖=0 . Use el polinomio de Taylor de grado siete y
𝑖!
utilice aritmética de truncamiento a 3 dígitos para determinar una aproximación de e -5 usando:
(−5)𝑖
a. 𝑒 −5 = ∑7𝑖=0
𝑖!
1 1
b. 𝑒 −5 = = 5𝑖
𝑒5 ∑7𝑖=0
𝑖!
c. El valor aproximado de 𝑒 −5 con tres cifras correctas es 6,74 𝑥 10−3 . ¿Cuál fórmula es más
precisa? ¿Porque?

5. Complete el siguiente cálculo:


1/4 1/4
2 𝑥4 𝑥6
∫ 𝑒 𝑥 𝑑𝑥 ≈ ∫ (1 + 𝑥 2 + + ) 𝑑𝑥 = 𝑝 ∗
0 0 2! 3!
Determine qué tipo de error se presenta en esta situación y compare el resultado con el valor exacto
𝑝 = 0,2553074606.

________________________________________________________________________________________
Mg. Alvaro Espinosa Pérez 14

También podría gustarte