Équation quadratique en Python
L'équation quadratique a la forme :ax2+bx+c=0。
Sa solution peut être trouvée en évaluant le discriminantpour déterminer :
- Si, l'équation a deux racines réelles.
- Si, l'équation a une racine réelle (une racine double).
- Si, l'équation n'a pas de racines réelles, mais a deux racines complexes.
L'exemple suivant prend des nombres saisis par l'utilisateur et calcule l'équation quadratique :
Exemple (Python 3.0+)
# Nom du fichier : quadratic_solver.py
# Auteur : www.example.com (optimisé par ChatGPT)
# Fonction du programme : Résoudre l'équation quadratique ax**2 + bx + c = 0
# Remarque : a ≠ 0, a, b, c sont des nombres réels saisis par l'utilisateur
import cmath # Importer le module cmath pour prendre en charge les opérations sur les nombres complexes
def get_float_input(prompt):
"""Obtenir un nombre à virgule flottante saisi par l'utilisateur et gérer les entrées invalides.
:param prompt: Message d'invite
:return: Le nombre à virgule flottante saisi par l'utilisateur"""
while True:
try:
return float(input(prompt))
except ValueError:
print("Veuillez saisir un nombre valide!")
def solve_quadratic(a, b, c):
"""Calcule les solutions de l'équation du second degré.
:param a: Coefficient du terme quadratique
:param b: Coefficient du terme linéaire
:param c: Terme constant
:return: Les deux solutions de l'équation du second degré"""
discriminant = b**2 - 4*a*c # Calculer le discriminant
root1 = (-b - cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b + cmath.sqrt(discriminant)) / (2 * a)
return root1, root2
def main():
print("Résoudre l'équation du second degré ax^2 + bx + c = 0")
# Obtenir la saisie de l'utilisateur
a = get_float_input("Veuillez saisir le coefficient du terme quadratique a (a ≠ 0):")
while a == 0:
print("Le coefficient a du terme quadratique ne peut pas être 0!")
a = get_float_input("Veuillez ressaisir le coefficient du terme quadratique a (a ≠ 0):")
b = get_float_input("Veuillez saisir le coefficient du terme linéaire b:")
c = get_float_input("Veuillez saisir le terme constant c :")
# Calculer et afficher le résultat
root1, root2 = solve_quadratic(a, b, c)
print(f"Les solutions de l'équation sont : {root1} et {root2}")
if __name__ == "__main__":
main()
La sortie après l'exécution du code ci-dessus est :
求解二次方程 ax^2 + bx + c = 0 请输入二次项系数 a(a ≠ 0):1 请输入一次项系数 b:5 请输入常数项 c:6 方程的解为:(-3+0j) 和 (-2+0j)
Dans cet exemple, nous avons utilisé la méthode sqrt() du module cmath (mathématiques complexes) pour calculer la racine carrée.
Exemple 2
import math
import cmath
def solve_quadratic(a, b, c):
"""
Résoudre l'équation du second degré ax^2 + bx + c = 0
:param a: Coefficient du terme quadratique
:param b: Coefficient du terme linéaire
:param c: Terme constant
:return: Les solutions de l'équation (peuvent être réelles ou complexes)
"""
if a == 0:
# Gérer les équations non quadratiques
if b == 0:
return "Aucune solution" if c != 0 else "L'équation a une infinité de solutions"
return f"L'équation est linéaire, et la solution est x = {-c / b}"
# Calculer le discriminant
delta = b**2 - 4*a*c
if delta > 0:
# Deux racines réelles
root1 = (-b + math.sqrt(delta)) / (2 * a)
root2 = (-b - math.sqrt(delta)) / (2 * a)
return f"L'équation a deux racines réelles : x1 = {root1}, x2 = {root2}"
elif delta == 0:
# Une racine réelle
root = -b / (2 * a)
return f"L'équation a une racine réelle double : x = {root}"
else:
# Deux racines complexes
root1 = (-b + cmath.sqrt(delta)) / (2 * a)
root2 = (-b - cmath.sqrt(delta)) / (2 * a)
return f"L'équation a deux racines complexes : x1 = {root1}, x2 = {root2}"
# Exemple d'appel
a, b, c = 1, -3, 2
result = solve_quadratic(a, b, c)
print(result)
import cmath
def solve_quadratic(a, b, c):
"""
Résoudre l'équation du second degré ax^2 + bx + c = 0
:param a: Coefficient du terme quadratique
:param b: Coefficient du terme linéaire
:param c: Terme constant
:return: Les solutions de l'équation (peuvent être réelles ou complexes)
"""
if a == 0:
# Gérer les équations non quadratiques
if b == 0:
return "Aucune solution" if c != 0 else "L'équation a une infinité de solutions"
return f"L'équation est linéaire, et la solution est x = {-c / b}"
# Calculer le discriminant
delta = b**2 - 4*a*c
if delta > 0:
# Deux racines réelles
root1 = (-b + math.sqrt(delta)) / (2 * a)
root2 = (-b - math.sqrt(delta)) / (2 * a)
return f"L'équation a deux racines réelles : x1 = {root1}, x2 = {root2}"
elif delta == 0:
# Une racine réelle
root = -b / (2 * a)
return f"L'équation a une racine réelle double : x = {root}"
else:
# Deux racines complexes
root1 = (-b + cmath.sqrt(delta)) / (2 * a)
root2 = (-b - cmath.sqrt(delta)) / (2 * a)
return f"L'équation a deux racines complexes : x1 = {root1}, x2 = {root2}"
# Exemple d'appel
a, b, c = 1, -3, 2
result = solve_quadratic(a, b, c)
print(result)
Exemples Python3