試位法是計算作為一個方程的根的未知量的一種方法,是先做出一個或者一些估計,再從這個或者這些估計出發(fā)并根據(jù)未知量的性質(zhì)求出代求的未知量。試位法類似于二分法,也是將含根區(qū)間逐漸縮小,但它并不是單一的二分區(qū)間,而是利用區(qū)間兩個端點的線性插值來求一個近似根。1
背景**試位法(False Position)(in Latin,regula falsi)**試位法是在計算機工具非常落后的條件下人們?yōu)榱烁倪M二分法而得到的一個方法。由于算法原理有其合理性的一面,所以在如今的計算機條件下,在一些特定條件下還可繼續(xù)發(fā)揮作用。
與二分法類似,假設(shè) 在區(qū)間
上連續(xù)且滿足
。二分法中使用
的重點進行下一次迭代,盡管二分法是極其有效的求根技術(shù),但是這種強力的算法還是相當(dāng)?shù)托У摹6址ǖ囊粋€缺點是:在等分區(qū)間
的過程中,沒有考慮函數(shù)值
和
的大小。比如,如果
比
更加接近0,那么根很可能更加接近
而不是
。
一個可行的方法,如右圖中表示的,通過一條直線連接 和
。這條直線和x軸的交點表示改進根的估計值。因為在這個根的求解中用直線代替了曲線,所以這個算法稱為“試位法”,或者拉丁文稱為“regula falsi”,該算法也稱為“線性插值方法”。
計算方法根據(jù)相似三角形,直線與x軸的交點估計值如下式:
解得
該公式即為試位公式,的值用該公式計算,
作為第一次近似根,將區(qū)間
分成
和
兩個區(qū)間,如果
,則根在區(qū)間
中,否則根在區(qū)間
中,用新得到的根區(qū)間重復(fù)上述步驟,直到近似根
滿足一定的要求。2
試位法的缺點與改進可以預(yù)期,如果 在
上的圖像非常接近的一條直線,那么
試位法的效果會明顯優(yōu)于二分法。然而實際情況并非總是如此,有時候也會不盡人意。如圖,如果區(qū)間
的長度比較大,曲線
在
內(nèi)拐彎比較大(一階導(dǎo)數(shù)值突然急劇增長),在這種情況下,試位法的效果一下子變得非常糟糕,反而不如二分法。
在右圖所示的情況下,試位法出現(xiàn)了一個端點總是不動的情形,因此近似根只從一端收斂域精確根,我們并不希望這種情況的出現(xiàn),因為它減慢了收斂速度。尤其當(dāng)初始區(qū)間很大或函數(shù)在區(qū)間內(nèi)偏離線性近似很遠時收斂更慢。為了消除這種情況下的負面影響,可以對試位法做相應(yīng)改進。
在改進的試位法中,如果一個端點重復(fù)兩次或更多次作為新的含根區(qū)間的端點(稱為不動點),則我們將這個點的函數(shù)值乘以一個大于0小于1的常數(shù)因子w,比如可以取w=0.5,其目的是為了是的線性插值的根更接近于精確根。這種改進真正體現(xiàn)了“試位”的思想。3
本詞條內(nèi)容貢獻者為:
尹維龍 - 副教授 - 哈爾濱工業(yè)大學(xué)