二分法求函数f(x)=x^2-3x+1的根的编程代码
时间: 2024-09-18 07:17:51 浏览: 59
二分法是一种数值解冑方法,通常用于寻找连续函数在一个区间内的零点。以下是使用Python编写的一个简单的二分查找函数来找到`f(x) = x^2 - 3x + 1`的零点(即解方程`0 = f(x)`)。假设我们对函数的行为有一定了解,知道它在某个区间内有一个实数根。
```python
def bisection(f, a, b, epsilon=1e-6):
"""
使用二分法寻找函数f在[a, b]范围内的零点
:param f: 函数的定义,输入x返回f(x)
:param a: 区间左端点
:param b: 区间右端点
:param epsilon: 精度阈值
:return: 零点估计值
"""
if f(a) * f(b) >= 0: # 如果区间端点的函数值同号,则不存在零点
return None
while b - a > epsilon:
c = (a + b) / 2 # 中点
if f(c) == 0: # 如果中点就是零点则返回
return c
elif f(a) * f(c) < 0: # 如果中点左边函数值异号,说明零点在中间
b = c
else: # 否则在右边
a = c
return round((a + b) / 2, 5) # 返回最接近的零点近似值
# 示例函数f(x)
def func(x):
return x**2 - 3*x + 1
# 调用二分法求解
root = bisection(func, 0, 4)
print(f"函数f(x)的根大约在 {root}附近")
阅读全文