Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Objetivos UNIDAD II Aproximaciones y errores de redondeo duración Contenido temático 1.5 hrs. objetivos • 2.1 Exactitud, cifra significativa 2.2 Error 2.3 Tipos de errores • Definir, reconocer y aplicar la teoría de errores, la propagación de los mismos y la importancia en la aplicación de métodos numéricos Definir, explicar y utilizar los conceptos de error, error relativo, error porcentual, error iterativo y error iterativo porcentual. Bibliografía del tema Burden, pp 18 a 30 TEMAS: • Errores de redondeo y aritmética de una computadora Chapra, 59 a 94 TEMAS: • Errores de redondeo • Series de Taylor y errores de truncamiento Gerald, pp 15 a 37 TEMAS: • Aritmética por computadora y errores • Conceptos • Computadoras en serie y paralelos Maron, pp 6 a 50 TEMAS: • Implementación de los métodos numéricos en dispositivos digitales • Precisión fija y mal comportamiento • Errores en aritmética de precisión fina Nakamura, pp 1 a 21 TEMAS: • Series de Taylor • Números en la computadora Nieves, pp 1 a 31 TEMAS: • Sistemas numéricos • Manejo de números en la computadora • Errores • Algoritmos y estabilidad NGJ/v06 Unidad II 1 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Introducción Historia de los números reales El sistema de los números reales es el formado por los números racionales y por los irracionales, o lo que es lo mismo, por el conjunto de todos los números decimales, siendo los decimales exactos, puros y mixtos los que corresponden a los racionales, y los restantes a los irracionales. Es por ello, el que su evolución histórica este ligada a la de los sistemas de números ya comentados. En consecuencia, este epígrafe 1 resume la evolución de los números en general, que está íntimamente ligada a la evolución del álgebra. Distinguimos tres etapas: Desde los tiempos más remotos hasta el siglo V a.C. El concepto de número positivo, fue adquirido muy lentamente. Para muchas razas los números mayores que tres no tenían nombre; en otras todo lo que superaba al tres se conocía por "muchos". Percibían los números como una propiedad inseparable de una colección de objetos, sin distinguirla de forma clara, es decir no se distinguen los números como algo abstracto. Estas conclusiones, se han deducido de los nombres que se sabe recibieron algunos números, un tiempo después, así por ejemplo "mano" que equivalía al número cinco, en cuyo caso cinco no se entiende en sentido abstracto sino en el de "tantos como los dedos de una mano". De esta forma se llegaron a utilizar distintos nombres para un mismo número de objetos: Uno para personas, otro para arboles, etc. Paso bastante tiempo y comparar muchas veces colecciones con el mismo número de objetos, para poner en correspondencia biunívoca los elementos de ellas, hasta llegar al concepto "abstracto de número". Las operaciones entre números aparecieron como reflejo de las relaciones entre objetos concretos, así por ejemplo se estableció que una suma no depende del orden de los sumandos. Conforme la sociedad iba evolucionando, el hombre se vio ante la necesidad de perfeccionar los nombres y símbolos de los números y posteriormente la introducción de signos y designación literal de las incógnitas. Los babilonios tenían un sistema de escritura de los números que era parcialmente decimal y parcialmente sexagesimal. En sus últimas escrituras cuneiformes ya apareció el cero, aunque fueron los indios los que verdaderamente lo introdujeron, al que llamaron "vacío", y les permitió elaborar un sistema de escritura análogo al de hoy en día. Los antiguos griegos y posteriormente los rusos, hicieron uso de letras para designar números siendo, no obstante, los árabes los que trajeron a Europa de la India nuestros símbolos actuales y el método de formación de números. Desde el siglo V a.C hasta el siglo XVII Dentro de la etapa se pueden distinguir tres periodos: Griego. 1 Resumen que suele preceder a cada uno de los capítulos u otras divisiones de una obra científica o literaria, o a un discurso o escrito que no tenga tales divisiones. Diccionario de la Real Academia Española (RAE) NGJ/v06 Unidad II 2 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Comienza en el siglo VII a.C y finaliza en el VII d.C. En este periodo se sabía que la sucesión de números se podía prolongar indefinidamente, con lo que se empezó a intuir la noción del infinito, así como que se podía operar con los números en general y formular y probar teoremas sobre ellos. Los griegos, establecieron los cimientos para la teoría de números y descubrieron las magnitudes irracionales. Euclides estableció ya la existencia de un número infinito de números primos y Erastótenes creó un método para obtenerlos. Conocían propiedades sobre las progresiones aritméticas y geométricas y extraían raíces cuadradas y cúbicas. No conocían los números negativos. Fueron los chinos los que por primera vez usaron los coeficientes negativos en los sistemas de ecuaciones de primer grado, dando un método para la búsqueda de las soluciones positivas de un sistema de tres ecuaciones de primer grado. Oriental. Cubre el periodo entre los siglos V y XV. Al declinar la ciencia griega, el centro del desarrollo científico se desplaza a la India, Asia Central y los países árabes. Aquí, el camino de la matemática lo marcó, en gran parte, la astronomía. Los indús introdujeron los números negativos y operaron con magnitudes irracionales, sin representaras geométricamente. Los matemáticos del Asia central calcularon las raíces de las ecuaciones y, conocían, expresada en palabras, la fórmula del binomio de Newton. Inventaron las fracciones decimales. Los chinos conocían el medio para resolver ecuaciones indeterminadas muy sencillas y las de tercer grado. Renacimiento Europeo. Entre los siglos XVI y XVIII, Tartaglia y Ferrari, de la escuela italiana, resolvieron por radicales la ecuación de tercer grado y, posteriormente, la de cuarto. Se comenzaron a utilizar los números negativos y los imaginarios (a + b . sqr(-1)). Viète introdujo los símbolos agebraicos y Descartes los perfeccionó. Neper inventó los logaritmos y apareció la teoría de las combinaciones. Con alguna aportación más, se completo a comienzos del siglo XVIII la estructura del álgebra elemental. Siglo XVIII en adelante. Debido al nacimiento del Análisis matemático, su desarrollo estuvo relegado hasta la primera mitad del siglo XIX para que se profundizara más en su estudio aunque ya enfocado a una ampliación más global del concepto de número. Para terminar, es importante resaltar que el conocimiento de los números por parte de los Griegos no fue superado hasta veinticuatro siglos más tarde. Los matemáticos G. Cantor, R. Dedekind, K. Weiertrass y B. Bolzano fueron los que culminaron la obra, que duro medio siglo de investigaciones, sobre los números naturales, enteros, racionales e irracionales, que considerados juntos, constituyeron lo que se denominó el sistema de los números reales. Los conceptos de intervalo y entornos asociados a los números reales, así como una operación denominada paso al límite, consolidaron y otorgó rigor al conjunto de conceptos y métodos que constituyen la rama de las matemáticas conocida como Cálculo diferencial e Integral. NGJ/v06 Unidad II 3 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo 2. Aproximaciones y errores de redondeo 2.1 Exactitud y cifra significativa • El error de redondeo se origina debido a que la computadora solo puede representar una cantidad finita de decimales: 4.125 se redondea a 4.13 • El número de cifras significativas en un valor es aquel que puede ser usado para que ese valor sea confiable: 4.125 con tres cifras significativas: 4.12 • Exactitud: Que tan cercano está el valor calculado al valor real • Precisión: Que tan cercano está un valor individual medido o calculado con respecto a los otros • Inexactitud (sesgo): Es el alejamiento sistemático de la verdad • Imprecisión (incertidumbre): Magnitud del alejamiento 2.2 Definición de error • Un error se produce al utilizar cantidades aproximadas en los cálculos. • Una aproximación puede ser generada por el truncamiento de una cantidad o el redondeo. Error absoluto valor verdadero = aproximación + error Error = valor verdadero − aproximación E a = valor verdadero − valor calculado Error relativo: Et = Er = error verdadero valor verdadero valor real − valor calculado NGJ/v06 valor real Unidad II 4 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Error relativo porcentual: Et = error verdadero *100 valor verdadero Er = valor real − valor calculado valor real * 100 Error relativo iterativo Ee = aproximación actual − aproximación anterior aproximación actual Error relativo iterativo porcentual Ee = aproximación actual − aproximación anterior *100 aproximación actual Ejemplo: NGJ/v06 Unidad II 5 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Otro ejemplo: Conclusión Los polinomios siempre deben expresarse en forma anidada antes de realizar cualquier evaluación, pues esta forma minimiza el número de cálculos aritméticos. La disminución del error se debe a la reducción de los cálculos, de cuatro multiplicaciones y dos sumas a dos multiplicaciones y tres sumas. Una forma de reducir los errores de redondeo consiste en reducir el número de cálculos que pueden producir errores. [BURDEN, 25 y 26] NGJ/v06 Unidad II 6 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Los errores se pueden dar por truncamiento o por redondeo Causas de errores graves en computación [Nieves 15] “Existen muchas causas de errores en la ejecución de un programa de cómputo. Para explicarlas suponemos el uso de una computadora que trabaja con números en sistema decimal, en forma tal que se tiene una mantisa de cuatro dígitos decimales, y una característica de dos dígitos decimales, el primero de los cuales es usado para el signo. Sumados estos seis al bit empleado para el signo del número, se tiene una longitud de palabra de siete bits. Los números que se guardan, se normalizan primero”. Ejemplos: 3.0 = .3000 x101 7956000 = .7956 x107 − 0.0000025211 = −.22521 x10− 5 a) Suma de números muy distintos en magnitud Para sumar 0.002 a 600 en la computadora descrita anteriormente, se normalizan: 0.002 = .2000 x10−2 600 = .6000 x103 Estos números normalizados no pueden sumarse directamente y, por lo tanto, la computadora debe desnormalizarlos antes de efectuar la suma: .000002 x103 + .60000 x103 .600002 x103 Como solo puede manejar cuatro dígitos los últimos dos son eliminados y la respuesta es .6000 x 103 o 600 . Por el resultado, la suma no se realizo. Este tipo de errores cuyo origen es el redondeo es muy común por lo que se recomienda que no se sumen o resten, cantidades pequeñas con grandes cantidades. b) Resta de números casi iguales Para restar 0.2144 de 0.2145: .2145 x 100 − .2144 x100 .0001 x 100 NGJ/v06 Unidad II 7 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Como la mantisa de la respuesta está desnormalizada, la computadora automáticamente la normaliza y el resultado se almacena como .1000 x 10−3 . Hasta aquí no hay error, pero en la respuesta sólo hay un dígito significativo por lo tanto, se sugiere no confiar en la exactitud, ya que un pequeño error en algún número original produce un error relativo muy grande en la respuesta de un problema que involucra este error. Ejemplo: Un programa hace el siguiente cálculo: para x = (a − b) * c 0 0 5 a = 0.2145 x10 , b = 0.2144 x10 y c = 0.1000 x10 la respuesta es x = 1 . Sin embargo, si a fuera calculada en el programa con un valor de 0.2146 x10 0 (implica un error absoluto de 0.0001 y un error relativo de 0.0046 o 0.046% de error) el valor de x que calcula la máquina es de 2. Esto es, un error del 0.046% en una variable provoca un error del 100% en la operación. Y lo peor es que este error puede pasar desapercibido. c) “Overflow” y “underflow” Cuando una operación de dos números válidos da como resultado un número tan grande o tan pequeño que la computadora no puede manejarlo, ocurre un “overflow” o un “underflow” respectivamente. Un ejemplo, al multiplicar 0.5000 x108 x 0.2000 x109 0.1000 x1017 cada uno de los números que se multiplican, se pueden guardar en la palabra de siete bits. Sin embargo, su producto es muy grande y no puede almacenarse en ella porque las características requieren tres dígitos. Entonces se dice que hay “overflow” d) División entre un número muy pequeño e) Error de discretización f) Errores de salida Propagación de imprecisiones: cifras significativas de un resultado Los errores o las imprecisiones de un dato se propagan a todos los datos que se generan a partir de él. Es posible calcular con bastante rigor el error asociado a un resultado de una operación aritmética que involucra una colección de datos de los que se conoce su error; para hacerlo se utilizan expresiones que se derivan del cálculo diferencial, que si bien son de sencilla aplicación, resultan bastante tediosas. NGJ/v06 Unidad II 8 Métodos numéricos y álgebra lineal CB00851 Aproximaciones y errores de redondeo Cuando el objetivo del análisis de propagación de errores no sea determinar rigurosamente la imprecisión final del resultado, sino, simplemente, estimar dicha precisión, es suficiente con un análisis del número de cifras significativas del resultado utilizando las siguientes reglas aproximadas: Operaciones intermedias: No perder cifras significativas en las operaciones intermedias. Esto se asegura si todas las operaciones intermedias se hacen con una o dos cifras más de las realmente significativas. Multiplicaciones y divisiones: El número de cifras significativas del resultado es el del dato de menor número de cifras significativas. (P. ej. 2.62/8.14732116=0.322) Sumas y restas: La última cifra significativa del resultado es la del sumando que tenga su última cifra significativa más a la izquierda. (P. ej. 2212.342 + 5.6 = 2217.9) Algoritmos y estabilidad a) Error de redondeo al restar dos números casi iguales b) Error de redondeo al sumar un número grande y uno pequeño c) Reducción de errores d) Comparaciones seguras e) Análisis de resultados NGJ/v06 Unidad II 9