Python Quadratische Gleichung
Die quadratische Gleichung hat die Form:ax2+bx+c=0。
Ihre Lösung kann durch Auswerten der Diskriminante gefunden werdenum zu bestimmen:
- Wenn, hat die Gleichung zwei reelle Wurzeln.
- Wenn, hat die Gleichung eine reelle Wurzel (eine doppelte Wurzel).
- Wenn, hat die Gleichung keine reellen Wurzeln, aber zwei komplexe Wurzeln.
Das folgende Beispiel nimmt vom Benutzer eingegebene Zahlen entgegen und berechnet die quadratische Gleichung:
Beispiel (Python 3.0+)
# Dateiname: quadratic_solver.py
# Autor: www.example.com (optimiert von ChatGPT)
# Programmfunktion: Löse die quadratische Gleichung ax**2 + bx + c = 0
# Hinweis: a ≠ 0, a, b, c sind reelle Zahlen, die vom Benutzer eingegeben werden
import cmath # Importiere das cmath-Modul, um Operationen mit komplexen Zahlen zu unterstützen
def get_float_input(prompt):
"""Ermittelt eine vom Benutzer eingegebene Gleitkommazahl und behandelt ungültige Eingaben.
:param prompt: Eingabeaufforderung
:return: Die vom Benutzer eingegebene Gleitkommazahl"""
while True:
try:
return float(input(prompt))
except ValueError:
print("Bitte geben Sie eine gültige Zahl ein!")
def solve_quadratic(a, b, c):
"""Berechnet die Lösungen der quadratischen Gleichung.
:param a: Koeffizient des quadratischen Glieds
:param b: Koeffizient des linearen Glieds
:param c: Konstantes Glied
:return: Die beiden Lösungen der quadratischen Gleichung"""
discriminant = b**2 - 4*a*c # Berechne die Diskriminante
root1 = (-b - cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b + cmath.sqrt(discriminant)) / (2 * a)
return root1, root2
def main():
print("Lösen Sie die quadratische Gleichung ax^2 + bx + c = 0")
# Benutzereingabe einlesen
a = get_float_input("Bitte geben Sie den Koeffizienten a des quadratischen Glieds ein (a ≠ 0):")
while a == 0:
print("Der Koeffizient a des quadratischen Glieds darf nicht 0 sein!")
a = get_float_input("Bitte geben Sie den Koeffizienten a des quadratischen Glieds erneut ein (a ≠ 0):")
b = get_float_input("Bitte geben Sie den Koeffizienten b des linearen Glieds ein:")
c = get_float_input("Bitte geben Sie den konstanten Term c ein:")
# Ergebnis berechnen und ausgeben
root1, root2 = solve_quadratic(a, b, c)
print(f"Die Lösungen der Gleichung sind: {root1} und {root2}")
if __name__ == "__main__":
main()
Die Ausgabe nach Ausführung des obigen Codes ist:
求解二次方程 ax^2 + bx + c = 0 请输入二次项系数 a(a ≠ 0):1 请输入一次项系数 b:5 请输入常数项 c:6 方程的解为:(-3+0j) 和 (-2+0j)
In diesem Beispiel haben wir die Methode sqrt() des Moduls cmath (komplexe Mathematik) verwendet, um die Quadratwurzel zu berechnen.
Beispiel 2
import math
import cmath
def solve_quadratic(a, b, c):
"""
Löse die quadratische Gleichung ax^2 + bx + c = 0
:param a: Koeffizient des quadratischen Terms
:param b: Koeffizient des linearen Terms
:param c: Konstanter Term
:return: Die Lösungen der Gleichung (können reell oder komplex sein)
"""
if a == 0:
# Nicht-quadratische Gleichungen behandeln
if b == 0:
return "Keine Lösung" if c != 0 else "Die Gleichung hat unendlich viele Lösungen"
return f"Die Gleichung ist linear, und die Lösung ist x = {-c / b}"
# Diskriminante berechnen
Delta = b**2 - 4*a*c
if delta > 0:
# Zwei reelle Wurzeln
root1 = (-b + math.sqrt(delta)) / (2 * a)
root2 = (-b - math.sqrt(delta)) / (2 * a)
return f"Die Gleichung hat zwei reelle Wurzeln: x1 = {root1}, x2 = {root2}"
elif delta == 0:
# Eine reelle Wurzel
root = -b / (2 * a)
return f"Die Gleichung hat eine doppelte reelle Wurzel: x = {root}"
else:
# Zwei komplexe Wurzeln
root1 = (-b + cmath.sqrt(delta)) / (2 * a)
root2 = (-b - cmath.sqrt(delta)) / (2 * a)
return f"Die Gleichung hat zwei komplexe Wurzeln: x1 = {root1}, x2 = {root2}"
# Beispielaufruf
a, b, c = 1, -3, 2
result = solve_quadratic(a, b, c)
print(result)
import cmath
def solve_quadratic(a, b, c):
"""
Löse die quadratische Gleichung ax^2 + bx + c = 0
:param a: Koeffizient des quadratischen Terms
:param b: Koeffizient des linearen Terms
:param c: Konstanter Term
:return: Die Lösungen der Gleichung (können reell oder komplex sein)
"""
if a == 0:
# Nicht-quadratische Gleichungen behandeln
if b == 0:
return "Keine Lösung" if c != 0 else "Die Gleichung hat unendlich viele Lösungen"
return f"Die Gleichung ist linear, und die Lösung ist x = {-c / b}"
# Diskriminante berechnen
Delta = b**2 - 4*a*c
if delta > 0:
# Zwei reelle Wurzeln
root1 = (-b + math.sqrt(delta)) / (2 * a)
root2 = (-b - math.sqrt(delta)) / (2 * a)
return f"Die Gleichung hat zwei reelle Wurzeln: x1 = {root1}, x2 = {root2}"
elif delta == 0:
# Eine reelle Wurzel
root = -b / (2 * a)
return f"Die Gleichung hat eine doppelte reelle Wurzel: x = {root}"
else:
# Zwei komplexe Wurzeln
root1 = (-b + cmath.sqrt(delta)) / (2 * a)
root2 = (-b - cmath.sqrt(delta)) / (2 * a)
return f"Die Gleichung hat zwei komplexe Wurzeln: x1 = {root1}, x2 = {root2}"
# Beispielaufruf
a, b, c = 1, -3, 2
result = solve_quadratic(a, b, c)
print(result)
Python3-Beispiele