Anda di halaman 1dari 10

Mtodo de Newton

Cinthya Caldern, Ronnie Esparza, Laura Hurtado


Departamento de Ciencias Exactas, Universidad de las Fuerzas Armadas-ESPE
Sangolqu, Ecuador
Cmcalderon2@espe.edu.ec
raesparza@espe.edu.ec
lghurtado1@espe.edu.ec

Abstract This document presents Newton's method is


an iterative method for finding roots of nonlinear
functions from an initial value. He describes the method
and some considerations to apply correctly presented . A
general algorithm for implementation and developed it
as a function in Matlab also included.

x k+1=x k

f (x k )
f ' ( x k)

Hasta que la diferencia

x k+1x k

sea muy

cercana a cero, para lo cual se establece una tolerancia a


criterio del usuario. Ver [1].

Keywords : iterative , continuity, differentiable , nonlinear function , convergence.

El algoritmo se ilustra grficamente en la figura 1 . Para


Resumen El presente documento presenta el mtodo de
Newton que es un mtodo iterativo para hallar races de
funciones no lineales a partir de un valor inicial. Se
describe al mtodo y se presentan algunas
consideraciones para poder aplicarlo de forma correcta.
Tambin se incluye un algoritmo general para su
implementacin y el mismo elaborado como una funcin
en Matlab.
Palabras Clave: iterativo, continuidad,
funcin no lineal, convergencia.

derivable,

I. INTRODUCCIN
Tambin conocido como el mtodo de Newton-Raphson
se trata de un mtodo eficiente para encontrar la solucin
de una ecuacin del tipo

f ( x )=0 . Es un mtodo

iterativo en el cual se parte de un valor inicial

xo .

II. DESARROLLO DE CONTENIDO


A. Definicin
Se utiliza para resolver ecuaciones de la forma

f ( x )=0

El

aproximacin inicial

mtodo

consiste

en

elegir

x 0 y realizar la iteracin:

una

el valor inicial

tangencialmente por

x 0 , se traza la lnea que pasa


x

