Sei sulla pagina 1di 37

ANÁLISIS NUMÉRICO

INGENIERÍA ELÉCTRICA - ULEAM


Ing. Marcos Ponce Jara
ponce.jara.marcos@gmail.com
3r tema – Modelos, Computadoras y Análisis del Error
Aproximaciones y errores de redondeo
Notación Científica

Las aproximaciones tienen un interés especial cuando se trabaja con número muy
grandes o muy próximos a 0. En este caso utilizaremos una notación especial
denominada “Notación Científica”, llamada así porque es en el ámbito de la
ciencia donde mas suele utilizarse.

Un número expresado en notación científica tiene la forma de: 𝑥 ∗ 10𝑛


Aproximaciones y errores de redondeo
Notación Científica
Aproximaciones y errores de redondeo
Notación Científica

La notación científica consiste en escribir cualquier número grande o pequeño, en


forma de un número decimal que contenga una sola cifra entera (la de las
unidades), y una potencia de base 10 y exponente positivo o negativo
Aproximaciones y errores de redondeo
Cifras significativas
¿Qué son las cifras significativas?
Las cifras significativas de una cantidad, vienen dadas por todos los dígitos medidos con
certeza, más la primera cifra estimada o dígito dudoso. El número de cifras significativas
de una cantidad expresa su precisión.
48,5 km/h

Los ceros no siempre son cifras significativas: normalmente sirven para ubicar punto decimal
La incertidumbre se puede eliminar utilizando la notación científica: 4.53 × 𝟏𝟎𝟒 ,
4.530 × 𝟏𝟎𝟒 , 4.5300 × 𝟏𝟎𝟒 muestran, respectivamente, que el número tiene tres,
87324,45 km/h
cuatro y cinco cifras significativas.
Aproximaciones y errores de redondeo
Cifras significativas
MATLAB
Todos los cálculos dentro de MATLAB son realizados usando doble precisión. La forma de aparición del
punto flotante es controlada por el formato en uso. La siguiente tabla muestra el valor de 10 en 7
formatos diferentes:
format short 31.4159 Muestra 4 cifras decimales
format short e 3.1416e+001 Muestra 4 cifras decimales
format long 31.41592653589793 Muestra 14 cifras decimales
format long e 3.141592653589793e+001 Muestra 15 cifras decimales
format hex 403f6a7a2955385e
format rat 3550/113
format bank 31.42 Muestra 2 cifras decimales
>> pi >> format bank
ans = >> pi
3.1416 ans =
3.14

>> format long >> format long e


Los ceros no siempre son cifras significativas: normalmente sirven para ubicar punto decimal
>> pi >> pi
La incertidumbre se puede eliminar utilizando la notaciónans
científica:
=
4.53 × 𝟏𝟎𝟒 ,
4.530 × 𝟏𝟎𝟒 , 4.5300 × 𝟏𝟎𝟒 muestran, respectivamente, que el número tiene tres, ans =
3.141592653589793 3.141592653589793e+001
cuatro y cinco cifras significativas.
Aproximaciones y errores de redondeo
Reglas básicas para operaciones con cifras significativas
1) Cualquier dígito diferente de cero es significativo  1234,56 6 cifras significativas
2) Ceros entre dígitos distintos de cero son significativos  1002,5 5 cifras significativas
3) Ceros a la izquierda del primer dígito distinto de cero no son significativos
0,00456 3 cifras significativas
0,0056 2 cifras significativas
4) Si el número es mayor a (1), todos los ceros a la derecha del punto decimal son significativos
457,15 5 cifras significativas
400,00 5 cifras significativas
5) Para número sin coma decimal, los ceros ubicados después del último dígito distinto de cero pueden o
no ser cifras significativas:
23000 puede tener 2, 3 o 4 cifras significativas 2,3∗ 104 , 2,30∗ 104 o 2,300∗ 104
Aproximaciones y errores de redondeo
Reglas básicas de redondeo para operaciones con cifras significativas
1) Sí la cifra que se omite es menor a 5 se elimina sin más: Por ejemplo llevar a tres cifras el
siguiente número: 3,673 el cual quedaría 3,67

2) Si la cifra eliminada es mayor que 5 se aumenta en una unidad la última cifra retenida. Si
redondeamos 3,678 a tres cifras significativas quedaría 3,68

