<学习笔记> 拉格朗日插值

拉格朗日插值

就像三个点可以确定一个二次函数,呢么 \(n+1\) 个点可以确定一个 \(n\) 项式。

问题:给定 \(n+1\) 个点以及对应的函数值,求 \(f_{k}\)

高斯消元的复杂度 \(n^3\),拉格朗日插值可以 \(n^2\) 解决这个问题

表达式:\(f(x)=\sum\limits_{i=1}^{n}y_i \prod\limits_{j\ne i} \frac{x-x_j}{x_i-x_j}\)

考虑构造一个函数 \(L_i(x)\),使得 \(L_i(x_i)=1\),对于任意的 \(1 \leq j \leq n\)\(j \neq i,L_i(x_j)=0\)

这样使 \(f(x)=\sum\limits_{i=1}^n y_i L_i(x)\) 对于任意的 \(1\leq i\leq n\) 都成立。

则:\(L_i(x)=\prod\limits_{j \neq i} \frac{x-x_j}{x_i-x_j}\),当 \(x=x_i\) 时函数值为 \(1\),否则为 \(0\)

故表达式为 \(f(x)=\sum\limits_{i=1}^n y_i L_i(x)=\sum\limits_{i=1}^{n}y_i \prod\limits_{j\ne i} \frac{x-x_j}{x_i-x_j}\),复杂度 \(O(n^2)\)

横坐标是连续整数的拉格朗日插值

\[f(x)=\sum\limits_{i=1}^{n}y_i \frac{ \prod\limits_{j=1}^{n}(x-j)}{(x-i)(-1)^{n-i}(i-1)!(n-i)!} \]

预处理完是 \(O(n)\)

所以假如让你求 \(\sum_{1}^{n} i^k (n \leq {10}^{15},k \leq {10}^{6})\)

老祖宗告诉我们这是个以 \(n\) 为自变量的 \(k+1\) 次多项式。(其实我也不会)那么可以计算出 \(k+2\) 项的值,然后进行 \(拉格朗日插值算\),复杂度 \(O(k)\)

参考资料: https://www.cnblogs.com/cccomfy/p/17743030.html

posted @ 2023-10-19 06:44  _bloss  阅读(30)  评论(0)    收藏  举报