MATLAB实现的用二分法,割线法,牛顿迭代法求解方程的根的实验报告
从三种算法的渐进时间复杂度函数图像容易看出,随着n的不断增大是图像大致呈线性变化,说明了每次迭代所进行的计算量都是大致相当的,可以认为是三种算法都是稳定的。
图像也反映出二分法的计算时间明显大于另外两种算法,这是由于二分法每一个循环语句内都要进行求f(a),f(b),f(a)*f(b),(a+b)/2四次计算计算量大于其他两种算法;牛顿法相较于割线法虽然收敛速得更快,但每次迭代都要重新计算f(x和f’(x),相比于割线法每次只需计算一个f(x),计算量要稍大一些,所以每次迭代耗时更多。
六、其他可供使用的算法
6.1 简易牛顿法算法思想简述
简易牛顿法即将
xk 1 xk f(xk) f (xk)
中的f (xk)换成一个常数M,迭代公式为
xk 1 xk
6.2 Steffensenf迭代法算法思想简述 f(xk)M
假设我们要解方程x g(x),这个方法的迭代公式是
yk g(xk),zk g(yk),
(yk xk)2
xk 1 xk ,k 0,1,2,3,....
zk 2yk xk