Sie sind auf Seite 1von 25

E L B LO G D E P R O G R A M AC I N PA R A

INGENIERAS

INICIO / ACERCA DEL


/ MATLAB / SCILAB / C++ / JAVA / LINUX /
AUTOR

ARDUINO / MXIMA

Mtodo de Newton
Follow @Coder_Insid3

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Raphson (Newton-
ESTADSTICAS DEL BLOG

687,955 Get Your Own

Fourier) en Matlab Real Time Visitor Map!

31 DICIEMBRE, 2013 / JULIO CSAR

SIGUENOS EN FB
[Recuerda que en este Blog los enlaces para la descarga del
cdigo se encuentran al final del artculo.] Ciencia y
1624 Me gusta

Cuando hablamos de mtodos numricos o anlisis numrico es


Me gusta esta pgina
imposible no nombrar el mtodo de Newton-Raphson tambin
conocido como mtodo de Newton-Fourier, este mtodo es del S el primero de tus amigos
en indicar que le gusta esto.
tiempo abierto ya que su convergencia no est garantizada y
depende de una buena estimacin inicial de la raz y de la
naturaleza propia de la funcin f(x) sabiendo entonces que si la
funcin presenta varios punto de inexin o pendientes muy
grandes cerca de la raz a encontrar entonces la probabilidades COMENTARIOS RECIENTES

de que el mtodo finalmente diverja comienzan a aumentar. LINA en Programar


Arduino en
CodeBlock
(de una sola variable, aunque en estradas siguientes veremos Erik D en Mtodo de
la Secante en Scilab
generalizaciones para varias variables)
Maria Fernanda
Blanc en Preparar
El funcionamiento del mtodo es relativamente sencillo, Ubuntu para
Trabajar
obviamente el primer paso es denir la funcin F(x) que se quiere

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


analizar y luego una estimacin X n de la raz que esperamos Libardo llanos cruz en
Cmo Calcular la
encontrar, con lo anterior se dene entonces la coordenada del Matriz de Tra
punto [Xn,F(Xn)] como se puede ver en la ngura 1, donde la
pendiente (m) de la recta en cuestin viene dada por la derivada Henry en La Clase
String y sus Mtodos
de la funcin evaluada en dicho punto es decir F'(Xn) entonces en
este caso el mtodo se basa en que el corte entre la recta
tangente y el eje X ofrece una nueva y mejor aproximacin a la
ENTRADAS RECIENTES
raz que se desea encontrar, es decir que el cort con el eje X ser
X(n+1) y el procedimiento descrito se repetir en varias Funciones de delay en C

ocasiones hasta encontrar un buen aproximado de la raz. para Linux


Instalar Calligra en
Linux Mint 17.2
Instalacin de Paquetes
Latex en Ubuntu y
Linux Mint
Preparar Ubuntu para
Trabajar con LaTeX
Instalar PlayOnLinux y
Wine en Ubuntu 14.04
y Linux Mint 17

ENTRADAS ANTERIORES

Elegir mes

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


NEWTON

Inicio
Acerca del Autor
Matlab
Scilab
C++
Java
Linux
Arduino
Mxima

Fig 1. Se traza una linea tangente a la curva en el punto [Xn,F(Xn)] con pendiente
m=F'(Xn) y el corte con el eje X ser la nueva aproximacin a la raz.

Entonces sea f una funcin derivable que se encuentra denida


en el intervalo real [a , b] y n el conjunto de nmeros naturales
(1,2,3,4,5,6) entonces partimos con un estimado inicial
X o entonces, la ecuacin propuesta en el mtodo para las
aproximaciones sucesivas son:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Donde f representa la derivada de la funcinf , y, Xn+1 la
aproximacin ms reciente a la raz buscada.

ALGORITMO EN MATLAB.

Teniendo en cuenta todo lo anterior, y tomando como base la


ultima ecuacin vamos a implementar el cdigo en Matlab que
nalmente nos permitir hallar las races que queremos
encontrar.

(Recuerden, como es usual el cdigo estar descargable al nal


del articulo).

Inicialmente lo primero que se debe hacer (cmo siempre) es


solicitar al usuario la entrada de la funcin a la cual se le quiere
calcular la raz, recordando definir la variable X como simblica:

A continuacin, aunque no es un paso necesario, siempre es


Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
bueno presentar una visualizacin del comportamiento de la
funcin, porque (cmo sabemos) la convergencia de este mtodo
de otros por el estilo se mejora cuando la estimacin es ms
aproximada a la raz real, en este caso hago un break en cuanto
al mtodo y le solicito al usuario un par de limites es los que
desee ver el comportamiento:

Continuando con la implementacin del mtodo y despus de


