SlideShare una empresa de Scribd logo
1 de 7
Descargar para leer sin conexión
Práctica IV: Métodos de Newton-Raphson y de la secante,
para encontrar las raíces de una función.
Se suele llamar método de Newton-Raphson al método de Newton cuando 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 que se usa para la resolución de un problema no lineal.
Puede justificarse este algoritmo mediante un enfoque intuitivo basado en el desarrollo de Taylor.
Consideremos la ecuación f(x) = 0, y supongamos que posee una y sólo una solución α ∈ [a, b].
Partiendo de un punto x0 suficientemente cercano a dicha raíz, podemos escribir:
α = x0 + h
El desarrollo de Taylor de la función f (x) en un entorno de x0 (con |x − x0| < h) es entonces de la
forma:
f (x) = f(x0) + (x − x0) f (x0) +
(x − x0)2
2
f (x0 + θh)
con 0 < θ < 1.
Suponiendo que f (x) no se anula en [a, b], y que la diferencia x − x0 es muy pequeña, el
método de Newton-Raphson consiste en despreciar el sumando en (x − x0)2
del desarrollo anterior,
quedándonos con la aproximación:
f (x) ∼= f(x0) + (x − x0) f (x0)
Por tanto la solución de la ecuación f (x) = 0 (que es α) estará próxima a la solución de f(x0) +
(x − x0) f (x0) = 0. Si llamamos x1a dicha solución, entonces x1 es una mejor aproximación de α que
x0. La solución x1 cumple que f(x0) + (x1 − x0) f (x0) = 0 y por tanto:
x1 = x0 −
f(x0)
f (x0)
1
De esta manera podemos generar la sucesión {xi}n
i=1 con la fórmula recurrente:
xi+1 = xi −
f(xi)
f (xi)
La obtención del método de Newton mediante una serie de Taylor resalta la importancia de una
buena aproximación inicial. Si x0 no está suficientemente próximo a α, el método de Newton puede
no ser convergente (ya que la solución de f(x0) + (x − x0) f (x0) = 0 podría estar alejada de α).
Un posible inconveniente de este método es la evaluación de f (xi) en cada iteración, pero en caso
necesario, esto puede subsanarse con una modificación que veremos más adelante.
Convergencia del método.
Teorema. Supongamos que α ∈ [a, b] es solución de f(x) = 0 y que f (α) = 0 . Entonces, si
f ∈ C2
([a, b]) y el valor inicial x0 es suficientemente próximo a α ( x0 ∈ [α − ε, α + ε] para algún
ε > 0), la sucesión xn+1 = g(xn) definida por el método de Newton, converge a α .
Este teorema indica que, bajo suposiciones razonables, el método de Newton converge siempre
que la condición inicial esté suficientemente próxima a la raíz. No obstante, es un teorema poco útil en
la práctica ya que normalmente no se sabe si el valor inicial está o no próximo a α. La construcción de
una gráfica de f (x) puede ser de ayuda para localizar aproximaciones iniciales a la raiz. El siguiente
teorema nos da condiciones suficientes para la convergencia del algoritmo:
Teorema. (Condición suficiente), Supongamos que f ∈ C2
([a, b]) tal que:
(i) f(a)f(b) < 0 (la función cambia de signo en los extremos del intervalo [a, b])
(ii) f (x) = 0 x ∈ [a, b]
(iii) f (x) = 0 x ∈ [a, b]
Entonces existe una única raíz α de f en [a, b], y la sucesión {xn} generada por el método de
Newton converge hacia α , para cualquier valor inicial x0 ∈ [a, b] que cumpla que:
f(x0)f (x0) ≥ 0.
Implementación del método de Newton-Raphson en Matlab-Octave.
La implementación en Matlab/Octave el algoritmo de Newton-Raphson es muy simple. El programa
que implemente dicho algoritmo debe recibir como argumentos:
(a) La función f (x) cuya raíz α se va a calcular.
(b) Una aproximación inicial x0 de dicha raiz.
(c) La derivada f (x) de la función.
(d) La tolerancia o error máximo ε.
Sugerencia: Para definir la función f (x) y su derivada f (x) podemos utilizar el comando inline que,
como ya hemos visto con el algoritmo de bisección, permite pasar una función como argumento de
otra. Por ejemplo, si se desea hallar una raíz de la función f (x) = x6
− x − 1 podemos definir f (x) y
su derivada mediante:
f=inline(’x^6-x-1’)
fp=inline(’6*x^5-1’)
Asimismo, recuérdese que para hacer gráficos de una función, se utiliza el comando fplot:
fplot(f,[-1,2])
grid
El desarrollo del algoritmo es entonces de la forma:
1. Inicialización: Leer f (x), f (x), x0 y ε. Calcular f (x0) y f (x0). Hacer k = 0.
2. Hacer k = k + 1. En cada etapa k ≥ 1 calcular la nueva aproximación xk = xk−1 − f(xk−1)
f (xk−1)
3. Si |xk − xk−1| < ε terminar: la raíz aproximada es α = xk; en caso contrario volver al paso 2.
Método de Newton-Raphson modificado.
Es análogo al anterior con la diferencia de que el valor de la derivada sólo se calcula en el punto
inicial; por tanto la fórmula a utilizar en el paso 2 es xk = xk−1 − f(xk−1)
f (x0)
. Esta modificación converge
más lentamente y en general sólo se utiliza cuando hay problemas para calcular la derivada de f (x).
Método de la secante.
Es otra variación del método de Newton-Raphson, en la que el cálculo de la derivada se sustituye
por su aproximación numérica:
f (xk) =
f(xk) − f(xk−1)
xk − xk−1
Por tanto, el paso 2 del algoritmo es:
xk = xk−1 −
f(xk−1)
f(xk−1)−f(xk−2)
xk−1−xk−2
= xk−1 −
(xk−1 − xk−2) f(xk−1)
f(xk−1) − f(xk−2)
=
xk−2 f(xk−1) − xk−1 f(xk−2)
f(xk−1) − f(xk−2)
Además, para aplicar el método de la secante es necesario partir de dos aproximaciones iniciales
x0 y x1.
Ejercicios.
1. Implementar los tres algoritmos anteriores en MATLAB/OCTAVE en sendas funciones, que debe-
rán llamarse, respectivamente newtonRaphson, newtonRahsonMod y secante. Las dos primeras
funciones deben recibir como argumentos la función cuyo cero se quiere calcular, su derivada, la
solución inicial y la tolerancia o error de aproximación ε. La tercera función (secante) debe recibir
además una segunda aproximación x1. De esta forma, la función newtonRaphson debe poder
invocarse mediante:
newtonRaphson(f, fp, x0, tol)
donde las funciones f y fp se definirán previamente mediante comandos inline. Por ejemplo, para
hallar el cero de la función f(x) = 2x2
− 10x + 3 partiendo de la aproximación inicial x0 = 1, con
error inferior a una milésima, el algoritmo de bisección deberá invocarse mediante:
f=inline(’2*x^2-10*x+3’)
fp=inline(’4*x-10’)
newtonRaphson(f, fp, 1, 1e-8)
Solución:
El código para la implementación del algoritmo de Newton-Raphson es: (Pinchar aquí para des-
cargar el archivo .m)
function raiz=newtonRaphson(f,fp,x0,tol)
if (f(x0) ==0)
raiz=x0;
else
x1=x0−f(x0)/fp(x0) ;
while ( ( f(x1)~=0)&&abs(x1−x0)>tol)
x0=x1;
x1=x0−f(x0)/fp(x0) ;
end%while
raiz=x1;
end%if
raiz;
end%function
Lo aplicamos a la función definida en el ejemplo anterior, especificando previamente format long
para que Matlab/Octave nos muestre el resultado con mayor precisión:
>>> format long
>>> f=inline(’2*x^2-10*x+3’)
f =
f(x) = 2*x^2-10*x+3
>>> fp=inline(’4*x-10’)
fp =
f(x) = 4*x-10
>>> newtonRaphson(f, fp, 1, 1e-8)
ans = 0.320550528229663
Comprobamos que este valor es efectivamente raíz de f (x) = 2x2
− 10x + 3
>>> f( 0.320550528229663)
ans = 1.77635683940025e-15
Si representamos esta función entre -2 y 6, vemos que hay otra raíz entre 4 y 5:
>>> fplot(f,[-2,6])
-10
0
10
20
30
40
-2 -1 0 1 2 3 4 5 6
2.*x.
2
-10.*x+3
Para hallar esta raíz por el método de Newton-Raphson simplemente tomamos como valor inicial
el x0 = 4:
>>> newtonRaphson(f, fp, 4, 1e-8)
ans = 4.67944947177034
Comprobamos que efectivamente este valor es solución de f (x) = 0:
>>> f(4.67944947177034)
ans = 2.84217094304040e-14
2. Aplicar los algoritmos anteriores a la búsqueda de soluciones de las siguientes ecuaciones. En
todos los casos hacer una gráfica de la función y explorar la convergencia a partir de distintos
valores iniciales.
a) x6
− x − 1 = 0 (Sugerencia: hacer una gráfica de la función en el intervalo [-1,2]). Explorar
qué ocurre si se toma como valor inicial x0 = 0,69 o x0 = 0,7.
b) x2
− x − 0,5 = 0.
c) sin (x + 1) −
√
x = 0.
d) log(x) − cos(x + 1) = 3/2.
e) x²e−x/2
= 1
3. Matlab/Octave disponen de las funciones roots (para hallar las raíces de polinomios) y fzero
(para hallar raíces de una función no lineal). Utiliza la ayuda de Matlab/Octave (o los recursos
de internet) para investigar cómo operan estas funciones y utilizalas también para obtener las
soluciones de las ecuaciones del problema anterior. Compara los resultados.

