Skip to content

Método de newton-raphson

abril 28, 2011

La razón del nombre del blog viene dada por dos conceptos que me ayudaron a poder dar el salto entre problemas académicos y problemas reales.

Por un lado está newton, o el método de newton-raphson para resolver sistemas de ecuaciones no linealesde manera iterativa.

Y por otro, el lenguaje de programación Python.

Con estas dos herramientas pude dar éste salto cualitativo al tratar de resolver problemas.

El método de newton-raphson el la base para la resolución de numerosos problemas en el ámbito de la ingeniería. Desde resolver sistemas no lineales sencillos hasta llegar a la resolución de sistemas de ecuaciones diferenciales.

Así que nada mejor que comenzar con este método. Para ello, introduciremos primero las bases matemáticas del mismo, para proseguir con una sencilla implementación en Python.

Partiendo de una ecuación no lineal, este método propone la linearización de la función mediante su derivada en un punto dado, de modo que podemos resolver la nueva ecuación mediante métodos algebraicos y comprobar el error de la estimación. Aplicando esta metodología en sucesivos pasos podemos obtener una solución lo suficientemente aproximada de manera que nuestras expectativas de error sean alcanzadas.

Supongamos entonces una función no lineal de una sola variable (escalar) f(x), y la ecuación que determina la intersección de la función con el eje cartesiano x, f(x)=0.

Estimemos ahora una solución inicial para el problema, x_0 . Calculamos la derivada de la función en este punto, f'(x_0) , la nueva estimación de la solución vendrá dada por:

x_1=x_0-\frac{f(x_0)}{f'(x_0)}

El error cometido por esta estimación vendrá dado por:

e=f(x_1)

Esta expresión se comprende de mejor manera con el siguiente gráfico:

Hasta aquí el método para una función escalar. Pero también podemos emplearlo para una función vectorial.

Substituyendo la derivada por la matriz jacobiana, J(\vec{x}), obtenemos la siguiente expresion:

J(\vec{x_0}) \cdot (\vec{x_1}-\vec{x_0}) = -F(\vec{x_0})

ó

J(\vec{x_0}) \cdot (\vec{x_0}-\vec{x_1}) = F(\vec{x_0})

Resolviendo el sistema de ecuaciones lineales que tenemos podemos obtener una nueva estimación de la solución ya que:

J^{-1}(\vec{x_0}) \cdot F(\vec{x_0}) = \vec{y} = \vec{x_0}-\vec{x_1}

About these ads
No comments yet

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: