Python : Résolution d’une équation du second degré
Créez un compte gratuit pour suivre votre avancement et reprendre où vous avez laissé.
Créer un compteObjectifs travaillés
On souhaite écrire un programme Python qui résout l'équation $ ax^2 + bx + c = 0 $ (avec $ a \neq 0 $).
On admet le résultat suivant, qui sera démontré en classe de première :
on pose $ \Delta = b^2 - 4ac $ (appelé discriminant).
- Si $ \Delta < 0 $, l'équation n'a pas de solution réelle.
- Si $ \Delta = 0 $, l'équation admet une unique solution $ x_0 = \dfrac{-b}{2a} $.
- Si $ \Delta > 0 $, l'équation admet deux solutions $ x_1 = \dfrac{-b - \sqrt{\Delta}}{2a} $ et $ x_2 = \dfrac{-b + \sqrt{\Delta}}{2a} $.
- Calculer « à la main » le discriminant puis les solutions de l'équation $ 2x^2 + x - 1 = 0 $.
- Écrire une fonction Python resolution(a, b, c) qui affiche les solutions de l'équation $ ax^2 + bx + c = 0 $. La fonction distinguera les trois cas selon le signe du discriminant.
Tester la fonction avec les trois équations suivantes :
- $ 2x^2 + x - 1 = 0 $ ;
- $ x^2 - 2x + 1 = 0 $ ;
- $ x^2 + x + 1 = 0 $.
Corrigé
Pour $ 2x^2 + x - 1 = 0 $, on a $ a = 2 $, $ b = 1 $, $ c = -1 $.
$ \Delta = b^2 - 4ac = 1^2 - 4 \times 2 \times (-1) = 1 + 8 = 9 $.
Comme $ \Delta > 0 $, l'équation admet deux solutions :- $ x_1 = \dfrac{-1 - \sqrt{9}}{2 \times 2} = \dfrac{-1 - 3}{4} = \dfrac{-4}{4} = \mathbf{-1} $ ;
- $ x_2 = \dfrac{-1 + \sqrt{9}}{2 \times 2} = \dfrac{-1 + 3}{4} = \dfrac{2}{4} = \mathbf{0{,}5} $.
On importe sqrt puis on traduit les trois cas avec if, elif et else :
from math import sqrt def resolution(a, b, c): delta = b**2 - 4 * a * c if delta < 0: print("Pas de solution réelle.") elif delta == 0: x0 = -b / (2 * a) print("Solution unique :", x0) else: x1 = (-b - sqrt(delta)) / (2 * a) x2 = (-b + sqrt(delta)) / (2 * a) print("Deux solutions :", x1, "et", x2)Tests :
resolution(2, 1, -1) : $ \Delta = 9 > 0 $, l'équation a deux solutions.
Deux solutions : -1.0 et 0.5Cela confirme le résultat de la question 1.
resolution(1, -2, 1) : $ \Delta = (-2)^2 - 4 \times 1 \times 1 = 4 - 4 = 0 $. L'équation a une solution unique :
$ x_0 = \dfrac{-(-2)}{2 \times 1} = \dfrac{2}{2} = 1 $.Solution unique : 1.0resolution(1, 1, 1) : $ \Delta = 1^2 - 4 \times 1 \times 1 = 1 - 4 = -3 < 0 $. L'équation n'a pas de solution réelle.
Pas de solution réelle.
Remarque
L'équation $ x^2 - 2x + 1 = 0 $ s'écrit aussi $ (x - 1)^2 = 0 $, ce qui confirme la solution unique $ x_0 = 1 $.