Métodos Numéricos: aproximación y error Eduardo P. Serrano Versión previa Feb 0. Problemas y métodos numéricos Un problema numérico es aquel cuya solución es un número finito de números reales. Ej: - Ecuaciones algebraicas. - Evaluar una función en una red finita de puntos. - Evaluar una integral. Un método numérico es un procedimiento de cálculo para resolver un problema numérico, que consta de un número finito de operaciones lógicas y aritméticas, que permite obtener soluciones exactas o aproximadas. Ej: Un método para evaluar consiste en truncar la correspondiente serie de Taylor alrededor del punto x 0 =: = + ()(3)...(N 3) + +( )N+ 8 ( N )(N!) Otro método consiste en iterar la siguiente fórmula recursiva: x k+ = ) (x k + xk para k =0,,...,N, partiendo de un valor inicial x 0 apropiado. Entonces, la sucesión generada converge a. Un algoritmo es la descripción formal y detallada, paso a paso, de las operaciones de un método. Especifica las instrucciones de entrada y salida de los datos y los criterios de finalización. En otras palabras, define un diagrama operativo, unívoco, que conduce desde un inicio a un fin. A partir de los datos de entrada se generan los datos de salida que expresan las soluciones aproximadas o, eventualmente, se concluye sin obtener resultados. Ej: Método numérico para hallar las raíces reales, si existen, una ecuación de segundo grado: ax + bx + c =0 con coeficiente reales, a 0, consiste en aplicar la fórmula: Algoritmo de implemetación: x, = b ± b 4ac a INICIO Ingresar los coeficientes a, b, c Si a =0, No es una ecuación de segundo grado FIN ; Si a 0, Calcular el discriminante: D = b 4ac Si D<0, No existen soluciones reales FIN ;
Si D =0, Existe una única solución real doble FIN ; Si D>0, Existen dos soluciones reales x = b a FIN ; x = b + D a x = b D a Las operaciones con números reales pueden reliazase en forma manual, con calculadoras o computadoras, en forma simbólica u operando con expresiones decimales. El cálculo con número reales es, en general, aproximado. Sólo son posibles las expresiones decimales exactas cuando se opera con enteros o fracciones, dentro de cierto rango. Los resultados expresados en forma decimal serán, salvo excepciones, aproximados y dependerán del método y sus especificaciones. Por lo tanto, distintos métodos y algoritmos para resolver un mismo problema, no son equivalentes. Ej: - la solución positiva exacta de la ecuación x =0esx =. No es una expresión decimal. - Utilizando una calculadora obtenemos la aproximación =.443563730: - Truncando la serie de Taylor de, alrededor del punto x 0 =, para N =3 = + ()(3)...(N 3) + +( )N+ 8 ( N )(N!) Si N = 3 aplicamos el método y calculamos las aproximaciones sucesivas: = + 8 + 8 =.4375 - Iterando 3 veces la fórmula recursiva: (x k + xk ) x k+ = partiendo del valor inicial x 0 =.5 se obtiene: x 0 =.5 x = ) (x 0 + x0 =.4666666666667 x = ) (x + x =.445686745 x 3 = ) (x + x =.4435637469 La aproximación final, = x 3 =.4435637469 es mucho más precisa que la obtenida con el método de Taylor, realizando un número semejante de operaciones.
Los instrumentos de medida son de precisión finita y proporcionan datos y valores aproximados de la magnitud observada. El error de aproximación depende de la precisión del instrumento. Eventualmente pueden sumarse otros errores técnicos o humanos de observación. Ej: - Se utiliza un amperímetro graduado en mili-ampers (ma), en el rango [0, 0]mA. Si observamos que la aguja está entre y 3. el valor exacto está en este rango, y es desconocido. Podemos aproximar el dato por el valor medio Ĩ =.5mA. En muchos casos, difícil o imposible deducir fórmulas artméticas explícitas para calcular las soluciones de un problema numérico o expresarlas en forma simbólica. Entonces los métodos numéricos indirectos y aproximados, son indispensables. Ej: -Resolver la ecuación no lineal: -Hallar las raíces del polinomio: -Evaluar la función error: -Calcular la serie,convergente : exp( x) = x p(x) = x 5 3x 4 +x 3 x + x 7 erf() = exp( t )dt. π S = 0 n n= Al aplicar un método numérico, es importante no sólo obtener los resultados aproximados del problema, sino también estimar los errores.. Aproximación y error Sea x R y una aproximación x = x. La diferencia x x es el error de aproximación. El valor x = x x es el error absoluto. Si x 0, δx = es el error relativo y δx 00 % el error porcentual. x x x El error relativo o el porcentual son los verdaderamente representativos. Ej: - Consideramos el número π = 3.4596535897... Aproximamos π = 3.4 el error es π = 0.00596535897... El error relativo es δπ = 0.00050695738897... y el porcentual del orden del 0.05 %. - Aproximamos x = 999.9 = 000, el error es x = 0.. El error relativo es δx = 0.000000 y el porcentual del orden del 0.0 %. - Si aproximamos x = 0.000 = 0, el error es x = 0.000. El error relativo es δx = y el porcentual es 00 %.
En la práctica, se trabaja con cotas de error e intervalos de incertidumbre. -Si x = x x <ɛ, entonces x ɛ<x< x + ɛ. -Si x a <x<x b y se toma x = x a ó x = x b, entonces x = x b x a. -Si x a <x<x b y se toma x =(x a + x b )/, entonces x =(x b x a )/. Para las cotas del error relativo: -Si x = x x ɛ y x µ, entonces δx ɛ/µ. -Si x = x x ɛ y x µ, entonces δx ɛ/µ. Si x = x, se dice que x tiene m cifras decimales significativas, si: 0 (m+) δx < 0 m. En particular: - Si la aproximación es exacta, x = x y δx = 0. Entonces todas las cifras son significativas. -Siδx / entonces m 0, no hay cifras significativas. La aproximación no tiene sentido. - Vale estimación m = fix ( log 0 (δx)), siendo fix la parte entera de la expresión. Ej: -Con la aproximación π = 3.4, δπ = 0.00050695738897... Por lo tanto m =. Los dígitos 3, son significativos. El dígito 4 es incierto. - Aproximamos /3 = 0.33. Entonces δx = 0.0. m = fix( log 0 (0.0)) =. Hay un única cifra significativa. - Por otra parte, la aproximación /3 = 0.3 no tiene ninguna cifra significativa ya que δx = 0., y m = fix( log 0 (0.)) = 0. Si x = x, se dice que x tiene m cifras significativas en base β, si:. β (m+) δx < β m En el caso de un vector x R n y una aproximación x = x existen diversas normas para expresar el error de aproximación. Destacamos, siendo x =(x,...,x n )y x =( x,..., x n ): - Norma : n x x = x k x k. - Norma ó error cuadrático :. - Norma : es el error absoluto. x x = n x k x k x x =máx x k x k k
3. Truncamiento y redondeo en desarrollos decimales. Supongamos que x 0y x = ± ( ) a k 0 N k = ± a k 0 k siendo N un entero y a k {0,,, 3, 4, 5, 6, 7, 8, 9} los dígitos decimales, a 0. Existen dos formas de aproximación. La aproximación a K decimales, por truncamiento o poda consiste en simplemente en eliminar lo dígitos de orden k>k+: K x = ± a k 0 N k = a k 0 N k La aproximación a K decimales, por redondeo consiste en eliminar los dígitos de orden k > K + y -si0 a k+ < 5, no se modifica el último dígito a k K x = ± a k 0 N k = a k 0 N k -si5 a k+ 9, se aproxima: x = ± 0 N K a k 0 N k = a k 0 N k +0 N k Lo que supone: -Si el último dígito a k < 9, se incrementa a k +. -Si a k = 9, se reemplaza por 0 y se modifica el dígito anterior, y así sucesivamemte. Ej: - Aproximamos π = 3.4596535897... a cinco dígitos por truncamiento: π = 3.45. - Aproximamos π = 3.4596535897... a cinco dígitos por redondeo: π = 3.46. - Aproximamos x =.9898... a tres dígitos por truncamiento: x =.9. - Aproximamos x =.9898... a tres dígitos por redondeo: x =.30. - Aproximamos x = 0.0004798... a tres dígitos por truncamiento: x = 0.00047. - Aproximamos x = 0.0004798... a tres dígitos por redondeo: x = 0.00048. Error de truncamiento: Error de redondeo: trunc x = red x = k=k+ k=k+ a k 0 N k < 0 N K a k 0 N k c< 0N K donde c =0sia K+ < 5yc =0 N k si a K+ 5. Si se redondea a K decimales se aseguran, la menos m = K decimales significativos. Éstos incluyen a los eventuales ceros a la izquierda. Ej: - Si aproximamos π = 3.4596535897... a cinco dígitos por truncamiento, π = 3.45. Teniendo en cuenta que en la representación N = y se toma K = 5 El error es π = (9.6...) 0 5 < 0 4 =0 N K - Aproximamos π = 3.4596535897... a cinco dígitos por redondeo, π = 3.46 tenemos m 4 decimales significativos, teniendo en cuenta que K = 5. - Aproximamos x =.9898... a tres dígitos por redondeo, x =.30, tenemos m dígitos significativos.
Si se opera en otra base, se mantiene la propiedad anterior: si se redondea a K digitos se aseguran, la menos m = K digitos significativos, en la correspondiente base. 4. Propagación del error Al operar con número aproximados, se obtienen resultados aproximados. El error de los datos se propaga a los resultados. Esto debe tenerse en cuenta simpre que se emplean métodos numéricos. Cómo se estima? Cómo podemos saber si un procedimento de cálculo proporciona resultados razonables? En general, no es sencillo estimar los errores del resultado de una operación. Propiedades básicas: ysia 0y0< b < c : Se deduce, para la suma o diferencia: a ± b a + b ab = a b a b a b a + b a + c a b < a c x y (x ± y) x + y Para el producto, una relación análoga para los errores relativos: Una cota para el error relativo de la suma es: δx δy δxy δx + δy x y x + y δ(x ± y) x + y x y En ciertas operaciones se pueden cometer errores relativos considerables y pérdida de cifras significativas. Debe tenerse en cuenta: Cuando se restan dos números, del mismo signo y aproximadamente iguales pueden perderse cifras significativas. Ej: x = 0.333333 y y = 0.333330, son valores exactos, con 6 cifras significativas. Entonces x y =3 0 6, un resultado exacto, con sólo una cifra significativa. Cuando se multiplican números aproximados, conviene que ambos factores tengan el mismo número de cifras significativas, para preservar el mismo número de cifras significativas del resultado. Si se opera con cifras significativas dispares p>q, en el resultado se obtiene, aproximadamente, el menor número de cifras q. En el resultado pueden aparecer cifras no significativas. En tal caso corresponde redondearlo a q + decimales. Ej: π = 3.46 con p = 4 cifras significativas. Se aproxima =.4, con q = cifra significativa. Si multiplicamos z = π = 4.4488938... Multipilcando las aproximaciones, obtenemos 3.46.4 = 4.3984. El resultado tiene sólo una cifra significativa. Redondeamos a dos dígitos: z = 4.4. Si tomamos ahora =.44, con q = 4 cifras significativas, y multiplicamos 3.46.44 = 4.448507. Tiene q = 4 cifras significativas. Si redondeamos a q + = 5 dígitos, obtenemos z = 4.449. Si redondeamos el resultado exacto de la misma forma, obtenemos el mismo resultado. Se preserva el número común de cifras significativas.
Cuando opera con operaciones sucesivas, redondeando en cada paso, se acumulan los errores. La aproximación del resultado final puede variar substancialmente dependiendo del método o el algoritmo. Ej: La fórmulas siguientes son algebraicamente equivalentes: z = x ( x + x ) = x x ++ x Se desea evalar la fórmula para x = 000. El resultado exacto es z = 5.807437... -Aplicamos el método I, usando la primera fórmula, redondeando en cada paso a 6 decimales, cuando deba aproximarse: 00 = 3.63858... 3.6386. 000 = 3.677... 3.68. 3.6386 3.68 = 0.058 000 0.058 = 5.8 Compramos el resultado obtenido con el exacto y comprobamos que tiene m = 3 cifras significativas. -Aplicamos el método II, usando la segunda fórmula, redondeando en cada paso a 6 decimales, cuando deba aproximarse: 00 = 3.63858... 3.6386. 000 = 3.677... 3.68. 3.6386 + 3.68 = 63.64 63.64 = 0.0580747... 0.058074 000 0.058 = 5.8074 Comparamos el resultado obtenido con el exacto y comprobamos que preserva m = 5 cifras significativas. Se pueden estimar los errores de la fórmulas a partir de su desarrollo de Taylor de primer orden: -Six = f(x), de donde se deducen las estimaciones: z = f(x) = f( x)+f ( x)(x x) z = f(x) f( x) = f ( x) x δz = f ( x) x f( x) - En el caso de operaciones binarias, si z = F (x, y): de donde se deducen las estimaciones: z = F (x, y) = F ( x, ỹ)+ F ( x, ỹ).(x x, b ỹ) z = F (x, y) F ( x, ỹ) = F ( x, ỹ) ( x, y) δz = F ( x, ỹ) ( x, y) F ( x, ỹ)
Ej: Se tiene sin(π/4) =. Se pretende calcular la raiz aproximando π/4 = 0.7854. En este caso, consideramos la función f(x) = sin(x) Entonces: = sin(0.7854) =.4466... La cota de error estimada es: = cos(0.7854)(π/4 0.7854) = 0.000006 Comparando los resultados:.4466... = 0.000005976... Acotando en las oparaciones sucesivas, a partir de datos y errores iniciales, puede estimarse el error final. Ej: -evaluar la fórmula: l t = π g donde se redondea π = 3.459... = 3.46, se mide l =.5, con l < 0.5 0 y se estima g = 9.8, con g < 0.5 0. Esto nos dice que: 3.455 π 3.46.495 l.505 9.805 g 9.85 Por lo tanto podemos acotar:.495.505 3.455 9.85 t 3.46 9.805.608... t.308....6 t.3 lo que nos da un intervalo de localización del valor exacto de t. En consecuencia, tomamos: t = (.6 +.3)/ =.85 con una cota de error: t (.3.6)/ = 0.005 5. Propagación del error computacional Las computadoras operan con sistemas posicionales, redondeando paso a paso. Por lo tanto, el error de redondeo se propaga a través de los cálculos. El error del resultado depende del algoritmo o programa de cálculo y del procesador, pero siempre existe.
Se comente error de truncamiento, cuando una serie se aproxima con una suma finita. + a k = K En el cálculo computacional sólo pueden calcular finitas sumas y frecuentemente se opera con series. En tal caso, los errores de redondeo se combinan con los de truncamiento. Ej: -Un método para calcular el número e es utilizar el desarrollo en serie: Operando paso a paso, redondeando a cinco decimales y truncando, hasta K = 8, se obtiene: e = + n=.0000.0000.5000.6667.7084.767.78.783.783 Las dos últimas aproximaciones son iguales y esta precisión no puede mejorarse. Con este criterio de redondeo, resulta para cualquier K 7. e = 7 n= n! = 8 n= n! a k n! = Un método o algoritmo es estable si la magnitud de los errores de los datos de entrada y de salida son semejantes. Es inestable si los resultados multiplican los errores de los de entrada. Ej: - El cálculo de raices puede ser inestable: (x ) = C Tomando C = 0, la raiz, doble, es z =. Si C =0 6, las raices son z =.9990... y z =.000... El error de las raices es del orden 0 3 siendo C =0 6. -El cálculo numérico de las derivadas por medio de diferencias también puede ser inestable. f (x) = Si f(x) = log(x), h = 0.0, el método se traduce en: K n= f(x + h) f(x) h n! log (x) = log(x + 0.0) log(x) 0.0 Para x = 0., estimamos log (0.) = 9.530. Para x a = 0.0, estimamos log (0.0) = 9.440. En este caso, x = 0.00. Por otra parte, el error del cálculo en la derivada es f = 0.094.