mostrar el comportamiento de la curva, podemos solicitarle al
usuario del programa que ingrese su estimacin, a la que
llamaremos X n y enseguida obtendremos la derivada de la
funcin Y obviamente con respecto a x cmo lo vemos en el
siguiente cdigo:

Recordemos que, cmo la mayora de mtodos que hemos visto


hasta ahora se basan en la iteracin y la estimacin del error,

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


pues Newton-Raphson no es la excepcin y lo que haremos a
continuacin ser crear el bucle en el que se llevar a cabo todo
el proceso, incluyendo obviamente la estimacin del error ya que
a su vez ser nuestra condicin de parada del siclo. (entrada
sobre calculo del error en mtodos numricos en matlab).

y este es el nal del mtodo numricoNewton-Raphson cmo


podemos observar es muy sencillo de implementar y bastante
potente, siempre hay que tener en cuenta la gran importancia de
una buena estimacin inicial ya que de ella depende que el
mtodo presente una mayo convergencia.

cmo se puede observar antes de comenzar las iteraciones en el


bucle while hay que inicializarlas para evitar que Matlab nos
presente errores de compilacin, en nuestro caso el error lo
inici en 1, aunque esto no tiene mucha importancia ya que solo
necesitamos que se cumpla la condicin de iteracin para que

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


posteriormente se calcule el verdadero errorOtro factor
importante es la tolerancia que quiere decir que tanto
permitimos el error en este caso quiero que el error sea 0.0001
menor, en realidad a la hora de visualizarlo en la command
window no se notar mucho la precisin en los decimales ya que
por defecto muestra solo 4 decimales, pero a nivel de las
variables si se toman todos, as que siempre es bueno tomar una
buena tolerancia para una mayor precisin en los clculos.

Finalmente te mostrar el funcionamiento de todo lo que dijimos


antes, para este caso queremos encontrar la raz aproximada de
la funcin f(x) = exp(x)-(1/x).

Entones despus de tener el cdigo y haberlo guardado con el


mismo nombre de la funcin (en este caso Newton_Raphson)
procedemos a llamarla desde la command window, al hacerlo ella
nos indicar que ingresemos la funcin.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Al hacer esto, el programa (opcionalmente) nos pedir un par de
limites para ver el comportamiento de la funcin y tomar una
buena decisin, en este caso tomaremos como limite superior 2 y
como inferior 0.5 y observaremos como se comporta en ese
sector:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Cmo podemos ver una de las diferentes races que presenta
esta funcin est cerca a 0.5, a modo de experimento tomaremos
la estimacin que nos pide el programa como 1 y esperamos el
resultado con una tolerancia de 0.00001:

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


en mi caso tengo Matlab congurado en este momento para que
me muestre esta cantidad de decimales por precisin, nalmente
como podemos ver el resultado que nos arroja el mtodo con la
precisin establecida es el nmero que aparece arriba y si
evaluamos este valor en la funcin obtendremos -2.4510^(-12)
lo que quiere decir que es una gran aproximacin a 0 (cero).
Recuerden que la tolerancia inuye en el tiempo de ejecucin del
programa, entre menor sea la tolerancia al error mas procesos se
llevarn a cabo para logar una buena aproximacin a la raz
esperada.

Finalmente quiero recordar la importancia de una buena


estimacin Xn para no tener inconvenientes con la convergencia
del mtodo.

Cmo tal vez hayan visto de artculos anteriores el archivo (.m)


de este mtodo se encuentra disponible aqu para su

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


descarga cmo pueden ver el cdigo es funcional y as es como lo
sub, sin embargo, si notan algn problema pueden comentar.

Tomarse el tiempo para comentar, es una forma de agradecer el


tiempo del autor para realizar este documento. Saludos

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Share this:

Twitter Facebook

Me gusta
S el primero en decir que te gusta.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Relacionado

Matlab, Mtodo de Mtodo de la Secante en Mtodos Abiertos,


Biseccin para Raices de Matlab (cdigo). Iteracin Simple de
Ecuaciones Punto Fijo Matlab

Matlab

CODIGO , DESCARGA , MATLAB , MTODOS , METODO

METODO DE NEWTON
, RAPHSON ,

METODO DE NEWTON RAPHSON METODOS


MATLAB , NUMERICOS ,

NEWTON-RAPHSON , NUMERICO , NUMERICOS ,

PROGRAMACION

Llamar funciones escritas en C Mtodo de la Secante en


desde Matlab Matlab (cdigo).

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


17 comentarios en Mtodo de
Newton Raphson (Newton-Fourier)
en Matlab

Pingback: Mtodo de la Secante en Matlab (cdigo). | El Blog de


Programacin para Ingenieras

Sandra

1 JULIO, 2014 EN 8:41 AM