3) Si la cifra eliminada es 5 se toma como última cifra el número más próximo; es decir, si la cifra
retenida es par se deja, y si es impar se toma la cifra superior: para redondear 3,675, según
la regla debemos dejar 3,68

Las dos primeras reglas son de sentido común. La tercera es un convenio razonable porque, si se sigue
siempre, la mitad de las veces redondeamos por defecto y la otra mitad por exceso.
Aproximaciones y errores de redondeo
Operaciones - Cifras significativas
Suma: La suma de dos o más medidas no debe ser más precisa que la menos precisa de
las medidas.
Ejemplo: Se tienen que sumar las siguientes medidas: 2,361 m; 8,16 m 3,1 m. Matemáticamente
hablando, podríamos sumarlas de la siguiente manera,
NO ES CORRECTO No podemos asumir que en la
medida 8,16m la cifra de las milésimas sea un cero,
pues en la realidad no lo sabemos

13,6 m
Aproximaciones y errores de redondeo
Operaciones - Cifras significativas
Resta: La diferencia de dos medidas no debe ser más precisa que la menos precisa de
las mismas. Ejemplo: Dadas las siguientes medidas 56,38 cm y 5,2 cm, encontrar su diferencia.

Producto: El producto de dos o más medidas no debe tener más cifras significativas que
la medida que tiene el menor número de ellas. Ejemplo: Calcular la superficie de una pieza
rectangular de 4,34 m de largo por 1,2 m de ancho.
Aproximaciones y errores de redondeo
Operaciones - Cifras significativas
Cociente: El cociente de dos medidas no debe tener más cifras significativas que la
medida que tiene el menor número de ellas. Ejemplo: Determinar la rapidez media de un
móvil que recorre 8,825 m en 2,31 s.

Potenciación: Al elevar una medida a un exponente n, en el resultado se conservan


tantas cifras significativas como tiene la medida. Ejemplo: Determinar el volumen de un
cubo de 1,25 m de lado.

Ejemplo: Al realizar un experimento con una balanza con resolución 0,0001 kg he


obtenido la siguiente medida: 2,04763 kg  ¿tiene sentido esta media?
Aproximaciones y errores de redondeo
Exactitud y Precisión
¿A qué nos referimos con exactitud, inexactitud, precisión e imprecisión?

• La exactitud se refiere a qué tan cercano está el valor Inexacto e Impreciso Exacto e Impreciso
calculado o medido del valor verdadero.

• La inexactitud (conocida como sesgo = error) se define


como una desviación sistemática del valor verdadero.

• La precisión se refiere a qué tan cercanos se encuentran,


unos de otros, diversos valores calculado o medidos.
Inexacto y Preciso Exacto y Preciso

• La imprecisión (también llamada incertidumbre) se


refiere a la magnitud en la dispersión de los disparos.
Aproximaciones y errores de redondeo
Definición de errores
Error: Los errores numéricos surgen del uso de aproximaciones para representar operaciones y
cantidades matemáticas exactas. Estas incluyen los errores por truncamiento que resultan del empleo
de aproximaciones como un procedimiento matemático exacto, y los errores de redondeo que se
producen cuando se usan números que tienen un límite de cifras significativas para representar
números exactos.

Para ambos tipos de errores, la relación entre el resultado exacto, y el aproximado esta dado por:

Valor verdadero = Valor aproximado + error Et = valor verdadero – valor aproximado

Para tomar en cuenta el orden de magnitud del valor que se estima, se define error relativo
porcentual como:
𝑒𝑟𝑟𝑜𝑟 𝑣𝑒𝑟𝑑𝑎𝑑𝑒𝑟𝑜
ɛ𝑡 = ∗ 100%
𝑣𝑎𝑙𝑜𝑟 𝑣𝑒𝑟𝑑𝑎𝑑𝑒𝑟𝑜
Aproximaciones y errores de redondeo
Ejemplo (calculo de errores):
Suponga que tiene que medir la longitud de un puente y la de un remache, y se obtiene 9999 y 9
cm respectivamente. Silos valores verdaderos son 10000 y 10 cm, calcule a) el error verdadero y b)
el error relativo porcentual en cada caso.

a) El error verdadero en la medición del puente y remache:


Puente: Et = 10000 – 9999 = 1 cm
Remache: Et = 10 – 9 = 1 cm
b) El error relativo porcentual en la medición del puente y remache:
1
Puente: ɛ𝑡 = 10000 ∗ 100% = 0,01%

