拉格朗日插值

  • 应用范围:求一个 \(n\) 次多项式过 \((x_1,y_1)\sim (x_n,y_n)\)

  • 构造思想:

    • \(f_i(x)\) 使得 对于 \(x_i\neq x_j\)\(f(x_j)=0\),且 \(f(x_i)=1\),注意并不是对全体 \(R\) 满足。
    • 由上 \(F(x)=\sum y_if_i(x)\) 即为所求。
    • 构造方法:\(f_i(x)=\frac{\prod_{j=1,j\neq i}^n(x-x_j)}{\prod_{j=1,j\neq i}^n(x_i-x_j)}\)

也就是:

\[\begin{aligned} F(x)=\sum_{i=1}^ny_i\prod_{j\neq i}\frac{(x-x_j)}{(x_i-x_j)} \end{aligned} \]

计算时可以直接带值 \(O(n^2)\) 计算,也可以利用背包的操作先求出 \(\prod_{i=1}^n(x-x_i)\) 的具体系数 \(g_0\sim g_n\),然后除掉一个 \((x-x_i)\) 后的 \(g'\),其实相当于 \(-x_ig'_k+g'_{k-1}\)。根据这个式子可以直接确定 \(g'_0\),进而逐步确定 \(g’_{1\sim n}\)

在实际应用中 往往维护 \(x_i\) 对应的 \(y_i\),也就是点值,最后一步再插回原多项式

我们可以在 \(O(n^2)\) 的复杂度内还原原多项式。

例题 CF995F,code

posted @ 2024-09-20 19:50  spdarkle  阅读(7)  评论(0编辑  收藏  举报