拉格朗日插值法

退役后把之前没学的东西补一下。

在离散数学中的拉格朗日插值。
任给定$F$中$2n+2$个数$x_1,x_2,…,x_{n+1}$,$y_1,y_2,…,y_{n+1}$。
其中$x_1,x_2,…x_{n+1}$互不相同。
我们找到一个$n$次的多项式$L$,使得对于 $forall i,L(x_i)=y_i$。
对于每一个$i$,我们构造出一个多项式$P_i$使得$P_i(x_i)=1,P_i(x_j)=0 quad j eq i$
$$P_i(x)=prod_{k=1,k eq i}^{n} frac{x-x_k}{x_i-x_k}$$
然后就可以得到$L$
$$L(x)=sum_{i=1}^{n}y_iP_i(x)=sum_{i=1}^{n}y_iprod_{k=1,k eq i}^{n} frac{x-x_k}{x_i-x_k}$$
预处理后暴力多项式除法 O(n^2)。
当x是连续的时候,预处理,可以O(n)求单项值。
这个式子可以变形一下:
$$L(x)=prod_{i=1}^n(x-x_i) sum_{i=1}^{n} frac{y_i}{(x-x_i)prod_{k=1,k eq i}^n(x_k-x_i)} $$
这个式子可以O(n)加进一个新点。
据说可以$nlog^2$求原函数,但我不太会。

原文地址:https://www.cnblogs.com/ezyzy/p/8504954.html