0
,
f ( x0 ) ) . La interseccin de
(

la lnea tangencial con el eje

es

x1 . A

continuacin, se traza la lnea que pasa tangencialmente por

( x 1 , f ( x1 )) . Este procedimiento se repite utilizando el


valor ms actualizado como estimacin para el siguiente
ciclo de iteracin, as hasta que se cumpla el criterio de
parada mencionado anteriormente. Ver [2].

Y y 1=m ( X x 1 )
Y f ( x n)=m( X xn )
Y f (x n)=f ' ( x n ) (X x n)
(1)
Sustituyendo el punto

( x n+1 , 0)

en (1)

0f ( x n )=f ' ( x n ) ( x n+ 1x n)
f ( x n)
=x n+1 xn
'
f ( xn )

Fig. 1. Mtodo de la Biseccin.

B. Demostracin

x n+1=x n

Para emplear el mtodo de Newton es necesario


tener una aproximacin

xn

a la raz

de

f (x) .

As se obtiene la frmula iterativa de Newton-Raphson

Trazando una recta tangente a la curva


el punto

f (x n)
f ' ( xn )

f ( x ) en

para calcular las races de la funcin

(x n , f ( x n)) , al tener esta recta, sta corta

x n+1=x n

x n+1 .
al eje x en un punto

f ( xn)
'

f ( xn )

f ( x) .

, f ' ( xn) 0

Para calcular el valor de este punto, se parte de la


ecuacin de la recta que se encuentra interpolada en los
puntos

x n y x n+1 en el eje x

Al tener una recta que corta por dos puntos, se


puede encontrar la pendiente de la misma. Sabiendo
que la primera derivada de una funcin es la pendiente.

y y
f ( x n )=m= 2 1
x 2x 1

Fig. 2. Demostracin Geomtrica Newton-Raphson.

'

Con el valor de la pendiente se reemplaza el valor en la


ecuacin de la recta que pasa por el punto

(x n , f ( x n)) , se tiene:

Una forma alternativa de obtener la frmula


iterativa del mtodo de Newton, es mediante el desarrollo de
la funcin

xn .

f (x)

en serie de Taylor alrededor del punto


f ( xn )
f ( xn )
f ( xn )
2
n
xx n )+
xx n ) ++
x xn )
(
(
(
1!
2!
n!
'

f ( x )=f ( xn ) +

''

(n)

Con las anteriores consideraciones se tiene


que:

f ( a ) . f '' ( a ) >0 f ( b ) . f ' ' ( b ) > 0


Al truncar el desarrollo de la serie en el trmino de segundo

x n+1 .

grado, se puede evaluar

Siendo

'

f ( x n+1 ) =f ( x n ) +

f ( xn)
( xx n )
1!

x n el extremo del intervalo que cumpla con

el producto positivo anterior. Entonces existe un nico

x n [ a ,b ] f ( xn ) =0
converge a

es por esto que la sucesin

xn .

C. Convergencia del Mtodo


En este mtodo no se tiene un teorema de
convergencia global. La convergencia depende de la

x n . Se proponen las siguientes

eleccin inicial de

condiciones para que dentro del intervalo elegido


exista una nica solucin y el mtodo converja en ella.
2
Se debe partir de una funcin f ( x ) C [a , b]

, esto quiere decir que

f (x)

debe ser derivable al

menos dos veces y contina en el intervalo dado.

[a ,b ]

Se debe escoger un intervalo

en

cual se cumpla el Teorema de Bolzano, para


que con esto se asegure de que existe al
menos una raz dentro del intervalo.

f ( a ) , f (b) con signos diferentes.

D. Teora de Errores
Se puede demostrar que el mtodo de Newton tiene
convergencia cuadrtica: si

es raz:

|x n+1| C|x n|

Para una cierta constante C. Esto significa que si en algn


momento el error es menor o igual a 0 o 1, a cada nueva
iteracin, se dobla aproximadamente el nmero de
decimales exactos.
Error Relativo entre aproximaciones sucesivas.

x n+1
|x n+ 1|
E=

f ( a ) f ( b ) <0
E. Ventajas y Desventajas

La primera derivada de
diferente

[a ,b ]

de

cero

f ( x)

dentro

del

debe ser
intervalo

f ( x ) 0, x [a , b]

f (x)

no debe

dentro del

intervalo

La segunda derivada de
cambiar

de signo

[a ,b ] .

Una de las principales ventajas del mtodo de Newton es la


mayor velocidad de convergencia respecto de otros mtodos.
Sin embargo, existen situaciones donde este mtodo se
comporta en forma ineficiente. Esto sucede, por ejemplo,
cuando la aproximacin inicial r 0 est demasiado lejos de la
raz deseada y la sucesin {rn} diverge debido a que la
pendiente f(r0) es pequea y la recta tangente a la curva
y=f(x) es casi horizontal.

Tambin, cuando el cero se halla en la vecindad de un punto


de inflexin, un mnimo o mximo local. De esta manera, no
hay un criterio general de convergencia para el mtodo de
Newton. Su convergencia depende de la naturaleza de la
funcin y de la exactitud del valor inicial.

Otra de las desventajas que presenta este mtodo es el clculo


de la derivada primera de f(x). En la mayora de los problemas
reales, la funcin f(x) est dada en forma tabular. Por esa
razn, es importante disponer de otros mtodos que no
requieran el clculo de f(x) pero que tengan algunas de las
propiedades favorables de convergencia del mtodo de
Newton.

2) Mtodo de la Secante: Se utiliza para resolver

elegir dos aproximaciones iniciales

f ( x 1 )=0 . Si esto ocurre el

mtodo termina; caso contrario; hacer:

x 0=x 1

y regresar al paso 2).


4)

Continuar con los pasos 2) y 3) hasta que

|xx 0|

H. Comparacin con los mtodos similares


A continuacin se comparan el mtodo de la biseccin
con el de Newton y de la Secante de acuerdo a la cantidad
de parmetros que se necesita para aplicar cada uno de ellos.
TABLA I
COMPARACIN CON OTROS MTODOS SEGN EL
NMERO DE PARMETROS PARA SU EJECUCIN.
Biseccin

G. Mtodos Similares
Existen otros mtodos similares para hallar los ceros de
una funcin o resolver ecuaciones de la forma

