【学习笔记】拉格朗日插值
拉格朗日插值
类似三个点可以确定二次函数解析式,\(n+1\) 个点可以确定一个 \(n\) 项式
问题:给定 \(k\) , \(n+1\) 个数和每个数对应的函数值 \(y_i\),如何求 \(f_k\) (P4181)
高斯消元的复杂度 \(n^3\),拉格朗日插值可以 \(n^2\) 解决这个问题
表达式:
推导:
我们考虑构造一个函数 \(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)\)
oiwiki上还有一种类似中国剩余定理的推导,用到了多项式在模意义下的逆元
横坐标是连续整数的拉格朗日插值
这个柿子预处理完是 \(O(n)\) 的
推导:
分别处理分子和分母,则分子可以改写成 \(\frac{ \prod\limits_{j=1}^n (x-j)}{x-i}\)
分母分为 \(j<i\) 和 \(j>i\) 考虑,对于小于那部分数轴上 \(j\) 到 \(i\) 的距离从 \(1\) 累乘到 \(i-1\),即 \((i-1)!\),大于那部分同理,为 \((n-i)!\),需要注意因为 \(j>i\),当 \(n-i\) 为奇数时贡献为负,所以再乘上 \((-1)^{n-i}\)
故表达式为 \(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)\)。
本文来自博客园,作者:CCComfy,转载请注明原文链接:https://www.cnblogs.com/cccomfy/p/17743030.html