用Python:二分法解方程 x4-33*x3 +217*x2+825*x-6050 输入两个数,求这两个数之间的方程的根,保留一位小数
时间: 2024-03-10 07:44:11 浏览: 169
以下是用Python实现二分法求解方程的代码:
```python
def f(x):
return x**4 - 33*x**3 + 217*x**2 + 825*x - 6050
def bisection(a, b, tol=0.1):
if f(a) * f(b) > 0:
print("Error: f(a) and f(b) must have opposite signs")
return None
while abs(b - a) > tol:
c = (a + b) / 2
if f(c) == 0:
return round(c, 1)
elif f(c) * f(a) < 0:
b = c
else:
a = c
return round((a + b) / 2, 1)
# 测试
a, b = 0, 10
root = bisection(a, b)
if root:
print(f"The root of the equation between {a} and {b} is {root:.1f}")
else:
print("No root found in the given range.")
```
上述代码中,`f(x)`定义了方程的函数,`bisection(a, b, tol=0.1)`实现了二分法求解方程的算法。其中,`a`和`b`是给定的区间,`tol`是容差,即二分法的迭代停止条件之一。该函数返回方程在给定区间内的一个根,并保留一位小数。
在测试中,我们给定区间[0, 10],并调用`bisection()`函数求解方程的根。如果找到了根,则输出该根,否则输出“在给定区间内未找到根”的提示信息。
阅读全文