Muy buen metodo y excelente explicacion!tengo la


version portable en este momento pero en cuanto pueda
lo pruebo en una version instalada. Estoy teniendo
problemas con la variable simbolica (syms) y supongo que
debe ser por eso que no me funciona.
gracias de todos modos!
saludos

RESPONDER

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


ingeniero12

6 JULIO, 2014 EN 2:22 PM

Hola @Sandra, gracias por comentar, si ests


teniendo problemas con la declaracin de
variables simblicas Syms seguro debe ser porque
es versin portable, hace tiempo me sucedi lo
mismo.

Saludos y gracias por tu comentario Sandra

RESPONDER

liga002

6 JULIO, 2014 EN 12:39 AM

buen programa disculpa una pregunta me sale la raiz


encontrada como fraccion como hago para q me salga no
en fracciones sino en una cifra xq en esa fraccion debo
convertirla a enteros
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
4870847/2178309. me sale asi
y deseo que me salga el resultado de esa fraccion

RESPONDER

ingeniero12

6 JULIO, 2014 EN 2:20 PM

Hola @liga002, el que aparezca en forma de


fraccin es por la versin que usas de Matlab que
seguramente es de la ms recientes, y tiende a
entregar los resultados de forma simblica para
que veas el nmero decimal hay varias formas, una
es modificar el archivo poniendo la funcin
double(Xn) al final del script y de est forma se
obliga a Matlab a volver la fraccin en decimal.

Espero que esto te sirva, saludos y gracias por


comentar.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


RESPONDER

Jonathan

7 SEPTIEMBRE, 2014 EN 10:58 PM

Buen metodo!!!! y gran explicacion


Saludos y muchas gracias

RESPONDER

Julio Csar

8 SEPTIEMBRE, 2014 EN 9:15 PM

Hola Jonathan, que bueno que te haya servido,


gracias por tu comentario, saludos.

Julio.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


RESPONDER

Maria

11 SEPTIEMBRE, 2014 EN 9:31 PM

Tenia idea del mtodo, pero no lo comprenda, gracias


por tu explicacin!

RESPONDER

Julio Csar

12 SEPTIEMBRE, 2014 EN 3:09 AM

Hola Maria, gracias por tu comentario, estamos


contentos de haber ayudado a que tuvieras una
mejor idea del mtodo esperamos seguir
hacindolo. Si tienes alguna sugerencia puedes
comentarnos.

Saludos.
Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf
Julio

RESPONDER

albert

17 SEPTIEMBRE, 2014 EN 12:09 AM

Esta super genial la explicacion.. gracias me es de mucha


ayuda

RESPONDER

Julio Csar

17 SEPTIEMBRE, 2014 EN 1:12 PM

Hola Albert, gracias por comentar y esperamos


poder seguir ayudndote, seguro hay ms artculos
que te sern tiles.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Saludos.
Julio.

RESPONDER

Fernand

25 OCTUBRE, 2014 EN 4:02 PM

Hola, qu tal?. Tengo un problema y es que el resultado


me lo da en funcin de sen y cos. No me queda el
resultado decimal o en fraccin. A qu se puede deber?

RESPONDER

Julio Csar

25 OCTUBRE, 2014 EN 5:27 PM

Hola @Fernand, gracias por comentar, lo que nos

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


comentas tiene que ver con las versiones ms
recientes de Matlab, en este caso dado que el
sofware retorna un resultado simblico debes
hacer uso de la funcin double() y entre parntesis
pones el resultado o la variable que contiene el
resultado, si aparece algn error no dudes en
comentar de nuevo.
Saludos.
Julio.

RESPONDER

Jorge Luis

7 ABRIL, 2015 EN 12:39 AM

muy buen aporte amigo, ya tenia el programa pero tu


explicacion y la manera para encontrar la raiz
aproximada esta BARBARO !

RESPONDER

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Julio Csar

7 ABRIL, 2015 EN 9:46 PM

Hola Jorge, gracias por tu comentario! esperamos


que los dems artculos en este sitio tambin te
resulten tiles.
Saludos y xitos.

RESPONDER

MaribelU

30 ABRIL, 2015 EN 11:38 AM

Muchsimas gracias por su ayuda con la explicacin del


mtodo, excelente

RESPONDER

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


Julio Csar

13 JUNIO, 2015 EN 9:29 PM

Gracias a ti Maribel por comentar, esperamos que


encuentres ms informacin til en el blog :D
Saludos.
Julio.

RESPONDER

Responder
Introduce aqu tu comentario...

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf


BLOG DE WORDPRESS.COM.

Convertido de web en PDF a http://www.htmlapdf.com con el api html a pdf

Das könnte Ihnen auch gefallen