用二分法求方程 在区间[1,2]的根,要求根的绝对误差 ,首先证明根的存在性,然后运用Python编程绘制函数的曲线并将运用二分法每次求解数列中的值在图形中展示出来
时间: 2023-06-09 13:02:26 浏览: 83
好的,我明白了。 首先,根据零点存在定理,如果一个函数在区间[1,2]内连续并且函数值在该区间两端的符号是相反的,那么该函数必定在该区间内具有至少一个实根。
假设 f(x) = x^3 - 9x + 1,在区间[1,2]内,
f(1) = 1^3 - 9(1) + 1 = -7 < 0
f(2) = 2^3 - 9(2) + 1 = -11 < 0
因此,零点存在定理成立,该函数在区间[1,2]内至少存在一个实根。
然后,可以按照二分法的步骤来求根的绝对误差:
1. 将区间[1,2]划分为两个子区间[1,1.5]和[1.5,2],并计算函数在两个端点的函数值f(1),f(1.5),f(2);
2. 判断根是否在子区间[1,1.5]或[1.5,2]内,并将包含根的子区间作为新的区间;
3. 重复步骤1和步骤2,直到区间长度小于指定的绝对误差(比如0.001)为止。
Python代码如下:
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return x**3 - 9*x + 1
x = np.linspace(1,2,100)
y = f(x)
plt.plot(x,y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('y = x^3 - 9x + 1')
left = 1
right = 2
tolerance = 0.001
while (right - left) > tolerance:
mid = (left + right) / 2
if f(left)*f(mid) < 0:
right = mid
else:
left = mid
plt.scatter(mid, f(mid), color='r')
plt.show()
执行后,会绘制出函数的曲线,并在每次求解时在图形中标出求解的值。最终会得到根的值为1.893,根的绝对误差小于0.001。