编写程序,输入一元三次方程的系数输出他的根
时间: 2023-10-27 16:04:44 浏览: 61
当然可以!以下是一个示例程序,用于解决一元三次方程的根:
```python
import cmath
def solve_cubic_equation(a, b, c, d):
discriminant = (b ** 2) - (3 * a * c)
delta = (2 * (b ** 3)) - (9 * a * b * c) + (27 * (a ** 2) * d)
if discriminant > 0:
# 一个实根和两个共轭复根
root_1 = (-b + cmath.sqrt(discriminant)) / (3 * a)
root_2 = (-b - cmath.sqrt(discriminant)) / (3 * a)
root_3 = None
elif discriminant == 0:
# 三个实根,其中两个相等
root_1 = (-b + cmath.pow(delta, 1/3)) / (3 * a)
root_2 = (-b + cmath.pow(delta, 1/3)) / (3 * a)
root_3 = (-b - (2 * cmath.pow(delta, 1/3))) / (3 * a)
else:
# 三个不相等的实根
root_1 = (-b + ((delta + cmath.sqrt(-(discriminant ** 3))) ** (1/3))) / (3 * a)
root_2 = (-b + ((delta - cmath.sqrt(-(discriminant ** 3))) ** (1/3))) / (3 * a)
root_3 = (-b - ((2 * delta) ** (1/3))) / (3 * a)
return root_1, root_2, root_3
# 输入方程的系数
a = float(input("请输入三次项系数 a: "))
b = float(input("请输入二次项系数 b: "))
c = float(input("请输入一次项系数 c: "))
d = float(input("请输入常数项系数 d: "))
# 解方程
roots = solve_cubic_equation(a, b, c, d)
# 输出结果
print("方程的根为:")
for root in roots:
print(root)
```
你可以运行这个程序,并输入一元三次方程的系数来得到它的根。请注意,这个程序使用了 `cmath` 模块来处理复数根。如果方程没有实根,结果将包含虚部。