二次插值算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二次插值法亦是用于一元函数在确定的初始区间内搜索极小点的一种方法。它属于曲线拟合方法的范畴。
一、基本原理
在求解一元函数的极小点时,常常利用一个低次插值多项式来逼近原目标函数,然后求该多项式的极小点(低次多项式的极小点比较容易计算),并以此作为目标函数的近似极小点。如果其近似的程度尚未达到所要求的精度时,可以反复使用此法,逐次拟合,直到满足给定的精度时为止。
常用的插值多项式为二次或三次多项式,分别称为二次插值法和三次插值法。这里我们主要介绍二次插值法的计算公式。
假定目标函数在初始搜索区间中有三点、和
,其函数值分别为、和(图1},且满足,,即满足函数值为两头大中间小的性质。利用这三点及相应的函数值作一条二次曲线,其函数为一个二次多项式
(1)
式中、、为待定系数。
图1
根据插值条件,插值函数与原函数在插值结点、、处函数值相等,得
(2)
为求插值多项式的极小点,可令其一阶导数为零,即
(3)
解式(3)即求得插值函数的极小点(4)
式(4)中要确定的系数可在方程组(2)中利用相邻两个方程消去而得:
(5)
(6)将式(5)、(6)代入式(4)便得插值函数极小值点的计算公式:
(7)把取作区间内的另一个计算点,比较与两点函数值的大小,在保持两头大中间小的前提下缩短搜索区间,从而构成新的三点搜索区间,再继续按上述
方法进行三点二次插值运算,直到满足规定的精度要求为止,把得到的最后的作为
的近似极小值点。上述求极值点的方法称为三点二次插值法。
为便于计算,可将式(7)改写为
(8)
式中:
(9)
(10)
二、迭代过程及算法框图
(1)确定初始插值结点
通常取初始搜索区间的两端点及中点为,,
。计算函数值,,,构成三个初始插值结点、、。
(2)计算二次插值函数极小点
按式(8)计算,并将记作点,计算。若本步骤为对初始搜索区间的第一次插值或点仍为初始给定点时,则进行下一步(3);否则转步骤(4)
(3)缩短搜索区间
缩短搜索区间的原则是:比较函数值、,取其小者所对应的点作为新的点,并以此点左右两邻点分别取作新的和,构成缩短后的新搜索区间。其具体方法则如图2所示,根据原区间中和的相对位置以及函数值和之比较有a、b、c、d四种情况,图中阴影线部分表示丢去的区间。在对新区间三个新点的代号作依次、
、的一般化处理后,计算其函数值,并令,,,返回步骤(2)。
图2(a)
图2(b)
图2(c)
图2(d)
(4)判断迭代终止条件
在一般情况下,因是前一次插值函数的极小值点,是本次插值函数的极小值点,若和的距离足够小时,即满足,或和两者原函数值已很接近,即满足,则停止迭代,这时,若,输出极小值点,极小值;否则,即时,输出极小值点,极小值
。如不满足上述迭代终止条件,则返回步骤(3),再次缩短搜索区间,直至最后满足终止条件。
按上述步骤设计的二次插值法算法框图见图3。
图3
算法框图中有几点需作些说明。
1.判别框?若成立,按式(9)和式(10)则有
说明三个插值结点、、在一条直线上;
2.判别框?若不成立,说明落在区间之外。
上述两种情况只是在区间已缩得很小,由于三个插值结点已十分接近,计算机的舍入误差才可能使其发生。此时取和作为最优解应是合理的。
3.在初始搜索区间第一次插值或仍为初始给定点时,和并不代表前后二次插值函数极小点,因而判别式并不能确切地反映该不该终止迭代,这时应进行步骤(3)缩短搜索区间,直至初始点第一次由代替,使用判别式?进行终止判别才具意义。为此,算法框图中设置开关K=0和K=1分别表示初始点第一次由代替前和后的状态。