2023-06-19《计算方法》- 陈丽娟 - 方程的近似解法(注解)
2023-06-19《计算方法》- 陈丽娟 - 方程的近似解法(注解)
前面介绍了求解方程的二分法、迭代法和牛顿迭代法,这里介绍弦截法,欸特金加速法。
一、弦截法
由于牛顿迭代法需要计算导数,而从上一章节我们看到导数的求解对数值稳定性会产生不良影响,为了避免导数,弦截法利用差商代替导数,其算法格式为:
- 给定
邻域内的两点
,
, 且
.
- 计算
.
- 若
, 停止,否则回到2.
弦截法的示意图:
弦截法的迭代格式与牛顿法如出一辙,都具有局部收敛性,并且弦截法具有超线性收敛速度。
- % f目标函数, x0,x1初始点,epsilon
- function [xs, xslog] = SecantMeth(f, x0, x1, epsilon, maxit)
- xs = x0;
- iter = 1;
- xslog = [];
- if abs(feval(f,x0)) <= epsilon
- else
- while abs(feval(f,xs)) > epsilon
- if iter > maxit
- break
- end
- fx0 = feval(f,x0);
- fx1 = feval(f,x1);
- fxdiff = (fx1 - fx0) / (x1 - x0);
- xs = x0 - fx0 / fxdiff;
- xslog = [xslog xs];
- x0 = x1;
- x1 = xs;
- iter = iter + 1;
- end
- end
- end
例子
- f = @(x) 5 .* x.^3+x.^2-x+1;
- epsilon = 1e-8;
- x0 = -10;
- x1 = 10;
- maxit = 1e3;
- [xs, xslog] = SecantMeth(f, x0, x1, epsilon, maxit)
书中另外介绍了Aitken加速算法,但是有些模糊,建议参考
lecture13.pdf
121.66 KB
https://mycareerwise.com/programming/category/numerical-analysis/aitkens-method#c
合集:
《计算方法》-陈丽娟
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律