Newton method#

La fonction newton_method applique la méthode de Newton pour trouver la racine d’une fonction donnée. Cette méthode, également connue sous le nom de méthode de la tangente, utilise les informations de la fonction et de sa dérivée pour approximer la racine.

La fonction prend trois paramètres en entrée : function, qui est la fonction dont nous voulons trouver la racine, derivative_function, qui est la dérivée de cette fonction, et starting_point, qui est le point de départ initial pour l’approximation de la racine.

En utilisant la formule de la méthode de Newton, l’algorithme itère jusqu’à ce que la différence entre deux approximations successives soit inférieure à un seuil de précision défini. Une fois que la condition de convergence est atteinte, l’algorithme renvoie la valeur approximative de la racine.

Dans notre exemple, nous utilisons la fonction f(x) = x^3 - 2x - 5 et sa dérivée f1(x) = 3x^2 - 2. En appliquant la méthode de Newton avec ces fonctions et un point de départ initial de 3, nous obtenons une approximation de la racine de la fonction.

Cette méthode est largement utilisée en optimisation numérique et en analyse numérique pour résoudre des équations non linéaires et trouver des points critiques de fonctions.

Fonction#

 1def newton_method(function, derivative_function, starting_point):
 2    """
 3    Applies Newton's method to find the root of a function.
 4
 5    Args:
 6        function: The function for which to find the root.
 7        derivative_function: The derivative of the function.
 8        starting_point: The initial guess for the root.
 9
10    Returns:
11        The approximated root of the function.
12    """
13    x_n = starting_point
14
15    while True:
16        x_n1 = x_n - function(x_n) / derivative_function(x_n)
17
18        if abs(x_n - x_n1) < 10 ** -5:
19            return x_n1
20
21        x_n = x_n1
22
23def f(x):
24    """The function f(x) = x^3 - 2x - 5."""
25    return x ** 3 - 2 * x - 5
26
27def f1(x):
28    """The derivative of f(x)."""
29    return 3 * x ** 2 - 2
root = newton_method(f, f1, 3)
print(f"Approximated root: {root}")
Approximated root: 2.0945514815423474

Note

Auteur : Laurent Jouron Envoyez moi un e-mail