f ( x )=0 ,

intervalo
[a, b]
funcin
f(x)
error
-

dos de stos mtodos se enuncian a continuacin:

1) Mtodo de la Biseccin: Se utiliza para resolver


ecuaciones de la forma

f ( x )=0

x k+1x k sea muy

cercana a cero, para lo cual se establece una tolerancia a


criterio del usuario. El mtodo de la secante tiene la ventaja
de que no se debe derivar la ecuacin, es una forma
discretizada del mtodo de Newton. Ver [1].

f (x 0 )
f '(x 0 )

3) Comprobar si

y realizar la

f (x k )(x k x k1)
f ( x k )f (x k1 )

Hasta que la diferencia

2) Empezar el proceso iterativo:

x 1=x 0

x k+1=x k

x 0 , cercano a la raz

buscada y la tolerancia o error

x0 , x1

iteracin:

F. Algoritmo del Mtodo


Para una mejor comprensin de ste mtodo a continuacin
se proporciona una serie de pasos a seguir:
1) Definir el punto inicial

f ( x )=0 . El mtodo consiste en

ecuaciones de la forma

dentro de un intervalo

[a, c] donde se asegura la existencia de una raz mediante la


aplicacin del Teorema de Bolzano; el primer paso para
utilizar este mtodo es bisectar el intervalo [a, c] en dos
mitades; a saber, [a, b] y [b, c], donde b = (a + c)/2. Al
verificar los signos de f(a).f(b) y f(b).f(c), se localiza La
mitad del intervalo que contiene La raz. As, si f(a).f(b)0,
el intervalo [a, b] que incluye a x = a y x = b contiene a la
raz: en caso contrario, el intervalo [b, c] tiene La raz. El
nuevo intervalo que contiene a la raz se bisecta de nuevo. Al
repetir este proceso, el tamao del intervalo con la raz se
vuelve cada vez ms pequeo. En cada paso, se toma el
punto medio del intervalo como la aproximacin ms
actualizada de la raz. La iteracin se detiene cuando la
mitad del intervalo est dentro de una tolerancia dada

Newton

Secante

funcin f(x)

funcin f(x)

error

error

derivada f(x)
punto inicial x0 cercano
a la raz

punto inicial x0 cercano


a la raz
punto final x1 cercano a
la raz

De la tabla I nos podemos dar cuenta que el mtodo de


la biseccin necesita menos parmetros para su aplicacin
(un total de 3), en comparacin con los otros dos mtodos
que necesitan 4 parmetros cada uno. Otra ventaja es que no
se necesita de un valor muy prximo a la raz sino solo de
un intervalo donde sta se encuentra. Si bien todos los
mtodos necesitan de la funcin, ste tiene la ventaja si se
trata de una funcin muy complicada o cuyas derivadas sean
muy difciles de calcular.

Nmero de parmetros

Calculando la primera derivada de

f ( x )=3 x 2+ 4 x +7

Al tener el intervalo se encuentra los puntos en los cuales

[1.5, 1.7] .

existe cambio de signo y se tiene entre

N de
parmetros

2
1

Se escoger el valor de 1.5 para realizar las aproximaciones.

x n+1=x n

f (x n)
f ' ( xn )

1era iteracin.

x n+1=1.5

Grfico 1. Comparacin del mtodo de biseccin, newton y secante


segn el nmero de parmetros que necesitan para funcionar.

De acuerdo al orden de convergencia p:

2da iteracin.

x n+1=1.5822

1.

Mtodo de Biseccin es p=1.

2.

Mtodo de Newton-Raphson es p=2.

3.

Mtodo de la Secante es p=1.618.

x n+1=1

Se obtiene la raz

Orden de Convergencia
Newton

Secante

x=1.5801 para comprobar se tiene

TABLA II
TABLA DE ITERACIONES PARA EL EJERCICIO 1.
Iteracin
1
2
3

43%

Grfico 2. Comparacin del mtodo de biseccin, newton y secante


segn el orden de convergencia del mtodo.

f ( 1.5822 )
=1.5801
f ' ( 1.5822 )

f (1.5801)=0.0008 .

22%

35%

