更新时间:2022-12-04 21:11
试位法是计算作为一个方程的根的未知量的一种方法,是先做出一个或者一些估计,再从这个或者这些估计出发并根据未知量的性质求出代求的未知量。试位法类似于二分法,也是将含根区间逐渐缩小,但它并不是单一的二分区间,而是利用区间两个端点的线性插值来求一个近似根。
试位法(False Position)(in Latin,regula falsi)试位法是在计算机工具非常落后的条件下人们为了改进二分法而得到的一个方法。由于算法原理有其合理性的一面,所以在如今的计算机条件下,在一些特定条件下还可继续发挥作用。
与二分法类似,假设 在区间 上连续且满足 。二分法中使用 的中点进行下一次迭代,尽管这种强力的算法极其有效,但却是相当低效的。二分法的一个缺点是:在等分区间 的过程中,没有考虑函数值 和 的大小。比如,如果 比 更加接近0,那么根很可能更加接近 而不是 。
一个可行的方法,如图1中表示的,通过一条直线连接 和 。这条直线和x轴的交点表示改进根的估计值。因为在这个根的求解中用直线代替了曲线,所以这个算法称为“试位法”,或者拉丁文称为“regula falsi”,该算法也称为“线性插值方法”。
根据相似三角形,直线与x轴的交点估计值如下式:
解得
该公式即为试位公式, 的值用该公式计算, 作为第一次近似根,将区间 分成 和 两个区间,如果 ,则根在区间 中,否则根在区间 中,用新得到的根区间重复上述步骤,直到近似根 满足一定的要求。
可以预期,如果 在 上的图像非常接近的一条直线,那么试位法的效果会明显优于二分法。然而实际情况并非总是如此,有时候也会不尽人意。如图2所示,如果区间 的长度比较大,曲线 在 内拐弯比较大(一阶导数值突然急剧增长),在这种情况下,试位法的效果一下子变得非常糟糕,反而不如二分法。
在图3所示的情况下,试位法出现了一个端点总是不动的情形,因此近似根只从一端收敛域精确根,我们并不希望这种情况的出现,因为它减慢了收敛速度。尤其当初始区间很大或函数在区间内偏离线性近似很远时收敛更慢。为了消除这种情况下的负面影响,可以对试位法做相应改进。
在改进的试位法中,如果一个端点重复两次或更多次作为新的含根区间的端点(称为不动点),则我们将这个点的函数值乘以一个大于0小于1的常数因子w,比如可以取w=0.5,其目的是为了使线性插值的根更接近于精确根。这种改进真正体现了“试位”的思想。