Python用二分法求方程f(x)=x-exp(-x)的根,要求输出运算过程,代码简洁
时间: 2024-11-06 20:18:12 浏览: 6
Python查找函数f(x)=0根的解决方法
在Python中,我们可以使用二分法(也称黄金分割搜索)来寻找函数f(x) = x - exp(-x)的零点。这个算法适用于连续函数,并通过不断缩小搜索区间来逼近零点。以下是使用二分法的一个简练示例:
```python
import math
def binary_search(f, a, b, tol=1e-6):
"""
使用二分查找法找函数f的零点
:param f: 定义的函数
:param a: 区间左端点
:param b: 区间右端点
:param tol: 允许的精度
:return: 函数的近似零点
"""
if f(a) * f(b) >= 0: # 如果端点的函数值同号,说明无法找到零点
print("函数在区间[a, b]上无实根")
return None
while b - a > tol:
c = (a + b) / 2 # 计算中间点
if f(c) == 0: # 如果找到零点,则返回
return c
elif f(a) * f(c) < 0: # 否则根据函数值调整搜索区间
b = c
else:
a = c
return (a + b) / 2 # 当b-a接近tol时,返回平均值作为近似解
# 定义目标函数
def function(x):
return x - math.exp(-x)
# 设置初始区间
root = binary_search(function, 0, 1)
print(f"函数f(x)的近似根为 {root}")
阅读全文