拉格朗日插值法
退役后把之前没学的东西补一下。
在离散数学中的拉格朗日插值。
任给定$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\neq i$
$$P_i(x)=\prod_{k=1,k\neq 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_i\prod_{k=1,k\neq 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 \neq i}^n(x_k-x_i)} $$
这个式子可以O(n)加进一个新点。
据说可以$nlog^2$求原函数,但我不太会。