Metodos Númericos cerrados

Embed Size (px)

DESCRIPTION

tipos de errores (errores de redondeo y truncamiento), en método cerrado tenemos el método de la falsa posición con su teoria y código en matlab

Citation preview

METODOS NUMERICOS

METODOS NUMERICOS

APROXIMACIONES Y ERRORES DE REDONDEO

1.-CIFRAS SIGNIFICATIVAS El concepto de cifras o dgitos significativos se ha desarrollado para designar formalmente la confiabilidad de un valor numrico. Las cifras significativas de un nmero son aquellas que pueden utilizarse de forma confiable. Se trata del nmero de dgitos que se ofrecen con certeza, ms uno estimado.2.-EXACTITUD Y PRECISIN Los errores en clculos y medidas se pueden caracterizar con respecto a su exactitud y precisin. La exactitud se refiere a que tan cercano est el valor calculado o medido del valor verdadero .La precisin se refiere a que tan cercanos se encuentran, unos de otros, diversos valores calculados o medidos.3.-DEFINICIONES DE ERROR Los errores numricos surgen del uso de aproximaciones para representar operaciones y cantidades matemticas exactas. stas incluyen los errores de truncamiento, y los errores de redondeo que se producen cuando se usan nmeros que tienen un lmite de cifras significativas para representar nmeros exactos. Para ambos tipos de errores, la relacin entre el resultado exacto, o verdadero, y el aproximado est dada por:

Valor verdadero = valor aproximado + error

Reordenando la ecuacin Ec.1, se encuentra que el error numrico es igual a la diferencia entre el valor verdadero y el valor aproximado esto es:

Ev = valor verdadero valor aproximado

Donde Ev se usa para redondear el valor exacto del error. Se incluye el subndice v para dar a entender que se trata del verdadero error.Un defecto es que muchas veces no se toma en consideracin el orden de magnitud del valor que se est probando. Por ejemplo, un error de un centmetro es mucho ms significativo si se est midiendo un remache que un puente. Una manera de medir las magnitudes de las cantidades que se estn evaluando es normalizar el error respecto al valor verdadero, como en:

Error relativo fraccional = error / valor verdadero

Donde:

Error = valor verdadero valor aproximado.

El error relativo tambin se puede multiplicar por el 100% para expresarlo como Ev = (error verdadero/ valor verdadero) 100; Donde Ev denota el error relativo porcentual. El subndice v significa la normalizacin del error al valor verdadero.

Para los mtodos numricos el valor verdadero nicamente se conocer cuando se habla de funciones que se pueden resolver analticamente. Sin embargo, en aplicaciones reales, no se conoce la respuesta verdadera. En estos casos, normalizar el error es una alternativa usando la mejor estimacin posible del valor verdadero, esto es a la aproximacin misma, como:

Ea = (error aproximado/ valor aproximado)/100

Donde el subndice a significa que el error est normalizado a un valor aproximado. Uno de los retos a que se enfrentas los mtodos numricos es el de determinar estimaciones del error en ausencia de conocimiento de los valores verdaderos. El error se calcula como la diferencia entre la aproximacin previa y la actual. Por lo tanto, el error relativo porcentual est dado porEa =abs(((aproximacin actual- aproximacin previa )/ aproximacin actual) 100)Si se cumple la relacin anterior , entonces se considera que el resultado obtenido est dentro del nivel aceptable, es decir, aun error previamente fijado(Es):Abs(Ea)

4.-ERRORES DE REDONDEO

El error de redondeo tiene que ver con el uso de mquinas que tienen memoria finita para representar magnitudes que tienen precisin infinita. Es tambin importante indicar que aunque el error de redondeo es inevitable puede reducirse utilizando algoritmos adecuados y ciertos trucos al momento de programarlos. Por ejemplo dependiendo del equipo que se est usando puede ocurrir lo que se muestra en la segunda columna de la siguiente tabla

Infinitas cifrasNmero finito de cifras[footnoteRef:1] [1: ]

=8

La representacin de doble precisin para los nmeros en punto flotante fijada por la norma ANSI/IEEE (ANSI/IEEE Standard 754-1985 for Binary Floating-Point Arithmetic), empleada tanto en MATLAB como en OCTAVE por defecto es un formato de 64 bits para la representacin de nmeros reales es de la siguiente forma, un bit para el signo, 11 bits para el exponente y los otros 52 para la mantisa.

Donde Potencias decrecientes de dos.

Potencias decrecientes de dosDe tal modo que

Recordemos que los valores de f pueden estn en el intervalo [0,1-2^-52]

Los valores extremos de e se reservan para dos valores especiales, el valor inferior para el cero y el superior para Inf

