编写一个用二分法求非线性方程根的函数x的三次方减x减1等于0的根
时间: 2024-10-20 11:14:03 浏览: 24
数值分析第四章知识点总结——非线性方程求根.pdf
在Python中,你可以编写一个基于二分查找算法的函数来求解非线性方程,如x^3 - x - 1 = 0 的实数根。这种方法适用于连续函数,其中函数在某个区间内有零点,而且可以保证在该区间内单调递增或递减。这里是一个简单的示例:
```python
def bisection(f, a, b, tol=1e-6):
"""
使用二分法求解非线性方程 f(x) = 0 的近似根
:param f: 非线性函数
:param a, b: 区间端点
:param tol: 精度阈值
:return: 根部近似值
"""
if f(a) * f(b) >= 0:
print("错误:初始区间选择无效,函数在[a, b]上无零点")
return None
while (b-a) > tol:
c = (a + b) / 2.0
if f(c) == 0:
break
elif f(a) * f(c) < 0:
b = c
else:
a = c
return c
# 定义我们的三次函数 f(x) = x**3 - x - 1
def func(x):
return x**3 - x - 1
# 初始搜索区间的设定
initial_a = -5
initial_b = 5
root = bisection(func, initial_a, initial_b)
print(f"方程 {func.__name__} 的近似根为: {root}")
阅读全文