équation

Certaines équations que tu as déjà croisées dans des exercices présentent des racines difficiles à obtenir en calcul direct (par exemple l’équation \(e^x -x =0 \)). Dans ce cas, il est possible d’utiliser Python afin d’obtenir des valeurs approchées des racines des équations. Je te propose d’explorer trois des méthodes les plus importantes (la première est au programme, mais les autres ne le sont pas) : la méthode de dichotomie, la méthode de Newton-Raphson et la méthode de la sécante. Pour chacune, nous en décrirons les fondements théoriques, les conditions de validité et les implémentations pratiques en Python.

La méthode de dichotomie : une approche par encadrement

Principe théorique

La méthode de dichotomie est la plus simple et la plus robuste des trois (c’est pour cela qu’elle est la seule des trois méthodes vues dans cet article au programme). Elle repose sur le théorème des valeurs intermédiaires (TVI). Ce théorème stipule que si une fonction \(f\) est continue sur un intervalle \([a, b]\) et que \(f(a)\) et \(f(b)\) sont de signes opposés, alors il existe au moins une racine dans cet intervalle.

Ainsi :

> On part d’un intervalle initial \([a, b]\) où \(f(a) \cdot f(b) < 0\).
> On calcule le point milieu \(m = (a+b)/2\).
> On évalue \(f(m)\).
> Si \(f(a)\) et \(f(m)\) sont de signes opposés, la racine est dans le nouvel intervalle \([a, m]\) (car pour aller du premier point d’abscisse à l’autre, la courbe passe nécessairement par l’axe des abscisses).
> Sinon, la racine est dans l’intervalle \([m, b]\).
> Ainsi, on remplace l’ancien intervalle par le nouveau et on répète le processus.

Chaque itération divise la taille de l’intervalle par deux. Cette propriété garantit la convergence vers une racine, mais à une vitesse relativement lente (car linéaire). Nous verrons d’ailleurs que les autres méthodes permettent d’augmenter la vitesse de convergence d’obtention de la valeur approchée.

Code Python et application

La mise en œuvre est directe et s’appuie sur une boucle ‘while’ pour réduire l’intervalle jusqu’à atteindre la précision souhaitée \(\epsilon\).

La méthode de Newton-Raphson : une approche par tangente

Principe théorique

La méthode de Newton-Raphson est souvent la méthode de choix pour sa vitesse de convergence exceptionnelle. Elle utilise une approche géométrique : à partir d’une approximation initiale \(x_n\), on construit une nouvelle approximation \(x_{n+1}\) comme l’abscisse du point d’intersection de la tangente à la courbe de \(f\) en \((x_n, f(x_n))\) avec l’axe des abscisses.

L’équation de la tangente est \(y – f(x_n) = f'(x_n)(x – x_n)\). En posant \(y=0\), on obtient la formule de récurrence :

\[x_{n+1} = x_n – \frac{f(x_n)}{f'(x_n)}\]

La convergence de cette méthode est quadratique, ce qui signifie que le nombre de décimales exactes double à chaque itération. Cependant, elle peut échouer si la dérivée \(f'(x_n)\) est nulle ou si le point de départ \(x_0\) est trop éloigné de la racine.

Code Python et application

Pour l’implémenter, il est nécessaire de connaître à la fois la fonction \(f\) et sa dérivée \(f’\). On supposera donc qu’elles auront été définies précédemment dans ton environnement Python (elles seront nommées ‘f’ et ‘df’ dans le script suivant) :

La méthode de la sécante

Principe théorique

La méthode de la sécante est une alternative ingénieuse à Newton-Raphson, car elle ne requiert pas le calcul de la dérivée. Elle remplace la tangente par une sécante (c’est-à-dire une droite passant par deux points sur la courbe).

En effet, on approche la dérivée \(f'(x_n)\) par le taux d’accroissement (méthode connue depuis la classe de première) entre les deux dernières approximations, \(x_n\) et \(x_{n-1}\) :

\(f'(x_n) \approx \frac{f(x_n) – f(x_{n-1})}{x_n – x_{n-1}}\)

En substituant cette approximation dans la formule de Newton-Raphson, on obtient la relation de récurrence :

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

Cette méthode nécessite seulement deux points de départ \(x_0\) et \(x_1\) (en plus de la fonction ‘f’ et de la tolérance notée \(\epsilon\)à l’évidence). Sa vitesse de convergence est ‘super-linéaire’, plus rapide que la dichotomie mais légèrement moins que Newton-Raphson.

Code Python et application

Conclusion

Le choix de la méthode de calcul approché dépend des contraintes du problème. Si la robustesse et la garantie de convergence sont les priorités, la dichotomie est idéale. Si la fonction est dérivable et qu’on peut estimer un bon point de départ, la méthode de Newton-Raphson est la plus rapide. Enfin, si l’on souhaite une bonne convergence sans avoir à calculer la dérivée, la méthode de la sécante constitue un excellent compromis.

Maîtriser ces trois algorithmes peut être intéressant pour tout étudiant en prépa, car ils illustrent parfaitement les notions de convergence, de vitesse et de compromis entre la simplicité d’implémentation et la performance de la méthode. Quoi qu’il en soit, il est absolument nécessaire de maîtriser parfaitement la méthode par dichotomie qui, en plus d’être un programme, est sûrement le script Python qui tombe le plus aux concours.

Voilà, il n’y a désormais plus qu’à espérer qu’un tel sujet tombe l’année prochaine !

 

Tu peux retrouver ici le méga-répertoire qui contient toutes les annales de concours et les corrigés. Tu peux également accéder ici à toutes nos autres ressources mathématiques !