python实现二分法求根
时间: 2023-10-05 14:07:36 浏览: 223
二分法求根是一种简单有效的数值计算方法,可以用来寻找函数的零点。以下是Python实现二分法求根的示例代码:
```python
def binary_search_root(f, a, b, tol=1e-6, max_iter=100):
"""
使用二分法求解函数f在区间[a, b]上的根。
:param f: 目标函数
:param a: 区间左端点
:param b: 区间右端点
:param tol: 精度要求
:param max_iter: 最大迭代次数
:return: 根的近似值
"""
fa, fb = f(a), f(b)
if fa * fb > 0:
raise ValueError("函数f在区间[a, b]上没有根。")
for i in range(max_iter):
c = (a + b) / 2
fc = f(c)
if abs(fc) < tol:
return c
if fa * fc < 0:
b, fb = c, fc
else:
a, fa = c, fc
raise ValueError("二分法迭代次数超过了最大值。")
```
其中,f是目标函数,a和b是区间的左右端点,tol是精度要求,max_iter是最大迭代次数。函数首先检查区间上是否存在根,然后使用for循环迭代求解。每次迭代,代码计算区间的中点c,然后根据函数值的符号将区间缩小。如果找到了满足精度要求的根,函数返回根的近似值。如果迭代次数超过了最大值,函数抛出异常。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)