拉格朗日插值可以在 O(n2) 的时间之内求解求解一个 n 次多项式的表达式。
朴素的拉格朗日插值
现在要求解 n 次函数 f(x),已知 f(x) 要过 (x1,y1),(x2,y2),⋯,(xn+1,yn+1)。
那么考虑构造 n+1 可函数 fi(x) 满足:
{yi0x=xiOther wise.
那么显然就有:
f(x)=i=1∑n+1fi(x)
容易发现通过以下方式构造的 fi(x) 满足要求:
fi(x)=yi×j=1∧j=i∏n+1xi−xjx−xj
所以最后就得到了:
f(x)=i=1∑n+1(yi×i=1∏n+1xi−xjx−xj)
横坐标是连续整数的拉格朗日插值
对于 ∀i∈[1,n+1]∩Z∣xi=i 的情况,将其带入上式得到:
f(x)=i=1∑n+1(yi×i=1∧i=j∏n+1i−jx−j)
然后经过一些神奇的化简得到:
f(x)=i=1∑n+1(−1)n+1−i×yi×(i−1)!×(n+1−i)!×(x−i)i=1∏n+1(x−j)