Intersection#

L’algorithme de la sécante est une méthode numérique utilisée pour trouver les intersections d’une fonction avec l’axe des x, c’est-à-dire les points où la fonction coupe l’axe des x. Pour ce faire, l’algorithme utilise deux points de départ initiaux, x0 et x1, et calcule une approximation de la racine de la fonction en utilisant une formule basée sur la pente de la sécante entre ces deux points. Ensuite, il répète ce processus en utilisant le nouveau point calculé jusqu’à ce qu’une précision suffisante soit atteinte.

Dans notre implémentation, la fonction intersection prend en paramètres la fonction dont nous voulons trouver la racine, ainsi que deux points de départ initiaux, initial_guess1 et initial_guess2. L’algorithme utilise ces points pour calculer progressivement une meilleure approximation de la racine en utilisant la méthode de la sécante. La boucle while True est utilisée pour itérer jusqu’à ce que la différence entre deux approximations successives soit inférieure à un seuil de précision défini.

La fonction f(x) est la fonction dont nous voulons trouver la racine, dans cet exemple, f(x) = x^3 - 2x - 5.

Enfin, l’algorithme renvoie la valeur de la racine calculée avec une précision suffisante.

Fonction#

 1import math
 2
 3def intersection(function, initial_guess1, initial_guess2):
 4    """
 5    Finds the intersection of the function with the x-axis using the secant method.
 6
 7    Args:
 8        function: The function for which to find the root.
 9        initial_guess1: The first initial guess.
10        initial_guess2: The second initial guess.
11
12    Returns:
13        The root of the function.
14    """
15    x_n = initial_guess1
16    x_n1 = initial_guess2
17
18    while True:
19        x_n2 = x_n1 - (function(x_n1) / ((function(x_n1) - function(x_n)) / (x_n1 - x_n)))
20        if abs(x_n2 - x_n1) < 10**-5:
21            return x_n2
22        x_n = x_n1
23        x_n1 = x_n2
24
25def f(x):
26    """
27    The function f(x) = x^3 - 2x - 5.
28
29    Args:
30        x: The input value.
31
32    Returns:
33        The result of the function.
34    """
35    return math.pow(x, 3) - (2 * x) - 5
print(intersection(f, 3, 3.5))
2.0945514815435184

Note

Auteur : Laurent Jouron Envoyez moi un e-mail