Loading

拉格朗日插值学习笔记

已知在一个平面上 \(n + 1\) 个点可以唯一确定一个 \(n\) 次多项式。
即构造一个多项式 \(f(x)\) 使得当 \(x = x_i\) 时,\(f(x) = y_i\)
拉格朗日插值提供了一种求出该多项式的方法。

直接构造是困难的,我们不妨构造一个简单一点的多项式,这个多项式要求在代入 \(x_i\) 的时候,值为 \(y_i\),其他情况的值为 \(0\)

那么可以写成这个样子:

\[f_i(x) = \dfrac{\prod_{j \not = i} (x - x_j) y_i}{\prod_{j \not = i} (x_i - x_j)} \]

对于每一个 \(i\) 我们都可以构造出这样的多项式,然后直接将这 \(n + 1\) 个多项式加起来就得到了我们最终想要的那个多项式。

显然,这个是符合我们上面的定义的。

朴素的计算方法是 \(O(n^2)\) 的。当 \(x_i\) 的取值是连续的数字的时候有一种 \(O(n)\) 的解法,在处理自然数幂和的时候比较好用。

首先,分子可以通过预处理 \(x-x_j\) 的前后缀实现 \(O(1)\) 求得,分母在 \(x_i\) 的取值是连续的数字的时候表示为两个阶乘的形式,注意正负号即可。

posted @ 2024-05-18 13:27  紊莫  阅读(37)  评论(1)    收藏  举报