1
Remache: ɛ𝑡 = ∗ 100% = 10%
10

Conclusión: aunque ambas medidas tienen un error de 1cm, el error relativo porcentual del remache
es mucho mayor. Entonces podemos afirmar que se ha realizado una buena medición para el
puente, pero no para el remache.
Aproximaciones y errores de redondeo
Error relativo en métodos numéricos
En situaciones reales, a veces, es difícil contar con el valor verdadero. De hecho en métodos
numéricos, el valor verdadero solo se conocerá cuando se tengan funciones que se resuelvan
analíticamente, en otros casos no contaremos con dicha información y por tanto tendremos que usar
la mejor estimación posible al valor verdadero (el subíndice “a” significa que el error esta
normalizado a un valor aproximado):

𝑒𝑟𝑟𝑜𝑟 𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑑𝑜
ɛ𝑎 = ∗ 100%
𝑣𝑎𝑙𝑜𝑟 𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑑𝑜

En este caso no podemos usar la formula Et = valor verdadero – valor aproximado para calcular el
termino de error  determinar estimaciones del error en ausencia del conocimiento de los valores
verdaderos.
Aproximaciones y errores de redondeo
Error relativo en métodos numéricos
En métodos iterativos se hace una aproximación considerando la aproximación anterior,
efectuándose este proceso varias veces esperando que cada vez las aproximaciones sean mejores.
Es estos casos el error se calcula como:
𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑐𝑖ó𝑛 𝑎𝑐𝑡𝑢𝑎𝑙 − 𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑐𝑖ó𝑛 𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟
ɛ𝑎 = ∗ 100%
𝑎𝑝𝑟𝑜𝑥𝑖𝑚𝑎𝑐𝑖ó𝑛 𝑎𝑐𝑡𝑢𝑎𝑙

Los signos de esta ecuación pueden ser negativos o positivos en función si la aproximación es mayor
o menor que el valor verdadero. No obstante, el signo no es tan importante, sino mas bien que su
valor absoluto porcentual sea menor que la tolerancia porcentual fijada ɛ𝑠 .

|ɛ𝑎 | < ɛ𝑠 si cumple se considera el resultado aceptable


ɛ𝑠 = 0,5 ∗ 102−𝑛 % el resultado tendrá al menos n cifras significativas
Aproximaciones y errores de redondeo
Ejemplo – Estimación del error con métodos iterativos
En matemáticas con frecuencia las funciones se representan
2 3
mediante𝑛 series infinitas. Por ejemplo, la
función exponencial se calcula usando 𝑒 𝑥 = 1 + 𝑥 + 2! + 3! + ⋯ + 𝑥𝑛! expansión en series de Maclaurin
𝑥 𝑥

Estime el valor de 𝑒 0,5 𝒄𝒐𝒍𝒐𝒄𝒂𝒏𝒅𝒐 𝒕𝒆𝒓𝒎𝒊𝒏𝒐 𝒑𝒐𝒓 𝒕𝒆𝒓𝒎𝒊𝒏𝒐 𝒚 calcule los errores: relativo porcentual
verdadero y normalizado tomando como valor verdadero 𝑒 0,5 =1,648721… agregue términos hasta que
|ɛ𝑎 | < ɛ𝑠 (3 cifras significativas)
Solución: En primer lugar determinamos el criterio de error que asegure que un resultado sea
correcto en al menos 3 cifras significativas (agregaremos términos hasta que ɛa sea menor a este
valor):

La primera estimación para el error relativo verdadero y la estimación aproximada del error es:
1,648721 − 1,5
𝐸𝑡 = ∗ 100% = 9,02%
1,648721
𝑒 𝑥 = 1 + 𝑥 → para x=0,5  𝑒 0,5 = 1 + 0,5=1,5
1,5−1
ɛ𝑎 = ∗ 100% = 33% → |ɛ𝑎 |𝑛𝑜 < ɛ𝑠
1,5
Aproximaciones y errores de redondeo
Ejemplo – Estimación del error con métodos iterativos
En matemáticas con frecuencia las funciones se representan
2 3
mediante𝑛 series infinitas. Por ejemplo, la
función exponencial se calcula usando 𝑒 𝑥 = 1 + 𝑥 + 2! + 3! + ⋯ + 𝑥𝑛! expansión en series de Maclaurin
𝑥 𝑥