Más contenido relacionado

La actualidad más candente

Fourier
FourierFourier
FourierDC FCP
 
Serie de taylor
Serie de taylorSerie de taylor
Serie de taylorEdwin Esmc
 
Analisis2
Analisis2Analisis2
Analisis2leoasch
 
Calculo avanzado-formula de taylor
Calculo avanzado-formula de taylorCalculo avanzado-formula de taylor
Calculo avanzado-formula de taylorFernando Maguna
 
Desarrollos En Serie De Taylor
Desarrollos En Serie De TaylorDesarrollos En Serie De Taylor
Desarrollos En Serie De TaylorERICK CONDE
 
Reglas de derivacion
Reglas de derivacionReglas de derivacion
Reglas de derivacionJorssh Kstro
 
Series de taylor y fourier
Series de taylor y fourierSeries de taylor y fourier
Series de taylor y fouriernilsa
 
Regla de la cadena para la anti-derivada.
Regla de la cadena para la anti-derivada.Regla de la cadena para la anti-derivada.
Regla de la cadena para la anti-derivada.Rosa Puga
 
Trabajo series de taylor
Trabajo series de taylorTrabajo series de taylor
Trabajo series de taylorFredy
 
Regla de la cadena
Regla de la cadenaRegla de la cadena
Regla de la cadenaAna Cristina
 
