Está en la página 1de 19

Métodos abiertos para raíces de

ecuaciones
Método de Newton-Raphson

El método de Newton-Raphson para el problema de raíces de ecuaciones f(x)=0


se formula matemáticamente mediante el teorema de Taylor.

Queremos encontrar 𝑓 𝑥𝑘+1 = 0 a partir del valor 𝑥𝑘 , por lo que

𝑥𝑘+1 − 𝑥𝑘 2

𝑓 𝑥𝑘+1 = 𝑓 𝑥𝑘 + 𝑓 𝑥𝑘 𝑥𝑘+1 − 𝑥𝑘 + 𝑓" 𝑥𝑘 +⋯
2!

Cortando la serie en las primeras derivadas e igualando a cero se obtiene

𝑓 𝑥𝑘+1 = 𝑓 𝑥𝑘 + 𝑓 ′ 𝑥𝑘 𝑥𝑘+1 − 𝑥𝑘 = 0

𝑓 𝑥𝑘
𝑥𝑘+1 = 𝑥𝑘 − ′
𝑓 𝑥𝑘

𝑓 ′ 𝑥𝑘 ≠ 0
Método de Newton-Raphson
Interpretación geométrica:

𝑓 𝑥𝑘
𝑥𝑘+1 = 𝑥𝑘 − ′
𝑓 𝑥𝑘
Algoritmo preliminar del método de Newton-Raphson

k=0
Evaluar fx=f(x0)
While(fx≠0)
Evaluar dfx=f’(xk)
IF(dfx=0) → Error: pendiente cero encontrada en xk
xk+1 = xk - fx/dfx
k = k+1
Evaluar fx=f(xk)
End
→ Solución en xk
Método de Newton-Raphson
Dificultades del método
Tomando en cuenta los errores aritméticos y las posibles fallas, se obtiene una versión
práctica del algoritmo. Las condiciones son:

1. Condición de solución: |f(x)|<e1

2. Condición de estancamiento: |xk+1-xk|/max(|xk+1|,|xk|)<e2

3. Número máximo de iteraciones.


Algoritmo práctico del método de Newton-Raphson

Evaluar fx=f(x0)
IF(|fx|<e1) → Solución en x0
For(k=0 to MAXIT, step 1)
Evaluar dfx=f’(xk)
IF(|dfx|<EPS) → Error: pendiente cero encontrada en xk
xk+1 = xk - fx/dfx
Evaluar fx=f(xk+1)
IF(|fx|<e1) → Solución en xk
IF(|xk+1-xk|/max(|xk+1|,|xk|)<e2) → Algoritmo estancado
End
→ Número máximo de iteraciones alcanzado
Empleando derivadas numéricas hacia adelante, el algoritmo de Newton-Raphson se
puede formular de la siguiente manera:

Evaluar fx=f(x0)
IF(|fx|<e1) → Solución en x0
For(k=0 to MAXIT, step 1)
Evaluar dfx = [f(xk + h)-fx]/h
IF(|dfx|<EPS) → Error: pendiente cero encontrada en xk
xk+1 = xk - fx/dfx
Evaluar fx=f(xk+1)
IF(|fx|<e1) → Solución en xk
IF(|xk+1-xk|/max(|xk+1|,|xk|)<e2) → Algoritmo estancado
End
→ Número máximo de iteraciones alcanzado
La gran ventaja del método, es que tiene convergencia cuadrática cuando se está
cerca de la raíz.

Excepto en los casos en que f(x) es tangente al eje de las abscisas en el valor de la raíz,
ya que en dicho punto tanto f(x) como f´(x) son nulas.
Método Secante

En la fórmula de Newton-Raphson, se sustituye la derivada por la pendiente de la


recta secante entre los dos últimos puntos

𝑓 𝑥𝑘
𝑥𝑘+1 = 𝑥𝑘 −
𝑚𝑘

𝑓 𝑥𝑘 − 𝑓 𝑥𝑘−1
𝑚𝑘 =
𝑥𝑘 − 𝑥𝑘−1
Método Secante
Interpretación geométrica:

𝑓 𝑥𝑘
𝑥𝑘+1 = 𝑥𝑘 −
𝑚𝑘

𝑓 𝑥𝑘 − 𝑓 𝑥𝑘−1
𝑚𝑘 =
𝑥𝑘 − 𝑥𝑘−1
Algoritmo práctico del método secante

Evaluar fx=f(x0)
IF(|fx1|<e1) → Solución en x0
x1=x0+h
Evaluar fx1=f(x1)
For(k=1 to MAXIT, step 1)
Evaluar mk=(fx1-fx)/(xk-xk-1)
IF(|mk|<EPS) → Error: pendiente cero encontrada en xk
xk+1 = xk – fx1/mk
fx = fx1
Evaluar fx1=f(xk+1)
IF(|fx1|<e1) → Solución en xk+1
IF(|xk+1-xk|/max(|xk+1|,|xk|)<e2) → Algoritmo estancado
End
→ Número máximo de iteraciones alcanzado
Algoritmos modificados