Se tiene que para la representacin mencionada se cumple: El nmero real positivo ms pequeo es

De modo que cualquier resultado ms pequeo (realmin en MATLAB) que est cantidad dar como resultado un error de underflow (o cero segn el entorno)

El mayor numero representable (realmax en MATLAB ) es

Cualquier resultado mayor a ste generar un error de overflow (o Inf segn el entorno). La distancia entre el 1 representado de forma exacta y el siguiente numero tambin representable de forma exacta (eps en MATLAB) se denomina generalmente psilon de la mquina esta dada por

El efecto que este tipo de error tiene sobre el resultado de un conjunto de operaciones depende de: Las operaciones que se realicen, existen operaciones ms sensibles a los errores de redondeo. Del orden de los clculos.Por ejemplo una operacin sensible a los errores de redondeo es la resta de dos cantidades muy cercanas. Debido a que el nmero de cifras significativas del resultado es menor que el de las cantidades que intervienen. Tambin es importante tener presente que la divisin por cantidades muy pequeas genera prdidas de precisin importantes.Para entender mejor el asunto concerniente a trabajar con una cantidad finita de nmeros de mquina, para representar a todos los nmeros reales, se supondr que los nmeros de mquina estn almacenados en formato flotante decimal normalizado esto es, y Para cada i=2,3..k. Los nmero de esta forma se llaman nmeros de maquina decimales con k dgitos.Cualquier numero positivo real positivo dentro del intervalo de la mquina se puede normalizar como

La forma de longitud finita para representar cualquiera de esos nmeros y denotada por fl(y), y que consisten en terminar la mantisa en k cifras decimales se puede obtener de dos formas. Truncamiento que consiste en cortar los ltimos dgitos de la mantisa con lo que se obtiene

La otra forma se llama redondeo y consiste en sumar 1 a si de y, y luego truncar el resultado para obtener

Si p* es una aproximacin de un nmero p, el error absoluto se define como |p-p*| y el error relativo es |p-p*|/|p| siempre que p sea diferente de cero.Por qu es ms significativo el error relativo al absoluto?Es ms significativo al tomar en cuenta el tamao del valor que se desea aproximar, para varios valores de errores absolutos se puede obtener el mismo error relativo por ello para cuestiones de precisin es mejor usar el error relativo.El nmero p* se aproxima a p con t cifras significativas si t es el mayor entero no negativo para el cual

Usando las anteriores definiciones en la representacin de nmeros en punto flotante podemos notar que el error relativo de la representacin fl(y) de y es

Lo cual d como resultado para una aproximacin de k cifras y utilizando truncamiento una cota de error 10^(-k+1).

Adems de los errores propios de la representacin de los nmeros en una mquina, la aritmtica realizada en ellas no es exacta y se puede representar para su estudio como sigue.

Lo anterior es, para saber el resultado de una suma de dos nmeros en una mquina con punto flotante de k cifras, se suman las representaciones y luego se realiza el truncamiento o el redondeo necesario. Es importante notar, que aunque para nuestra fortuna, los errores debidos al redondeo son cada vez menos problemticos, debido al uso de representaciones a 64 o incluso 80 bits, estos no deben pasarse por alto, sobre todo en los procedimientos que involucren una buena cantidad de clculos. A continuacin se muestran unos ejemplos de lo que puede salir mal al momento de trabajar con aritmtica finita (como para tener en cuenta!).Falla del Misil Patriot El 25 de febrero de 1991, durante la guerra del Golfo, una batera de Misiles Patriot americana en Dharan, Arabia Saudita, fall en la intercepcin de un misil Scud Iraqui. El Scud bombarde unas barracas del ejercito americano, matando a 28 soldados e hiriendo a aproximadamente un centenar de personas.

En el reporte GAO/IMTEC-92-26, titulado Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia, presentado por The General Accounting office, se informa sobre e la causa de la falla. Un clculo mal aproximado del tiempo en que debi ser disparado, debido a errores de redondeo en la computadora de tierra del misil. Especficamente, el tiempo en dcimas de segundos que se mide con el reloj interno del sistema, fue multiplicado por 1/10 = 0.1 para producir el tiempo en segundos. Este clculo fue realizado utilizando un registro de punto fijo de 24 bits el valor 1/10, el cual no tiene una expansin binaria finita, fue truncado a 24 bits despus fijar el punto. El pequeo error de redondeo cuando es multiplicado por un nmero bastante grande, como el que proporciona el tiempo en dcimas de un segundo, se convierte entonces en un error significante. De hecho, la batera Patriot estuvo en uso alrededor de 100 horas, y un clculo muy sencillo muestra que el error resultante en el tiempo se debi al incremento del error de truncamiento a cerca de 0.34 segundos.

