拉格朗日插值到中国剩余定理

目录

目录地址

上一篇

下一篇


拉格朗日插值

我们现在给定 \((n+1)\) 个点 \((x_i,y_i)\) ,请求解出一个不超过 \(n\) 次的多项式函数 \(P(x)\)

使得 \(\forall i\in[1,n+1]\bigcap Z,P(x_i)=y_i\)

对于这种问题,暴力设出 \(P(x)\)\((n+1)\) 个系数,然后代入这些点,联立方程求解

这些需要用到克拉默法则或者高斯消元法求解,复杂度挺高的,为 \(O(n^3)\),我们思考有没有更优的方法:

假设 \(\displaystyle P_i(x)=(\prod_{j=1}^{i-1}(x-x_i)\ )\cdot(\prod_{j=i+1}^{n+1}(x-x_i)\ )\)

那么显然: \(\forall j\neq i,P(x_j)=0\)

假设 \(P(x_i)=b_i\) 则记 \(a_i={y_i\over b_i}\)\(a_i={y_i\over P(x_i)}\)

因此 \(a_iP(x_i)=y_i\)

这样有什么好处呢?

很显然,所求一定可以写为 \(\displaystyle P(x)=\sum_{i=1}^{n+1}a_iP(x_i)\)

例如我们代入 \(x_j\)

\(\displaystyle P(x_j)=\sum_{i=1}^{n+1}a_iP(x_j)=\sum_{i\neq j}a_iP(x_j)+a_jP(x_j)=0+y_j=y_j\)


虽然看起来并没有更优,但如果我们所求的不是 \(P(x)\) 本身,而是 \(P(x)\)\(x=k\) 处的取值时,速度会快上不少:

使用原方法,克拉默法则或是高斯消元法都是 \(O(n^3)\) 的,加上一次秦九韶算法 \(O(n)\) ,总复杂度 \(O(n^3)\)

而如果使用高斯消元法:

\(\displaystyle P(k)=\sum_{i=1}^{n+1}{y_i\over P_i(x_i)}P_i(k)\)

猜你喜欢

转载自www.cnblogs.com/JustinRochester/p/12418726.html