Los dos métodos abiertos descritos se pueden modificar de muchas maneras a


fin de resolver dificultades específicas. Una modificación común que busca evitar
que la solución empeore, es la conocida como salto hacia atrás o backtracking,
donde se impone la siguiente condición para aceptar el siguiente punto

𝑓(𝑥𝑘+1 ) < 𝑓(𝑥𝑘 )

Que se logra introduciendo la siguiente modificación

While(|f(xk+1 )|≥|f(xk )|)


xk+1 = (xk+1 + xk )/2
End
Algoritmo de Newton-Raphson con backtracking

Evaluar fx=f(x0)
IF(|fx|<e1) → Solución en x0
For(k=0 to MAXIT, step 1)
Evaluar dfx = [f(xk + h)-fx]/h
IF(|dfx|<EPS) → Error: pendiente cero encontrada en xk
xk+1 = xk - fx/dfx
Evaluar fx1=f(xk+1)
While(|fx1|≥|fx|)
xk+1 = (xk+1 + xk )/2
Evaluar fx1=f(xk+1)
End
fx = fx1
IF(|fx|<e1) → Solución en xk
IF(|xk+1-xk|/max(|xk+1|,|xk|)<e2) → Algoritmo estancado
End
→ Número máximo de iteraciones alcanzado
Algoritmo secante con backtracking

Evaluar fx=f(x0)
IF(|fx1|<e1) → Solución en x0
x1=x0+h
Evaluar fx1=f(x1)
For(k=1 to MAXIT, step 1)
Evaluar mk=(fx1-fx)/(xk-xk-1)
IF(|mk|<EPS) → Error: pendiente cero encontrada en xk
xk+1 = xk – fx1/mk
fx = fx1
Evaluar fx1=f(xk+1)
While(|fx1|≥|fx|)
xk+1 = (xk+1 + xk )/2
Evaluar fx1=f(xk+1)
End
IF(|fx1|<e1) → Solución en xk+1
IF(|xk+1-xk|/max(|xk+1|,|xk|)<e2) → Algoritmo estancado
End
→ Número máximo de iteraciones alcanzado
Para medir la eficiencia de los métodos se debe tomar en cuenta lo siguiente,
suponiendo que los algoritmos realizan en total k iteraciones:

1. El método de Newton-Raphson con derivadas numéricas hacia adelante evalúa la


función f(x) un total de 2k veces.

2. El método de Newton-Raphson con derivadas numéricas centrales evalúa la


función f(x) un total de 3k veces.

3. El método secante evalúa la función f(x) un total de k+1 veces.

4. Si los métodos incluyen backtracking, el número total de backs se suma al número


de evaluaciones de la función f(x).
Ejercicios

1. Resolver 𝑥 5 − 2.5𝑥 4 − 1.6𝑥 3 + 3𝑥 − 1 = 0

2. Resolver 4 cos 0.5𝑥 2 − 𝑥 + 0.25𝑥 2

2
3. Resolver 3𝑒 2 cos 𝑥 sin(2𝑥 − 1)
Otras modificaciones
Algunas versiones del método de Newton utilizan el mismo valor de pendiente durante un cierto
número fijo de iteraciones (normalmente pequeño), lo que puede reducir el número total de
evaluaciones de la función

Evaluar fx=f(x0)
IF(|fx|<e1) → Solución en x0
For(k=0 to MAXIT, step 1)
IF(k%P=0)
Evaluar dfx = [f(xk + h)-fx]/h
End IF
IF(|dfx|<EPS) → Error: pendiente cero encontrada en xk
xk+1 = xk - fx/dfx
Evaluar fx=f(xk+1)
IF(|fx|<e1) → Solución en xk
IF(|xk+1-xk|/max(|xk+1|,|xk|)<e2) → Algoritmo estancado
End
→ Número máximo de iteraciones alcanzado
Otras modificaciones
Para evitar el error de pendiente, se puede emplear la pendiente de la iteración anterior

Evaluar fx=f(x0)
IF(|fx|<e1) → Solución en x0
Evaluar dfx = [f(x0 + h)-fx]/h
IF(|dfx|<EPS) → Error: pendiente cero encontrada en x0
dfx1 = dfx
For(k=0 to MAXIT, step 1)
xk+1 = xk - fx/dfx1
Evaluar fx=f(xk+1)
IF(|fx|<e1) → Solución en xk
IF(|xk+1-xk|/max(|xk+1|,|xk|)<e2) → Algoritmo estancado
Evaluar dfx1 = [f(xk+1 + h)-fx]/h
IF(|dfx1|<EPS)
dfx1 = dfx
Else
dfx = dfx1
End IF
End
→ Número máximo de iteraciones alcanzado

También podría gustarte