Serie de-taylor-y-maclaurin
Serie de-taylor-y-maclaurinSerie de-taylor-y-maclaurin
Serie de-taylor-y-maclaurinFaveeLa Natsuko
 
Taller 1. serie de taylor
Taller 1. serie de taylorTaller 1. serie de taylor
Taller 1. serie de taylorNORAIMA
 

La actualidad más candente (19)

Regla de la cadena
Regla de la cadenaRegla de la cadena
Regla de la cadena
 
Transparencias tema4
Transparencias tema4Transparencias tema4
Transparencias tema4
 
Fourier
FourierFourier
Fourier
 
Serie de taylor
Serie de taylorSerie de taylor
Serie de taylor
 
Analisis2
Analisis2Analisis2
Analisis2
 
Calculo avanzado-formula de taylor
Calculo avanzado-formula de taylorCalculo avanzado-formula de taylor
Calculo avanzado-formula de taylor
 
Desarrollos En Serie De Taylor
Desarrollos En Serie De TaylorDesarrollos En Serie De Taylor
Desarrollos En Serie De Taylor
 
Metodos deber
Metodos deberMetodos deber
Metodos deber
 
Reglas de derivacion
Reglas de derivacionReglas de derivacion
Reglas de derivacion
 
Series de taylor y fourier
Series de taylor y fourierSeries de taylor y fourier
Series de taylor y fourier
 