Un Scud viaja a aproximadamente 1,676 metros por segundo, por lo que multiplicando esto por los 0.34 segundos, se tendra 569.84 metros, ms de medio kilmetro en este tiempo. Lo suficiente para que la llegada del scud estuviera fuera del rango del radar del patriot. La explosin del Ariane 5 El 4 de junio de 1996, un inmanejable cohete Ariana 5 lanzado por la Agencia Espacial Europea explot justamente despus de 40 minutos de haber sido lanzado de Kourou, Guyana Francesa. El cohete estaba en su primer viaje despus de 10 aos de desarrollo, el cual cost siete billones de dlares.El costo de la destruccin del cohete fue valuado en quinientos millones de dlares.

El consejo que tuvo a su cargo hacer la investigacin de las causas de la explosin, emiti despus de dos semanas un reporte indicando que la causa de la falla fue un error de software en el sistema de referencia inercial. Especficamente un nmero de punto flotante de 64 bits relacionado con la velocidad horizontal del cohete con respecto a la plataforma fue convertido a un nmero entero de 16 bits y era mayor a 32,767.

ERRORES DE TRUNCAMIENTO Y LA SERIE DE TAYLORSon aquellas que resultan al usar una aproximacin en lugar de un procedimiento matemtico exacto. La mayora de los mtodos numricos se basan en aproximaciones de las funciones mediante polinomios. La serie infinita de potencias que representa de manera exacta a una funcin dentro de un radio alrededor de un punto dado, es denominada LA SERIE DE TAYLOR, el cual se usa para desarrollar mtodos numricos; con excepcin de algunos pocos, se puede obtener un polinomio que aproxime a la funcin verdadera.La comparacin del desarrollo polinomial de la solucin numrica con la serie de Taylor de la solucin exacta nos permite evaluar el ERROR DE TRUNCAMIENTO.

SERIE DE TAYLOR La serie de Taylor proporciona un medio para predecir el valor de una funcin en un punto en trminos del valor de la funcin y sus derivadas en otro punto. Es decir: cualquier funcin suave puede aproximarse por un polinomio.DESARROLLO DE LA SERIE DE TAYLOR Funcin analtica: una funcin f(x) se dice analtica en x=a si f(x) se puede representar mediante una serie de potencias en trminos de c = x-a dentro de un radio de convergencia 0< | x-a | < D.Condicin necesaria de analiticidad de un punto: debe existir todas las derivadas de la funcin y ser continuas tanto en el punto como en un entorno alrededor de l. Un punto donde f(x) no es analtica recibe el nombre de un punto singular. Si f(x) es derivable en un entorno de xo excepto en xo es un punto singular de f(x).Desarrollo de una funcin f(x) en serie de taylor alrededor de :

REPRESENTACION GRAFICA DE LA SERIE DE TAYLOR , h=x-a

TEOREMA DE TAYLOR Teorema 1. Si f E cn+1 [a,b] entonces :

Donde x, c E [a, b], (x) E Intervalo entre x y c. Adems: La aplicacin de este teorema requiere f E C(x) y f E Ck(x)Error La serie de Taylor : reconstruccin exacta para un polinomio de orden n F(x) reconstruccin no exacta, cada termino contribuye

RESIDUO DE TAYLOR La prediccin de orden cero se obtiene al truncar la serie de Taylor : F(Xi+1) = F (Xi)Por lo tanto el termino residual est dado por : R0 =f(Xi)h +

DESARROLLO DE UNA FUNCION EN SERIE DE MAC LAURINEs el desarrollo de Taylor de la funcin alrededor del origen (a=0): F(x)= f(0) + xf(0) + Ejemplos:1. 2. Sen(x)= x + Dado que solo podemos incluir un nmero finito de trminos, en la prctica se procede a truncar o cortar la serie F(x) = f(a) + hf(a) + Donde h = x-a

ERRORES DE TRUNCAMIENTO1. Supongamos que se requiere determinar la velocidad de un objeto en el futuro a partir de la medida de la velocidad en el presente. Para esto desarrollaremos la velocidad usando la serie de Taylor: V(ti+1) = V(ti) + V(ti)(ti+1 ti) + 2. Si truncamos la expresin anterior solo hasta la primera derivada:

