各种数值算法
不知道以后这里是不是只有Lagrange插值。很大概率是的。
Lagrange插值
给出\(n\)个点\((x_i,y_i)\),求确定的\(n-1\)次多项式。
Sol:
利用点值的可加性,先构造出\(n\)个\(F_i(x)\)使之满足在\(x=x_i\)处取\(y_i\),在\(x\ne x_i\)处取\(0\),最终\(F(x)=\sum\limits_{i=0}^{n-1}F_i(x)\)。(中国剩余定理运用了类似的思想。实际上将中国剩余定理拓展到多项式中便是Lagrange插值。)
考虑构造\(F_i(x)\)。为了使\(F_i(x_j)=0\)(\(j\ne i\)),\(F_i(x)\)中应含有因式\(\prod\limits_{j\ne i}(x-x_j)\),但此时\(F_i(x_i)\)不一定等于\(y_i\),要调整\(F_i(x)\)系数,乘上\(\frac{y_i}{F_i(x_i)}\)即可。
得到:\(F_i(x)=y_i\prod\limits_{j\ne i}\frac{x-x_j}{x_i-x_j}\)
于是\(F(x)=\sum\limits_{i=0}^{n-1}y_i\prod\limits_{j\ne i}\frac{x-x_j}{x_i-x_j}\)
求原函数或点值\(O(n^2)\)。
一些拓展
连续取值插值
当\(x_i\)的取值连续时可以快速单点插值。这里以\(x_i=i\)为例。
分子为\(\prod\limits_{i=0}^{n-1}(x-i)\)挖去一项,经典维护前后缀积,设\(p_i=\prod\limits_{j=0}^{i-1}(x-j),s_i=\prod\limits_{j=i+1}^{n-1}(x-j)\)。
分母对于\(i>j\),\(\prod\limits_{j=0}^{i-1}(i-j)=i!\),对于\(i<j\),\(\prod\limits_{j=i+1}^{n-1}(i-j)=(-1)(-2)\dots(i-n+1)=(-1)^{n-i-1}(n-i-1)!\)
于是\(F(x)=\sum\limits_{i=0}^{n-1}y_i\frac{p_is_i}{i!(-1)^{n-i-1}(n-i-1)!}\)。
预处理一下,\(O(n)\)。
求连续自然数幂和
求\(\sum\limits_{i=1}^ni^k\)
Sol:
有第二类斯特林数的做法。
注意到每一项可以看做一个\(k\)次多项式,那么前缀和就是一个\(k+1\)次多项式。(由于前缀和与差分互逆,一个\(k+1\)次多项式差分会得到一个\(k\)次多项式即证明了该结论。)
那么求出前缀和的\(k+2\)项,然后对前缀和插值就做完了。
重心Lagrange插值
普通插值计算的过程有很多重复,考虑化简式子:
令\(P(x)=\prod(x-x_j),w_i=\frac{y_i}{\prod\limits_{j\ne i}(x_i-x_j)}\),那么:
预处理和求原函数\(O(n^2)\),求点值\(O(n)\)。
牛顿插值
感觉没什么用。上 oi-wiki 看。
自适应辛普森法
用于求积分。

浙公网安备 33010602011771号