二分法求一元三次方程的根
时间: 2023-12-10 15:33:30 浏览: 225
以下是使用二分法求解一元三次方程根的Python代码:
```python
def f(x, a, b, c, d):
return a * x ** 3 + b * x ** 2 + c * x + d
def solve(a, b, c, d):
left, right = -100, 100
while left <= right:
mid = (left + right) / 2
if abs(f(mid, a, b, c, d)) < 1e-6:
return mid
elif f(mid, a, b, c, d) * f(left, a, b, c, d) < 0:
right = mid
else:
left = mid
return None
a, b, c, d = 1, 2, 3, 4 # 代表方程 ax^3 + bx^2 + cx + d = 0
x1 = solve(a, b, c, d)
x2 = solve(a, b, c, d - 1)
x3 = solve(a, b, c, d + 1)
print("三个实根分别为:", x1, x2, x3)
```
其中,`f(x, a, b, c, d)` 函数用于计算方程的值,`solve(a, b, c, d)` 函数用于求解方程的根。在 `solve` 函数中,我们使用二分法来逼近方程的根。由于题目中要求根与根之差的绝对值 ≥ 1,因此我们可以分别在 d-1 和 d+1 的范围内求解方程的根,从而得到三个实根。
阅读全文