Regla de la cadena para la anti-derivada.
Regla de la cadena para la anti-derivada.Regla de la cadena para la anti-derivada.
Regla de la cadena para la anti-derivada.
 
Trabajo series de taylor
Trabajo series de taylorTrabajo series de taylor
Trabajo series de taylor
 
4 extremos
4 extremos4 extremos
4 extremos
 
No lineales
No linealesNo lineales
No lineales
 
Regla de la cadena
Regla de la cadenaRegla de la cadena
Regla de la cadena
 
Serie de-taylor-y-maclaurin
Serie de-taylor-y-maclaurinSerie de-taylor-y-maclaurin
Serie de-taylor-y-maclaurin
 
Continuidad de-funciones
Continuidad de-funcionesContinuidad de-funciones
Continuidad de-funciones
 
1.5 serie de taylor
1.5 serie de taylor1.5 serie de taylor
1.5 serie de taylor
 
Taller 1. serie de taylor
Taller 1. serie de taylorTaller 1. serie de taylor
Taller 1. serie de taylor
 

Similar a Métodos numéricos para encontrar raíces

Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Xavier Davias
 
Método de Newton
Método de NewtonMétodo de Newton
Método de NewtonKike Prieto
 
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdfPRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdfpumadesalvador
 
Solución de ecuaciones no lineales
Solución de ecuaciones no linealesSolución de ecuaciones no lineales
Solución de ecuaciones no linealesSistemadeEstudiosMed
 
Tema II: Soluciones de Ecuaciones de Una Variable
Tema II: Soluciones de Ecuaciones de Una VariableTema II: Soluciones de Ecuaciones de Una Variable
Tema II: Soluciones de Ecuaciones de Una VariableSistemadeEstudiosMed
 
Metodo_de_Newton_Rapshon.ppt
Metodo_de_Newton_Rapshon.pptMetodo_de_Newton_Rapshon.ppt
Metodo_de_Newton_Rapshon.pptjulces4
 
Q2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdf
Q2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdfQ2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdf
Q2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdfKennyNavarro1
 
Guia de estudio 2 (tema 2 metodos numericos)
Guia de estudio 2 (tema 2 metodos numericos)Guia de estudio 2 (tema 2 metodos numericos)
Guia de estudio 2 (tema 2 metodos numericos)pedroperez683734
 
Metodos numericos2
Metodos numericos2Metodos numericos2
Metodos numericos2monica
 
Metodos numericos2
Metodos numericos2Metodos numericos2
Metodos numericos2monica
 
ECUACIONES NO LINEALES
ECUACIONES NO LINEALESECUACIONES NO LINEALES
ECUACIONES NO LINEALESsdiupg1
 
Ecuaciones no lineales Ejercicios
Ecuaciones no lineales EjerciciosEcuaciones no lineales Ejercicios
Ecuaciones no lineales Ejerciciossdiupg1
 

Similar a Métodos numéricos para encontrar raíces (20)

Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9Metodos numericos-3-1212530740013750-9
Metodos numericos-3-1212530740013750-9
 
Método de Newton
Método de NewtonMétodo de Newton
Método de Newton
 
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdfPRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
PRESENTACION_SISTEMAS_ECUACIONES_NO_LINEALES.pdf
 
