目录
弦截法是在牛顿法的基础上进行了改良。牛顿法迭代公式如下:
从迭代公式可以看出,牛顿迭代法的一个较强的要求是:
弦截法的迭代公式有两种:
① 定端点迭代法,用点
② 变端点迭代法,又叫快速弦截法, 用点
弦截法和牛顿法的异同点:
| 相同点 | 不同点 |
| 都是线性化方法 | 牛顿法在计算 弦截法在计算 |
| 弦截法不需要计算导函数,运算量更小 |
① 求解迭代函数;
② 构造迭代公式(一般采用变端点弦截法);
② 确定迭代初值;
③ 确定迭代终止条件。

迭代过程如下:

迭代过程如下:
连接P1、P2,两点的连线与x轴的交点的横坐标为;
......
如此循环,。
用快速弦截法求解方程
x 3 − x − 1 = 0 " role="presentation">的根,精度要求ε = " role="presentation" style="position: relative;">。 10 − 9 输出近似解以及迭代次数。
程序流程:

Python代码:
- #----弦截法求根-----#
- import numpy as np
- def f(x):
- y=x**3-x-1#求根方程的表达式
- return y
- def main():
- x0=0;x1=np.pi/2 #取初值
- e=10**(-9) #误差要求
- N=10000 #迭代次数上限
- L=0 #初始化迭代次数
- while abs((f(x1)-0))>e: #采用残差来判断
- x2=x1-(x1-x0)/(f(x1)-f(x0))*f(x1) #迭代公式
- x0=x1
- x1=x2
- L=L+1 #统计迭代次数
- if L>N:
- print("超出迭代次数上限")
- break
- print(f"x2={x2}") #输出数值解
- print(f(x2)-0) # 验证解的正确性
- print(f"L={L}") #输出迭代次数
- if __name__ == '__main__':
- main()
运行结果:
- x2=1.324717957244748
- 8.881784197001252e-15
- L=9