实现一个Python程序来求解一元二次方程的根
发布时间:2023-12-04 12:52:44
以下是一个用Python编写的程序,用于求解一元二次方程的根:
import cmath
def solve_quadratic_equation(a, b, c):
# 计算判别式
discriminant = (b ** 2) - (4 * a * c)
if discriminant > 0:
# 有两个实根
root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
return root1, root2
elif discriminant == 0:
# 有一个实根
root = -b / (2 * a)
return root
else:
# 有两个虚根
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(abs(discriminant)) / (2 * a)
root1 = complex(real_part, imaginary_part)
root2 = complex(real_part, -imaginary_part)
return root1, root2
# 例子1:方程有两个实根
print(solve_quadratic_equation(1, -3, 2)) # 输出: (2+0j, 1+0j)
# 例子2:方程有一个实根
print(solve_quadratic_equation(1, -4, 4)) # 输出: (2+0j)
# 例子3:方程有两个虚根
print(solve_quadratic_equation(1, 2, 3)) # 输出: (-1+1.4142135623730951j, -1-1.4142135623730951j)
在上述程序中,solve_quadratic_equation函数接受三个参数a、b和c,分别代表一元二次方程的系数。根据判别式的值,程序会返回对应的根。如果判别式大于0,则方程有两个实根;如果判别式等于0,则方程有一个实根;如果判别式小于0,则方程有两个虚根。对于虚根,由于Python内置的cmath模块可以处理复数运算,因此可以直接返回复数值。
在例子中,我们分别测试了方程有两个实根、有一个实根以及有两个虚根的情况,并输出了求解的结果。
