domingo, 12 de febrero de 2017

método Newton Raphson

Joseph Raphson. Un gran admirador de Isaac Newton. De hecho, gracias a sus traducciones del trabajo de Newton, se logró entender con mucha más facilidad lo que Newton quería decir. Fue así que Raphson desarrolló un método muy parecido al “método de fluxiones” de Newton. La versión de Raphson fue más simple, y generalmente se le considera como superior. Ahora lo conocemos como el método Newton Raphson.


  • Introducción y antecedentes (para qué sirve y qué resuelve) del método
Hablé ya antes sobre el método de bisección, incluyendo sus ventajas y desventajas. Newton Raphson es un método distinto para el mismo fin: encontrar raíces de una función.

  • En qué consiste el método
¿Cómo lo hace? Al igual que bisección, con recursión. Repite el mismo proceso muchas veces hasta llegar, o acercarse lo suficiente, a un resultado. A diferencia de bisección, este es un método abierto, lo que significa que no necesita un rango dentro del cual se encuentre la raíz… Newton Raphson necesita solamente una aproximación inicial.
Después de checar si la aproximación inicial es una raíz (¡el mejor de los casos!) o está muy cerca a serlo, el método evalúa la derivada de la función en la aproximación inicial. La línea tangente en este punto cruza el eje X en algún punto (siempre y cuando su pendiente sea diferente a cero).
Esta nueva aproximación se calcula de la siguiente manera:
Este punto donde la tangente cruza el eje es tomado como la nueva aproximación, y el método comienza a repetirse y repetirse hasta encontrar o acercarse lo suficiente a una raíz.
  • Requisitos previos del método
Se necesita de una aproximación inicial. Además de la función, necesitaremos su derivada.
  • Diagrama de flujo

  • Criterio de detención del método
Como lo mencioné anteriormente, el mejor de los casos sería que la aproximación inicial sea una raíz. En ese caso, ¡ya tenemos la raíz!
La mayoría de las veces no será así, y lo que el método hace es checar si el error aproximado es lo suficientemente pequeño. Este error aproximado se calcula de la siguiente manera:

  • Código fuente

  • Pruebas y resultados con casos de éxito, casos de falla y casos frontera
Todo parece excelente. Este método funciona y tiene una velocidad de convergencia mayor a la del método de bisección. Pero este método tampoco es perfecto… como todo, tiene sus ventajas y desventajas.
Basarse en la línea tangente de cada punto puede ser un arma de doble filo… qué tal que la tangente en un punto me vaya alejando cada vez más de la raíz (divergencia), u oscile infinitamente, o la pendiente en el punto tenga de pendiente cero? esa línea nunca cruzaría el eje X, y no tendríamos donde hacer nuestra siguiente aproximación.
Intentemos, por ejemplo, dar como aproximación inicial x=0 para encontrar la raíz en sin(x). La tangente en ese punto es cero y la línea tangente diverge.
O bien, consideremos solo la ineficiencia que el método puede tener: demos como aproximación inicial 1.91 ...aquí, el método hace múltiples iteraciones, y en lugar de encontrar la raíz más cercana (3.141516), se aleja hasta aproximádamente la raíz en x=53.4; un caso típico de “root jumping”.

  • Conclusiones
Este método utiliza una técnica muy diferente a la de bisección. Sin embargo, también tiene sus casos de error y limitaciones. Es importante considerar su velocidad de convergencia y que como método abierto, solamente necesita una aproximación inicial.

  • Bibliografía:


Carlos Emmanuel Martell Aviña. A01225920.

lunes, 6 de febrero de 2017

método bisección


Déjenme platicarles sobre un método numérico: el método de Bisección. ¿Para qué? ¿De qué me serviría? Sucede pues, que este método (bajo ciertas limitantes y posibles casos de error) nos indica el cruce que una función tiene con el eje X dentro de un rango dado. ¿Ahora suena interesante? Analicemos un poco más qué es este método y cómo funciona.



  • Introducción y antecedentes (para qué sirve y qué resuelve) del método
Este método sirve para encontrar cruces con el eje X (que llamaremos raíces) de una función. Para dar con una respuesta, repetiremos el mismo procedimiento las veces que sean necesarias, recursivamente.

  • En qué consiste el método
¿Cómo lo hace? Algo fundamental que sucede (casi siempre) cuando hay una raíz es que la función pasa de tener valores positivos en Y a valores negativos. Entonces, cuando la multiplicación de la función evaluada en un punto por la función evaluada en otro punto resulta en un valor negativo significa que hubo, al menos, una raíz.
Supongamos, entonces, que se nos da un rango en el cual encontrar raíces. Lo primero que hacemos es evaluar la función un uno de los 2 extremos y multiplicar ese valor por la función evaluada en el otro extremo. Si esta multiplicación resulta en un valor negativo, entre ellos hay una raíz... pero no sabemos exactamente en dónde está.
Para encontrar este valor, encontramos un punto medio entre los dos extremos y después identificamos en cuál de las 2 mitades está el cruce. De la mitad en donde identifiquemos el cruce, se manda llamar al mismo método con nuevos parámetros, los extremos de esta mitad identificada.
Así, el método irá identificando mitades y mitades cada vez más pequeñas hasta que un punto medio evaluado en la función esté ya muy cercano al eje X. En ese momento, identificamos a ese punto como un cruce y el método regresa ese valor.

  • Requisitos previos del método
Para que este método funcione, se necesita que los extremos pasados como parámetros sean de un rango donde ciertamente haya un cruce (que estén en lados contrarios del eje Y). De lo contrario, el método creerá que en el rango indicado no hay raíces.
También consideremos que aunque ambos extremos dados estén del mismo lado del eje Y y su multiplicación resulte en un valor positivo, puede haber cruces. Una función puede cruzar más de una vez el eje X y volver al mismo lado del eje Y, como se mencionará más adelante.

  • Diagrama de flujo

  • Criterio de detención del método
Aún en las condiciones adecuadas, el método tiene un rango de error: los rangos dentro de los cuales se determina que ya es raíz y detener la recursión… este número podría ser infinitamente pequeño y nunca podrá ser totalmente preciso. Es así, que mi rango de error es de 0.0000000000000001

  • Código fuente


  • Pruebas y resultados con casos de éxito, casos de falla y casos frontera
Consideremos, por ejemplo, la función x^2. Esta función tiene, claramente, una raíz en x=0. Sin embargo, aun si buscamos por raíces dentro del rango [-2,2] nuestro método vería que ambos extremos tienen valores positivos en Y y determinaría que no hay raíz.
Si consideramos, ahora, la función (x^2)-1 y evaluemos dentro del mismo rango, nuestro mètodo tampoco encontrará raíces. Aun cuando realmente hay 2 raíces en este rango. Para que el método encuentre una raíz tendríamos que cambiar el rango a algo como [-2,0] o [0,2]. Por lo tanto, las probabilidades de error en nuestro método aumentan con funciones de potencias par.

  • Conclusiones
Este método puede llevar a respuestas correctas, pero requiere de ciertas características en su forma de uso. Y aun siendo usado de la manera correcta, existe un margen de error que no podemos ignorar. Sin duda, para usar este método necesitamos conocer algunos aspectos básicos de cómo luce nuestra función gráficamente y mandar como parámetros a la función valores aproximados.

Espero que esto te haya servido de algo! Estaré publicando sobre varios otros métodos numéricos.

Carlos Emmanuel Martell Aviña. A01225920.