Uploaded by Zúñiga Romero M. Itandéhuitl

Newton-Raphson & Secant Methods

advertisement
Métodos de Análisis Numérico
Método de Newton-Raphson
Es un método que se utiliza para calcular los ceros de una función real de variable real. Aunque no sea siempre
el mejor método para un problema dado, su simplicidad formal y su rapidez de convergencia hacen que con
frecuencia, sea el primer algoritmo a considerar para esta tarea.
El método de Newton-Raphson se basa en el desarrollo de Taylor de la función cuya raíz se quiere calcular.
Consideremos la ecuación 𝑓(𝑥) = 0, y supongamos que posee una y sólo una solución 𝛼 ∈ [𝑎, 𝑏].
Partiendo de un punto 𝑥0 suficientemente cercano a dicha raíz, podemos escribir:
𝑓(𝛼) = 𝑓(𝑥0 ) + (𝛼 − 𝑥0 ) 𝑓′(𝑥0 ) +
(𝛼−𝑥0 )2
2
𝑓′′(𝜉(𝛼) 𝑐𝑜𝑛 𝛼 < 𝜉(𝑝) < 𝑥0 .
Suponiendo que 𝑓′(𝑥) no se anula en [𝑎, 𝑏], y que la diferencia 𝛼 − 𝑥0 es muy pequeña, el método de
Newton-Raphson consiste en despreciar el sumando en (𝛼 − 𝑥0)2 2 del desarrollo anterior, quedándonos
con la aproximación:
𝑓(𝛼) ≅ 𝑓(𝑥0 ) + (𝛼 − 𝑥0 ) 𝑓′(𝑥0 )
Como α es la solución de la ecuación f(x)=0, se tiene que f(α)=0 y por tanto, de la expresión anterior se
sigue que:
𝑓(𝑥0 ) + (𝛼 − 𝑥0 ) 𝑓′𝑥0 ) ≅ 0
y despejando 𝛼 resulta:
𝛼 ≅ 𝑥0 −
𝑓(𝑥0 )
= 𝑥1
𝑓′(𝑥0 )
Esto constituye la base para el método de Newton, que empieza con una aproximación inicial 𝑥0 y genera la
sucesión {𝑝𝑛 }∞ 𝑛 = 0, mediante
𝑥𝑛 = 𝑥𝑛−1 −
𝑓 (𝑥𝑛−1 )
, 𝑝𝑎𝑟𝑎 𝑛 ≥ 1.
𝑓 ′(𝑥𝑛−1 )
Figura 1. Al empezar con la
aproximación inicial 𝑥0 , la
aproximación 𝑥1 es la intersección
con el eje x de la recta tangente a
la gráfica de 𝑓 en (𝑥0 , f(𝑥0 )).
La
aproximación 𝑥2 es
la
intersección con el eje x de la recta
tangente a la gráfica 𝑓 en
(𝑥1 ,f(𝑥1 )) y así sucesivamente.
Figura 1.
Convergencia con el método de Newton
La derivación del método de Newton por medio de la serie de Taylor señala la importancia de una aproximación
precisa. La suposición crucial es que el término relacionado con (𝑝 − 𝑝0 )2 es, en comparación con |𝑝 − 𝑝0 |,
tan pequeño que se puede eliminar. Esto será falso a menos que 𝑝0 sea una buena aproximación para 𝑝. Sólo
así el método convergerá en la raíz, a excepción de algunos casos.
Teorema:
Sea 𝑓 ∈ 𝐶 2 > [𝑎, 𝑏]. Si 𝑝 ∈ (𝑎, 𝑏) es tal que 𝑓 (𝑝) = 0 y 𝑓 ′ (𝑝) ≠ 0, entonces existe una 𝛿 > 0
tal que el método de Newton genera una sucesión {𝑝𝑛 }∞
𝑛=1 que converge a 𝑝 para cualquier
aproximación inicial 𝑝0 ∈ [𝑝 − 𝛿, 𝑝 + 𝛿].
Este teorema establece que, de acuerdo con suposiciones razonables, el método de Newton converge, siempre
que se seleccione una aproximación inicial suficientemente exacta. También implica que la constante 𝑘 que
acota la derivada de 𝑔 y, por consiguiente, indica que la velocidad de convergencia del método disminuye a 0,
conforme el procedimiento continúa. Este resultado es importante para la teoría del método de Newton, pero
casi nunca se aplica en la práctica porque no nos dice cómo determinar δ. En una aplicación práctica, se
selecciona una aproximación inicial y se generan aproximaciones sucesivas con el método de Newton. Ya sea
que éstos converjan rápidamente a la raíz o será claro que la convergencia es poco probable.
Método de la secante
Es una variante del método de Newton-Raphson en la que el cálculo de la derivada se sustituye por una
aproximación. Por definición,
𝑓 ′ (𝑝𝑛−1 ) =
𝑓(𝑥) − 𝑓(𝑝𝑛−1 )
𝑥 → 𝑝𝑛−1
𝑥 − 𝑝𝑛−1
lim
Si 𝑝𝑛−2 está cerca de 𝑝𝑛−1 , entonces
𝑓′(𝑝𝑛−1 ) ≈
𝑓(𝑝𝑛−2 ) − 𝑓(𝑝𝑛−1 ) 𝑓(𝑝𝑛−1 ) − 𝑓(𝑝𝑛−2 )
=
𝑝𝑛−2 − 𝑝𝑛−1
𝑝𝑛−1 − 𝑝𝑛−2
Usando esa aproximación para 𝑓′(𝑝𝑛−1 ) en la fórmula de Newton se obtiene
𝑝𝑛 = 𝑝𝑛−1 −
𝑓(𝑝𝑛−1 )(𝑝𝑛−1 − 𝑝𝑛−2 )
𝑓(𝑝𝑛−1 ) − 𝑓(𝑝𝑛−2 )
El método de la secante empieza con dos
aproximaciones iniciales 𝑝0 y 𝑝1 , la aproximación 𝑝2 es
la intersección en x de la recta que une los puntos
(𝑝0 , 𝑓(𝑝0 )) y (𝑝1 , 𝑓(𝑝1 )). La aproximación 𝑝3 es la
intersección en x de la recta que une los puntos
(𝑝1 , 𝑓(𝑝1 ) y (𝑝2 , 𝑓(𝑝2 )) y así sucesivamente. Sólo se
necesita una evaluación de la función por cada paso para
el método de la secante después de haber obtenido 𝑝2 .
En contraste, cada paso del método de Newton requiere
una evaluación tanto de la función como de su derivada.
Figura 2.
Código Fuente
function [NR] = NewtonRaphson(e,ite)
function [S] = secante(e,p0,p1,ite)
p0 = biseccion1(3);
NR = zeros(15,1);
tol = 0.00001;
i=1;
tol = 0.00001;
i = 2;
S = zeros(15,1);
syms x;
if e == 1
fx = x^5 + 3*x^3 + x - 1;
if e == 1
while i <= ite
q0 = p0^5 + 3*p0^3 + p0 - 1;
q1 = p1^5 + 3*p1^3 + p1 - 1;
p = p1 - ((q1*(p0 - p1))/(q0 - q1));
while i <= ite
fp0=subs(fx,p0);
z=diff(fx);
dp0=subs(z,p0);
p = p0 - (fp0 / dp0);
NR(i,1) = p;
S(i,1) = p;
if (abs(p - p1)) < tol
return
end
i = i + 1;
p0 = p1;
p1 = p;
if abs(p - p0) < tol
return;
end
i = i + 1;
p0 = p;
end
end
elseif e == 2
while i <= ite
q0 = p0^7 - p0^2 - 3*p0 - 1;
q1 = p1^7 - p1^2 - 3*p1 - 1;
elseif e == 2
fx = x^7 - x^2 - 3*x - 1;
p = p1 - ((q1*(p0 - p1))/(q0 - q1));
S(i,1) = p;
while i <= ite
fp0=subs(fx,p0);
z=diff(fx);
dp0=subs(z,p0);
p = p0 - (fp0 / dp0);
NR(i,1) = p;
if abs(p - p0) < tol
return;
end
i = i + 1;
p0 = p;
end
end
end
if (abs(p - p1)) < tol
return
end
i = i + 1;
p0 = p1;
p1 = p;
end
end
N=zeros(15,3);
e = input('\nNúmero de ejercicio: ');
p0 = input('\nPunto inicial: ');
p1 = input('\nPunto final: ');
ite = 15;
N(:,3)=secante(e,p0,p1,ite);
N(:,2)=NewtonRaphson(e,ite);
N(:,1) = 1:1:ite;
T=array2table(N,'VariableNames',{'iteraciones','New
ton-Raphson','Secante'});
disp(T);
Ejecución del Código
Download