Universidad Politécnica de Madrid Ingeniería de Minas Programación Programación yy Métodos Métodos Numéricos Numéricos Errores Errores de de redondeo redondeo en en la la representación representación de de números números reales: reales: PROPAGACIÓN PROPAGACIÓN DE DE ERRORES ERRORES Alfredo López Benito Carlos Conde Lázaro Arturo Hidalgo López Departamento de Matemática Aplicada y Métodos Informáticos Febrero, 2007 84 Universidad Politécnica de Madrid Ingeniería de Minas Multiplicación Multiplicación de de números números de de F(s+1, F(s+1, m, m, M, M, 10) 10) Pasos: 1º. Multiplicar mantisas almacenando el resultado en mantisas de 2.s dígitos decimales. 2º. Ajustar exponentes. 3º. Aproximar el número obtenido como resultado por un número máquina con s dígitos decimales de mantisa. Ejemplo: En el sistema F(5, -99, 99, 10) y redondeando, calcular: 0.2577i10−3 i 0.1983i101 ( )( ) 1º.( 0.2577 )i( 0.1983 ) = 0.51101910i10−1 2º. 10-3 . 101 . 10-1 = 10-3 −3 1 −3 0. 2577 i 10 i 0. 1 983 i 10 = 0.51 10191 0 i 10 3º. ( )( ) Departamento de Matemática Aplicada y Métodos Informáticos 0.5110i10−3 85 Universidad Politécnica de Madrid Ingeniería de Minas Propagación Propagación de de errores errores en en la la multiplicación multiplicación de de números números de de F(s+1, F(s+1, m, m, M, M, 10) 10) Notación: Valor exacto del producto de los números máquina a y b: aib Número máquina que aproxima al valor exacto del producto de los números máquina a y b: a b Se verifica que: a (a b) b = aibi(1 + δa.b ) , con: δa.b ≤ u c = aibici(1 + δa.b )i(1 + δ(a.b).c ) = aibici(1 + δa.b + δ(a.b).c + δa.b iδ(a.b).c ) ≈ aibici(1 + δa.b + δ(a.b).c ) Conclusión: En la multiplicación (y en la división) de varios números máquina se suman los errores relativos de cada operación elemental. Departamento de Matemática Aplicada y Métodos Informáticos 86 Universidad Politécnica de Madrid Ingeniería de Minas Ejemplo Ejemplo En el sistema F(5, -99, 99, 10) y redondeando, calcular el número máquina: (a b) c con a = 0.1234i100 b = 0.4321i100 y c = 0.6311i100 aib − a b a • b = 0.5332114i10−1 δa.b = = 0.2138i10−4 aib a b = 0.5332i10−1 ( (a ( ) ( ) ) b )ic = 0.33650252i10−1 (a b) c = 0.3365i10−1 b) c = 0.7489i10−5 δa.b + δ(a.b).c = 0.2887i10 aibic − ( a b ) −1 a • bic = 0.33650971454i10 δa.b.c = aibic c = 0.2887i10−4 δ(a.b).c −4 a ( = b )ic − ( a (a b )ic Departamento de Matemática Aplicada y Métodos Informáticos 87 Universidad Politécnica de Madrid Ingeniería de Minas Comentario Comentario sobre sobre la la multiplicación multiplicación de de números números máquina máquina La multiplicación en el sistema de números máquina pierde la propiedad asociativa (a b) c ≠ a (b c) (a b) c = aibici(1 + δa.b )i(1 + δ(a.b).c ) a (b c) = aibici(1 + δb.c )i(1 + δa.(b.c) ) (a b) c (1 + δa.b )i(1 + δ(a.b).c ) = = 1+ γ a (b c) (1 + δb.c )i(1 + δa.(b.c) ) Ejemplo: En el sistema F(5, -99, 99, 10) y redondeando ( ) ( ) ( −4 0 sean: a = 0.2334i10 b = 0.8764i100 c = 0.1230i10 (a b) c = 0.2517i10−5 a b = 0.2046i100 b c = 0.1078i10−4 a (b ) c) = 0.2516i10−5 Departamento de Matemática Aplicada y Métodos Informáticos 88 Universidad Politécnica de Madrid Ingeniería de Minas Multiplicación Multiplicación de de números números de de F(s+1, F(s+1, m, m, M, M, 10) 10) En la división de números máquina los errores tienen un comportamiento análogo, si bien ahora el cociente de dos números máquina con mantisas de s bits no puede ser calculado exactamente con números con mantisas de 2·s decimales Ejemplo: En el sistema F(5, -99, 99, 10) y redondeando, sean: a = 0.2500i100 b = 0.1234i10−4 1º. Cociente de mantisas 2º. Ajuste de exponentes: (redondeando a 8 bits): 0 10 1 5 0.2500 i = 10 10 1 −4 = 0.20259319i10 10 0.1234 3º Aproximación por un número máquina: (a ÷ b) = 0.2026i105 Ejercicio propuesto: Analizar detalladamente la propagación de errores en divisiones consecutivas Departamento de Matemática Aplicada y Métodos Informáticos 89 Universidad Politécnica de Madrid Ingeniería de Minas Sumas Sumas yy restas restas de de de de números números de de F(s+1, F(s+1, m, m, M, M, 10) 10) Pasos: 1º. Ajustar exponentes añadiendo ceros en la mantisa del número con menor exponente 2º. Sumar mantisas. 3º. Aproximar el número obtenido como resultado por un número máquina con s bits de mantisa. Departamento de Matemática Aplicada y Métodos Informáticos 90 Universidad Politécnica de Madrid Ingeniería de Minas Sumas Sumas yy restas restas de de de de números números de de F(s+1, F(s+1, m, m, M, M, 10): 10): Ejemplos Ejemplos Ejemplos: En el sistema F(5, -99, 99, 10) y redondeando, calcular: 0.9874i101 ⊕ 0.4325i101 ( ) ( ) 1º. No es necesario al tener ambos números el mismo exponente ( ) ( ) 2º. a + b = 0.9874i101 + 0.4325i101 = 0.14199i102 3º. 0.14199i102 Ea + b a ⊕ b = 0.1420i102 (a + b) − (a ⊕ b) = = 0.7043i10−4 (a + b) Departamento de Matemática Aplicada y Métodos Informáticos 91 Universidad Politécnica de Madrid Ingeniería de Minas Sumas Sumas yy restas restas de de de de números números de de F(s+1, F(s+1, m, m, M, M, 10): 10): Ejemplos Ejemplos Ejemplos: En el sistema F(5, -99, 99, 10) y redondeando, calcular: 0.9874i101 ⊕ 0.4325i10−2 ( ) ( 1º. b = 0.0004325i101 ( ) ( ) ) 1 1 1 2º. a + b = 0.9874i10 + 0.0004325i10 = 0.9878325i10 3º. 0.9878325i101 Ea + b a ⊕ b = 0.9878i101 (a + b) − (a ⊕ b) = = 0.3290i10−4 (a + b) Sólo han intervenido los dos primeros decimales de la mantisa del segundo sumando (el menor en valor absoluto) Departamento de Matemática Aplicada y Métodos Informáticos 92 Universidad Politécnica de Madrid Ingeniería de Minas Sumas Sumas yy restas restas de de de de números números de de F(s+1, F(s+1, m, m, M, M, 10): 10): Ejemplos Ejemplos Ejemplos: En el sistema F(5, -99, 99, 10) y redondeando, calcular: 0.9874i101 ⊕ 0.4325i10−5 ( 1º. b = 0.0000004325i101 ( ) ( ) ( ) ) 1 1 1 2º. a + b = 0.9874i10 + 0.0000004325i10 = 0.9874004325i10 3º. 0.9874004325i10 1 Ea + b a ⊕ b = 0.9874i101 (= a) (a + b) − (a ⊕ b) = = 0.4380i10−6 (a + b) No ha intervenido ningún decimal de la mantisa del segundo sumando (el menor en valor absoluto) Departamento de Matemática Aplicada y Métodos Informáticos 93 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado significado En la suma de dos números máquina de muy diferentes órdenes de magnitud, “no intervienen” los últimos decimales del que tenga menor magnitud. Aunque el error relativo no sea elevado,ello puede acarrear “consecuencias desagradables”. Propiedad. Siendo a y b dos números máquina positivos del sistema F(s+1, m, M, 10) tales que a > b y siendo ea y eb los exponentesde ambos números, se verifica que en el número máquina a ⊕ b obtenido por redondeo no influyen los (ea – eb –1) últimos dígitos de la mantisa del número b. Ello origina el denominado error de pérdida de significado de los últimos dígitos decimales de b. Departamento de Matemática Aplicada y Métodos Informáticos 94 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado: significado: Ejemplo Ejemplo Ejemplo: En el sistema F(5, -99, 99, 10) y truncando, calcular: s1 = a ⊕ b s 2 = (a ⊕ b) ⊕ b s 3 = ((a ⊕ b) ⊕ b) ⊕ b .... sn = (...((a ⊕ b) ⊕ b) ⊕ b)...) ⊕ b siendo: a = 0.4000i101 y b = 0.5000i10−3 s1 = a ⊕ b = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101 s 2 = (a ⊕ b) ⊕ b = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101 s 3 = ((a ⊕ b) ⊕ b) ⊕ b = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101 ..... sn = (...((a ⊕ b) ⊕ b) ⊕ b)...) ⊕ b = 0.4000i101 Valores exactos: S1 = 0.40005.101 , S2 = 0.4001.101 , S3 = 0.40015.101 , S4 = 0.4002.101 , ...... Departamento de Matemática Aplicada y Métodos Informáticos 95 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado. significado. Los errores de pérdida de significado en cada una de las Sumas no son importantes pues se traducen en errores relativos que están acotados por la unidad de redondeo. El peligro de los errores de pérdida de significado está en su acumulación al realizar sumas consecutivas. Departamento de Matemática Aplicada y Métodos Informáticos 96 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado. significado. CONSECUENCIA PRÁCTICA: Los números máquina deben sumarse de menor a mayor valor absoluto. Siendo: a = 0.4000i101 y b = 0.5000i10−3 s1 = b ⊕ a = (0.4000i101 ) + (0.00005000i101 ) = 0.4000i101 s 2 = (b ⊕ b) ⊕ a = (0.0001000i101 ) + (0.4000i101 ) = 0.4001i101 s 3 = ((b ⊕ b) ⊕ b) ⊕ a = (0.00015i101 ) + (0.4000i101 ) = 0.4001i101 s 4 = (((b ⊕ b) ⊕ b) ⊕ b) ⊕ a = (0.0002i101 ) + (0.4000i101 ) = 0.4002i101 ..... ⎧Sn−1 si n es impar sn = (...((b ⊕ b) ⊕ b) ⊕ b)...) ⊕ a = ⎨ si n es par ⎩ Sn Departamento de Matemática Aplicada y Métodos Informáticos 97 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado: significado: Ejemplo. Ejemplo. Ejemplo: Derivada exacta Derivada numérica: f ( x * + h ) − f ( x*) f (x * +h ) − f (x*) f '(x*) ≈ F* = f '(x*) = lim h →0 h h En general, cuanto menor sea el valor de h más parecidos serán los valores de f’(x*) y F* ….. .... si no fuese porque los errores de pérdida de significado pueden hacer que el número máquina H que aproxima a (x* + h – x*) sea distinto a h con lo que la fórmula numérica se convierte en: f ( x * + H ) − f ( x*) f '(x*) ≈ F* = que deja de ser una buena aproximaciónhde la derivada. Departamento de Matemática Aplicada y Métodos Informáticos 98 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado: significado: Ejemplo. Ejemplo. Ilustrémoslo con la función f(x) = ex evaluando su derivada en el punto x* = 1 y trabajando con números máquina del sistema de números máquina F(5, -99, 99, 10). Los resultados que se obtienen para distintos valores positivos del entero i se recogen en la tabla de la próxima diapositiva en la que se utiliza la siguiente NOTACIÓN, h : 10-i (incremento usado en el denominador) Z : Número máquina que aproxima 1+h H: Valor de Z – 1 (incremento que realmente se usa en el numerador) f ( Z ) − f (1) Aprox: Número máquina obtenido por: Aprox = h Departamento de Matemática Aplicada y Métodos Informáticos 99 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado: significado: Ejemplo. Ejemplo. Mejora la aproximación al reducir h La reducción del valor de h empeora la aproximación obtenida i h=10-i Z H f’(1) Aprox. 0 1.0 2.000 1.0 2.718 4.671 1 0.1 1.100 0.1 2.718 2.859 2 0.01 1.010 0.01 2.718 2.732 3 0.001 1.001 0.001 2.718 2.719 4 0.0001 1.000 0.000 2.718 0.000 5 0.00001 1.000 0.000 2.718 0.000 Para valores de h suficientemente pequeños el error de pérdida de significado hace que el número máquina Z que aproxima a (x*+h) coincida con el número máquina x* Departamento de Matemática Aplicada y Métodos Informáticos 100 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de pérdida pérdida de de significado: significado: Ejemplo. Ejemplo. Forma práctica de cálculor aproximaciones numéricas de derivadas primeras: Dado un valor de h evaluar el número máquina Z = (x*+h) y el número máquina H = Z – x*. Si H ≠ 0 se utiliza la fórmula numérica: f '( x*) ≈ F* = f ( Z ) − f ( x*) H Departamento de Matemática Aplicada y Métodos Informáticos 101 Universidad Politécnica de Madrid Ingeniería de Minas Operaciones Operaciones con con números números reales. reales. A los errores anteriores debe añadírseles, en general, el error que previamente se comete al aproximar un número real por un número máquina. Por ejemplo, en el producto de números reales: a* = ai(1 + δa ) b* = bi(1 + δb ) a * b* = a *ib *i(1 + δa*.b* ) a * b* = aibi(1 + δa )i(1 + δb )i(1 + δa*.b* ) a * b* ≈ aibi(1 + δa + δb + δa*.b* ) a * b * ≤ aib i(1 + 3iu ) Departamento de Matemática Aplicada y Métodos Informáticos 102 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de cancelación cancelación en en la la resta resta de de números números reales. reales. Al restar dos números reales representados por sendos números máquina“muy parecidos” pueden cancelarse decimales de la mantisa obteniéndose como resultado un número máquina con un error relativo respecto al resultado exacto mucho mayor que los errores relativos cometidos en la aproximación de los números con los que se opera. Este efecto se conoce con el nombre de ERROR DE CANCELACIÓN. Departamento de Matemática Aplicada y Métodos Informáticos 103 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de cancelación cancelación en en la la resta resta de de números números reales: reales: ejemplo. ejemplo. En el sistema F(6, -99, 99, 10) se tiene: a − a* −5 0 0 . 5 10 δ = = i a* = 0.66667i10 a = 2/ 3 a a b = 141/ 212 b* = 0.66509i100 δb = b − b* = 0.6i10−5 b 1 = 0.1572327...i10−2 (a − b )* = 0.15723i10−2 636 (a − b)* −(a * −b*) a * −b* = 0.15800i10−2 δ a −b = = 0.488i10−2 (a − b ) * Un error relativo MIL VECES MAYOR que los errores en losvalores de partida. a−b = Departamento de Matemática Aplicada y Métodos Informáticos 104 Universidad Politécnica de Madrid Ingeniería de Minas Error Error de de cancelación cancelación en en la la resta resta de de números números reales. reales. Propiedad Si a y b son dos números reales positivos tales que en la operación (a - b) se anulan m decimales de la mantisa, trabajando en el sistema F(s, m, M, 10) se verifica que: (a − b ) − (a * −b*) ≤ 10μ−s (a − b ) CONSECUENCIA: Cuanto mayor sea el número de decimales que se anula en la mantisa del número obtenido al restar dos números reales más elevada es la COTA del error relativo del número máquina obtenido al realizar dicha operación. Departamento de Matemática Aplicada y Métodos Informáticos 105 Universidad Politécnica de Madrid Ingeniería de Minas Departamento de Matemática Aplicada y Métodos Informáticos 106