V(ti+1) = V(ti) + V (ti)(ti+1 ti) + R1 Y despejando la derivada: Donde: Aproximacion de orden 1 = Error de truncamiento = 3. De acuerdo con la serie de Taylor el error de truncamiento para la primera derivada de la velocidad est dado por: Es decir: Donde O() se emplea para indicar el orden. Es decir, el error de truncamiento de la primera derivada es del orden (o proporcional) del incremento empleado para calcularla.4. La derivada en un punto se puede determinar con la diferencia finita hacia atrs: Truncando la serie y despejando la primera derivada se tiene: 5. Otra forma alternativa de calcular la derivada es hacerlo mediante la diferencia finita central, para lo cual se resta:

Con lo cual se obtiene:

6. Se despeja f(x) y se obtiene:

Ejemplo: sea f(x), calcular f(1.01) con un error de e=0.00005 Hacemos xi=1 y h=.01 Tenindose las derivadas: Asi que: MTODO DE LA FALSA POSICINEl mtodo de la falsa posicin aprovecha la visualizacin grfica, consiste en unir y con una lnea recta. La interseccin de esta lnea con el eje de las x representa una mejor aproximacin de la raz. El hecho de que se reemplace la curva por una lnea recta da una falsa posicin de la raz; de aqu el nombre de mtodo de la falsa posicin, o en latn, regula falsi. Tambin se le conoce como mtodo de interpolacin lineal. Usando tringulos semejantes, la interseccin de la lnea recta con el eje de las se estima mediante:

Del cual podemos despejar

sta es la frmula de la falsa posicin. El valor de calculado con la ecuacin anterior reemplazar a cualquiera de los dos valores iniciales, o ,y da un valor de la funcin con el mismo signo de . De esta manera, los valores y siempre encierran la verdadera raz. El proceso se repite hasta que la aproximacin a la raz sea adecuada. El algoritmo es idntico al de la biseccin, excepto en que la ecuacin ya que ahora no se divide en dos al segmento si no se traza un recta uniendo las dos imgenes como lo podemos apreciar en la siguiente imagen.

Ejemplo:

Utilice el mtodo de la falsa posicin para determinar el coeficiente de arrastre c necesario para que un paracaidista de masa m = 68.1 kg tenga una velocidad de 40 m/s despus de una cada libre de t = 10 s. Nota: La aceleracin de la gravedad es 9.8 m/s2.

Solucin: Este problema se resuelve determinando la raz de la ecuacin usando los parmetros No haremos la descripcin como hallamos la siguiente ecuacin ya que la intensin es saber la el desarrollo del mtodo de la falsa posicin.

Podemos observar la grfica de la ecuacin de la cual nos podemos dar cuenta que la raz es en un rango entre 12 y 16, siguiendo un poco ms minuciosos nos damos cuenta que la raz es aproximadamente 14.5, ahora aplicaremos el mtodo de la falsa posicin para hallar la raz con un poco ms de exactitud.

Definimos los puntos entre los cuales puede estar la raz que deseamos obtener y .

Primera iteracin:

Que tiene un error relativo verdadero de 0.89 por ciento.

Segunda iteracin:

Por lo tanto, la raz se encuentra en el primer subintervalo y se vuelve ahora el lmite superior para la siguiente iteracin entonces .

Ahora vemos que cada vez se acerca para la raz es posible realizar iteraciones adicionales para hacer una mejor aproximacin de las races.

Se obtiene una idea ms completa de la eficiencia de los mtodos de biseccin y de falsa posicin al observar la siguiente figura, donde se muestra el error relativo porcentual verdadero de unos ejemplos, se puede apreciar la comparacin de dicho errores. Observe cmo el error decrece mucho ms rpidamente en el mtodo de la falsa posicin que en el de la biseccin, debido a un esquema ms eficiente en el mtodo de la falsa posicin para la localizacin de races.

Desventajas del mtodo de la falsa posicin

Aunque el mtodo de la falsa posicin parecera ser siempre la mejor opcin entre los mtodos cerrados, hay casos donde funciona de manera deficiente. En efecto, como en el ejemplo siguiente, hay ciertos casos donde el mtodo de biseccin ofrece mejores resultados.

Un caso en el que la biseccin es preferible a la falsa posicin:

Con los mtodos de biseccin y de falsa posicin localice la raz de entre 0 y 1.3.Usando biseccin, los resultados se resumen como sigue:

Grfica de la funcin, ilustrando la lentitud de convergencia del mtodo de la falsa posicin.

De esta manera, despus de cinco iteraciones, el error verdadero se reduce a menos del 2%. Con la falsa posicin se obtienen resultados muy diferentes:

