一张不够花、 发表于 2023-4-14 12:34:16

求助大神

用Python输入一元二次方程,方程的三个系数分别为a,b,C,求解该方程。(需要判断解的三种情况和a=0的情况并求出来)

isdkz 发表于 2023-4-14 12:38:43

要使用Python求解一元二次方程,我们可以使用以下代码。这里我们使用cmath库来处理复数根的情况。

import cmath

def solve_quadratic(a, b, c):
    if a == 0:
      if b == 0:
            return "无解" if c != 0 else "有无数个解"
      else:
            return f"线性方程的解为: {-c/b}"
    else:
      delta = b ** 2 - 4 * a * c

      if delta > 0:
            x1 = (-b + cmath.sqrt(delta)) / (2 * a)
            x2 = (-b - cmath.sqrt(delta)) / (2 * a)
            return f"实数解: x1 = {x1}, x2 = {x2}"
      elif delta == 0:
            x = -b / (2 * a)
            return f"重根: x = {x}"
      else:
            x1 = (-b + cmath.sqrt(delta)) / (2 * a)
            x2 = (-b - cmath.sqrt(delta)) / (2 * a)
            return f"复数解: x1 = {x1}, x2 = {x2}"

# 示例
a, b, c = 1, -3, 2
result = solve_quadratic(a, b, c)
print(result)


这段代码首先检查a是否为0,以确定方程是否为一元二次方程。如果a为0,代码将检查b的值,以确定方程是否具有解。之后,代码计算判别式(delta)的值,并根据其符号确定解的类型(实数解、重根或复数解)。最后,代码使用公式求解方程并输出解。
页: [1]
查看完整版本: 求助大神