Équations du 2nd degré
💻 Travail n° 1 Résolution par factorisation
On vous demande de coder un script Python qui permet de donner les solutions d’une équation du 2nd degré dont les coefficients sont saisis par l’utilisateur dans la console.
Pour le travail demandé, la méthode consiste à :
-
Demander la saisie des coefficients
a,betcde l’équationax2 + bx + c -
Calculer le discriminant :
Δ = b2 - 4ac-
En Python les opérateurs d’addition, soustraction, multiplication et division se notent successivement :
+, -, * et / -
En Python, l’exposant se code
** .Exemple de calcul de 23 dans la console Python :>>> 2 ** 3 8 -
Même s’il est possible d’utiliser des lettres grecques pour les noms de variable en Python, ce n’est VRAIMENT PAS RECOMMANDÉ.
La
PEP 8, qui est le guide de style officiel du langage Python, stipule explicitement que les noms de variables doivent utiliser uniquement les lettres de ‘a’ à ‘z’ ou ‘A’ à ‘Z’ sans accents, les chiffres, mais jamais en 1èreposition, et le tiret du bas ‘_’.⇒ Dans l’exercice on utilisera donc plutôt le nom de variable
deltaà la place de Δ pour stocker le résultat du calcul du discriminant.
-
-
Calculer les racines selon la valeur du discriminant :
-
Δ > 0⇒ 2 racines réelles :-
En Python, la racine carrée d’un nombre
xs’obtient avecmath.sqrt(x). Pour cela, il faut d’abord importer le modulemathen début de script (→import math)Exemple de calcul de √9 dans la console Python :>>> import math >>> math.sqrt(9) 3.0 -
En Python, la valeur absolue d’un nombre
xs’obtient avec la fonction native[1]abs(x).Exemple de calcul des valeurs absolues de -273.15 et de +37.2 dans la console :>>> abs(-273.15) 273.15 >>> abs(37.2) 37.2
-
-
Δ = 0⇒ 1 seule racine réelle : -
Δ < 0⇒ 2 racines complexes :
-
🎯 Travail à faire :
-
Coder le script Python qui :
-
demande à l’utilisateur de saisir les coefficients de l’équation du 2nd degré
-
calcule le discriminant
-
calcule les racines selon la valeur du discriminant (positif, nul ou négatif)
-
affiche la ou les racines à l’écran
-
### Résolution de l'équation : y = a x² + bx + c ###
Saisir le coefficient `a` : 1
Saisir le coefficient `b` : -5
Saisir le coefficient `c` : 6
Résultat :
Δ = 1.00 > 0 → 2 racines réelles
r1 = (-b-√Δ)/2a ≈ 2.00
r2 = (-b+√Δ)/2a ≈ 3.00
### Résolution de l'équation : y = a x² + bx + c ###
Saisir le coefficient `a` : 1
Saisir le coefficient `b` : -4
Saisir le coefficient `c` : 4
Résultat :
Δ = 0 → 1 racine réelle
r = -b/2a ≈ 2.00
### Résolution de l'équation : y = a x² + bx + c ###
Saisir le coefficient `a` : 1
Saisir le coefficient `b` : 2
Saisir le coefficient `c` : 5
Résultat :
Δ = -16.00 < 0 → 2 racines complexes
r1 = (-b - i √|Δ|)/2a ≈ -1.00 - 2.00 i
r2 = (-b + i √|Δ|)/2a ≈ -1.00 + 2.00 i
|
On vous donne ci-dessous un modèle de script Python sur lequel vous pouvez vous appuyer. Il montre comment demander des informations à l’utilisateur, effectuer des calculs, faire des tests, afficher un résultat, fdp-commande.py :
|
Proposition de solution
"""Calcule les racines d'une équation du 2nd degré
"""
import math
print("### Résolution de l'équation : y = a x² + bx + c ###")
# Saisies utilisateur
a = float(input("Saisir le coefficient `a` : "))
b = float(input("Saisir le coefficient `b` : "))
c = float(input("Saisir le coefficient `c` : "))
# Calcul du discriminant
delta = b ** 2 - 4 * a * c
# Calcul des racines
print("Résultat :")
if (delta > 0) :
r1 = (-b - math.sqrt(delta)) / (2 * a)
r2 = (-b + math.sqrt(delta)) / (2 * a)
print(f"Δ = {delta:.2f} > 0 → 2 racines réelles" )
print(f"r1 = (-b-√Δ)/2a ≈ {r1:.2f}")
print(f"r2 = (-b+√Δ)/2a ≈ {r2:.2f}")
elif (delta == 0) :
r = -b / (2 * a)
print(f"Δ = 0 → 1 racine réelle double ")
print(f"r = -b/2a ≈ {r:.2f}")
else :
re = -b / (2 * a)
im = math.sqrt(abs(delta)) / (2 * a)
print(f"Δ = {delta:.2f} < 0 → 2 racines complexes" )
print(f"r1 = (-b - i √|Δ|)/2a ≈ {re:.2f} - {im:.2f} i" )
print(f"r2 = (-b + i √|Δ|)/2a ≈ {re:.2f} + {im:.2f} i" )
✎ Références
-
Solving a Second Degree Equation or Inequality
→ Plusieurs méthodes pour résoudre une équation du 2nd degré
🞄 🞄 🞄