拉格朗日插值
https://evrgardenviolet.github.io/post/la-ge-lang-ri-cha-zhi/
https://evrgardenviolet.github.io/
拉格朗日插值
用处
设 f(x) 是一个 n 次多项式,现在知道 x+1 个点满足多项式 f(x) ,求这个这个多项式上的任意的另一个点。
方法
对于大多对于拉格朗日的讲解都过于的复杂,这里有一种较为简单的理解:
对于已知的 x+1 个的点,我们可以依次使得 xi 的 f(xi)=1 其余的 f(xi) 都等于 1 。于是我们可以得到 x+1 个方程,然后就可以求解了!
公式
f(k)=i=1∑nyij=i∏xi−xjk−xj
证明:
由多项式除法可得:
f(x)≡f(a)(mod(x−a))
这样我们就可以列一个关于 f(x) 的多项式线性同余方程组:
⎩⎪⎪⎪⎨⎪⎪⎪⎧f(x)≡y1(mod(x−x1))f(x)≡yn(mod(x−x2))⋯f(x)≡yn(mod(x−xn))
我们根据中国剩余定理,有:
M=i=1∏n(x−x1),mi=x−xiM=j=i∏(x−xj)
则 mi 模 (x−xi) 意义下的逆元就是:
mi−1=j=i∏xi−xj1
所以就有:
f(x)≡i=1∑nyimimi−1≡i=1∑nyij=i∏xi−xjx−xi(modM)
所以在模意义下 f(x) 就是唯一的,即:
f(k)=i=1∑nyij=i∏xi−xjk−xj
QED.
时间复杂度
O(n2)