Método de la Secante



     -Fundamento Teórico-

  1. 1. Aproximación de la derivada:
    El método de la secante se basa en la idea de que la pendiente de la recta secante que pasa por dos puntos (xᵢ, f(xᵢ)) y (xᵢ₋₁, f(xᵢ₋₁)) de la curva de una función f(x) es una buena aproximación de la derivada de la función en un punto cercano a estos dos.
  2. 2. Fórmula iterativa:
    A partir de la aproximación de la derivada, se deriva una fórmula iterativa para calcular la siguiente aproximación de la raíz (xᵢ₊₁): 
Código
   xᵢ₊₁ = xᵢ - [f(xᵢ) * (xᵢ - xᵢ₋₁)] / [f(xᵢ) - f(xᵢ₋₁)]
Esta fórmula representa la intersección de la recta secante con el eje x, lo que proporciona una nueva aproximación a la raíz. 
  1. 1. Proceso iterativo:
    El método de la secante es iterativo, lo que significa que se repite el cálculo de la siguiente aproximación utilizando los dos puntos más recientes. En cada iteración, se reemplaza la aproximación más antigua por la nueva y se calcula una nueva aproximación de la raíz. 
  2. 2. Convergencia:
    El método de la secante converge a la raíz de la función si la función es suave y la convergencia es de orden superior a lineal (aproximadamente 1.618), lo que significa que el error disminuye más rápidamente con cada iteración que en el método de bisección

-Algoritmo del Método-

  1. 1. Aproximaciones iniciales:
    • Seleccionar dos valores iniciales, x0 y x1, que "encierren" la raíz de la ecuación. 
  2. 2. Iteración:
    • Calculo de la secante: En cada iteración, se construye una recta secante a la gráfica de la función f(x) a través de los puntos (xn-1, f(xn-1)) y (xn, f(xn)). 
    • Intersección con el eje x: Se encuentra el punto donde esta recta secante intersecta el eje x. Este punto será la nueva aproximación xn+1. 
    • Fórmula de la secante:
      • xn+1 = xn - f(xn) * (xn - xn-1) / (f(xn) - f(xn-1)). 
  3. 3. Criterio de convergencia:
    • Se calcula el error absoluto entre xn+1 y xn|xn+1 - xn|. 
    • El método se detiene cuando este error es menor que un valor predefinido ε, indicando que la aproximación xn+1 es lo suficientemente cercana a la raíz verdadera. 

-Ejemplo Resuelto Paso a Paso-

Encuentra una raíz de la función

f(x) = x² - 4

usando el método de la secante, con:


  • x_0 = 1
  • x_1 = 3
  • Tolerancia: \varepsilon = 0.01






Paso 1: Fórmula del método de la secante



La fórmula es:


x_{n+1} = x_n - f(x_n) \cdot \frac{x_n - x_{n-1}}{f(x_n) - f(x_{n-1})}





Paso 2: Evaluar f(x)



f(x) = x^2 - 4


f(1) = 1^2 - 4 = -3 \\ f(3) = 3^2 - 4 = 5





Paso 3: Iteración 1



Usamos x_0 = 1 y x_1 = 3:


x_2 = 3 - 5 \cdot \frac{3 - 1}{5 - (-3)} = 3 - 5 \cdot \frac{2}{8} = 3 - 1.25 = 1.75





Paso 4: Evaluar error



Error relativo aproximado:


|x_2 - x_1| = |1.75 - 3| = 1.25 > 0.01


No se ha alcanzado la tolerancia, seguimos.





Paso 5: Iteración 2



Ahora:


  • x_1 = 3
  • x_2 = 1.75



Evaluamos:


f(1.75) = (1.75)^2 - 4 = 3.0625 - 4 = -0.9375


Aplicamos la fórmula:


x_3 = 1.75 - (-0.9375) \cdot \frac{1.75 - 3}{-0.9375 - 5} \\ x_3 = 1.75 + 0.9375 \cdot \frac{1.25}{5.9375} \approx 1.75 + 0.1974 = 1.9474





Paso 6: Evaluar error



|x_3 - x_2| = |1.9474 - 1.75| = 0.1974 > 0.01


Seguimos iterando.





Paso 7: Iteración 3



f(1.9474) = (1.9474)^2 - 4 \approx 3.7923 - 4 = -0.2077


x_4 = 1.9474 - (-0.2077) \cdot \frac{1.9474 - 1.75}{-0.2077 - (-0.9375)} \\ x_4 = 1.9474 + 0.2077 \cdot \frac{0.1974}{0.7298} \approx 1.9474 + 0.0561 = 2.0035





Paso 8: Evaluar error



|x_4 - x_3| = |2.0035 - 1.9474| = 0.0561 > 0.01





Paso 9: Iteración 4



f(2.0035) = (2.0035)^2 - 4 \approx 4.014 - 4 = 0.014


x_5 = 2.0035 - 0.014 \cdot \frac{2.0035 - 1.9474}{0.014 - (-0.2077)} \\ x_5 \approx 2.0035 - 0.014 \cdot \frac{0.0561}{0.2217} \approx 2.0035 - 0.0035 = 2.0000





Paso 10: Evaluar error final



|x_5 - x_4| = |2.0000 - 2.0035| = 0.0035 < 0.01


¡Listo! Hemos encontrado una raíz aproximada:


\boxed{x \approx 2}


-Código del Método-

import numpy as np
import matplotlib.pyplot as plt

# Definir la función
def f(x):
    return x**2 - 4

# Implementación del método de la secante
def secante(x0, x1, tol=1e-5, max_iter=100):
    iteraciones = 0
    x_values = [x0, x1]  # Lista para almacenar los valores de x
    while iteraciones < max_iter:
        # Calcular el siguiente valor de x
        f0 = f(x0)
        f1 = f(x1)
        x2 = x1 - f1 * (x1 - x0) / (f1 - f0)
       
        # Almacenar el nuevo valor de x
        x_values.append(x2)
       
        # Comprobar si el error es menor que la tolerancia
        if abs(x2 - x1) < tol:
            break
       
        # Actualizar los valores para la siguiente iteración
        x0 = x1
        x1 = x2
        iteraciones += 1
   
    return x2, x_values

# Valores iniciales
x0 = 1
x1 = 3

# Ejecutar el método de la secante
root, x_values = secante(x0, x1)

# Imprimir la raíz encontrada
print(f'La raíz aproximada es: {root}')

# Graficar la función y la secante
x = np.linspace(-3, 3, 400)
y = f(x)

plt.figure(figsize=(8, 6))
plt.plot(x, y, label="f(x) = x^2 - 4", color='b')  # Función
plt.axhline(0, color='black',linewidth=1)  # Eje X
plt.axvline(0, color='black',linewidth=1)  # Eje Y

# Graficar los puntos de la secante
plt.plot(x_values, [f(x) for x in x_values], 'ro-', label="Iteraciones del método de la secante")

# Añadir etiquetas
plt.title("Método de la Secante")
plt.xlabel("x")
plt.ylabel("f(x)")
plt.legend()

# Mostrar la gráfica
plt.grid(True)
plt.show()

-Gráfica-



-Video Explicativo-


-Conclusión- 

El método de la secante es un método iterativo utilizado para encontrar aproximaciones de las raíces de una función. Es similar al método de Newton-Raphson, pero con una diferencia clave: no requiere el cálculo de la derivada de la función, lo que lo hace útil cuando obtener la derivada es complicado o costoso.

Comentarios