陪着你,仿佛面朝阳光,


不管走到哪里都是晴天。


在蝴蝶飞舞的百花丛中,


一朵一朵的鲜花因你而香。


一片云掉在我眼前,


我捏成你的形状,


一口一口的吃掉了忧愁。


我们手牵着手,


一步两步三步四步,


看着对方深情的眼眸,


心照不宣的许下了誓言。


——畅宝宝的傻逼哥哥


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


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]




二次插值 java 二次插值公式_多项式


图1



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

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