二分法是一种常用的数值计算方法,用于求解函数的根。它基于连续函数的中间值定理,通过逐步缩小包含根的区间来逼近根的位置。下面是一个用Python实现的二分法求近似根的简单示例:
```python
def bisection_method(func, a, b, tol=1e6, max_iter=100):
"""
使用二分法求解函数的近似根
Parameters:
func: 待求根的函数,接受一个参数作为自变量
a: 区间左端点
b: 区间右端点
tol: 允许误差
max_iter: 最大迭代次数
Returns:
root: 近似根
iterations: 迭代次数
"""
初始迭代次数为0
iterations = 0
当前区间长度
interval_length = b a
当前区间中点
root = (a b) / 2.0
当区间长度大于允许误差且迭代次数未达到最大迭代次数时,进行迭代
while interval_length > tol and iterations < max_iter:
计算函数在当前区间中点的取值
f_root = func(root)
更新区间端点和长度
if func(a) * f_root < 0:
b = root
else:
a = root
更新区间中点和长度
root = (a b) / 2.0
interval_length = b a
增加迭代次数
iterations = 1
return root, iterations
示例函数:f(x) = x^3 x 1
def f(x):
return x**3 x 1
设定初始区间
a = 1.0
b = 2.0
调用二分法求解近似根
root, iterations = bisection_method(f, a, b)
打印结果
print("近似根:", root)
print("迭代次数:", iterations)
```
这段代码实现了一个`bisection_method`函数,该函数接受一个连续函数作为参数,以及一个初始区间[a, b]、允许误差和最大迭代次数,并返回近似根及迭代次数。
文章已关闭评论!
2024-11-26 16:33:34
2024-11-26 16:32:12
2024-11-26 16:30:54
2024-11-26 16:29:37
2024-11-26 16:28:10
2024-11-26 16:27:02
2024-11-26 16:25:48
2024-11-26 16:12:18