主题
Search

割线法


SecantMethod

一种 求根 算法,它假设函数在感兴趣的区域内近似为线性。每次改进都取为近似线与轴相交的点。割线法仅保留最近的估计值,因此根不一定保持在括号内。割线法在 Wolfram 语言 中作为未公开的选项实现Method -> SecantFindRoot[eqn, {x, x0, x1}].

算法 收敛时,其收敛阶数为

 lim_(k->infty)|epsilon_(k+1)| approx C|epsilon|^phi,
(1)

其中 C 是一个常数,phi黄金比例

 f^'(x_(n-1)) approx (f(x_(n-1))-f(x_(n-2)))/(x_(n-1)-x_(n-2))
(2)
 f(x_n) approx f(x_(n-1))+f^'(x_(n-1))(x_n-x_(n-1))=0
(3)
 f(x_(n-1))+(f(x_(n-1))-f(x_(n-2)))/(x_(n-1)-x_(n-2))(x_n-x_(n-1))=0,
(4)

所以

 x_n=x_(n-1)-(f(x_(n-1))(x_(n-1)-x_(n-2)))/(f(x_(n-1))-f(x_(n-2))).
(5)

割线法可以在 Wolfram 语言 中实现为

  SecantMethodList[f_, {x_, x0_, x1_}, n_] :=
    NestList[Last[#] - {0, (Function[x, f][Last[#]]*
      Subtract @@ #)/Subtract @@
      Function[x, f] /@ #}&, {x0, x1}, n]

另请参阅

试位法, 求根算法

使用 Wolfram|Alpha 探索

参考文献

Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; 和 Vetterling, W. T. "割线法、试位法和 Ridders 法。" 《FORTRAN 数值食谱:科学计算的艺术》第 2 版第 9.2 节。英国剑桥:剑桥大学出版社,pp. 347-352, 1992。

在 Wolfram|Alpha 上被引用

割线法

引用为

Weisstein, Eric W. "割线法。" 来自 MathWorld--Wolfram Web 资源。 https://mathworld.net.cn/SecantMethod.html

主题分类