拉格朗日插值学习笔记
在 Lagrange 之前,不妨先看看 CRT。
CRT
问题
其中 \(m_{1 \sim n}\) 两两互质。
解法
定义 \(e_i\) 为满足 \(e_i \equiv 1 \pmod {m_i}\) 且对于任意 \(j \ne i\) 有 \(e_i \equiv 0 \pmod {m_j}\) 的数。
那么 \(x\) 就可以表示为 \(e_{1 \sim n}\) 的线性组合:\(\sum\limits_{i=1}^n r_i e_i\)。
问题变为求解 \(e_i\)。
令 \(M_i = \prod\limits_{j \ne i} m_j\)。\(e_i = M_i \times [M_i]^{-1}_{\bmod m_i}\) 就是一个合理的构造。
Lagrange
已知 \(n\) 个点,插一个 \(n-1\) 次多项式:
时间复杂度 \(O(n^2)\)。
推导
即求解:
直接抄上中国剩余定理的推导:
定义 \(e_i\) 为满足 \(e_i \equiv 1 \pmod {x - x_i}\) 且对于任意 \(j \ne i\) 有 \(e_i \equiv 0 \pmod {x - x_j}\) 的数。
那么 \(x\) 就可以表示为 \(e_{1 \sim n}\) 的线性组合:\(\sum\limits_{i=1}^n y_i e_i\)。
问题变为求解 \(e_i\)。
令 \(M_i = \prod\limits_{j \ne i} (x - x_j)\)。\(e_i = M_i \times [M_i]^{-1}_{\bmod (x - x_i)}\) 就是一个合理的构造。
问题变为求解 \([M_i]^{-1}_{\bmod (x - x_i)}\)。
注意到一些多项式运算的性质:
两边同时取 \(n\) 次方有:
不同的 \(n\) 次方线性组合,有:(令 \(f\) 为多项式函数)
常数的模意义下倒数就是它正常的倒数,有:
因此:
代回去:
把变量名换的清楚一点,即:
扩展:连续点值的 Lagrange 插值
即对于每个 \(i\) 都有 \((x_i, y_i) = (i, f(i))\)。
分子上两个 \(\prod\) 都能线性预处理,时间复杂度 \(O(n)\)。
浙公网安备 33010602011771号