漫步最优化二十七——二次插值法


陪着你,仿佛面朝阳光,
不管走到哪里都是晴天。
在蝴蝶飞舞的百花丛中,
一朵一朵的鲜花因你而香。
一片云掉在我眼前,
我捏成你的形状,
一口一口的吃掉了忧愁。
我们手牵着手,
一步两步三步四步,
看着对方深情的眼眸,
心照不宣的许下了誓言。
——畅宝宝的傻逼哥哥

在一维优化的近似法中,我们先假定目标函数的近似表达式,通常用低阶多项式。如果我们假定二阶多项式为

p(x)=a0+a1x+a2x2

其中 a0,a1,a2 是常数,那么我们就得到二次插值法。

令

p(xi)=a0+a1xi+a2x2i=f(xi)=fi

其中 i=1,2,3,[x1,x3] 包含 f(x) 的最小值 x∗ 。假设 fi 的值是已知的,那么通过同时求解三个等式可得 a0,a1,a2 ,推到出的多项式 p(x) 就是 f(x) 的近似。基于这样的场景,假设 p(x),f(x) 的图像如图1所示,显然, p(x) 的最小值 x¯ 很靠近 x∗ ,如果 f(x) 可以用二阶多项式表示,那么 x¯≈x∗ ,如果 f(x) 就是二次函数,那么 p(x) 就是 f(x) 的准确表示且 x¯=x∗ 。

p(x) 对 x 的一阶导为

p′(x)=a1+2a2x

如果

p′(x)=0

且 a2≠0 ,那么 p(x) 的最小值为

x¯=−a12a2

通过求解上面的等式组可得

a1a2=−(x22−x23)f1+(x23−x21)f2+(x21−x22)f3(x1−x2)(x1−x3)(x2−x3)=(x2−x3)f1+(x3−x1)f2+(x1−x2)f3(x1−x2)(x1−x3)(x2−x3)

所以

x¯=(x22−x23)f1+(x23−x21)f2+(x21−x22)f32[(x2−x3)f1+(x3−x1)f2+(x1−x2)f3]


这里写图片描述
图1

上面的过程是二次插值法的一次迭代。如果 f(x) 不能用二阶多项式表示,那么需要多执行几次这样的迭代。比较合适的策略是每次迭代的时候缩小不确定区间,可以舍弃 x1 或 x3 来实现该目的,然后用保留下来的两点以及 x¯ 进行新的迭代。

几次迭代后,三个点将会在 x∗ 的邻域内,因此 p(x) 的二阶多项式将会是 f(x) 的精确表示,且可以确定任意精度范围内的 x∗ 。