f ( 1.5822 )
=1.5803
'
f ( 1.5822 )

3era iteracin.

Cuanto mayor es el orden de convergencia ms rpido


converge el mtodo.

Biseccin

f ( 1.5 )
=1.5822
'
f ( 1.5 )

2) Siendo la ecuacin

Xactual
1.5822
1.5803
1.5801

x 2cos ( x )1=0

encontrar una solucin en el intervalo [1, 2].


Tomando como aproximacin inicial 1.5
'

I.

f ( x )=x 2cos ( x )1=0 y f ' ( x )=2 x+ sen (x)

Ejemplos
.
3

1) Siendo f ( x )=x +2 x +7 x20 , aplique el


mtodo de newton para encontrar la raz.

Las iteraciones serian:

Xanterior
1.5
1.5822
1.5803

x n+1=x n

x n2cos ( x n ) 1
2 x n + sen( x n )

f (x 0 )
f (1.5)
x 1=x 0
=1.5
=1.2049
f '( x 0 )
f '(1.5)
x 2=1.2049

f (1.2049)
=1.1767
f ' (1.2049)

x 3=1.1767

f (1.1767)
=1.1766
f ' (1.1767)

x 3=1.1766

f (1.1766)
=1.1765
f ' (1.1766)

Se puede ver que la raz tiende a 1.1765 ya que es una


valor que en las iteraciones se repite.

De este ejemplo se obtiene que la raz de la funcin


estar prxima a x= 1.17650193990183.

TABLA III
TABLA DE ITERACIONES PARA EL EJERCICIO 2.
Iteracin
Xactual
1
1.2049
2
1.1767
3
1.1766
4
1.1765
III. IMPLEMENTACIN EN MATLAB
A. Algoritmo de Programacin
El siguiente algoritmo calcula, grafica la raz, y
muestra el nmero de iteraciones a partir de una raz
aproximada dada por el usuario, una vez que ingres la
funcin, se pedir que ingrese el dominio de la misma, se la
graficar para ayudar al usuario a escoger la raz ms
prxima a la que desea obtener, una vez observada la grfica
se pedir una primera aproximacin y se pedir un error para
empezar el mtodo:

clc %limpiar pantalla


