牛顿插值
本文内容完全原创,严禁抄袭。
差分方法
差分法起源于微积分的近似求解,对于一个简单的微分方程
y d x + d y = 0 ydx+dy=0 ydx+dy=0
如果将 d y , d x dy,dx dy,dx都近似为点 x 0 x_0 x0很小的邻域上的对应的长度 Δ y , Δ x \Delta y,\Delta x Δy,Δx,那么在 x 0 x_0 x0处微分方程的解就可以近似为:
y 0 = − Δ y Δ x y_0=-\frac{\Delta y}{\Delta x} y0=−ΔxΔy
可以看出,差分思想的本质其实是线性插值,但是差分的定义中用 Δ x \Delta x Δx取代了原来两点的差距 ( x i − x j ) (x_i-x_j) (xi−xj),这样,当我们采取等间隔插值的方式时,差分的计算就变得很简便了。
逐步插值的思考
在很多情况下我们并不是一次性得到了所有的点,而是逐步得到了一个又一个的数据点。采用拉格朗日插值的方法要求重新计算所有的插值系数,这会造成大量的浪费,特别是对大量堆叠的数据点,无法完成迅速有效的插值。
在这种情况下,考虑使用递归定义的方法处理朗格朗日插值公式的系数:
L k ( x ) = ∏ l = 0 , l ≠ k n ( x − x l ) ∏ l = 0 , l ≠ k n ( x k − x l ) L_k(x)=\frac{\prod_{l=0,l\neq k}^n(x-x_l)} {\prod_{l=0,l\neq k}^{n}(x_k-x_l)} Lk(x)=∏l=0,l=kn(xk−xl)∏l=0,l=kn(x−xl)
注意到在插入第 ( n + 1 ) (n+1) (n+1)个点的时候,分母和分子中关于原来的 n n n个点的差值乘积并没有发生变化,有变化的只有下面的两种:
1. L n + 1 ′ ( x ) = f ( x n + 1 ) ∏ l = 0 , l ≠ n + 1 n ( x − x l ) ∏ l = 0 , l ≠ n + 1 n ( x n + 1 − x l ) 1.\quad\quad\quad L^\prime_{n+1}(x)=f(x_{n+1})\frac{\prod_{l=0,l\neq n+1}^n(x-x_l)} {\prod_{l=0,l\neq n+1}^{n}(x_{n+1}-x_l)} 1.Ln+1′(x)=f(xn+1)∏l=0,l=n+1n(xn+1−xl)∏l=0,l=n+1n(x−xl)
2. L k ′ ( x ) = x − x n + 1 x k − x n + 1 L k ( x ) 2.\quad\quad\quad L^\prime_k(x)=\frac{x-x_{n+1}}{x_k-x_{n+1}}L_k(x) 2.Lk′(x