Python Quadratische Gleichung

Document 对象参考手册Python3-Beispiele

Die quadratische Gleichung hat die Form:ax2+bx+c=0。

Ihre Lösung kann durch Auswerten der Diskriminante gefunden werdenΔ=b2−4ac\Delta = b^2 - 4acum zu bestimmen:

  1. WennΔ>0\Delta > 0, hat die Gleichung zwei reelle Wurzeln.
  2. WennΔ=0\Delta = 0, hat die Gleichung eine reelle Wurzel (eine doppelte Wurzel).
  3. WennΔ<0\Delta < 0, 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)

Document 对象参考手册Python3-Beispiele

Weitere Erweiterungen