clear %elimina todas las variables
anteriorres
%Variables simb?licas para evaluar las
funciones
syms f a k x b p x1 x2 e n
%T?tulo
fprintf('\n\n-------------------*****M?
todo de NewtonRaphson*****-------------------\n\n')
%Par?metros de entrada
g=input('Ingrese la funcion: f(x)=');
f=g;
fprintf('\n Ingrese el dominio de su gr?
fica:\n') %Aviso de ingreso de gr?fica
%Ingreso del dominio de la funci?n
xmini=input('Ingrese el extremo
izquierdo del dominio: x_0 =');
x1=xmini;
xmaxi = input('Ingrese el extremo
derecho del dominioo: x_f =');
x2=xmaxi;
%Grafica la funci?n en el dominio
ingresado
f1=ezplot(f,[-2+x1,2+x2]);
set(f1,'color','r')

title('Mtodo de Newton-Raphson')

Xanterior
xlabel('x')
ylabel('y=f(x)')
1..2049
grid on;
1.1767
hold on
1.1766

%Inreso de la primera raiz aproximada


x0=input('Ingrese su primera aproximaci?
n a la ra?z: x0 =');
a=x0;
%Ingreso del error
K = input('Ingrese la tolerancia de
error: e =');
e=K;
NewtonR(f,a,e)

Ntese que para efectuar el mtodo se ha utilizado


una funcin, que corresponde al mtodo de NewtonRaphson como tal, que recibe como parmetros la funcin,
la primera ra aproximada y un error de tolerancia mnima,
es decir que operar hasta que el valor de la raz encontrada
sea menor que esta tolerancia e, adems muestra una matriz
de iteraciones con datos de cada iteracin, incluyendo los
valores de las races evaluadas y el tiempo de ejecucin de
cada iteracin:
function [raiz] = NewtonR(f,xo,e)
%recibo como parametros la funcion, el
punto inicial cercano a la ra?z y el
error
% para que funcione tengo que poner en
la comand window:
% Ejm:
% syms x
% f=x.^3-6*x.^2+8*x
% NewtonR(f,1,0.0001)

syms x
% mi funcion original
g=f;
% derivo la funcion
h=diff(g,x);
%mi punto inicial
a=xo;
%la matriz de iteraciones:
M=[];
%el vector de promedios
vprom=[];
%substituyo los valores en mi funcion
original
% y en la derivada para usarlos despues
z=subs(g,a);
w=subs(h,a);
%Veo si le atine a la raiz ^_^
if z == 0
disp('el valor ingresado es la ra?z')
raiz=z;
%Veo si me sale alguna indeterminacion
elseif w == 0
disp('el valor de la derivada en ese
punto es cero')
disp('busque otro punto para la
aproximaci?n')
raiz=NaN;
else
%inicio el contador
cont = 1;

%Para el tiempo de ejcucuci?n


tic; %inicia el timer
%sino aplico la formuoli de newton
c=a-(subs(g,a))./(subs(h,a));
% calculo el valor de la 1era
iteracion
z=subs(g,c);
tiempo=toc; %finaliza el timer
M(cont,:)=[cont a c subs(f,x,c)
abs(subs(f,x,c)) e tiempo];
vprom=M;
%comparo para ver si entro al bucle,
sino ya esta ^_^
while abs(z) > e
%aumento el contador
cont = cont+1;
tic; %inicia el timer
% c es mi nuevo punto a evaluar
a=c;
% calcula con la formuoli
c=a-(subs(g,a))./(subs(h,a));
% sustituyo el valor para
comparar al repetirse el bucle
z=subs(g,c);
tiempo=toc; %finaliza el timer
M(cont,:)=[cont a c subs(f,x,c)
abs(subs(f,x,c)) e tiempo];
vprom=vprom + M(cont,:);
end
raiz=c;
end
plot(raiz,0,'o')%Grafica la ra?z en la
funci?n
%Imprime la matriz de iteraciones
fprintf('\n-------------------MATRIZ DE
ITERACIONES-------------------\n')
fprintf('\n--------n?
x0
x
f(x)
|f(x)|
e ingresado
t. de
ejecuci?n[s] --------')
M %Imprime la matriz
fprintf('\n------------------PROMEDIOS-------------------\n')
vprom=vprom/cont; %calcula el vector de
promedios
vprom %Imprime el vector de promedios
fprintf('-----------------------------------------')

B. Comandos utilizados
En la tabla 2 se enlistan todos los comandos usados en la
elaboracin del algoritmo:

TABLA IV
LISTA DE COMANDOS UTILIZADOS EN LA
PROGRAMACIN
Coman
do

Descripcin

clear

Limpia todas las variables

clc

Limpia la pantalla

syms x t

Define variables simblicas x,t,

input

Muestra en pantalla un mensaje y recibe un valor ingresado por


teclado.

for

Bucle de repeticin. For desde i=1:con pase de: hasta N

if

Condicional

while

Bucle de repeticin segn se cumpla o no una condicin

subs

Evala en un punto a una funcin. subs(f ,x ,valor a evaluar)

disp

Muestra en pantalla un valor o una cadena de caracteres.

ezplot

Grafica una funcin de tipo simblica.

Swtich/
case

Efecta diferentes operaciones segn el valor de una variable


ingresada: case 1. , case 2,

end

Termina las sentencias de programacin

tic

empieza el contador en segundos

toc

Termina el contador en segundos

hold
on/off

Mantiene las grficas sin que se borren las anteriores

title

Ayuda a poner el ttulo de una grfica

xlabel

Ayuda a poner el ttulo del eje x

ylabel

Ayuda a poner el ttulo del eje y

legend

Asigna nombres a una ecuacin y se adjunta en la grfica.

fprintf

Imprime varios valores y cadenas de caracteres.

grid
on/off

Agrega o quita la grilla en la grfica.

C. Diagrama de Flujo
El siguiente diagrama de flujo corresponde ala funcin
del Mtodo se Newton-Raphson en general, sta recibe, al
funcin, la primera raz aproximada y el error; y devuelve la
raz aproximada (No se ha tomado en cuenta la matriz de
iteraciones):

D. Manual de Usuario
A continuacin se dan algunas indicaciones y
consideraciones para el correcto funcionamiento del
algoritmo. Una vez que haya corrido el cdigo, el programa
pedir el ingreso de una funcin f(x), esta funcin
necesariamente debe ser una funcin de x, y debe respetar la
nomenclatura de Matlab. Una vez ingresada la funcin se
pedir al usuario que ingrese el dominio de la funcin (que
es elegido por el usuario y la funcin se graficar en un
dominio por defecto de -2 unidades al valor de la izquierda y
+2 unidades al valor de la derecha para una mejor
visualizacin) , luego sta se grafica de manera que el
usuario puede identificar la raz mejor aproximada para
comenzar la operacin.

Captura de Pantalla 1. Ingreso y visualizacin de la grfica de la


funcin.

Una vez desplegada la grfica de la funcin se pedir al


usuario que ingrese la primera raz aproximada y el error
mnimo de tolerancia, este paso es crucial ya que si la
primera raz dista mucho de la que se quiere encontrar puede
hallar otras races y tomar ms iteraciones de las necesarias.

Captura de Pantalla 4. Visualizacin de la raz encontrada sobre la


grfica y visualizacin de la matriz de resultados.

Captura de Pantalla 2. Ingreso de la primera raz aproximada y la


tolerancia mnima de error.

IV.

Finalmente se desplegar una matriz de iteraciones


donde se muestra el nmero de iteraciones necesarias para
que el valor de la raz encontrada y evaluada sea menor al
error de tolerancia dado. La matriz contiene lo siguiente: el
nmero de iteracin, la primera raz, la segunda raz
calculada a partir de la frmula recursiva de Newton, el
valor de la raz calculada evaluada en la funcin, el valor
absoluto el valor de la raz calculada evaluada en la funcin,
el error ingresado y el tiempo de ejecucin de cada iteracin,
un vector donde se encuentran los promedios de todas las
iteraciones realizadas. Finalmente devuelve el valor de la
raz buscada.

CONCLUSIONES

El mtodo de Newton es el ms rpido para hallar


races de una funcin, sin embargo slo puede hallar
una raz a la vez y se debe dar un primer valor
cercano para su ejecucin.
El mtodo de Newton es el mtodo de mayor
convergencia de todos.
Sin embargo el mtodo no puede hallar races
imaginarias.
Para utilizar ste mtodo es necesario tener una
funcin f(x) continua y derivable sobre un intervalo
[a, b], donde se supone que existe una raz y un error
de tolerancia mayor que cero.
Se debe tener mucho cuidado con las funciones que
se desean evaluar ya que hay que asegurar que su
primera derivada sea distinta de cero ya que de lo
contrario no se podr aplicar ste mtodo.

REFERENCIAS
[1]

Annimo. (12 de Mayo de 2015). Teoremas de las Funciones


Continuas.
Obtenido
de:
http://www.fca.unl.edu.ar/Continuidad/3.3%20Teoremas%20de
%20las%20funciones%20continuas.htm

[2]

Nakamura, S.(1998). MTODOS NUMRICOS APLICADOS CON


SOFTWARE. Mxico: Prentice Hall Hispanoamericana.

[3]

Castro. C.(2014). Mtodos numricos bsicos para ingeniera con


implementaciones en Matlab y Excel. Bogot.

Captura de Pantalla 3. Visualizacin de la matriz de resultados.

Finalmente el programa desplegar la grfica de la


funcin en color rojo y la raz encontrada encerrada en un
crculo azul.

BIBLIOGRAFA
Mathews Curtis, J. D. (2000). Mtodos Numricos con MATLAB.Madrid:
Prentice Hall.
Mtodo
de
Biseccin.
http://www.ma3.upc.edu/users/carmona/teaching/clases/0809/trabajos/metodo%20biseccion.pdf

Recuperado:

Richard L Burden, J. Douglas Faires (2000), "Numerical Analysis, (7th


Ed)", Brooks/Cole.

Daz Benitez, J. F. (1998). Introduccin a los mtodos numricos para la


resolucin de ecuaciones. Universidad de Cdiz.

Anda mungkin juga menyukai