Fourier.pdf
Fourier.pdfFourier.pdf
Fourier.pdf
 
Solución de ecuaciones no lineales
Solución de ecuaciones no linealesSolución de ecuaciones no lineales
Solución de ecuaciones no lineales
 
Tema II: Soluciones de Ecuaciones de Una Variable
Tema II: Soluciones de Ecuaciones de Una VariableTema II: Soluciones de Ecuaciones de Una Variable
Tema II: Soluciones de Ecuaciones de Una Variable
 
Metodo_de_Newton_Rapshon.ppt
Metodo_de_Newton_Rapshon.pptMetodo_de_Newton_Rapshon.ppt
Metodo_de_Newton_Rapshon.ppt
 
Derivadas. aplicaciones
Derivadas. aplicacionesDerivadas. aplicaciones
Derivadas. aplicaciones
 
Matematicas cap5
Matematicas cap5Matematicas cap5
Matematicas cap5
 
Q2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdf
Q2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdfQ2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdf
Q2P1S1 REPASO DERIVADA DE FUNCIONES POR FORMULAS.pdf
 
Guia de estudio 2 (tema 2 metodos numericos)
Guia de estudio 2 (tema 2 metodos numericos)Guia de estudio 2 (tema 2 metodos numericos)
Guia de estudio 2 (tema 2 metodos numericos)
 
Metodos numericos2
Metodos numericos2Metodos numericos2
Metodos numericos2
 
Metodos numericos2
Metodos numericos2Metodos numericos2
Metodos numericos2
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
ECUACIONES NO LINEALES
ECUACIONES NO LINEALESECUACIONES NO LINEALES
ECUACIONES NO LINEALES
 
Ebook jaime casales
Ebook jaime casalesEbook jaime casales
Ebook jaime casales
 
Interpolacion 1
Interpolacion 1Interpolacion 1
Interpolacion 1
 
Ecuaciones no lineales Ejercicios
Ecuaciones no lineales EjerciciosEcuaciones no lineales Ejercicios
Ecuaciones no lineales Ejercicios
 
No lineales
No linealesNo lineales
No lineales
 
Extremos absolutos analisis 3
Extremos absolutos analisis 3Extremos absolutos analisis 3
Extremos absolutos analisis 3
 

