现实生活中,有的 f ( x ) f(x) f(x) 只提供了一些离散点上的函数值或导数值,人们自然希望能找到一个逼近 f ( x ) f(x) f(x) 的简单函数 P ( x ) P(x) P(x) .
多项式
l i ( x ) = ∏ i = 0 , i ≠ j n x − x i x j − x i l_i(x)=\prod_{i=0,i\neq j}^n\frac{x-x_i}{x_j-x_i} li(x)=i=0,i̸=j∏nxj−xix−xi
满足
l j ( x i ) = { 1 , i = j , 0 , i ≠ j , i , j = 0 , 1 , 2 , ⋯   , n . l_j(x_i)=\begin{cases} 1, & i=j,\\ 0, & i\neq j, \end{cases}\quad i,j=0,1,2,\cdots,n. lj(xi)={1,0,i=j,i̸=j,i,j=0,1,2,⋯,n.
代数差值问题的解
P n ( x ) = ∑ j = 0 n y j l j ( x ) , n > 0 , P_n(x)=\sum_{j=0}^ny_jl_j(x),n>0, Pn(x)=j=0∑nyjlj(x),n>0,
则 P n ( x ) P_n(x) Pn(x) 在[a,b]上的截断误差为
R n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ω n + 1 ( x ) , x ∈ [ a , b ] R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}\omega_{n+1}(x), \quad x\in[a,b] Rn(x)=(n+1)!f(n+1)(ξ)ωn+1(x),x∈[a,b]
其中 ξ \xi ξ 在诸 x i x_i xi 与 x x x 之间, w n + 1 ( x ) = ∏ i = 0 n ( x − x i ) . w_{n+1}(x)=\prod_{i=0}^n(x-x_i). wn+1(x)=i=0∏n(x−xi).
**定义:**设 x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,⋯,xn 为区间 [a,b] 上的互异节点,则称 f ( x i ) f(x_i) f(xi) 为 f ( x ) f(x) f(x) 在 x i x_i xi 处的零阶差商;称
f ( x i ) − f ( x j ) x i − x j \frac{f(x_i)-f(x_j)}{x_i-x_j} xi−xjf(xi)−f(xj)
为函数 f ( x ) f(x) f(x) 在 x i , x j x_i,x_j xi,xj 处的一阶差商,记为 f [ x i , x j ] f[x_i,x_j] f[xi,xj];一般称
f [ x 0 , x 1 , ⋯   , x n ] = f [ x 0 , x 1 , ⋯   , x n − 1 ] − f [ x 1 , x 2 , ⋯   , x n ] x 0 − x n f[x_0,x_1,\cdots,x_n]=\frac{f[x_0,x_1,\cdots,x_{n-1}]-f[x_1,x_2,\cdots,x_{n}]}{x_0-x_n} f[x0,x1,⋯,xn]=x0−xnf[x0,x1,⋯,xn−1]−f[x1,x2,⋯,xn]
为 f ( x ) f(x) f(x) 在 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,⋯,xn 出的 n n n 阶差商。
由此可以得到 n n n 次Newton插值公式:
f ( x ) = N n ( x ) + R n ( x ) , f(x)=N_n(x)+R_n(x), f(x)=Nn(x)+Rn(x),
其中
N n ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + ⋯ + f [ x 0 , x 1 , ⋯   , x n ] w n ( x ) R n ( x ) = f [ x 0 , x 1 , ⋯   , x n , x ] w n + 1 ( x ) w n ( x ) = ∏ i = 0 n − 1 ( x − x i ) N_n(x)=f(x_0)+f[x_0,x_1](x-x_0)+\cdots+f[x_0,x_1,\cdots,x_n]w_n(x)\\ R_n(x)=f[x_0,x_1,\cdots,x_n,x]w_{n+1}(x)\\ w_n(x)=\prod_{i=0}^{n-1}(x-x_i) Nn(x)=f(x0)+f[x0,x1](x−x0)+⋯+f[x0,x1,⋯,xn]wn(x)Rn(x)=f[x0,x1,⋯,xn,x]wn+1(x)wn(x)=i=0∏n−1(x−xi)
其截断误差与 Lagrange插值 一样。
实战技巧:
f ( x 0 ) ↘ . f ( x 1 ) → f [ x 0 , x 1 ] ↘ ↘ . f ( x 2 ) → f [ x 1 , x 2 ] → f [ x 0 , x 1 , x 2 ] ⋯ f(x_0)\\ \qquad\qquad\searrow.\\ \qquad\qquad f(x_1)\rightarrow f[x_0,x_1]\\ \qquad\qquad \qquad\qquad\searrow\qquad\qquad\searrow.\\ \qquad\qquad \qquad\qquad\qquad f(x_2)\rightarrow f[x_1,x_2]\rightarrow f[x_0,x_1,x_2]\\ \cdots f(x0)↘.f(x1)→f[x0,x1]↘↘.f(x2)→f[x1,x2]→f[x0,x1,x2]⋯