Análisis numérico 1. errores y aritmética de punto flotante

14
Ing. Edward Ropero Magister en Gestión, Aplicación y Desarrollo de Software

Transcript of Análisis numérico 1. errores y aritmética de punto flotante

Page 1: Análisis numérico 1. errores y aritmética de punto flotante

Ing. Edward Ropero Magister en Gestión,

Aplicación y Desarrollo de Software

Page 2: Análisis numérico 1. errores y aritmética de punto flotante

Para representar los números reales se introduce el punto decimal. De esta forma, los números positivos menores que la unidad se representan como

Dado que los números reales pueden tener un número infinito de dígitos,

los números reales se representan en un ordenador mediante un formato

denominado de punto flotante, que utiliza sólo un número finito de dígitos.

0.a1a2…an = a110-1+ a210-2+…+ an10-n

Por Ejemplo:

0.123 = 1x10-1 + 2x10-2 + 3x10-3

456.123 = 4x102 + 5x10 + 6 + 1x10-1 + 2x10-2 + 3x10-3

Page 3: Análisis numérico 1. errores y aritmética de punto flotante

Una máquina generalmente no almacena una cantidad matemática x sino una aproximación binaria a x llamada representación de punto flotante, denotada por fl(x) y de la forma:

La cantidad s indica el signo del número, la cantidad 1; f es

la fracción y se encuentra en base 2, y la cantidad n es el

exponente.

fl(x) = (-1)s (1 f) x 2n

Page 4: Análisis numérico 1. errores y aritmética de punto flotante

El valor del exponente de 8 bits varía de (00000000)2 = 0 a (11111111)2 = 255 para enteros positivos y no permitiría representar exponentes negativos; por esta razón el valor binario del exponente n no se almacena directamente y en vez de ello se almacena en forma sesgada como un valor no negativo c. La relación del exponente n en términos del valor almacenado c y el sesgo b es: n = c – b. Para el caso del formato de 32 bits b = 127.

n = c – b

Page 5: Análisis numérico 1. errores y aritmética de punto flotante

Ejemplo: Represente en un formato de precisión simple los números

a). x = 13.625 b). y = - 0.375

Solución: Primero se escribe el número en notación de punto flotante base 2 de la forma fl(x) = (-1)s (1 f) x 2n y luego se lo almacena en el formato.

a). x = 13,625 = 1101,101 = 1,101101 x 23

fl(x) = (-1)0 (1,101101) x 23

n = c – 127 3 = c –127

c = 130 = (10000010)2

Page 6: Análisis numérico 1. errores y aritmética de punto flotante

La representación de x = 13,625 en el formato de precisión simple es:

0 10000010 10110100000000000000000

Signo del Número

Exponente Sesgado

Parte fraccionaria

Page 7: Análisis numérico 1. errores y aritmética de punto flotante

b). y = -0,375 = -0,011

= -1,1 x 2-2

fl(x) = (-1)1 (1,1) x 2-2

n = c – 127 -2 = c –127

c = 125 = (01111101)2

La representación de x = 13,625 en el formato de precisión simple es:

1 01111101 10000000000000000000000

Signo del Número

Exponente Sesgado

Parte fraccionaria

Page 8: Análisis numérico 1. errores y aritmética de punto flotante

Número finito de caracteres para representar un número

Page 9: Análisis numérico 1. errores y aritmética de punto flotante

El fallo de un misil Patriot

El 25 de febrero de 1991 una batería de misiles patriot en Dharan, Arabia Saudita, no pudo detener un misil SCUD Iraquí impactando directamente en una barraca con 28 marines.

De acuerdo a un informe oficial sabemos que el misil patriot falló debido a un error acumulado en el cronómetro interno. Resulta que el

software usaba un contador que debía incrementarse cada 0,1 segundos para sus cálculos. La batería de misiles patriot llevaba

operando 100 horas, lo que acumuló un error de 0,34 segundos, dado que el misil scud se mueve a 1.676 metros por segundo, el misil

patriot al ser lanzado ya estaba “desplazado” en casi medio kilómetro del objetivo.

Page 10: Análisis numérico 1. errores y aritmética de punto flotante

El fallo de un misil Patriot

Page 11: Análisis numérico 1. errores y aritmética de punto flotante

ea = b - a

Por Ejemplo:

Tenemos a = 22.43 con un ea = 0.01221 Ahora a = 0.02243 con el mismo error absoluto b sería igual a 0.03464

0.01221 = b - 22,43 b = 22.44

El número b = 0.03464 no coincide con a en ninguno de sus dígitos. Aunque un error de 0.01 pueda parecer pequeño, lo será sólo si el número original es grande. Por ello, el error absoluto no nos permite decidir correctamente si un error es grande o no lo es.

Page 12: Análisis numérico 1. errores y aritmética de punto flotante

Con los mismos datos anteriores, por ejemplo:

Tenemos a = 22.43 con un er = 0.01221 Ahora a = 0.02243 con el mismo error relativo b sería igual a 0.02270

0.01221 = (b - 22,43)/ 22,43 b = 22.7

El número b = 0.02270, que también coincide en dos dígitos significativos con a. De esta forma vemos que el error relativo nos indica claramente el número de dígitos en los que coinciden el número original y su aproximación.

Podemos interpretar el error relativo de forma porcentual, si lo multiplicamos por 100. Por ejemplo, el error relativo er = 0.01 significa un error del 1%. Cuando decimos que dos números se aproximan hasta en un 5% queremos decir que su error relativo es de 0:05.

Page 13: Análisis numérico 1. errores y aritmética de punto flotante

Consideremos los números reales 2/3 = 0.6666 …, y 0.25977…, que tiene un número infinito de dígitos en el sistema decimal.

Page 14: Análisis numérico 1. errores y aritmética de punto flotante

1. Represente en un formato de precisión simple los números:

2. Determinar el error relativo y absoluto de los siguientes valores:

3. Analizar el truncado y redondeo de las siguientes cifras para mantisas de 3 y 5

• 23.568 • -6.87

• 0.698 • 756.87

a b

15,035 15,033

4,6666 4,6667

3,125444 3,125

• 3.1415926 • 2.7182818

• 5.3333333 • 458.5498789