Estime el valor de 𝑒 0,5 𝒚 calcule los errores: relativo porcentual verdadero y normalizado tomando como
valor verdadero 𝑒 0,5 =1,648721… agregue términos hasta que |ɛ𝑎 | < ɛ𝑠 (3 cifras significativas)

Solución:
Aproximaciones y errores de redondeo
Errores de redondeo
¿Qué es y a que se debe el error por redondeo (digitalmente hablando)?
¿Pueden los números 𝝅, 𝒆 𝑜 𝟕 ser representados exactamente?
El error por redondeo se origina en las computadoras o calculadoras debido a que estas emplean un
número determinado de cifras durante un cálculo.

Los números tales como 𝝅, 𝒆 𝑜 𝟕 no pueden expresarse como un número fijo de cifras significativas
por tanto no pueden ser representadas exactamente por la computadora.

Debido a que las computadoras usan una representación en base 2, no pueden representar
exactamente en base 10.

Esta discrepancia por omisión de cifras significativas se llaman error por redondeo
Aproximaciones y errores de redondeo
Representación de números en la computadora - Conceptos básicos
• Numéricamente los errores de redondeo se relacionan de manera directa con la forma en que se
guardan los número en la computadora. La unidad fundamental mediante la cual se representa la
información se llama palabra consistente en una cadena de dígitos binarios

• Un sistema numérico es simplemente una convención para representar cantidades: base 10, base
octal, base binaria, etc. Una base es el número que se ha utilizado como referencia para construir
un sistema. Ejemplo: base 100, 1, 2, 3, 4, 5, 6, 7, 8, 9 base binaria 0, 1
Numero en base 10

10 000 1000 100 10 1

Numero en base 2
Aproximaciones y errores de redondeo
Representación de números en la computadora - Conceptos básicos
• Numéricamente los errores de redondeo se relacionan de manera directa con la forma en que se
guardan los número en la computadora. La unidad fundamental mediante la cual se representa la
información se llama palabra consistente en una cadena de dígitos binarios

• Un sistema numérico es simplemente una convención para representar cantidades: base 10, base
octal, base binaria, etc. Una base es el número que se ha utilizado como referencia para construir
un sistema. Ejemplo: base 100, 1, 2, 3, 4, 5, 6, 7, 8, 9 base binaria 0, 1
Aproximaciones y errores de redondeo
Representación de números en la computadora - Rango de enteros
¿Cuál es el rango de enteros de base 10 que se puede representar en una computadora de 16bits?
Método de magnitud
-173 computadora 16bits
con signo: 0(+) y 1(-)
Aproximaciones y errores de redondeo
Representación de números en la computadora - Punto-flotante
• Las cantidades fraccionarias generalmente se representan en la computadora usando la forma de
punto flotante. Con este método, el número se expresa como una parte fraccionaria, llamada
mantisa o significado, y una parte entera llamada exponente o característica:
𝑚 ∗ 𝑏𝑒  156,78  0,15678*103 (sistema en base 10 de punto flotante)
1
𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑑𝑎 ≤𝑚<1
𝑏 (𝑏𝑎𝑠𝑒)
→ 𝒑𝒂𝒓𝒂 𝒃 = 𝟏𝟎 → 𝒎: 𝟎, 𝟏 𝒚 − 𝟏
→ 𝒑𝒂𝒓𝒂 𝒃 = 𝟐 → 𝒎: ¿ ?

Hay que tener en cuenta que la mantisa es usualmente normalizada si tiene primero cero dígitos: por
ejemplo, suponga que la cantidad 1/34 = 0,029411765… guardada en un sistema que únicamente
permite guardar cuatro lugares decimales.
Entonces 1/34 se guardara como 0,0294 X 100 la inclusión del cero es “inútil” y lo que se hace es
disminuir el exponente en 10,294 X 10−1 y conservar una cifra significativa adicional al guardar el
numero
Aproximaciones y errores de redondeo
Representación de números en la computadora - Punto-flotante

1
𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑑𝑎 ≤𝑚<1
𝑏 (𝑏𝑎𝑠𝑒)
→ 𝒑𝒂𝒓𝒂 𝒃 = 𝟏𝟎 → 𝒎: 𝟎, 𝟏 𝒚 𝟏
→ 𝒑𝒂𝒓𝒂 𝒃 = 𝟐 → 𝒎: 𝟎, 𝟓 𝒚 𝟏

Ventajas:
• Permite que tanto fracciones como números muy grandes se representen en la computadora

