二次插值法的计算步骤如下:
1)给定初始区间[a,b]、收敛精度ε和区间中的另外一个点c。
2)将三个已知点按顺序排列:x1=a,x2=c,x3=b,f1=f(x1),f2=f(x2),f3=f(x3)。
3)按式(3-4)或按式(3-5)计算中间插入点xP及其函数值fP=f(xP)。
4)收敛判断:若|xP-x2|≤ε,|f2-fP|≤ε,则转6);否则,转5)。
5)缩小区间:
若fP≤f2,巨当xP≤x2,令x3=x2,x2=xP,f3=f2,f2=fP;巨当xP>x2,令x1=x2,x2=xP,f1=f2,f2=fP;
若fP>f2,巨当xP≤x2,令x1=xP,f1=fP;巨当xP>x2,令x3=xP,f3=fP。
转3)求新的插入点。
6)fP≤f2,则令x*=xP,f*=fP;否则,令x*=x2,f*=f2,结束一维搜索。
二次插值法的区间取舍及替换如图3-10所示,程序框图如图3-11所示。

图3-10 二次插值法的区间取舍及替换

图3-11 二次插值法的程序框图
例3-2 用二次插值法求解例3-1。
解:(1)初始区间的确定(https://www.xing528.com)
初始区间的确定与上题相同。即[a,b]=[0,2],另有一中间点x2=1。
(2)用二次插值法接近极小点
1)记此初始区间内的相邻三点及其函数值依次为x1=0,x2=1,x3=2,f1=2,f2=1,f3=18,将它们代入式(3-4),得插值函数的极小点,即新的插入点及其函数值:

由于fP<f2,xP<x2,故新区间为
[a,b]=[a,x2]=[0,1]
由于|x2-xP|=1-0.555=0.445>0.2,故应继续做第二次插值计算。
2)在新的区间内,相邻三点及其函数值依次为x1=0,x2=0.555,x3=1,f1=2,f2=0.293,f3=1,将它们代入式(3-4)得
xP=0.663
fP=0.222
由于fP<f2,xP>x2,故新区间为
[a,b]=[x2,b]=[0.555,1]
由于|x2-xP|=|0.555-0.663|=0.108<0.2,故一维搜索到此结束,极小点和极小值分别为
x*=0.663,f*=0.222
由以上计算可以看出,二次插值法的收敛速度比黄金分割法快得多。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