Métodos numéricos para encontrar raíces

  • 1. Práctica IV: Métodos de Newton-Raphson y de la secante, para encontrar las raíces de una función. Se suele llamar método de Newton-Raphson al método de Newton cuando 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 que se usa para la resolución de un problema no lineal. Puede justificarse este algoritmo mediante un enfoque intuitivo basado en el desarrollo de Taylor. Consideremos la ecuación f(x) = 0, y supongamos que posee una y sólo una solución α ∈ [a, b]. Partiendo de un punto x0 suficientemente cercano a dicha raíz, podemos escribir: α = x0 + h El desarrollo de Taylor de la función f (x) en un entorno de x0 (con |x − x0| < h) es entonces de la forma: f (x) = f(x0) + (x − x0) f (x0) + (x − x0)2 2 f (x0 + θh) con 0 < θ < 1. Suponiendo que f (x) no se anula en [a, b], y que la diferencia x − x0 es muy pequeña, el método de Newton-Raphson consiste en despreciar el sumando en (x − x0)2 del desarrollo anterior, quedándonos con la aproximación: f (x) ∼= f(x0) + (x − x0) f (x0) Por tanto la solución de la ecuación f (x) = 0 (que es α) estará próxima a la solución de f(x0) + (x − x0) f (x0) = 0. Si llamamos x1a dicha solución, entonces x1 es una mejor aproximación de α que x0. La solución x1 cumple que f(x0) + (x1 − x0) f (x0) = 0 y por tanto: x1 = x0 − f(x0) f (x0) 1
  • 2. De esta manera podemos generar la sucesión {xi}n i=1 con la fórmula recurrente: xi+1 = xi − f(xi) f (xi) La obtención del método de Newton mediante una serie de Taylor resalta la importancia de una buena aproximación inicial. Si x0 no está suficientemente próximo a α, el método de Newton puede no ser convergente (ya que la solución de f(x0) + (x − x0) f (x0) = 0 podría estar alejada de α). Un posible inconveniente de este método es la evaluación de f (xi) en cada iteración, pero en caso necesario, esto puede subsanarse con una modificación que veremos más adelante. Convergencia del método. Teorema. Supongamos que α ∈ [a, b] es solución de f(x) = 0 y que f (α) = 0 . Entonces, si f ∈ C2 ([a, b]) y el valor inicial x0 es suficientemente próximo a α ( x0 ∈ [α − ε, α + ε] para algún ε > 0), la sucesión xn+1 = g(xn) definida por el método de Newton, converge a α . Este teorema indica que, bajo suposiciones razonables, el método de Newton converge siempre que la condición inicial esté suficientemente próxima a la raíz. No obstante, es un teorema poco útil en la práctica ya que normalmente no se sabe si el valor inicial está o no próximo a α. La construcción de una gráfica de f (x) puede ser de ayuda para localizar aproximaciones iniciales a la raiz. El siguiente teorema nos da condiciones suficientes para la convergencia del algoritmo: Teorema. (Condición suficiente), Supongamos que f ∈ C2 ([a, b]) tal que: (i) f(a)f(b) < 0 (la función cambia de signo en los extremos del intervalo [a, b]) (ii) f (x) = 0 x ∈ [a, b] (iii) f (x) = 0 x ∈ [a, b] Entonces existe una única raíz α de f en [a, b], y la sucesión {xn} generada por el método de Newton converge hacia α , para cualquier valor inicial x0 ∈ [a, b] que cumpla que: f(x0)f (x0) ≥ 0. Implementación del método de Newton-Raphson en Matlab-Octave. La implementación en Matlab/Octave el algoritmo de Newton-Raphson es muy simple. El programa que implemente dicho algoritmo debe recibir como argumentos:
  • 3. (a) La función f (x) cuya raíz α se va a calcular. (b) Una aproximación inicial x0 de dicha raiz. (c) La derivada f (x) de la función. (d) La tolerancia o error máximo ε. Sugerencia: Para definir la función f (x) y su derivada f (x) podemos utilizar el comando inline que, como ya hemos visto con el algoritmo de bisección, permite pasar una función como argumento de otra. Por ejemplo, si se desea hallar una raíz de la función f (x) = x6 − x − 1 podemos definir f (x) y su derivada mediante: f=inline(’x^6-x-1’) fp=inline(’6*x^5-1’) Asimismo, recuérdese que para hacer gráficos de una función, se utiliza el comando fplot: fplot(f,[-1,2]) grid El desarrollo del algoritmo es entonces de la forma: 1. Inicialización: Leer f (x), f (x), x0 y ε. Calcular f (x0) y f (x0). Hacer k = 0. 2. Hacer k = k + 1. En cada etapa k ≥ 1 calcular la nueva aproximación xk = xk−1 − f(xk−1) f (xk−1) 3. Si |xk − xk−1| < ε terminar: la raíz aproximada es α = xk; en caso contrario volver al paso 2. Método de Newton-Raphson modificado. Es análogo al anterior con la diferencia de que el valor de la derivada sólo se calcula en el punto inicial; por tanto la fórmula a utilizar en el paso 2 es xk = xk−1 − f(xk−1) f (x0) . Esta modificación converge más lentamente y en general sólo se utiliza cuando hay problemas para calcular la derivada de f (x). Método de la secante. Es otra variación del método de Newton-Raphson, en la que el cálculo de la derivada se sustituye por su aproximación numérica: f (xk) = f(xk) − f(xk−1) xk − xk−1 Por tanto, el paso 2 del algoritmo es: xk = xk−1 − f(xk−1) f(xk−1)−f(xk−2) xk−1−xk−2 = xk−1 − (xk−1 − xk−2) f(xk−1) f(xk−1) − f(xk−2) = xk−2 f(xk−1) − xk−1 f(xk−2) f(xk−1) − f(xk−2)
  • 4. Además, para aplicar el método de la secante es necesario partir de dos aproximaciones iniciales x0 y x1. Ejercicios. 1. Implementar los tres algoritmos anteriores en MATLAB/OCTAVE en sendas funciones, que debe- rán llamarse, respectivamente newtonRaphson, newtonRahsonMod y secante. Las dos primeras funciones deben recibir como argumentos la función cuyo cero se quiere calcular, su derivada, la solución inicial y la tolerancia o error de aproximación ε. La tercera función (secante) debe recibir además una segunda aproximación x1. De esta forma, la función newtonRaphson debe poder invocarse mediante: newtonRaphson(f, fp, x0, tol) donde las funciones f y fp se definirán previamente mediante comandos inline. Por ejemplo, para hallar el cero de la función f(x) = 2x2 − 10x + 3 partiendo de la aproximación inicial x0 = 1, con error inferior a una milésima, el algoritmo de bisección deberá invocarse mediante: f=inline(’2*x^2-10*x+3’) fp=inline(’4*x-10’) newtonRaphson(f, fp, 1, 1e-8) Solución: El código para la implementación del algoritmo de Newton-Raphson es: (Pinchar aquí para des- cargar el archivo .m) function raiz=newtonRaphson(f,fp,x0,tol) if (f(x0) ==0) raiz=x0; else x1=x0−f(x0)/fp(x0) ; while ( ( f(x1)~=0)&&abs(x1−x0)>tol) x0=x1; x1=x0−f(x0)/fp(x0) ; end%while
  • 5. raiz=x1; end%if raiz; end%function Lo aplicamos a la función definida en el ejemplo anterior, especificando previamente format long para que Matlab/Octave nos muestre el resultado con mayor precisión: >>> format long >>> f=inline(’2*x^2-10*x+3’) f = f(x) = 2*x^2-10*x+3 >>> fp=inline(’4*x-10’) fp = f(x) = 4*x-10 >>> newtonRaphson(f, fp, 1, 1e-8) ans = 0.320550528229663 Comprobamos que este valor es efectivamente raíz de f (x) = 2x2 − 10x + 3 >>> f( 0.320550528229663) ans = 1.77635683940025e-15 Si representamos esta función entre -2 y 6, vemos que hay otra raíz entre 4 y 5: >>> fplot(f,[-2,6])
  • 6. -10 0 10 20 30 40 -2 -1 0 1 2 3 4 5 6 2.*x. 2 -10.*x+3 Para hallar esta raíz por el método de Newton-Raphson simplemente tomamos como valor inicial el x0 = 4: >>> newtonRaphson(f, fp, 4, 1e-8) ans = 4.67944947177034 Comprobamos que efectivamente este valor es solución de f (x) = 0: >>> f(4.67944947177034) ans = 2.84217094304040e-14 2. Aplicar los algoritmos anteriores a la búsqueda de soluciones de las siguientes ecuaciones. En todos los casos hacer una gráfica de la función y explorar la convergencia a partir de distintos valores iniciales. a) x6 − x − 1 = 0 (Sugerencia: hacer una gráfica de la función en el intervalo [-1,2]). Explorar qué ocurre si se toma como valor inicial x0 = 0,69 o x0 = 0,7. b) x2 − x − 0,5 = 0. c) sin (x + 1) − √ x = 0. d) log(x) − cos(x + 1) = 3/2.
  • 7. e) x²e−x/2 = 1 3. Matlab/Octave disponen de las funciones roots (para hallar las raíces de polinomios) y fzero (para hallar raíces de una función no lineal). Utiliza la ayuda de Matlab/Octave (o los recursos de internet) para investigar cómo operan estas funciones y utilizalas también para obtener las soluciones de las ecuaciones del problema anterior. Compara los resultados.