python计算一元三次方程的代码
时间: 2023-12-20 11:59:38 浏览: 78
以下是计算一元三次方程的Python代码:
```python
import math
a = float(input("请输入一次项系数a:"))
b = float(input("请输入二次项系数b:"))
c = float(input("请输入三次项系数c:"))
d = float(input("请输入常数项d:"))
if a == 0:
print("a不能为0")
else:
delta1 = b * b - 3 * a * c
delta2 = 2 * b * b * b - 9 * a * b * c + 27 * a * a * d
C = (delta2 + math.sqrt(delta2 * delta2 - 4 * delta1 * delta1 * delta1)) / 2
u = math.pow(C, 1 / 3) if C >= 0 else -math.pow(-C, 1 / 3)
if delta1 > 0:
x1 = (-b + u + math.sqrt(delta1)) / (3 * a)
x2 = (-b + u - math.sqrt(delta1)) / (3 * a)
x3 = (-b - 2 * u) / (3 * a)
print("方程的三个实根分别为:", x1, x2, x3)
elif delta1 == 0:
x1 = (-b + u) / (3 * a)
x2 = (-b - u) / (6 * a)
print("方程的一个实根和一个二重实根分别为:", x1, x2)
else:
alpha = (-delta1 + math.sqrt(delta1 * delta1 - 4 * delta2)) / 2
beta = (-delta1 - math.sqrt(delta1 * delta1 - 4 * delta2)) / 2
x1 = (-b + u + math.sqrt(alpha)) / (3 * a)
x2 = (-b + u - math.sqrt(alpha) + math.sqrt(beta)) / (3 * a)
x3 = (-b + u - math.sqrt(alpha) - math.sqrt(beta)) / (3 * a)
print("方程的一个实根和两个共轭复根分别为:")
print("实根为:", x1)
print("共轭复根为:", x2, x3)
```
在运行代码时,会提示用户输入一次项系数、二次项系数、三次项系数和常数项,然后输出方程的根。如果方程有一个实根和两个共轭复根,则输出实根和两个共轭复根。
阅读全文