Despus de cinco iteraciones, el error verdadero slo se ha reducido al 59%. El ejemplo anterior ilustra que, por lo comn, no es posible realizar generalizaciones con los mtodos de obtencin de races. Aunque un mtodo como el de la falsa posicin casi siempre es superior al de biseccin, hay algunos casos que violan esta conclusin general. Por lo tanto, adems de usar las ecuaciones para hallar la raz, los resultados se deben verificar sustituyendo la raz aproximada en la ecuacin original y determinar si el resultado se acerca a cero. Esta prueba se debe incorporar en todos los programas que localizan races.

El ejemplo ilustra tambin una importante desventaja del mtodo de la falsa posicin: su unilateralidad. Es decir, conforme se avanza en las iteraciones, uno de los puntos limitantes del intervalo tiende a permanecer fijo. Esto puede llevar a una mala convergencia, especialmente en funciones con una curvatura importante.

Falsa posicin modificada

Una forma de disminuir la naturaleza unilateral de la falsa posicin consiste en obtener un algoritmo que detecte cuando se estanca uno de los lmites del intervalo. Si ocurre esto, se divide a la mitad el valor de la funcin en el punto de estancamiento. A este mtodo se le llama mtodo de la falsa posicin modificado.El algoritmo dado en la siguiente figura lleva a cabo dicha estrategia. Observe cmo se han usado contadores para determinar si uno de los lmites del intervalo permanece fijo estancado durante dos iteraciones. Si ocurre as, el valor de la funcin en este valor de estancamiento se divide a la mitad.

La efectividad de este algoritmo se demuestra aplicndolo al ejemplo anterior de la funcin . Si se utiliza un criterio de terminacin de 0.01% el mtodo de biseccin y el mtodo estndar de falsa posicin convergern, respectivamente, despus de 14 y 39 iteraciones. En cambio el mtodo de la falsa posicin modificado converger despus de 12 iteraciones.

De manera que para este ejemplo el mtodo de la falsa posicin modificado es ms eficiente que el de biseccin y muchsimo mejor que el mtodo de la falsa posicin no modificado. A continuacin tendremos el seudocdigo del mtodo de falsa posicin modifica, el seudocdigo para el mtodo de falsa posicin sera parecido al de biseccin solo cambiaremos la ecuacin halla mediante tringulos semejantes a diferencia del mtodo de biseccin que fue partiendo en dos partes iguales al intervalo.

Adems de verificar una respuesta individual, se debe determinar si se han localizado todas las races posibles. Como se mencion anteriormente, por lo general una grfica de la funcin ayudar a realizar dicha tarea. Otra opcin es incorporar una bsqueda incremental al inicio del programa. Esto consiste en empezar en un extremo del intervalo de inters y realizar evaluaciones de la funcin con pequeos incrementos a lo largo del intervalo. Si la funcin cambia de signo, se supone que la raz est dentro del incremento. Los valores de x, al principio y al final del incremento, pueden servir como valores iniciales.

Un problema potencial en los mtodos de bsqueda por incremento es el de escoger la longitud del incremento. Si la longitud es muy pequea, la bsqueda llega a consumir demasiado tiempo.

Por otro lado, si la longitud es demasiado grande, existe la posibilidad de que races muy cercanas entre s pasen inadvertidas. El problema se complica con la posible existencia de races mltiples. Un remedio parcial para estos casos consiste en calcular la primera derivada de la funcin al inicio y al final de cada intervalo. Cuando la derivada cambia de signo, puede existir un mximo o un mnimo en ese intervalo, lo que sugiere una bsqueda ms minuciosa para detectar la posibilidad de una raz.

Aunque estas modificaciones o el empleo de un incremento muy fino ayudan a resolver el problema, se debe aclarar que mtodos tales como el de la bsqueda incremental no siempre resultan sencillos.

Ser prudente complementar dichas tcnicas automticas con cualquier otra informacin que d idea de la localizacin de las races. Esta informacin se puede encontrar graficando la funcin y entendiendo el problema fsico de donde proviene la ecuacin.

Programa hecho en matlab:

function root = falsepos(func,xl,xu,es,maxit)% falsepos(xl,xu,es,maxit):% utilizacin del metodo de la falsa posicin para hallar la raiz% de la funcin "func"% input"entradas":% func = ingresar la funcin% xl, xu = intervalos menor y mayor% es = (opcional) detener el programa con el criteior del error (%)...%...si no se coloca nada sera por defaul default = 0.001% maxit = (opcional) maximo numero de iteraciones...% si no se coloca nada sera por default = 50% output"saldias":% root = la raizif func(xl)*func(xu)>0 %si en el intervalo no hay cambio se signo...%...significa que no hay ninguna raiz en el intervaloerror('no hay raiz') %mostrar el mensaje y fin del programaend% valores por defaultif nargin