Desventajas:
• La consecuencia de normalizar es que el valor absoluto de la mantisa queda limitado
• Los números en coma flotante requieren mas espacio y más tiempo de procesado que los números
enteros
• Su uso introduce una fuente de error debido a que la mantisa conserva sólo un número finito de cifras
significativas y por tanto se introduce un error de redondeo.
Aproximaciones y errores de redondeo
Representación de números en la computadora - Punto-flotante
Determine un conjunto hipotético de números con punto flotante para un máquina que guarda
información usando palabras de 7 bits. Emplee el primer bit para el signo del número, los siguientes
tres para el signo y la magnitud del exponente, y los últimos tres para la magnitud de la mantisa
¿Cuál es el numero más pequeño que podemos representar, a
𝑒∗ (-1) partir de allí calcule los restantes?
+𝑚 ∗ 𝑏
1
𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑐𝑖ó𝑛 ≤ 𝑚 < 1 → 𝟎, 𝟓 𝒂 𝟏
𝑏
000 0 𝟐−𝟑 (0 𝟐−𝟏 + 0 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0
001 1 𝟐−𝟑 (0 𝟐−𝟏 + 0 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,015625
010 2 𝟐−𝟑 (0 𝟐−𝟏 + 1 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,03125
011 3 𝟐−𝟑 (0 𝟐−𝟏 + 1 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,046875
100 4 𝟐−𝟑 (1 𝟐−𝟏 + 0 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,0625
1 0
101 5 𝟐−𝟑 (1 𝟐−𝟏 + 0 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,078125
1∗2 +1∗2 = 3
110 6 𝟐−𝟑 (1 𝟐−𝟏 + 1 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,093750
111 7 𝟐−𝟑 (1 𝟐−𝟏 + 1 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,109375
Aproximaciones y errores de redondeo
000 0 𝟐−𝟑 (0 𝟐−𝟏 + 0 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0
0 001 1 𝟐−𝟑 (0 𝟐−𝟏 + 0 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,015625
010 2 𝟐−𝟑 (0 𝟐−𝟏 + 1 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,03125
011 3 𝟐−𝟑 (0 𝟐−𝟏 + 1 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,046875
100 4 𝟐−𝟑 (1 𝟐−𝟏 + 0 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,0625
101 5 𝟐−𝟑 (1 𝟐−𝟏 + 0 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,078125
Disminuimos la magnitud del exponente 110 6 𝟐−𝟑 (1 𝟐−𝟏 + 1 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,093750
111 7 𝟐−𝟑 (1 𝟐−𝟏 + 1 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,109375
¿Qué podemos hacer para
seguir incrementado estos 000 0 𝟐−𝟐 (0 𝟐−𝟏 + 0 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0
valores? 001 1 𝟐−𝟐 (0 𝟐−𝟏 + 0 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,03125
Brecha de espacio se incrementa: 010 2 𝟐−𝟐 (0 𝟐−𝟏 + 1 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,0625
0,125000-0,109375=0,015625 011 3 𝟐−𝟐 (0 𝟐−𝟏 + 1 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,09375
0,125000-0,156250=0,03125 100 4 𝟐−𝟐 (1 𝟐−𝟏 + 0 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,125000
Y continua creciendo a medida 101 5 𝟐−𝟐 (1 𝟐−𝟏 + 0 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,156250
que disminuimos la magnitud del 110 6 𝟐−𝟐 (1 𝟐−𝟏 + 1 𝟐−𝟐 + 0 𝟐−𝟑 ) = 0,187500
exponente!!! 111 7 𝟐−𝟐 (1 𝟐−𝟏 + 1 𝟐−𝟐 + 1 𝟐−𝟑 ) = 0,218750
Aproximaciones y errores de redondeo
Representación de números en la computadora - Punto-flotante
¿Qué repercusiones tiene lo expuesto?
• Rango de cantidades que pueden
representarse es limitado.

• Error de cuantificación: Existe sólo un


número finito de cantidades que
pueden representarse dentro de un
rango  rango de precisión limitado
(ejemplo nº pi)

• El intervalo entre los números ∆x,


aumenta conforme los números crecen
en magnitud.
Aproximaciones y errores de redondeo
Representación de números en la computadora - Precisión extendida
Formato IEEE 754 (Institute of Electrical and Electronics Engineers), el cual es el estándar para la
aritmética en coma flotante más extendido, especifica 4 formatos para la representación de valores
en coma flotante: precisión simple (32bits), precisión doble (64bits), precisión extendida (≥43bits, no
usada normalmente) y precisión doble extendida (≥79 bits, usualmente implementada con 80bits)

Precisión simple en el estándar IEEE 754


En precisión simple, para escribir un número real se usan 32 bits (4ytes): 1bit para el signo (s) del
número, 23 bits para la mantisa (m) y 8 bits para el exponente (exp), que se distribuyen en la
siguiente forma:
Aproximaciones y errores de redondeo
Manipulación aritmética de números en la computadora
Efectos del los errores de redondeo en las operaciones básicas: Suma, Resta, multiplicación y división.
Para los ejemplos mostrados a continuación se usa una computadora hipotética con una mantisa de 4
dígitos y un exponente de 1 digito con base 10. Usaremos el sistema de corte. El redondeo puede
causar errores similares pero menos dramáticos.
Se quiere sumar: 0.1557 · 101 + 0.4381 · 10−1
v
Se quiere restar: 36,41 – 26,86
¿Qué pasaría con cifras cercanas?
v mas dramático
764,2 – 764,1Error Cifra no significativa
 añadimos 3 cifras significativas 0,1000
v
Se quiere multiplicar: 0.1363 · 103 * 0.6423 · 10−1 = 0,08754549 · 102
normalizando= 0,875449 · 101
cortando=v 0,875 · 101
Douglas N. Arnold, “The Patriot Missile Failure,” Institute for Mathematics and its Applications, Minneapolis (2000).
Reproduced at http://www.ima.umn.edu/~arnold/disasters/patriot.html

Aproximaciones y errores de redondeo


Representación de números en la computadora – Ejemplos de interés
Fallo de un misil Patriot (Guerra del Golfo)
25 de Febrero 1991 una batería de misiles Partriot americanos no logró interceptar un misil
Scud iraquí. Murieron 28 soldados americanos.
La causa: los errores numéricos por utilizar truncado en lugar de redondeo en el sistema que
calcula el momento exacto en que debe ser lanzado.
Estos computadores predicen la trayectoria de los misiles Scud punto a punto en función de su
velocidad conocida y del momento en que fue detectado por el radar por ultima vez.

Velocidad = nº real ; tiempo=magnitud real(calculada mediante reloj interno)=variable entera


A mayor tiempo de funcionamiento = necesario valor entero mas grande para representar el tiempo
pequeño error (truncado)  grande al * entero grande
Conversión tiempo entero a nº real nº real *1/10 aprox truncamiento  Mantisa de 24 bits
El reloj interno estuvo activo durante 100h, tras los cuales el reloj se había retrasado 1/3 de
segundo error por cada decima de segundo 0,000000095
equivalente a una posición de 600m, debido a que el misil Scud viaja a unos 6000km/h. Obviamente
el misil Patriot no encontró nada a su paso!!!
Douglas N. Arnold, “The Explosion of the Ariane 5 Rocket,” Institute for Mathematics and its Applications,
Minneapolis (2000). Reproduced at http://www.ima.umn.edu/~arnold/disasters/ariane.html

Aproximaciones y errores de redondeo


Representación de números en la computadora – Ejemplos de interés
Explosión del cohete Ariane 5 (ESA, Agencia Europea del Espacio) - 4 de Junio 1996
El cohete Ariane 5 de la agencia Europea del Espacio explotó 40
segundos después de su despegue a una altura de 3,7 km tras
desviarse de la trayectoria prevista.

El cohete y su carga estaban valorados en 7000 millones de euros.

La causa: un error en el sistema guiado de trayectoria provocado 37 segundos después del despegue. El error los
produjo el sistema que controlaba el sistema inercial de referencia (SRI).

En concreto se produjo una excepción de software al intentar convertir un número en coma flotante de 64bits,
relacionado con la velocidad horizontal del cohete respecto a la plataforma de lanzamiento, en un entero con signo
16bits. El numero mas grande que se puede convertir de esta forma es el 32768; el intento por convertir un numero
mayor provoco que el sistema de seguimiento de trayectoria dejase de funcionar.
Aproximaciones y errores de redondeo
Detalles de MATLAB
• Matlab utiliza la aritmética de punto o coma flotante, la cual involucra un conjunto de números con
precisión finita y presenta todos los inconvenientes comentados anteriormente (roundoff - underflow
– overflow). Por lo general es posible utilizar Matlab sin preocuparse de ellos.
• Matlab ha usado siempre el formato IEEE de doble precisión.
• Los número en coma flotante se almacenan en palabras de 64 bits; con 52 para la mantisa “m”, 11
bits para “e” y un bit para el signo del número.
• La mayoría de los números en coma flotante diferentes de cero son normalizados: 𝑥 = ± (1 + f ) ∗ 𝑏𝑒
• La mantisa satisface que: 0 ≤ 𝑓 ≤ 1 y debe de ser representado en sistema binario con un numero entero en el
intervalo 0 ≤ 252 𝑓 ≤ 252 . El exponente es un entero en el intervalo −1022 ≤ 𝑒 ≤ 1023
• En Matlab ξ=eps≈2.2204 · 10−16, este es el máximo espacio relativo entre números.
• Eps/2 es llamado roundoff level y es el máximo valor relativo que resulta cuando el resultado de
una operación es redondeada al mas cercano punto flotante.
Aproximaciones y errores de redondeo
Detalles de MATLAB
¿Cual será el resultado de x=(0,1+0,1+0,1)-0,3 ?

¿Cual será el resultado de a=4/3 ; b=a-1; c=b + b + b; e=1- C?

Un importante ejemplo ocurre cuando guardamos en Matlab t=0,1


En realidad no se esta guardando exactamente 0,1 ya que expresar la fracción 1/10 en
binario requiere una serie infinita; de hecho:

1 ⁄1 0 = 1 ⁄24 + 1 ⁄25 + 0 ⁄26 + 0 ⁄27 + 1 ⁄28 + 1 ⁄29 + 0 ⁄210 + 0 ⁄211 + 1 ⁄212 +…


Después del primer termino, la secuencia de coeficientes 1, 0, 0, 1 se repite infinitamente. El numero
en coma flotante mas próximo a 0,1 es obtenido al redondear este serie con 53 términos; con lo cual
conseguimos un numero muy próximo a 0,1 pero sin ser exactamente 0,1.
Aproximaciones y errores de redondeo
Detalles de MATLAB
¿Cual será el resultado de x=(0,1+0,1+0,1)-0,3 ?

¿Cual será el resultado de a=4/3 ; b=a-1; c=b + b + b; e=1- C?


En el segundo caso nos damos cuenta que l valor en “a” no puede ser exactamente 4/3
El valor guardado en “b” tampoco puede ser exactamente 1/3
El valor guardado en C tampoco puede ser 1 ya que se ha introducido errores anteriores
Por ultimo e no puede ser exactamente cero.
De hecho es igual a eps. Antes de que el estándar IEEE existiera, esta era una manera
rápida de estimar el nivel de error por redondeo en varias computadoras.
Aproximaciones y errores de redondeo
Radianes Grados
>> cos(pi/2) >> sin(2*pi) >> cosd(90) >> sind(360)
ans = ans = ans = ans =

6.1232e-17 -2.4493e-16 0 0

>> cos(3*pi/2) >> sin(pi) >> cosd(270) >> sind(180)


ans = ans = ans = ans =

-1.8370e-16 1.2246e-16 0 0

• Debemos tener presente que la matemática de la computadora no siempre es


exacta. Esto es especialmente cierto cuando estos involucran el numero PI, el cual
tiene que se aproximado usando un numero finitos de dígitos; además cuando están
presentes funciones como cos() o sin() estas solo pueden ser aproximadas mediante
operaciones aritméticas.
Aproximaciones y errores de redondeo
• Los resultados son correctos si tenemos en cuenta que se esta realizando un calculo en
coma flotante.
• Para solucionar esto podemos usar los comando cosd() o sind(). Obviamente esto no
quiere decir que trabajar con angulos nos dará un valor exacto y mas preciso ya
que estos son aproximaciones racionales. No obstante estas funciones ya tienen en
cuenta los errores de aproximación.
• Una forma correcta de solucionar este problema si se necesita trabajar con radianes
es considerar la tolerancia mediante el comando “eps”
• El comado eps, es la distancia positiva desde el número calculado hasta el siguiente
orden de magnitud del coma flotante de la misma precisión que el nuero calculado.
>> num = [sin(-pi) cos(pi/2)]
num(abs(num)<eps)=0
num =
1.0e-15 * -0.1225 0.0612
num =
0 0
Aproximaciones y errores de redondeo

FIN

Potrebbero piacerti anche