Ecuación cuadrática en Python

Document 对象参考手册Ejemplos de Python3

La forma de la ecuación cuadrática es:ax2+bx+c=0。

Su solución se puede obtener calculando el discriminanteΔ=b2−4ac\Delta = b^2 - 4acdeterminado por:

  1. SiΔ>0\Delta > 0, la ecuación tiene dos raíces reales.
  2. SiΔ=0\Delta = 0, la ecuación tiene una raíz real (raíz doble).
  3. SiΔ<0\Delta < 0, la ecuación no tiene raíces reales, pero tiene dos raíces complejas.

El siguiente ejemplo calcula la ecuación cuadrática a partir de números ingresados por el usuario:

Ejemplo (Python 3.0+)

# Filename: quadratic_solver.py # Autor: www.example.com (optimizado por ChatGPT) # Función del programa: resolver la ecuación cuadrática ax**2 + bx + c = 0 # Nota: a ≠ 0, a, b, c son números reales ingresados por el usuario import cmath # Importar el módulo cmath para admitir operaciones con números complejos def get_float_input(prompt): """Obtener el número flotante ingresado por el usuario y manejar entradas no válidas. :param prompt: mensaje de aviso :return: número flotante ingresado por el usuario""" while True: try: return float(input(prompt)) except ValueError: print("¡Por favor, ingrese un número válido!") def solve_quadratic(a, b, c): """Calcular las soluciones de la ecuación cuadrática. :param a: coeficiente del término cuadrático :param b: coeficiente del término lineal :param c: término constante :return: dos soluciones de la ecuación cuadrática""" discriminant = b**2 - 4*a*c # Calcular el discriminante root1 = (-b - cmath.sqrt(discriminant)) / (2 * a) root2 = (-b + cmath.sqrt(discriminant)) / (2 * a) return root1, root2 def main(): print("Resolver la ecuación cuadrática ax^2 + bx + c = 0") # Obtener la entrada del usuario a = get_float_input("Por favor, ingrese el coeficiente cuadrático a (a ≠ 0):") while a == 0: print("¡El coeficiente cuadrático a de la ecuación cuadrática no puede ser 0!") a = get_float_input("Por favor, vuelva a ingresar el coeficiente cuadrático a (a ≠ 0):") b = get_float_input("Por favor, ingrese el coeficiente lineal b:") c = get_float_input("Por favor, ingrese el término constante c:") # Calcular y mostrar el resultado root1, root2 = solve_quadratic(a, b, c) print(f"Las soluciones de la ecuación son: {root1} y {root2}") if __name__ == "__main__": main()

Al ejecutar el código anterior, el resultado es:

求解二次方程 ax^2 + bx + c = 0
请输入二次项系数 a(a ≠ 0):1
请输入一次项系数 b:5
请输入常数项 c:6
方程的解为:(-3+0j) 和 (-2+0j)

En este ejemplo, hemos utilizado el método sqrt() del módulo cmath (complex math) para calcular la raíz cuadrada.

Ejemplo 2

import math
import cmath

def solve_quadratic(a, b, c):
    """
Resolver la ecuación cuadrática ax^2 + bx + c = 0
:param a: coeficiente del término cuadrático
:param b: coeficiente del término lineal
:param c: término constante
:return: las soluciones de la ecuación (pueden ser reales o complejas)
    """

    if a == 0:
        # Manejo de ecuaciones no cuadráticas
        if b == 0:
            return "Sin solución" if c != 0 else "La ecuación tiene infinitas soluciones"
        return f"La ecuación es lineal, solución: x = {-c / b}"
   
    # Calcular el discriminante
    delta = b**2 - 4*a*c
   
    if delta > 0:
        # Dos raíces reales
        root1 = (-b + math.sqrt(delta)) / (2 * a)
        root2 = (-b - math.sqrt(delta)) / (2 * a)
        return f"La ecuación tiene dos raíces reales: x1 = {root1}, x2 = {root2}"
    elif delta == 0:
        # Una raíz real
        root = -b / (2 * a)
        return f"La ecuación tiene una raíz real doble: x = {root}"
    else:
        # Dos raíces complejas
        root1 = (-b + cmath.sqrt(delta)) / (2 * a)
        root2 = (-b - cmath.sqrt(delta)) / (2 * a)
        return f"La ecuación tiene dos raíces complejas: x1 = {root1}, x2 = {root2}"

# Ejemplo de llamada
a, b, c = 1, -3, 2
result = solve_quadratic(a, b, c)
print(result)

Document 对象参考手册Ejemplos de Python3

Otras extensiones