计算方法(四):插值与拟合

插值与拟合

插值概念与基础理论

插值问题的提法

给定函数 f ( x ) f(x) f(x) 在区间 [ a , b ] [a,b] [a,b] 上的 n + 1 n+1 n+1 个函数值:
x x 0 x 1 ⋯ x n f ( x ) f ( x 0 ) f ( x 1 ) ⋯ f ( x n ) \begin{array}{c|ccccc}x & x_0 & x_1 & \cdots & x_n\\ \hline f(x) & f(x_0) & f(x_1) & \cdots & f(x_n)\end{array} xf(x)x0f(x0)x1f(x1)xnf(xn)
x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn 互不相同。 Φ \Phi Φ 为给定的某一个函数类。若 Φ \Phi Φ 上有函数 φ ( x ) \varphi(x) φ(x),满足
φ ( x i ) = f ( x i ) , i = 0 , 1 , 2 , ⋯   , n \varphi(x_i)=f(x_i),i=0,1,2,\cdots,n φ(xi)=f(xi),i=0,1,2,,n
则称 φ ( x ) \varphi(x) φ(x) f ( x ) f(x) f(x) 关于结点 x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn Φ \Phi Φ 上的插值函数 x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn 称为插值结点 [ a , b ] [a,b] [a,b] 称为插值区间, f ( x ) f(x) f(x) 称为被插函数

根据插值定义,插值函数实际上是一条经过平面上点 ( x i , f ( x i ) ) i = 0 , 1 , ⋯   , n (x_i,f(x_i))_{i=0,1,\cdots,n} (xi,f(xi))i=0,1,,n 的曲线,这条平面曲线函数,就可以作为 f ( x ) f(x) f(x) 的逼近函数。

插值函数的存在唯一性:插值函数类 Φ \Phi Φ 为一个函数空间,若插值结点数为 n + 1 n+1 n+1,实际上给出了 n + 1 n+1 n+1 个限制条件,为了保证插值函数的存在唯一性,给出的插值函数空间应是 n + 1 n+1 n+1 维的,即 d i m Φ = n + 1 dim\Phi=n+1 dimΦ=n+1

任取 Φ \Phi Φ n + 1 n+1 n+1 个线性无关函数 φ 0 ( x ) , φ 1 ( x ) , ⋯   , φ n ( x ) \varphi_0(x),\varphi_1(x),\cdots,\varphi_n(x) φ0(x),φ1(x),,φn(x),它们可作为 Φ \Phi Φ 的一组基,记为:
Φ = s p a n { φ 0 ( x ) , φ 1 ( x ) , ⋯   , φ n ( x ) } \Phi=span\{\varphi_0(x),\varphi_1(x),\cdots,\varphi_n(x)\} Φ=span{φ0(x),φ1(x),,φn(x)}
于是,任取 φ ( x ) ∈ Φ \varphi(x)\in\Phi φ(x)Φ,则 φ ( x ) \varphi(x) φ(x) 可唯一地表为:
φ ( x ) = a 0 φ 0 ( x ) + a 1 φ 1 ( x ) + ⋯ + a n φ n ( x ) \varphi(x)=a_0\varphi_0(x)+a_1\varphi_1(x)+\cdots+a_n\varphi_n(x) φ(x)=a0φ0(x)+a1φ1(x)++anφn(x)
这里 ( a 0 , a 1 , ⋯   , a n ) (a_0,a_1,\cdots,a_n) (a0,a1,,an) 称之为 φ ( x ) \varphi(x) φ(x) 在基 { φ i ( x ) } i = 1 n \{\varphi_i(x)\}^n_{i=1} {φi(x)}i=1n 下的坐标。

(*)定理: { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n [ a , b ] [a,b] [a,b] n + 1 n+1 n+1 个互异点, Φ = s p a n { φ 0 ( x ) , φ 1 ( x ) , ⋯   , φ n ( x ) } \Phi=span\{\varphi_0(x),\varphi_1(x),\cdots,\varphi_n(x)\} Φ=span{φ0(x),φ1(x),,φn(x)} n + 1 n+1 n+1 维函数空间,定义在 [ a , b ] [a,b] [a,b] 上的函数 f ( x ) f(x) f(x) 关于结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n Φ \Phi Φ 上的插值函数存在且唯一的充要条件为行列式:
∣ φ 0 ( x 0 ) φ 1 ( x 0 ) ⋯ φ n ( x 0 ) φ 0 ( x 1 ) φ 1 ( x 1 ) ⋯ φ n ( x 1 ) ⋯ ⋯ φ 0 ( x n − 1 ) φ 1 ( x n − 1 ) ⋯ φ n ( x n − 1 ) φ 0 ( x n ) φ 1 ( x n ) ⋯ φ n ( x n ) ∣ ≠ 0 \left|\begin{matrix}\varphi_0(x_0) & \varphi_1(x_0) & \cdots & \varphi_n(x_0)\\\varphi_0(x_1) & \varphi_1(x_1) & \cdots & \varphi_n(x_1)\\&\cdots&\cdots\\\varphi_0(x_{n-1}) & \varphi_1(x_{n-1}) & \cdots & \varphi_n(x_{n-1})\\\varphi_0(x_n) & \varphi_1(x_n) & \cdots & \varphi_n(x_n)\end{matrix}\right|\neq0 φ0(x0)φ0(x1)φ0(xn1)φ0(xn)φ1(x0)φ1(x1)φ1(xn1)φ1(xn)φn(x0)φn(x1)φn(xn1)φn(xn)=0

插值多项式的存在唯一性

P n = { a 0 + a 1 x + ⋯ + a n x n ∣ a i ∈ R } P_n=\{a_0+a_1x+\cdots+a_nx^n|a_i\in R\} Pn={a0+a1x++anxnaiR},则 P n P_n Pn 为一个 n + 1 n+1 n+1 维的线性空间( n n n 次多项式空间)。

{ x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n [ a , b ] [a,b] [a,b] 上互异点, f ( x ) f(x) f(x) 为定义在 [ a , b ] [a,b] [a,b] 上的函数,若有 P n ( x ) ∈ P n P_n(x)\in P_n Pn(x)Pn,满足 P n ( x i ) = f ( x i ) , i = 0 , 1 , ⋯   , n P_n(x_i)=f(x_i),i=0,1,\cdots,n Pn(xi)=f(xi),i=0,1,,n,则称 P n ( x ) P_n(x) Pn(x) f ( x ) f(x) f(x) 关于结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n n n n 次插值多项式

定理1: f ( x ) f(x) f(x) 关于 n + 1 n+1 n+1 个互异结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n n n n 次插值多项式存在且唯一。

证明:设插值多项式: P n ( x ) = a 0 + a 1 x + ⋯ + a n x n P_n(x)=a_0+a_1x+\cdots+a_nx^n Pn(x)=a0+a1x++anxn,满足 a 0 + a 1 x i + ⋯ + a n x i n = f ( x i ) , i = 0 , 1 , ⋯   , n a_0+a_1x_i+\cdots+a_nx_i^n=f(x_i),i=0,1,\cdots,n a0+a1xi++anxin=f(xi),i=0,1,,n,而
D = ∣ 1 x 0 x 0 2 ⋯ x 0 n 1 x 1 x 1 2 ⋯ x 1 n ⋮ ⋮ ⋮ ⋮ 1 x n x n 2 ⋯ x n n ∣ = ∏ n ≥ i > j ≥ 0 ( x i − x j ) ≠ 0 D=\left|\begin{matrix}1&x_0&x_0^2&\cdots&x_0^n\\1&x_1&x_1^2&\cdots&x_1^n\\\vdots&\vdots&\vdots&&\vdots\\1&x_n&x_n^2&\cdots&x_n^n\end{matrix}\right|=\prod_{n\geq i>j\geq0}(x_i-x_j)\neq0 D=111x0x1xnx02x12xn2x0nx1nxnn=ni>j0(xixj)=0
由克莱姆法则得 a 0 , a 1 , ⋯   , a n a_0,a_1,\cdots,a_n a0,a1,,an 存在唯一,即 P n P_n Pn 上存在且唯一的有 P n ( x ) P_n(x) Pn(x),满足 P n ( x i ) = f ( x i ) , i = 0 , 1 , ⋯   , n P_n(x_i)=f(x_i),i=0,1,\cdots,n Pn(xi)=f(xi),i=0,1,,n

同时, n n n 次插值多项式 P ( x ) P(x) P(x) 可表示为 P n ( x ) = a 0 + a 1 x + ⋯ + a n x n P_n(x)=a_0+a_1x+\cdots+a_nx^n Pn(x)=a0+a1x++anxn,其中 a i = D i D , i = 0 , 1 , 2 , ⋯   , n a_i=\frac{D_i}{D},i=0,1,2,\cdots,n ai=DDi,i=0,1,2,,n
D i = ∣ 1 x 0 ⋯ x 0 i − 1 f ( x 0 ) x 0 i + 1 ⋯ x 0 n 1 x 1 ⋯ x 1 i − 1 f ( x 1 ) x 1 i + 1 ⋯ x 1 n ⋯ ⋯ 1 x n ⋯ x n i − 1 f ( x n ) x n i + 1 ⋯ x n n ∣ D_i=\left|\begin{matrix}1&x_0&\cdots&x_0^{i-1}&f(x_0)&x_0^{i+1}&\cdots&x_0^n\\1&x_1&\cdots&x_1^{i-1}&f(x_1)&x_1^{i+1}&\cdots&x_1^n\\&&&\cdots&\cdots\\1&x_n&\cdots&x_n^{i-1}&f(x_n)&x_n^{i+1}&\cdots&x_n^n\end{matrix}\right| Di=111x0x1xnx0i1x1i1xni1f(x0)f(x1)f(xn)x0i+1x1i+1xni+1x0nx1nxnn

插值余项

R n ( x ) = f ( x ) − P n ( x ) R_n(x)=f(x)-P_n(x) Rn(x)=f(x)Pn(x) 称为插值余项(或称误差)。

定理2:若 f ∈ C n + 1 [ a , b ] f\in C^{n+1}[a,b] fCn+1[a,b],互异点 { x i } i = 0 n ⊂ [ a , b ] \{x_i\}^n_{i=0}\subset[a,b] {xi}i=0n[a,b],则 f ( x ) f(x) f(x) { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n 为插值结点的 n n n 次插值多项式余项:
R n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) 其 中 : m i n { x 0 , x 1 , ⋯   , x n , x } ≤ ξ = ξ ( x ) ≤ m a x { x 0 , x 1 , ⋯   , x n , x } R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)(x-x_1)\cdots(x-x_n)\\其中:min\{x_0,x_1,\cdots,x_n,x\}\leq\xi=\xi(x)\leq max\{x_0,x_1,\cdots,x_n,x\} Rn(x)=(n+1)!f(n+1)(ξ)(xx0)(xx1)(xxn)min{x0,x1,,xn,x}ξ=ξ(x)max{x0,x1,,xn,x}
推论: f ( x ) ∈ C ( n + 1 ) [ a , b ] f(x)\in C^{(n+1)}[a,b] f(x)C(n+1)[a,b],且 ∣ f ( n + 1 ) ( x ) ∣ ≤ M n + 1 ( a ≤ x ≤ b ) |f^{(n+1)}(x)|\leq M_{n+1}(a\leq x\leq b) f(n+1)(x)Mn+1(axb),则 f ( x ) f(x) f(x) { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n 为插值结点的 n n n 次插值多项式余项
∣ R n ( x ) ∣ ≤ M n + 1 ( n + 1 ) ! ∣ ω n + 1 ( x ) ∣ |R_n(x)|\leq\frac{M_{n+1}}{(n+1)!}|\omega_{n+1}(x)| Rn(x)(n+1)!Mn+1ωn+1(x)
其中: ω n + 1 ( x ) = ∏ i = 0 n ( x − x i ) \omega_{n+1}(x)=\prod^n_{i=0}(x-x_i) ωn+1(x)=i=0n(xxi)

注: 若插值点 x x x 位于插值区间 [ m i n 1 ≤ i ≤ n x i , m a x 1 ≤ i ≤ n x i ] [min_{1\leq i\leq n}x_i,max_{1\leq i\leq n}x_i] [min1inxi,max1inxi] 内,则该插值过程称为内插,否则称为外插。一般情况下,内插效果要比外插好一点,所以,插值结点尽可能选取在插值区间内。

插值多项式的求法

拉格朗日(Lagrange)型插值多项式

对于给定的 n + 1 n+1 n+1 个互异结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n,如果能找到 P n P_n Pn n + 1 n+1 n+1 个多项式 { l i ( x ) } i = 0 n \{l_i(x)\}^n_{i=0} {li(x)}i=0n,满足
l i ( x j ) = δ i j = { 1 , i = j 0 , i ≠ j , i , j = 0 , 1 , ⋯   , n l_i(x_j)=\delta_{ij}=\begin{cases}1,i=j\\0,i\neq j\end{cases},i,j=0,1,\cdots,n li(xj)=δij={1,i=j0,i=j,i,j=0,1,,n
那么 L n ( x ) = ∑ i = 0 n l i ( x ) f ( x i ) L_n(x)=\sum^n_{i=0}l_i(x)f(x_i) Ln(x)=i=0nli(x)f(xi) 就是 f ( x ) f(x) f(x) 关于结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n n n n 次插值多项式。其中, { l i ( x ) } i = 0 n ⊂ P n \{l_i(x)\}^n_{i=0}\subset P_n {li(x)}i=0nPn,有 ∑ i = 0 n l i ( x ) f ( x i ) ∈ P n \sum^n_{i=0}l_i(x)f(x_i)\in P_n i=0nli(x)f(xi)Pn,且有
L n ( x k ) = ∑ i = 0 n l i ( x k ) f ( x i ) = f ( x k ) , k = 0 , 1 , ⋯   , n L_n(x_k)=\sum^n_{i=0}l_i(x_k)f(x_i)=f(x_k),k=0,1,\cdots,n Ln(xk)=i=0nli(xk)f(xi)=f(xk),k=0,1,,n
l i ( x ) l_i(x) li(x) 的构造: l i ( x j ) = 0 ( j ≠ i ) l_i(x_j)=0(j\neq i) li(xj)=0(j=i)
l i ( x ) = ∏ j = 0 , j ≠ i n x − x j x i − x j = ( x − x 0 ) ⋯ ( x − x i − 1 ) ( x − x i + 1 ) ⋯ ( x − x n ) ( x i − x 0 ) ⋯ ( x i − x i − 1 ) ( x i − x i + 1 ) ⋯ ( x i − x n ) l_i(x)=\prod^n_{j=0,j\neq i}\frac{x-x_j}{x_i-x_j}=\frac{(x-x_0)\cdots(x-x_{i-1})(x-x_{i+1})\cdots(x-x_n)}{(x_i-x_0)\cdots(x_i-x_{i-1})(x_i-x_{i+1})\cdots(x_i-x_n)} li(x)=j=0,j=inxixjxxj=(xix0)(xixi1)(xixi+1)(xixn)(xx0)(xxi1)(xxi+1)(xxn)
{ l i ( x ) } i = 0 n \{l_i(x)\}^n_{i=0} {li(x)}i=0n 是一组线性无关的函数,可作为 P n P_n Pn 的一组基,称为关于结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n的Lagrange基,其插值多项式称为Lagrange型插值多项式,记为 L n ( x , f ) L_n(x,f) Ln(x,f) L n ( x ) L_n(x) Ln(x),即
L n ( x ) = ∑ i = 0 n l i ( x ) f ( x i ) = ∑ i = 0 n ( ∏ j = 0 , j ≠ i n x − x j x i − x j ) f ( x i ) L_n(x)=\sum^n_{i=0}l_i(x)f(x_i)=\sum^n_{i=0}(\prod^n_{j=0,j\neq i}\frac{x-x_j}{x_i-x_j})f(x_i) Ln(x)=i=0nli(x)f(xi)=i=0n(j=0,j=inxixjxxj)f(xi)
ω n + 1 ( x ) = ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) , ω n + 1 ′ ( x i ) = ∏ j = 0 , j ≠ i n ( x i − x j ) \omega_{n+1}(x)=(x-x_0)(x-x_1)\cdots(x-x_n),\omega'_{n+1}(x_i)=\prod^n_{j=0,j\neq i}(x_i-x_j) ωn+1(x)=(xx0)(xx1)(xxn),ωn+1(xi)=j=0,j=in(xixj),得
l i ( x ) = ω n + 1 ( x ) ( x − x i ) ω n + 1 ′ ( x i ) L n ( x ) = ∑ i = 0 n ω n + 1 ( x ) ( x − x i ) ω n + 1 ′ ( x i ) f ( x i ) l_i(x)=\frac{\omega_{n+1}(x)}{(x-x_i)\omega'_{n+1}(x_i)}\\L_n(x)=\sum^n_{i=0}\frac{\omega_{n+1}(x)}{(x-x_i)\omega'_{n+1}(x_i)}f(x_i) li(x)=(xxi)ωn+1(xi)ωn+1(x)Ln(x)=i=0n(xxi)ωn+1(xi)ωn+1(x)f(xi)
n = 1 n=1 n=1 时,可得 f ( x ) f(x) f(x) 关于 x 0 , x 1 x_0,x_1 x0,x1 的线性插值多项式的Lagrange型式:
L 1 ( x ) = x − x 1 x 0 − x 1 f ( x 0 ) + x − x 0 x 1 − x 0 f ( x 1 ) L_1(x)=\frac{x-x_1}{x_0-x_1}f(x_0)+\frac{x-x_0}{x_1-x_0}f(x_1) L1(x)=x0x1xx1f(x0)+x1x0xx0f(x1)
n = 2 n=2 n=2 时,可得 f ( x ) f(x) f(x) 关于 x 0 , x 1 , x 2 x_0,x_1,x_2 x0,x1,x2 的线性插值多项式的Lagrange型式:
L 2 ( x ) = l 0 ( x ) f ( x 0 ) + l 1 ( x ) f ( x 1 ) + l 2 f ( x 2 ) = ( x − x 1 ) ( x − x 2 ) ( x 0 − x 1 ) ( x 0 − x 2 ) f ( x 0 ) + ( x − x 0 ) ( x − x 2 ) ( x 1 − x 0 ) ( x 1 − x 2 ) f ( x 1 ) + ( x − x 0 ) ( x − x 1 ) ( x 2 − x 0 ) ( x 2 − x 1 ) f ( x 2 ) L_2(x)=l_0(x)f(x_0)+l_1(x)f(x_1)+l_2f(x_2)\\=\frac{(x-x_1)(x-x_2)}{(x_0-x_1)(x_0-x_2)}f(x_0)+\frac{(x-x_0)(x-x_2)}{(x_1-x_0)(x_1-x_2)}f(x_1)+\frac{(x-x_0)(x-x_1)}{(x_2-x_0)(x_2-x_1)}f(x_2) L2(x)=l0(x)f(x0)+l1(x)f(x1)+l2f(x2)=(x0x1)(x0x2)(xx1)(xx2)f(x0)+(x1x0)(x1x2)(xx0)(xx2)f(x1)+(x2x0)(x2x1)(xx0)(xx1)f(x2)

三点插值又称抛物插值

误差的事后估计方法: 定理 2 给出了当被插函数充分光滑时的插值误差表达式,推论给出了误差的界。但在实际计算中,涉及到高价导数,很难给出较精确的估计,所以常用误差的事后估计

L n ( x ) L_n(x) Ln(x) f ( x ) f(x) f(x) x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,xn 为结点的插值多项式,对确定的 x x x,我们需要对误差 f ( x ) − L n ( x ) f(x)-L_n(x) f(x)Ln(x) 做出估计。为此,另取一个结点 x n + 1 x_{n+1} xn+1,记 L n ( 1 ) ( x ) L^{(1)}_n(x) Ln(1)(x) f ( x ) f(x) f(x) x 1 , x 2 , ⋯   , x n , x n + 1 x_1,x_2,\cdots,x_n,x_{n+1} x1,x2,,xn,xn+1 为结点的插值多项式,由定理2,可得到:
f ( x ) − L n ( x ) = f ( n + 1 ) ( ξ ) ( n + 1 ) ! ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n ) f ( x ) − L n ( 1 ) ( x ) = f ( n + 1 ) ( ξ 2 ) ( n + 1 ) ! ( x − x 1 ) ( x − x 2 ) ⋯ ( x − x n ) ( x − x n + 1 ) f(x)-L_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)(x-x_1)\cdots(x-x_n)\\f(x)-L^{(1)}_n(x)=\frac{f^{(n+1)}(\xi_2)}{(n+1)!}(x-x_1)(x-x_2)\cdots(x-x_n)(x-x_{n+1}) f(x)Ln(x)=(n+1)!f(n+1)(ξ)(xx0)(xx1)(xxn)f(x)Ln(1)(x)=(n+1)!f(n+1)(ξ2)(xx1)(xx2)(xxn)(xxn+1)
f ( n + 1 ) ( x ) f^{(n+1)}(x) f(n+1)(x) 在插值区间上变化不大时,则:
f ( x ) − L n ( x ) f ( x ) − L n ( 1 ) ( x ) ≈ x − x 0 x − x n + 1 ( x − x n + 1 ) ( f ( x ) − L n ( x ) ) ≈ ( x − x 0 ) ( f ( x ) − L n ( 1 ) ( x ) ) f ( x ) ≈ x − x n + 1 x 0 − x n + 1 L n ( x ) + x − x 0 x n + 1 − x 0 L n ( 1 ) ( x ) 即 : f ( x ) − L n ( x ) ≈ x − x 0 x 0 − x n + 1 ( L n ( x ) − L n ( 1 ) ( x ) ) \frac{f(x)-L_n(x)}{f(x)-L^{(1)}_n(x)}\approx\frac{x-x_0}{x-x_{n+1}}\\(x-x_{n+1})(f(x)-L_n(x))\approx(x-x_0)(f(x)-L^{(1)}_n(x))\\f(x)\approx\frac{x-x_{n+1}}{x_0-x_{n+1}}L_n(x)+\frac{x-x_0}{x_{n+1}-x_0}L^{(1)}_n(x)\\即:f(x)-L_n(x)\approx\frac{x-x_0}{x_0-x_{n+1}}(L_n(x)-L^{(1)}_n(x)) f(x)Ln(1)(x)f(x)Ln(x)xxn+1xx0(xxn+1)(f(x)Ln(x))(xx0)(f(x)Ln(1)(x))f(x)x0xn+1xxn+1Ln(x)+xn+1x0xx0Ln(1)(x)f(x)Ln(x)x0xn+1xx0(Ln(x)Ln(1)(x))
上式较好地给出了插值误差的实际估计。

差商与牛顿基本插值多项式

对于给定的 n + 1 n+1 n+1 个结点 x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn,考虑 n n n 次多项式: N n ( x ) = a 0 + a 1 ( x − x 0 ) + a 2 ( x − x 0 ) ( x − x 1 ) + ⋯ + a n ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n − 1 ) N_n(x)=a_0+a_1(x-x_0)+a_2(x-x_0)(x-x_1)+\cdots+a_n(x-x_0)(x-x_1)\cdots(x-x_{n-1}) Nn(x)=a0+a1(xx0)+a2(xx0)(xx1)++an(xx0)(xx1)(xxn1) 满足插值条件: N n ( x i ) = f ( x i ) = y i , i = 0 , 1 , ⋯   , n N_n(x_i)=f(x_i)=y_i,i=0,1,\cdots,n Nn(xi)=f(xi)=yi,i=0,1,,n,称 N n ( x ) N_n(x) Nn(x) 是以 x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn 为结点的 n n n 次牛顿型插值多项式。

定义1:设函数 f ( x ) f(x) f(x) 在点 x 0 , x 1 , x 2 , ⋯ x_0,x_1,x_2,\cdots x0,x1,x2, 上的值依次为 f ( x 0 ) , f ( x 1 ) , f ( x 2 ) , ⋯ f(x_0),f(x_1),f(x_2),\cdots f(x0),f(x1),f(x2),,则称
f [ x i , x j ] = f ( x j ) − f ( x i ) x j − x i f[x_i,x_j]=\frac{f(x_j)-f(x_i)}{x_j-x_i} f[xi,xj]=xjxif(xj)f(xi)
f ( x ) f(x) f(x) x i , x i x_i,x_i xi,xi 处的一阶差商。称
f [ x i , x j , x k ] = f [ x j , x k ] − f [ x i , x j ] x k − x i f[x_i,x_j,x_k]=\frac{f[x_j,x_k]-f[x_i,x_j]}{x_k-x_i} f[xi,xj,xk]=xkxif[xj,xk]f[xi,xj]
f ( x ) f(x) f(x) x i , x j , x k x_i,x_j,x_k xi,xj,xk 处的二阶差商。一般地,称 m − 1 m-1 m1 阶差商的差商:
f [ x i 0 , x i 1 , ⋯   , x i m ] = f [ x i 1 , ⋯   , x i m ] − f [ x i 0 , ⋯   , x i m − 1 ] x i m − x i 0 f[x_{i0},x_{i1},\cdots,x_{im}]=\frac{f[x_{i1},\cdots,x_{im}]-f[x_{i0},\cdots,x_{im-1}]}{x_{im}-x_{i0}} f[xi0,xi1,,xim]=ximxi0f[xi1,,xim]f[xi0,,xim1]
f ( x ) f(x) f(x) x i 0 , x i 1 , ⋯   , x i m x_{i0},x_{i1},\cdots,x_{im} xi0,xi1,,xim 处的 m m m 阶差商

特别的,规定零阶差商为: f [ x i ] = f ( x i ) f[x_i]=f(x_i) f[xi]=f(xi)

通过归纳法, m m m 阶差商可表示成 f ( x 0 ) , f ( x 1 ) , ⋯   , f ( x m ) f(x_0),f(x_1),\cdots,f(x_m) f(x0),f(x1),,f(xm) 的线性组合:
f [ x 0 , x 1 , ⋯   , x m ] = ∑ j = 0 m f ( x j ) ( x j − x 0 ) ⋯ ( x j − x j − 1 ) ( x j − x j + 1 ) ⋯ ( x j − x m ) f[x_0,x_1,\cdots,x_m]=\sum_{j=0}^m\frac{f(x_j)}{(x_j-x_0)\cdots(x_j-x_{j-1})(x_j-x_{j+1})\cdots(x_j-x_m)} f[x0,x1,,xm]=j=0m(xjx0)(xjxj1)(xjxj+1)(xjxm)f(xj)

差商具有对称性:任意调换结点的次序,不影响差商的值。 例如:
f [ x 0 , x 1 , x 2 ] = f [ x 1 , x 2 , x 0 ] = f [ x 1 , x 0 , x 2 ] f[x_0,x_1,x_2]=f[x_1,x_2,x_0]=f[x_1,x_0,x_2] f[x0,x1,x2]=f[x1,x2,x0]=f[x1,x0,x2]
由插值条件 N n ( x i ) = f ( x i ) N_n(x_i)=f(x_i) Nn(xi)=f(xi),可得
N n ( x 0 ) = a 0 = f ( x 0 ) → a 0 = f ( x 0 ) N n ( x 1 ) = a 0 + a 1 ( x 1 − x 0 ) = f ( x 1 ) → a 1 = f ( x 1 ) − f ( x 0 ) x 1 − x 0 = f [ x 0 , x 1 ] N n ( x 2 ) = a 0 + a 1 ( x 2 − x 0 ) + a 2 ( x 2 − x 0 ) ( x 2 − x 1 ) = f ( x 2 ) → a 2 = f [ x 0 , x 2 ] − f [ x 0 , x 1 ] x 2 − x 0 = f [ x 0 , x 1 , x 2 ] N_n(x_0)=a_0=f(x_0)\rightarrow a_0=f(x_0)\\N_n(x_1)=a_0+a_1(x_1-x_0)=f(x_1)\rightarrow a_1=\frac{f(x_1)-f(x_0)}{x_1-x_0}=f[x_0,x_1]\\N_n(x_2)=a_0+a_1(x_2-x_0)+a_2(x_2-x_0)(x_2-x_1)=f(x_2)\rightarrow a_2=\frac{f[x_0,x_2]-f[x_0,x_1]}{x_2-x_0}=f[x_0,x_1,x_2] Nn(x0)=a0=f(x0)a0=f(x0)Nn(x1)=a0+a1(x1x0)=f(x1)a1=x1x0f(x1)f(x0)=f[x0,x1]Nn(x2)=a0+a1(x2x0)+a2(x2x0)(x2x1)=f(x2)a2=x2x0f[x0,x2]f[x0,x1]=f[x0,x1,x2]
由归纳法可得:
a k = f [ x 0 , x 1 , ⋯   , x k ] ( k = 0 , 1 , ⋯   , n ) a_k=f[x_0,x_1,\cdots,x_k](k=0,1,\cdots,n) ak=f[x0,x1,,xk](k=0,1,,n)
x 0 , x 1 , ⋯   , x n x_0,x_1,\cdots,x_n x0,x1,,xn 为结点的 n n n 次牛顿型插值多项式:
N n ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) + ⋯ + f [ x 0 , x 1 , ⋯   , x n ] ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n − 1 ) N_n(x)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+\cdots+f[x_0,x_1,\cdots,x_n](x-x_0)(x-x_1)\cdots(x-x_{n-1}) Nn(x)=f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)++f[x0,x1,,xn](xx0)(xx1)(xxn1)
当新增加一个结点 x n + 1 x_{n+1} xn+1 时:
N n + 1 ( x ) = N n ( x ) + f [ x 0 , x 1 , ⋯   , x n , x n + 1 ] ( x − x 0 ) ( x − x 1 ) ⋯ ( x − x n − 1 ) ( x − x n ) N_{n+1}(x)=N_n(x)+f[x_0,x_1,\cdots,x_n,x_{n+1}](x-x_0)(x-x_1)\cdots(x-x_{n-1})(x-x_n) Nn+1(x)=Nn(x)+f[x0,x1,,xn,xn+1](xx0)(xx1)(xxn1)(xxn)
插值多项式的误差(差商形式)表示:
f ( x ) ≡ f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + ⋯ + f [ x 0 , x 1 , ⋯   , x n ] ( x − x 0 ) ⋯ ( x − x n − 1 ) + f [ x 0 , x 1 , ⋯   , x n , x ] ( x − x 0 ) ⋯ ( x − x n ) = N n ( x ) + f [ x 0 , x 1 , ⋯   , x n , x ] ( x − x 0 ) ⋯ ( x − x n ) f(x)\equiv f(x_0)+f[x_0,x_1](x-x_0)+\cdots+f[x_0,x_1,\cdots,x_n](x-x_0)\cdots(x-x_{n-1})+f[x_0,x_1,\cdots,x_n,x](x-x_0)\cdots(x-x_n)\\=N_n(x)+f[x_0,x_1,\cdots,x_n,x](x-x_0)\cdots(x-x_n) f(x)f(x0)+f[x0,x1](xx0)++f[x0,x1,,xn](xx0)(xxn1)+f[x0,x1,,xn,x](xx0)(xxn)=Nn(x)+f[x0,x1,,xn,x](xx0)(xxn)
f ( x ) ∈ C n + 1 [ a , b ] f(x)\in C^{n+1}[a,b] f(x)Cn+1[a,b],则有
R n ( x ) = f ( x ) − N n ( x ) = f [ x 0 , x 1 , ⋯   , x n , x ] ( x − x 0 ) ⋯ ( x − x n ) f [ x 0 , x 1 , ⋯   , x n , x ] = f ( n + 1 ) ( ξ ) ( n + 1 ) ! R_n(x)=f(x)-N_n(x)=f[x_0,x_1,\cdots,x_n,x](x-x_0)\cdots(x-x_n)\\f[x_0,x_1,\cdots,x_n,x]=\frac{f^{(n+1)}(\xi)}{(n+1)!} Rn(x)=f(x)Nn(x)=f[x0,x1,,xn,x](xx0)(xxn)f[x0,x1,,xn,x]=(n+1)!f(n+1)(ξ)
一般地,若 f ( x ) ∈ C n + 1 [ a , b ] f(x)\in C^{n+1}[a,b] f(x)Cn+1[a,b],则存在 ξ ∈ ( a , b ) \xi\in(a,b) ξ(a,b),使得
f [ x 0 , x 1 , ⋯   , x n ] = f ( n ) ( ξ ) n ! f[x_0,x_1,\cdots,x_n]=\frac{f^{(n)}(\xi)}{n!} f[x0,x1,,xn]=n!f(n)(ξ)

差分与等距结点下的牛顿公式

设函数 f ( x ) f(x) f(x)等距结点 x k = x 0 + k h ( k = 0 , 1 , 2 , ⋯   ) x_k=x_0+kh(k=0,1,2,\cdots) xk=x0+kh(k=0,1,2,) 上的值 f ( x k ) f(x_k) f(xk) 已知,步长 h h h 为常数。

定义2:函数 y = f ( x ) y=f(x) y=f(x) x k x_k xk 处以 h h h 为步长的一阶向前差分与二阶向前差分:
Δ y k = Δ f ( x k ) = f ( x k + 1 ) − f ( x k ) Δ 2 y k = Δ 2 f ( x k ) = Δ ( Δ f ( x k ) ) = Δ f ( x k + 1 ) − Δ f ( x k ) = f ( x k + 2 ) − 2 f ( x k + 1 ) + f ( x k ) \Delta y_k=\Delta f(x_k)=f(x_{k+1})-f(x_k)\\\Delta^2y_k=\Delta^2f(x_k)=\Delta(\Delta f(x_k))=\Delta f(x_{k+1})-\Delta f(x_k)=f(x_{k+2})-2f(x_{k+1})+f(x_k) Δyk=Δf(xk)=f(xk+1)f(xk)Δ2yk=Δ2f(xk)=Δ(Δf(xk))=Δf(xk+1)Δf(xk)=f(xk+2)2f(xk+1)+f(xk)
一般性, m m m 阶向前差分:
Δ m y k = Δ m f ( x k ) = Δ ( Δ m − 1 f ( x k ) ) = Δ m − 1 f ( x k + 1 ) − Δ m − 1 f ( x k ) \Delta^my_k=\Delta^mf(x_k)=\Delta(\Delta^{m-1}f(x_k))=\Delta^{m-1}f(x_{k+1})-\Delta^{m-1}f(x_k) Δmyk=Δmf(xk)=Δ(Δm1f(xk))=Δm1f(xk+1)Δm1f(xk)

定义3:函数 y = f ( x ) y=f(x) y=f(x) x k x_k xk 处以 h h h 为步长的一阶向后差分与二阶向后差分:
▽ y k = ▽ f ( x k ) = f ( x k ) − f ( x k − 1 ) ▽ 2 y k = ▽ 2 f ( x k ) = ▽ ( ▽ f ( x k ) ) = ▽ f ( x k ) − ▽ f ( x k − 1 ) = f ( x k ) − 2 f ( x k − 1 ) + f ( x k − 2 ) \triangledown y_k=\triangledown f(x_k)=f(x_k)-f(x_{k-1})\\\triangledown^2y_k=\triangledown^2f(x_k)=\triangledown(\triangledown f(x_k))=\triangledown f(x_k)- \triangledown f(x_{k-1})=f(x_k)-2f(x_{k-1})+f(x_{k-2}) yk=f(xk)=f(xk)f(xk1)2yk=2f(xk)=(f(xk))=f(xk)f(xk1)=f(xk)2f(xk1)+f(xk2)
一般性, m m m 阶向后差分:
▽ m y k = ▽ m f ( x k ) = ▽ ( ▽ m − 1 f ( x k ) ) = ▽ m − 1 f ( x k ) − ▽ m − 1 f ( x k − 1 ) \triangledown^my_k=\triangledown^mf(x_k)=\triangledown(\triangledown^{m-1}f(x_k))=\triangledown^{m-1}f(x_k)-\triangledown^{m-1}f(x_{k-1}) myk=mf(xk)=(m1f(xk))=m1f(xk)m1f(xk1)

差商与差分关系
f [ x 0 , x 1 , ⋯   , x m ] = Δ m f ( x 0 ) m ! h m f [ x n , x n − 1 , ⋯   , x n − m ] = ▽ m f ( x n ) m ! h m f[x_0,x_1,\cdots,x_m]=\frac{\Delta^mf(x_0)}{m!h^m}\\f[x_n,x_{n-1},\cdots,x_{n-m}]=\frac{\triangledown^mf(x_n)}{m!h^m} f[x0,x1,,xm]=m!hmΔmf(x0)f[xn,xn1,,xnm]=m!hmmf(xn)

等距结点的Newton型多项式插值的差分形式:引入变量 t t t ,设 x = x 0 + t h x=x_0+th x=x0+th (有 x − x i = ( t − i ) h x-x_i=(t-i)h xxi=(ti)h),则等距结点的Newton插值公式
N n ( x 0 + t h ) = f ( x 0 ) + t Δ f ( x 0 ) + t ( t − 1 ) 2 ! Δ 2 f ( x 0 ) + ⋯ + t ( t − 1 ) ⋯ ( t − n + 1 ) n ! Δ n f ( x 0 ) N_n(x_0+th)=f(x_0)+t\Delta f(x_0)+\frac{t(t-1)}{2!}\Delta^2f(x_0)+\cdots+\frac{t(t-1)\cdots(t-n+1)}{n!}\Delta^nf(x_0) Nn(x0+th)=f(x0)+tΔf(x0)+2!t(t1)Δ2f(x0)++n!t(t1)(tn+1)Δnf(x0)
f ( x ) ∈ C n + 1 [ a , b ] f(x)\in C^{n+1}[a,b] f(x)Cn+1[a,b],则插值误差可表示为
R n ( x ) = R n ( x 0 + t h ) = t ( t − 1 ) ⋯ ( t − n ) ( n + 1 ) ! h n + 1 f ( n + 1 ) ( ζ ) , ζ ∈ ( x 0 , x n ) R_n(x)=R_n(x_0+th)=\frac{t(t-1)\cdots(t-n)}{(n+1)!}h^{n+1}f^{(n+1)}(\zeta),\zeta\in(x_0,x_n) Rn(x)=Rn(x0+th)=(n+1)!t(t1)(tn)hn+1f(n+1)(ζ),ζ(x0,xn)
(1)牛顿表初公式牛顿向前差分公式:若 x x x x 0 x_0 x0 附近,选取的牛顿型插值公式为
N n ( x 0 + t h ) = f ( x 0 ) + t Δ f ( x 0 ) + t ( t − 1 ) 2 ! Δ 2 f ( x 0 ) + ⋯ + t ( t − 1 ) ⋯ ( t − n + 1 ) n ! Δ n f ( x 0 ) N_n(x_0+th)=f(x_0)+t\Delta f(x_0)+\frac{t(t-1)}{2!}\Delta^2f(x_0)+\cdots+\frac{t(t-1)\cdots(t-n+1)}{n!}\Delta^nf(x_0) Nn(x0+th)=f(x0)+tΔf(x0)+2!t(t1)Δ2f(x0)++n!t(t1)(tn+1)Δnf(x0)
(2)牛顿表末公式牛顿向后差分公式:若 x x x x n x_n xn 附近,选取的牛顿型插值公式为
N n ( x ) = N n ( x n + t h ) = f ( x n ) + f [ x n , x n − 1 ] ( x − x n ) + f [ x n , x n − 1 , x n − 2 ] ( x − x n ) ( x − x n − 1 ) + f [ x n , x n − 1 , ⋯   , x 0 ] ( x − x n ) ( x − x n − 1 ) ⋯ ( x − x 1 ) = f ( x n ) + t ▽ f ( x n ) + t ( t + 1 ) 2 ! ▽ 2 f ( x n ) + ⋯ + t ( t + 1 ) ⋯ ( t + n − 1 ) n ! ▽ n f ( x n ) 其 中 , x k = x n − ( n − k ) h R n ( x ) = R n ( x n + t h ) = t ( t + 1 ) ⋯ ( t + n ) ( n + 1 ) ! h n + 1 f ( n + 1 ) ( ζ ) , ζ ∈ ( x 0 , x n ) N_n(x)=N_n(x_n+th)=f(x_n)+f[x_n,x_{n-1}](x-x_n)+f[x_n,x_{n-1},x_{n-2}](x-x_n)(x-x_{n-1})\\+f[x_n,x_{n-1},\cdots,x_0](x-x_n)(x-x_{n-1})\cdots(x-x_1)\\=f(x_n)+t\triangledown f(x_n)+\frac{t(t+1)}{2!}\triangledown^2f(x_n)+\cdots+\frac{t(t+1)\cdots(t+n-1)}{n!}\triangledown^nf(x_n)\\其中,x_k=x_n-(n-k)h\\R_n(x)=R_n(x_n+th)=\frac{t(t+1)\cdots(t+n)}{(n+1)!}h^{n+1}f^{(n+1)}(\zeta),\zeta\in(x_0,x_n) Nn(x)=Nn(xn+th)=f(xn)+f[xn,xn1](xxn)+f[xn,xn1,xn2](xxn)(xxn1)+f[xn,xn1,,x0](xxn)(xxn1)(xx1)=f(xn)+tf(xn)+2!t(t+1)2f(xn)++n!t(t+1)(t+n1)nf(xn)xk=xn(nk)hRn(x)=Rn(xn+th)=(n+1)!t(t+1)(t+n)hn+1f(n+1)(ζ),ζ(x0,xn)
(3)牛顿表中插值公式

定义4: δ y k = f ( x k + h 2 ) − f ( x k − h 2 ) = y k + 1 2 − y k − 1 2 \delta y_k=f(x_k+\frac{h}{2})-f(x_k-\frac{h}{2})=y_{k+\frac{1}{2}}-y_{k-\frac{1}{2}} δyk=f(xk+2h)f(xk2h)=yk+21yk21 称为一阶中心差分。

δ m y k = δ m − 1 y k + 1 2 − δ m − 1 y k − 1 2 \delta^my_k=\delta^{m-1}y_{k+\frac{1}{2}}-\delta^{m-1}y_{k-\frac{1}{2}} δmyk=δm1yk+21δm1yk21 称为 m m m 阶中心差分。

埃尔米特(Hermite)插值

插值在给定的结点处,不但要求插值多项式的函数值与被插函数的函数值相同,同时还要求在结点处,插值多项式的一阶直至指定阶的导数值也与被插函数的相应阶导数值相等。

f ( x ) f(x) f(x) [ a , b ] [a,b] [a,b] 上充分光滑函数,对给定的插值结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n 及相应的重数标号 { m i } i = 0 n \{m_i\}^n_{i=0} {mi}i=0n,当 ∑ i = 0 n m i = N + 1 \sum_{i=0}^nm_i=N+1 i=0nmi=N+1 时,若有 H ( x ) ∈ P n H(x)\in P_n H(x)Pn 满足:
H ( l ) ( x i ) = f ( l ) ( x i ) , l = 0 , 1 , ⋯   , m i − 1 , i = 0 , 1 , ⋯   , n H^{(l)}(x_i)=f^{(l)}(x_i),l=0,1,\cdots,m_i-1,i=0,1,\cdots,n H(l)(xi)=f(l)(xi),l=0,1,,mi1,i=0,1,,n
则称 H ( x ) H(x) H(x) f ( x ) f(x) f(x) 关于结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n 及重数标号 { m i } i = 0 n \{m_i\}^n_{i=0} {mi}i=0n埃尔米特插值多项式。

二重( m i = 2 m_i=2 mi=2): f ( x ) ∈ C 2 [ a , b ] f(x)\in C^2[a,b] f(x)C2[a,b],若有 H 2 n + 1 ( x i ) = f ( x i ) , H 2 n + 1 ′ ( x i ) = f ′ ( x i ) , i = 0 , 1 , ⋯   , n H_{2n+1}(x_i)=f(x_i),H'_{2n+1}(x_i)=f'(x_i),i=0,1,\cdots,n H2n+1(xi)=f(xi),H2n+1(xi)=f(xi),i=0,1,,n,称 H 2 n + 1 ( x ) H_{2n+1}(x) H2n+1(x) f ( x ) f(x) f(x) 关于结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n二重埃尔米特插值多项式,其存在且唯一(由克拉默法则易得)。

基函数构造法:
H 2 n + 1 ( x ) = ∑ i = 0 n A i ( x ) f ( x i ) + ∑ i = 0 n B i ( x ) f ′ ( x i ) H_{2n+1}(x)=\sum_{i=0}^nA_i(x)f(x_i)+\sum_{i=0}^nB_i(x)f'(x_i) H2n+1(x)=i=0nAi(x)f(xi)+i=0nBi(x)f(xi)
P 2 n + 1 P_{2n+1} P2n+1 上构造 2 n + 2 2n+2 2n+2 个基函数 { A i ( x ) , B i ( x ) } i = 0 n \{A_i(x),B_i(x)\}^n_{i=0} {Ai(x),Bi(x)}i=0n,分别满足
{ A i ( x j ) = δ i j A i ′ ( x j ) = 0 , j = 0 , 1 , ⋯   , n , i = 0 , 1 , ⋯   , n { B i ( x j ) = 0 B i ′ ( x j ) = δ i j , j = 0 , 1 , ⋯   , n , i = 0 , 1 , ⋯   , n \begin{cases}A_i(x_j)=\delta_{ij}\\A'_i(x_j)=0\end{cases},j=0,1,\cdots,n,i=0,1,\cdots,n\\\begin{cases}B_i(x_j)=0\\B'_i(x_j)=\delta_{ij}\end{cases},j=0,1,\cdots,n,i=0,1,\cdots,n {Ai(xj)=δijAi(xj)=0,j=0,1,,n,i=0,1,,n{Bi(xj)=0Bi(xj)=δij,j=0,1,,n,i=0,1,,n
可得 x 0 , x 1 , ⋯   , x i − 1 , x i + 1 , ⋯   , x n x_0,x_1,\cdots,x_{i-1},x_{i+1},\cdots,x_n x0,x1,,xi1,xi+1,,xn A i ( x ) A_i(x) Ai(x) 的二重零点, A i ( x ) ∈ P 2 n + 1 A_i(x)\in P_{2n+1} Ai(x)P2n+1,有:
A i ( x ) = ( a i x + b i ) [ ( x − x 0 ) 2 ( x − x 1 ) 2 ⋯ ( x − x i − 1 ) 2 ( x − x i + 1 ) 2 ⋯ ( x − x n ) 2 ] 也 可 设 : A i ( x ) = [ a i ( x − x i ) + b i ] ∏ j = 0 , j ≠ i n ( x − x j ) 2 A_i(x)=(a_ix+b_i)[(x-x_0)^2(x-x_1)^2\cdots(x-x_{i-1})^2(x-x_{i+1})^2\cdots(x-x_n)^2]\\也可设:A_i(x)=[a_i(x-x_i)+b_i]\prod_{j=0,j\neq i}^n(x-x_j)^2 Ai(x)=(aix+bi)[(xx0)2(xx1)2(xxi1)2(xxi+1)2(xxn)2]:Ai(x)=[ai(xxi)+bi]j=0,j=in(xxj)2
A i ( x i ) = 1 , A i ′ ( x i ) = 0 A_i(x_i)=1,A'_i(x_i)=0 Ai(xi)=1,Ai(xi)=0
b i = 1 / ∏ j = 0 , j ≠ i n ( x i − x j ) 2 A i ( x ) = [ 1 − 2 ( x − x i ) ∑ j = 0 , j ≠ i n 1 x i − x j ] l i 2 ( x ) b_i=1/\prod_{j=0,j\neq i}^n(x_i-x_j)^2\\A_i(x)=[1-2(x-x_i)\sum_{j=0,j\neq i}^n\frac{1}{x_i-x_j}]l_i^2(x) bi=1/j=0,j=in(xixj)2Ai(x)=[12(xxi)j=0,j=inxixj1]li2(x)
其中, l i ( x ) l_i(x) li(x) 为关于点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n 的Lagrange 基函数。用类似的方法,可得到
B i ( x ) = ( x − x i ) l i 2 ( x ) H 2 n + 1 ( x ) = ∑ i = 0 n A i ( x ) f ( x i ) + ∑ i = 0 n B i ( x ) f ′ ( x i ) B_i(x)=(x-x_i)l_i^2(x)\\H_{2n+1}(x)=\sum_{i=0}^nA_i(x)f(x_i)+\sum_{i=0}^nB_i(x)f'(x_i) Bi(x)=(xxi)li2(x)H2n+1(x)=i=0nAi(x)f(xi)+i=0nBi(x)f(xi)
二重埃尔米特插值多项式的误差分析:若 f ∈ C 2 n + 2 [ a , b ] f\in C^{2n+2}[a,b] fC2n+2[a,b],则 f ( x ) f(x) f(x) 关于 [ a , b ] [a,b] [a,b] 上结点 { x i } i = 0 n \{x_i\}^n_{i=0} {xi}i=0n 的二重埃尔米特插值多项式误差为
f ( x ) − H 2 n + 1 ( x ) = f ( 2 n + 2 ) ( ξ ) ( 2 n + 2 ) ! ω n + 1 2 ( x ) m i n { x 0 , x 1 , ⋯   , x n , x } ≤ ξ = ξ ( x ) ≤ m a x { x 0 , x 1 , ⋯   , x n , x } f(x)-H_{2n+1}(x)=\frac{f^{(2n+2)}(\xi)}{(2n+2)!}\omega^2_{n+1}(x)\\min\{x_0,x_1,\cdots,x_n,x\}\leq\xi=\xi(x)\leq max\{x_0,x_1,\cdots,x_n,x\} f(x)H2n+1(x)=(2n+2)!f(2n+2)(ξ)ωn+12(x)min{x0,x1,,xn,x}ξ=ξ(x)max{x0,x1,,xn,x}
具有两个结点 x 0 , x 1 x_0,x_1 x0,x1 的二重埃尔米特插值为一个三次多项式,基函数分别为:
A 0 ( x ) = [ 1 − 2 x − x 0 x 0 − x 1 ] ( x − x 1 x 0 − x 1 ) 2 A 1 ( x ) = [ 1 − 2 x − x 1 x 1 − x 0 ] ( x − x 1 x 0 − x 1 ) 2 B 0 ( x ) = ( x − x 0 ) ( x − x 1 x 0 − x 1 ) 2 B 1 ( x ) = ( x − x 1 ) ( x − x 1 x 0 − x 1 ) 2 A_0(x)=[1-2\frac{x-x_0}{x_0-x_1}](\frac{x-x_1}{x_0-x_1})^2\\A_1(x)=[1-2\frac{x-x_1}{x_1-x_0}](\frac{x-x_1}{x_0-x_1})^2\\B_0(x)=(x-x_0)(\frac{x-x_1}{x_0-x_1})^2\\B_1(x)=(x-x_1)(\frac{x-x_1}{x_0-x_1})^2 A0(x)=[12x0x1xx0](x0x1xx1)2A1(x)=[12x1x0xx1](x0x1xx1)2B0(x)=(xx0)(x0x1xx1)2B1(x)=(xx1)(x0x1xx1)2
所以,二重埃尔米特插值多项式为:
H 3 ( x ) = A 0 ( x ) f ( x 0 ) + A 1 ( x ) f ( x 1 ) + B 0 ( x ) f ′ ( x 0 ) + B 1 ( x ) f ′ ( x 1 ) H_3(x)=A_0(x)f(x_0)+A_1(x)f(x_1)+B_0(x)f'(x_0)+B_1(x)f'(x_1) H3(x)=A0(x)f(x0)+A1(x)f(x1)+B0(x)f(x0)+B1(x)f(x1)
f ∈ C 4 [ a , b ] f\in C^4[a,b] fC4[a,b],则有误差表达式:
R 3 ( x ) = f ( x ) − H 3 ( x ) = f ( 4 ) ( ξ ) 4 ! ( x − x 0 ) 2 ( x − x 1 ) 2 R_3(x)=f(x)-H_3(x)=\frac{f^{(4)}(\xi)}{4!}(x-x_0)^2(x-x_1)^2 R3(x)=f(x)H3(x)=4!f(4)(ξ)(xx0)2(xx1)2

一般形式的Hermite插值问题:求一个次数不大于 n + r + 1 n+r+1 n+r+1 的代数多项式 H ( x ) H(x) H(x) ,满足:
H ( x i ) = f ( x i ) , i = 0 , 1 , 2 , ⋯   , n H ′ ( x i ) = f ′ ( x i ) , i = 0 , 1 , 2 , ⋯   , r ( r ≤ n ) H(x_i)=f(x_i),i=0,1,2,\cdots,n\\H'(x_i)=f'(x_i),i=0,1,2,\cdots,r(r\leq n) H(xi)=f(xi),i=0,1,2,,nH(xi)=f(xi),i=0,1,2,,r(rn)
H ( x ) = ∑ k = 0 n h k ( x ) f ( x k ) + ∑ k = 0 r h ˉ k ( x ) f ′ ( x k ) H(x)=\sum_{k=0}^nh_k(x)f(x_k)+\sum_{k=0}^r\bar{h}_k(x)f'(x_k) H(x)=k=0nhk(x)f(xk)+k=0rhˉk(x)f(xk),其中 h k ( x ) 、 h ˉ k ( x ) h_k(x)、\bar{h}_k(x) hk(x)hˉk(x) 都是 n + r + 1 n+r+1 n+r+1 次待定多项式,并且满足:
h k ( x i ) = { 1    i = k 0    i ≠ k      i , k = 0 , 1 , ⋯   , n h k ′ ( x i ) = 0 ,    k = 0 , 1 , ⋯   , n ; i = 0 , 1 , ⋯   , r h ˉ k ′ ( x i ) = { 1    i = k 0    i ≠ k      i , k = 0 , 1 , ⋯   , r h ˉ k ( x i ) = 0 ,    k = 0 , 1 , ⋯   , r ; i = 0 , 1 , ⋯   , n h_k(x_i)=\begin{cases}1\ \ i=k\\0\ \ i\neq k\end{cases}\ \ \ \ i,k=0,1,\cdots,n\\h'_k(x_i)=0,\ \ k=0,1,\cdots,n;i=0,1,\cdots,r\\\bar{h}_k'(x_i)=\begin{cases}1\ \ i=k\\0\ \ i\neq k\end{cases}\ \ \ \ i,k=0,1,\cdots,r\\\bar{h}_k(x_i)=0,\ \ k=0,1,\cdots,r;i=0,1,\cdots,n hk(xi)={1  i=k0  i=k    i,k=0,1,,nhk(xi)=0,  k=0,1,,n;i=0,1,,rhˉk(xi)={1  i=k0  i=k    i,k=0,1,,rhˉk(xi)=0,  k=0,1,,r;i=0,1,,n
1、求解 h k ( x ) ( k = 0 , 1 , ⋯   , n ) h_k(x)(k=0,1,\cdots,n) hk(x)(k=0,1,,n):由条件可得, x i ( i = 0 , 1 , ⋯   , r ; i ≠ k ) x_i(i=0,1,\cdots,r;i\neq k) xi(i=0,1,,r;i=k) h k ( x ) h_k(x) hk(x) 的二重零点, x i ( i = r + 1 , r + 2 , ⋯   , n ; i ≠ k ) x_i(i=r+1,r+2,\cdots,n;i\neq k) xi(i=r+1,r+2,,n;i=k) h k ( x ) h_k(x) hk(x) 的零点。

0 ≤ k ≤ r 0\leq k\leq r 0kr 时:
h k ( x ) = ( A x + B ) ( x − x 0 ) 2 ⋯ ( x − x k − 1 ) 2 ( x − x k + 1 ) 2 ⋯ ( x − x r ) 2 ( x − x r + 1 ) ⋯ ( x − x n ) = ( A x + B ) ∏ i = 0 , i ≠ k r ( x − x i ) 2 ∏ i = r + 1 n ( x − x i ) h_k(x)=(Ax+B)(x-x_0)^2\cdots(x-x_{k-1})^2(x-x_{k+1})^2\cdots(x-x_r)^2(x-x_{r+1})\cdots(x-x_n)\\=(Ax+B)\prod_{i=0,i\neq k}^r(x-x_i)^2\prod_{i=r+1}^n(x-x_i) hk(x)=(Ax+B)(xx0)2(xxk1)2(xxk+1)2(xxr)2(xxr+1)(xxn)=(Ax+B)i=0,i=kr(xxi)2i=r+1n(xxi)

又由 h k ( x k ) = 1 , h k ′ ( x k ) = 0 h_k(x_k)=1,h_k'(x_k)=0 hk(xk)=1,hk(xk)=0 得:
( A x k + B ) ∏ i = 0 , i ≠ k r ( x k − x i ) 2 ∏ i = r + 1 n ( x k − x i ) = 1 A ∏ i = 0 i ≠ k r ( x k − x i ) 2 ∏ i = r + 1 n ( x k − x i ) + 2 ( A x k + B ) ∑ j = 0 r ( x k − x j ) ∏ i = 0 i ≠ j i ≠ k r ( x k − x i ) 2 ∏ i = r + 1 n ( x k − x i ) + ( A x k + B ) ∑ j = r + 1 n ∏ i = 0 i ≠ k r ( x k − x i ) 2 ∏ i = r + 1 i ≠ j n ( x k − x i ) = 0 (Ax_k+B)\prod_{i=0,i\neq k}^r(x_k-x_i)^2\prod_{i=r+1}^n(x_k-x_i)=1\\A\prod_{i=0\\i\neq k}^r(x_k-x_i)^2\prod_{i=r+1}^n(x_k-x_i)+2(Ax_k+B)\sum_{j=0}^r(x_k-x_j)\prod_{i=0\\i\neq j\\i\neq k}^r(x_k-x_i)^2\prod_{i=r+1}^n(x_k-x_i)+(Ax_k+B)\sum_{j=r+1}^n\prod_{i=0\\i\neq k}^r(x_k-x_i)^2\prod_{i=r+1\\i\neq j}^n(x_k-x_i)=0 (Axk+B)i=0,i=kr(xkxi)2i=r+1n(xkxi)=1Ai=0i=kr(xkxi)2i=r+1n(xkxi)+2(Axk+B)j=0r(xkxj)i=0i=ji=kr(xkxi)2i=r+1n(xkxi)+(Axk+B)j=r+1ni=0i=kr(xkxi)2i=r+1i=jn(xkxi)=0
解得
A = − 2 ∑ j = 0 r 1 x k − x j + ∑ j = r + 1 n 1 x k − x j ∏ i = 0 i ≠ k r ( x k − x i ) 2 ∏ i = r + 1 n ( x k − x i ) B = − 1 − A x k ∏ i = 0 i ≠ k r ( x k − x i ) 2 ∏ i = r + 1 n ( x k − x i ) h k ( x ) = { 1 − ( x − x k ) [ l k n ′ ( x k ) + l k r ′ ( x k ) ] } l k n ( x ) l k r ( x ) , k = 0 , 1 , ⋯   , r 其 中 : l k n ( x ) = ∏ i = 0 i ≠ k n x − x i x k − x i l k r ( x ) = ∏ i = 0 i ≠ k r x − x i x k − x i l k n ′ ( x k ) = ∏ i = 0 i ≠ k n 1 x k − x i l k r ′ ( x k ) = ∏ i = 0 i ≠ k r 1 x k − x i A=-\frac{2\sum_{j=0}^r\frac{1}{x_k-x_j}+\sum_{j=r+1}^n\frac{1}{x_k-x_j}}{\prod_{i=0\\i\neq k}^r(x_k-x_i)^2\prod_{i=r+1}^n(x_k-x_i)}\\B=-\frac{1-Ax_k}{\prod_{i=0\\i\neq k}^r(x_k-x_i)^2\prod_{i=r+1}^n(x_k-x_i)}\\h_k(x)=\{1-(x-x_k)[l'_{kn}(x_k)+l'_{kr}(x_k)]\}l_{kn}(x)l_{kr}(x),k=0,1,\cdots,r\\其中:l_{kn}(x)=\prod_{i=0\\i\neq k}^n\frac{x-x_i}{x_k-x_i}\\l_{kr}(x)=\prod_{i=0\\i\neq k}^r\frac{x-x_i}{x_k-x_i}\\l'_{kn}(x_k)=\prod_{i=0\\i\neq k}^n\frac{1}{x_k-x_i}\\l'_{kr}(x_k)=\prod_{i=0\\i\neq k}^r\frac{1}{x_k-x_i} A=i=0i=kr(xkxi)2i=r+1n(xkxi)2j=0rxkxj1+j=r+1nxkxj1B=i=0i=kr(xkxi)2i=r+1n(xkxi)1Axkhk(x)={1(xxk)[lkn(xk)+lkr(xk)]}lkn(x)lkr(x),k=0,1,,rlkn(x)=i=0i=knxkxixxilkr(x)=i=0i=krxkxixxilkn(xk)=i=0i=knxkxi1lkr(xk)=i=0i=krxkxi1
r + 1 ≤ k ≤ n r+1\leq k \leq n r+1kn 时, h k ( x ) h_k(x) hk(x) 具有如下形式:
h k ( x ) = C ∏ i = 0 r ( x − x i ) 2 ∏ i = r + 1 i ≠ k n ( x − x i ) h_k(x)=C\prod_{i=0}^r(x-x_i)^2\prod_{i=r+1\\i\neq k}^n(x-x_i) hk(x)=Ci=0r(xxi)2i=r+1i=kn(xxi)
h k ( x k ) = 1 h_k(x_k)=1 hk(xk)=1 得:
C = 1 ∏ i = 0 r ( x k − x i ) 2 ∏ i = r + 1 i ≠ k n ( x k − x i ) h k ( x ) = w r ( x ) w r ( x k ) l k n ( x ) , k = r + 1 , r + 2 , ⋯   , n 其 中 : w r ( x ) = ∏ i = 0 r ( x − x i ) w r ( x k ) = ∏ i = 0 r ( x k − x i ) l k n ( x ) = ∏ i = 0 i ≠ k n x − x i x k − x i C=\frac{1}{\prod_{i=0}^r(x_k-x_i)^2\prod_{i=r+1\\i\neq k}^n(x_k-x_i)}\\h_k(x)=\frac{w_r(x)}{w_r(x_k)}l_{kn}(x),k=r+1,r+2,\cdots,n\\其中:w_r(x)=\prod_{i=0}^r(x-x_i)\\w_r(x_k)=\prod_{i=0}^r(x_k-x_i)\\l_{kn}(x)=\prod_{i=0\\i\neq k}^n\frac{x-x_i}{x_k-x_i} C=i=0r(xkxi)2i=r+1i=kn(xkxi)1hk(x)=wr(xk)wr(x)lkn(x),k=r+1,r+2,,nwr(x)=i=0r(xxi)wr(xk)=i=0r(xkxi)lkn(x)=i=0i=knxkxixxi
2、求解 h ˉ k ( x ) ( k = 0 , 1 , ⋯   , n ) \bar{h}_k(x)(k=0,1,\cdots,n) hˉk(x)(k=0,1,,n):由条件可得, x i ( i = 0 , 1 , ⋯   , r ; i ≠ k ) x_i(i=0,1,\cdots,r;i\neq k) xi(i=0,1,,r;i=k) h ˉ k ( x ) \bar{h}_k(x) hˉk(x) 的二重零点, x i ( i = k , r + 1 , r + 2 , ⋯   , n ) x_i(i=k,r+1,r+2,\cdots,n) xi(i=k,r+1,r+2,,n) h ˉ k ( x ) \bar{h}_k(x) hˉk(x) 的零点。

0 ≤ k ≤ r 0\leq k\leq r 0kr 时:
h ˉ k ( x ) = D ∏ i = 0 n ( x − x i ) ∏ i = 0 i ≠ k r ( x − x i ) \bar{h}_k(x)=D\prod_{i=0}^n(x-x_i)\prod_{i=0\\i\neq k}^r(x-x_i) hˉk(x)=Di=0n(xxi)i=0i=kr(xxi)
h ˉ k ′ ( x k ) = 1 \bar{h}'_k(x_k)=1 hˉk(xk)=1
D = 1 ∑ j = 0 n ∏ i = 0 i ≠ j n ( x k − x i ) ∏ i = 0 i ≠ k r ( x k − x i ) + ∑ j = 0 j ≠ k r ∏ i = 0 n ( x k − x i ) ∏ i = 0 i ≠ k i ≠ j r ( x k − x i ) h ˉ k ( x ) = ( x − x k ) l k n ( x ) l k r ( x ) , k = 0 , 1 , ⋯   , r D=\frac{1}{\sum_{j=0}^n\prod_{i=0\\i\neq j}^n(x_k-x_i)\prod_{i=0\\i\neq k}^r(x_k-x_i)+\sum_{j=0\\j\neq k}^r\prod_{i=0}^n(x_k-x_i)\prod_{i=0\\i\neq k\\i\neq j}^r(x_k-x_i)}\\\bar{h}_k(x)=(x-x_k)l_{kn}(x)l_{kr}(x),k=0,1,\cdots,r D=j=0ni=0i=jn(xkxi)i=0i=kr(xkxi)+j=0j=kri=0n(xkxi)i=0i=ki=jr(xkxi)1hˉk(x)=(xxk)lkn(x)lkr(x),k=0,1,,r

补充:重节点差商
f [ x 0 , x 1 , x 2 , x 1 ] = f [ x 1 , x 2 , x 1 ] − f [ x 0 , x 1 , x 2 ] x 1 − x 0 f [ x 1 , x 2 , x 1 ] = f [ x 2 , x 1 ] − f [ x 1 , x 1 ] x 2 − x 1 f [ x 1 , x 1 ] = lim ⁡ x 2 → x 1 f [ x 1 , x 2 ] = lim ⁡ x 2 → x 1 f ( x 2 ) − f ( x 1 ) x 2 − x 1 = f ′ ( x 1 ) 类 似 的 , f [ x 1 , x 1 , x 1 ] = 1 2 ! f ′ ′ ( x 1 ) f [ x 1 , x 1 , ⋯   , x 1 ⏟ n + 1 个 ] = 1 n ! f ( n ) ( x 1 ) f[x_0,x_1,x_2,x_1]=\frac{f[x_1,x_2,x_1]-f[x_0,x_1,x_2]}{x_1-x_0}\\f[x_1,x_2,x_1]=\frac{f[x_2,x_1]-f[x_1,x_1]}{x_2-x_1}\\f[x_1,x_1]=\lim_{x_2\rightarrow x_1}f[x_1,x_2]=\lim_{x_2\rightarrow x_1}\frac{f(x_2)-f(x_1)}{x_2-x_1}=f'(x_1)\\类似的,f[x_1,x_1,x_1]=\frac{1}{2!}f''(x_1)\\f[\underbrace{x_1,x_1,\cdots,x_1}_{n+1个}]=\frac{1}{n!}f^{(n)}(x_1) f[x0,x1,x2,x1]=x1x0f[x1,x2,x1]f[x0,x1,x2]f[x1,x2,x1]=x2x1f[x2,x1]f[x1,x1]f[x1,x1]=x2x1limf[x1,x2]=x2x1limx2x1f(x2)f(x1)=f(x1)f[x1,x1,x1]=2!1f(x1)f[n+1 x1,x1,,x1]=n!1f(n)(x1)
例如,已知 f ( x ) f(x) f(x) 在结点 x 0 , x 1 , x 2 x_0,x_1,x_2 x0,x1,x2 上的函数值和在 x 1 x_1 x1 处的导数值,求次数不超过3次的多项式 P ( x ) P(x) P(x)
P ( x ) = f ( x 0 ) + f [ x 0 , x 1 ] ( x − x 0 ) + f [ x 0 , x 1 , x 2 ] ( x − x 0 ) ( x − x 1 ) + f [ x 0 , x 1 , x 2 , x 1 ] ( x − x 0 ) ( x − x 1 ) ( x − x 2 ) P(x)=f(x_0)+f[x_0,x_1](x-x_0)+f[x_0,x_1,x_2](x-x_0)(x-x_1)+f[x_0,x_1,x_2,x_1](x-x_0)(x-x_1)(x-x_2) P(x)=f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+f[x0,x1,x2,x1](xx0)(xx1)(xx2)

分段低次插值

龙格(Runge)现象:为减少逼近误差,盲目地提高插值阶是不可取的。一个解决办法:缩小插值区间,即分段低次插值

分段线性插值与分段二次插值

对给定区间 [ a , b ] [a,b] [a,b] 作分割: a = x 0 < x 1 < x 2 < ⋯ < x n = b a=x_0<x_1<x_2<\cdots<x_n=b a=x0<x1<x2<<xn=b。在每个小区间 [ x i − 1 , x i ] [x_{i-1},x_i] [xi1,xi] 上作 f ( x ) f(x) f(x) x i − 1 , x i x_{i-1},x_i xi1,xi 为结点的线性插值,记为 L 1 ( x ) L_1(x) L1(x),则
f ( x ) ≈ L 1 ( x ) = f ( x i − 1 ) x − x i x i − 1 − x i + f ( x i ) x − x i − 1 x i − x i − 1 f(x)\approx L_1(x)=f(x_{i-1})\frac{x-x_i}{x_{i-1}-x_i}+f(x_i)\frac{x-x_{i-1}}{x_i-x_{i-1}} f(x)L1(x)=f(xi1)xi1xixxi+f(xi)xixi1xxi1
即为分段线性插值(折线插值)

特点:

  1. L 1 ( x ) ∈ C [ a , b ] L_1(x)\in C[a,b] L1(x)C[a,b]
  2. L 1 ( x ) L_1(x) L1(x) [ x i − 1 , x i ] [x_{i-1},x_i] [xi1,xi] 上为一个不高于一次的多项式。

误差:若 f ( x ) ∈ C 2 [ a , b ] f(x)\in C^2[a,b] f(x)C2[a,b],则 ∣ f ( x ) − L 1 ( x ) ∣ ≤ M 2 8 h 2 |f(x)-L_1(x)|\leq\frac{M_2}{8}h^2 f(x)L1(x)8M2h2,其中 M 2 = max ⁡ a ≤ x ≤ b ∣ f ′ ′ ( x ) ∣ , h i = x i − x i − 1 , h = max ⁡ 1 ≤ i ≤ n h i M_2=\max_{a\leq x\leq b}|f''(x)|,h_i=x_i-x_{i-1},h=\max_{1\leq i\leq n}h_i M2=maxaxbf(x),hi=xixi1,h=max1inhi

证明:当 x ∈ [ x i − 1 , x i ] x\in[x_{i-1},x_i] x[xi1,xi] 时,可得:
f ( x ) − L 1 ( x ) = f ′ ′ ( ξ ) 2 ! ( x − x i − 1 ) ( x − x i ) ∣ f ( x ) − L 1 ( x ) ∣ ≤ M 2 2 ∣ ( x − x i − 1 ) ( x − x i ) ∣ ≤ M 2 2 ⋅ 1 4 ( x i − x i − 1 ) 2 ≤ M 2 8 h 2 f(x)-L_1(x)=\frac{f''(\xi)}{2!}(x-x_{i-1})(x-x_i)\\|f(x)-L_1(x)|\leq\frac{M_2}{2}|(x-x_{i-1})(x-x_i)|\leq\frac{M_2}{2}·\frac{1}{4}(x_i-x_{i-1})^2\leq\frac{M_2}{8}h^2 f(x)L1(x)=2!f(ξ)(xxi1)(xxi)f(x)L1(x)2M2(xxi1)(xxi)2M241(xixi1)28M2h2

由此可知,当区间分割加密,即 max ⁡ i ( x i − x i − 1 ) → 0 \max_i(x_i-x_{i-1})\rightarrow0 maxi(xixi1)0,分段线性插值 L 1 ( x ) L_1(x) L1(x) 收敛于 f ( x ) f(x) f(x)

分段线性插值有很好的收敛性质,但却是不光滑的。

分段二次插值(分段抛物插值)
f ( x ) ≈ L 2 ( x ) = ∑ k = i − 1 i + 1 [ f ( x i ) ∏ j = i − 1 j ≠ k i + 1 ( x − x j x k − x j ) ] f(x)\approx L_2(x)=\sum_{k=i-1}^{i+1}[f(x_i)\prod_{j=i-1\\j\neq k}^{i+1}(\frac{x-x_j}{x_k-x_j})] f(x)L2(x)=k=i1i+1[f(xi)j=i1j=ki+1(xkxjxxj)]

三次样条插值

定义5: △ : a = x 0 < x 1 < x 2 < ⋯ < x n = b \triangle:a=x_0<x_1<x_2<\cdots<x_n=b :a=x0<x1<x2<<xn=b [ a , b ] [a,b] [a,b] 上的一个分割,若函数 S ( x ) S(x) S(x) 满足:

  1. S ( x ) S(x) S(x) 在每个子区间 [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1] 上为不高于三次的多项式;
  2. S ( x ) ∈ C 2 ( a , b ) S(x)\in C^2(a,b) S(x)C2(a,b)
  3. S ( x i ) = f ( x i ) , i = 0 , 1 , ⋯   , n S(x_i)=f(x_i),i=0,1,\cdots,n S(xi)=f(xi),i=0,1,,n

则称 S ( x ) S(x) S(x) f ( x ) f(x) f(x) △ \triangle 上的三次样条插值函数

唯一性:需要提出两个限制条件,称为边界条件端点条件,通常有三种提法:

  1. S ( x ) S(x) S(x) 两端的一阶导数值等于预先给定的值,即
    S ′ ( x 0 ) = y 0 ′ , S ′ ( x n ) = y n ′ S'(x_0)=y_0',S'(x_n)=y_n' S(x0)=y0,S(xn)=yn
    称为 D 1 D_1 D1 样条

  2. S ( x ) S(x) S(x) 两端的二阶导数值等于预先给定的值,即
    S ′ ′ ( x 0 ) = y 0 ′ ′ , S ′ ′ ( x n ) = y n ′ ′ S''(x_0)=y_0'',S''(x_n)=y_n'' S(x0)=y0,S(xn)=yn
    称为 D 2 D_2 D2 样条。特别的,当 S ′ ′ ( x 0 ) = S ′ ′ ( x n ) = 0 S''(x_0)=S''(x_n)=0 S(x0)=S(xn)=0 时,为自然样条

  3. 若三次样条为以 b − a b-a ba 为周期的周期函数( f ( x n ) = f ( x 0 ) , S ( x 0 + 0 ) = S ( x n − 0 ) f(x_n)=f(x_0),S(x_0+0)=S(x_n-0) f(xn)=f(x0),S(x0+0)=S(xn0)),则称 S ′ ( x 0 + 0 ) = S ′ ( x n − 0 ) , S ′ ′ ( x 0 + 0 ) = S ′ ′ ( x n − 0 ) S'(x_0+0)=S'(x_n-0),S''(x_0+0)=S''(x_n-0) S(x0+0)=S(xn0),S(x0+0)=S(xn0)周期样条

三斜率(三转角)方程组

S ( x ) S(x) S(x) 为一个不高于三次的多项式。设 S ′ ( x i ) = d i , i = 0 , 1 , ⋯   , n S'(x_i)=d_i,i=0,1,\cdots,n S(xi)=di,i=0,1,,n S ( x ) S(x) S(x) [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1] 上的表达式为 S i ( x ) S_i(x) Si(x),于是有
S i ( x i ) = f ( x i ) , S i ( x i + 1 ) = f ( x i + 1 ) S i ′ ( x i ) = d i , S i ′ ( x i + 1 ) = d i + 1 h i + 1 = x i + 1 − x i S_i(x_i)=f(x_i),S_i(x_{i+1})=f(x_{i+1})\\S_i'(x_i)=d_i,S_i'(x_{i+1})=d_{i+1}\\h_{i+1}=x_{i+1}-x_i Si(xi)=f(xi),Si(xi+1)=f(xi+1)Si(xi)=di,Si(xi+1)=di+1hi+1=xi+1xi
记:
λ i = h i + 1 h i + h i + 1 , μ i = 1 − λ i = h i h i + h i + 1 , C i = 3 ( λ i f [ x i − 1 , x i ] + μ i f [ x i , x i + 1 ] ) \lambda_i=\frac{h_{i+1}}{h_i+h_{i+1}},\mu_i=1-\lambda_i=\frac{h_i}{h_i+h_{i+1}},C_i=3(\lambda_if[x_{i-1},x_i]+\mu_if[x_i,x_{i+1}]) λi=hi+hi+1hi+1,μi=1λi=hi+hi+1hi,Ci=3(λif[xi1,xi]+μif[xi,xi+1])
则有三次样条插值的 d d d 关系式(或 m m m 关系式)
λ i d i − 1 + 2 d i + μ i d i + 1 = C i , i = 1 , 2 , ⋯   , n − 1 \lambda_id_{i-1}+2d_i+\mu_id_{i+1}=C_i,i=1,2,\cdots,n-1 λidi1+2di+μidi+1=Ci,i=1,2,,n1
加入两个端点条件,才能解得 { d i } i = 0 n \{d_i\}^n_{i=0} {di}i=0n,有三种方法:

  1. D 1 D_1 D1 样条: S ( x ) S(x) S(x) 两端的一阶导数值等于预先给定的值:
    S ′ ( x 0 ) = y 0 ′ , S ′ ( x n ) = y n ′ S'(x_0)=y_0',S'(x_n)=y_n' S(x0)=y0,S(xn)=yn
    求线性方程组,得 d i ( i = 1 , ⋯   , n − 1 ) d_i(i=1,\cdots,n-1) di(i=1,,n1)
    [ 2 μ 1 λ 2 2 μ 2 ⋱ ⋱ ⋱ λ n − 2 2 μ n − 2 λ n − 1 2 ] [ d 1 d 2 ⋮ d n − 2 d n − 1 ] = [ C 1 − λ 1 y 0 ′ C 2 ⋮ C n − 2 C n − 1 − μ n − 1 y n ′ ] \left[\begin{matrix}2&\mu_1&&\\\lambda_2&2&\mu_2&\\\ddots&\ddots&\ddots\\&\lambda_{n-2}&2&\mu_{n-2}\\&&\lambda_{n-1}&2\end{matrix}\right]\left[\begin{matrix}d_1\\d_2\\\vdots\\d_{n-2}\\d_{n-1}\end{matrix}\right]=\left[\begin{matrix}C_1-\lambda_1y_0'\\C_2\\\vdots\\C_{n-2}\\C_{n-1}-\mu_{n-1}y_n'\end{matrix}\right] 2λ2μ12λn2μ22λn1μn22d1d2dn2dn1=C1λ1y0C2Cn2Cn1μn1yn

  2. D 2 D_2 D2 样条: S ( x ) S(x) S(x) 两端的二阶导数值等于预先给定的值:
    S ′ ′ ( x 0 ) = y 0 ′ ′ , S ′ ′ ( x n ) = y n ′ ′ S''(x_0)=y_0'',S''(x_n)=y_n'' S(x0)=y0,S(xn)=yn
    S ′ ′ ( x ) S''(x) S(x) [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1] 的表达式,容易得到:
    2 d 0 + d 1 = 3 f [ x 0 , x 1 ] − h 1 2 y 0 ′ ′ d n − 1 + 2 d n = 3 f [ x n − 1 , x n ] − h n 2 y n ′ ′ 2d_0+d_1=3f[x_0,x_1]-\frac{h_1}{2}y_0''\\d_{n-1}+2d_n=3f[x_{n-1},x_n]-\frac{h_n}{2}y_n'' 2d0+d1=3f[x0,x1]2h1y0dn1+2dn=3f[xn1,xn]2hnyn
    可得关于 { d i } i = 0 n \{d_i\}^n_{i=0} {di}i=0n 的一组线性方程组:
    [ 2 1 λ 1 2 μ 1 ⋱ ⋱ ⋱ λ n − 1 2 μ n − 1 1 2 ] [ d 0 d 1 ⋮ d n − 1 d n ] = [ 3 f [ x 0 , x 1 ] − h 1 2 y 0 ′ ′ C 1 ⋮ C n − 1 3 f [ x n − 1 , x n ] − h n 2 y n ′ ′ ] \left[\begin{matrix}2&1&&\\\lambda_1&2&\mu_1&\\\ddots&\ddots&\ddots\\&\lambda_{n-1}&2&\mu_{n-1}\\&&1&2\end{matrix}\right]\left[\begin{matrix}d_0\\d_1\\\vdots\\d_{n-1}\\d_n\end{matrix}\right]=\left[\begin{matrix}3f[x_0,x_1]-\frac{h_1}{2}y_0''\\C_1\\\vdots\\C_{n-1}\\3f[x_{n-1},x_n]-\frac{h_n}{2}y_n''\end{matrix}\right] 2λ112λn1μ121μn12d0d1dn1dn=3f[x0,x1]2h1y0C1Cn13f[xn1,xn]2hnyn

  3. 周期样条:若三次样条为以 b − a b-a ba 为周期的周期函数, f ( x n ) = f ( x 0 ) , S ( x 0 ) = S ( x n ) , S ′ ( x 0 ) = S ′ ( x n ) , S ′ ′ ( x 0 ) = S ′ ′ ( x n ) f(x_n)=f(x_0),S(x_0)=S(x_n),S'(x_0)=S'(x_n),S''(x_0)=S''(x_n) f(xn)=f(x0),S(x0)=S(xn),S(x0)=S(xn),S(x0)=S(xn),可得
    λ n − 1 d n − 2 + 2 d n − 1 + μ n − 1 d 0 = C n − 1 λ 0 d n − 1 + 2 d 0 + μ 0 d 1 = C 0 这 里 : λ 0 = h 1 h n + h 1 , μ 0 = 1 − λ 0 = h n h n + h 1 C 0 = 3 ( λ 0 f [ x n − 1 , x n ] + μ 0 f [ x 0 , x 1 ] ) \lambda_{n-1}d_{n-2}+2d_{n-1}+\mu_{n-1}d_0=C_{n-1}\\\lambda_0d_{n-1}+2d_0+\mu_0d_1=C_0\\这里:\lambda_0=\frac{h_1}{h_n+h_1},\mu_0=1-\lambda_0=\frac{h_n}{h_n+h_1}\\C_0=3(\lambda_0f[x_{n-1},x_n]+\mu_0f[x_0,x_1]) λn1dn2+2dn1+μn1d0=Cn1λ0dn1+2d0+μ0d1=C0λ0=hn+h1h1,μ0=1λ0=hn+h1hnC0=3(λ0f[xn1,xn]+μ0f[x0,x1])
    得到关于 { d i } i = 0 n \{d_i\}^n_{i=0} {di}i=0n 的一组线性方程组:
    [ 2 μ 0 λ 0 λ 1 2 μ 1 ⋱ ⋱ ⋱ λ n − 2 2 μ n − 2 μ n − 1 λ n − 1 2 ] [ d 0 d 1 ⋮ d n − 2 d n − 1 ] = [ C 0 C 1 ⋮ C n − 2 C n − 1 ] \left[\begin{matrix}2&\mu_0&&\lambda_0\\\lambda_1&2&\mu_1&\\\ddots&\ddots&\ddots\\&\lambda_{n-2}&2&\mu_{n-2}\\\mu_{n-1}&&\lambda_{n-1}&2\end{matrix}\right]\left[\begin{matrix}d_0\\d_1\\\vdots\\d_{n-2}\\d_{n-1}\end{matrix}\right]=\left[\begin{matrix}C_0\\C_1\\\vdots\\C_{n-2}\\C_{n-1}\end{matrix}\right] 2λ1μn1μ02λn2μ12λn1λ0μn22d0d1dn2dn1=C0C1Cn2Cn1

求出 { d i } i = 0 n \{d_i\}^n_{i=0} {di}i=0n ,即得在 [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1] 上的三次样条插值函数为:
S i ( x ) = 1 h i + 1 3 [ h i + 1 + 2 ( x − x i ) ] ( x − x i + 1 ) 2 f ( x i ) + 1 h i + 1 3 [ h i + 1 − 2 ( x − x i + 1 ) ] ( x − x i ) 2 f ( x i + 1 ) + 1 h i + 1 2 ( x − x i ) ( x − x i + 1 ) 2 d i + 1 h i + 1 2 ( x − x i + 1 ) ( x − x i ) 2 d i + 1 S_i(x)=\frac{1}{h_{i+1}^3}[h_{i+1}+2(x-x_i)](x-x_{i+1})^2f(x_i)\\+\frac{1}{h_{i+1}^3}[h_{i+1}-2(x-x_{i+1})](x-x_i)^2f(x_{i+1})\\+\frac{1}{h_{i+1}^2}(x-x_i)(x-x_{i+1})^2d_i\\+\frac{1}{h_{i+1}^2}(x-x_{i+1})(x-x_i)^2d_{i+1} Si(x)=hi+131[hi+1+2(xxi)](xxi+1)2f(xi)+hi+131[hi+12(xxi+1)](xxi)2f(xi+1)+hi+121(xxi)(xxi+1)2di+hi+121(xxi+1)(xxi)2di+1

三弯矩方程组(M关系式)

对于样条插值函数 S ( x ) ∈ C 2 ( a , b ) S(x)\in C^2(a,b) S(x)C2(a,b),设 S ′ ′ ( x i ) = M i , i = 0 , 1 , ⋯   , n S''(x_i)=M_i,i=0,1,\cdots,n S(xi)=Mi,i=0,1,,n 为待求参数。

三次样条插值的 M M M 关系式
μ i M i − 1 + 2 M i + λ i M i + 1 = c i , i = 1 , 2 , ⋯   , n − 1 c i = 6 f [ x i − 1 , x i , x i + 1 ] \mu_iM_{i-1}+2M_i+\lambda_iM_{i+1}=c_i,i=1,2,\cdots,n-1\\c_i=6f[x_{i-1},x_i,x_{i+1}] μiMi1+2Mi+λiMi+1=ci,i=1,2,,n1ci=6f[xi1,xi,xi+1]

加入两个端点条件,通过 M M M 关系式可解得 { M i } i = 0 n \{M_i\}^n_{i=0} {Mi}i=0n,有三种方法:

  1. D 1 D_1 D1 样条: S ( x ) S(x) S(x) 两端的一阶导数值等于预先给定的值:
    S ′ ( x 0 ) = y 0 ′ , S ′ ( x n ) = y n ′ S'(x_0)=y_0',S'(x_n)=y_n' S(x0)=y0,S(xn)=yn
    i = 0 i=0 i=0 i = n − 1 i=n-1 i=n1 时的 S i ( x ) S_i(x) Si(x) 求导,并分别对 x 0 , x n x_0,x_n x0,xn 代入,整理得:
    2 M 0 + M 1 = 6 h 1 ( f [ x 0 , x 1 ] − y 0 ′ ) M n − 1 + 2 M n = 6 h n ( y n ′ − f [ x n − 1 , x n ] ) 2M_0+M_1=\frac{6}{h_1}(f[x_0,x_1]-y_0')\\M_{n-1}+2M_n=\frac{6}{h_n}(y_n'-f[x_{n-1},x_n]) 2M0+M1=h16(f[x0,x1]y0)Mn1+2Mn=hn6(ynf[xn1,xn])
    得到关于 { M i } i = 0 n \{M_i\}^n_{i=0} {Mi}i=0n 的方程组:
    [ 2 1 μ 1 2 λ 1 ⋱ ⋱ ⋱ μ n − 1 2 λ n − 1 1 2 ] [ M 0 M 1 ⋮ M n − 1 M n ] = [ 6 h 1 ( f [ x 0 , x 1 ] − y 0 ′ ) c 1 ⋮ c n − 1 6 h n ( y n ′ − f [ x n − 1 , x n ] ) ] \left[\begin{matrix}2&1&&\\\mu_1&2&\lambda_1&\\\ddots&\ddots&\ddots\\&\mu_{n-1}&2&\lambda_{n-1}\\&&1&2\end{matrix}\right]\left[\begin{matrix}M_0\\M_1\\\vdots\\M_{n-1}\\M_n\end{matrix}\right]=\left[\begin{matrix}\frac{6}{h_1}(f[x_0,x_1]-y_0')\\c_1\\\vdots\\c_{n-1}\\\frac{6}{h_n}(y_n'-f[x_{n-1},x_n])\end{matrix}\right] 2μ112μn1λ121λn12M0M1Mn1Mn=h16(f[x0,x1]y0)c1cn1hn6(ynf[xn1,xn])

  2. D 2 D_2 D2 样条: S ( x ) S(x) S(x) 两端的二阶导数值等于预先给定的值:
    S ′ ′ ( x 0 ) = y 0 ′ ′ , S ′ ′ ( x n ) = y n ′ ′ S''(x_0)=y_0'',S''(x_n)=y_n'' S(x0)=y0,S(xn)=yn
    得到关于 { M i } i = 0 n \{M_i\}^n_{i=0} {Mi}i=0n 的方程组:
    [ 2 λ 1 μ 2 2 λ 2 ⋱ ⋱ ⋱ μ n − 2 2 λ n − 2 μ n − 1 2 ] [ M 1 M 2 ⋮ M n − 2 M n − 1 ] = [ c 1 − μ 1 y 0 ′ ′ c 2 ⋮ c n − 2 c n − 1 − λ n − 1 y n ′ ′ ] \left[\begin{matrix}2&\lambda_1&&\\\mu_2&2&\lambda_2&\\\ddots&\ddots&\ddots\\&\mu_{n-2}&2&\lambda_{n-2}\\&&\mu_{n-1}&2\end{matrix}\right]\left[\begin{matrix}M_1\\M_2\\\vdots\\M_{n-2}\\M_{n-1}\end{matrix}\right]=\left[\begin{matrix}c_1-\mu_1y_0''\\c_2\\\vdots\\c_{n-2}\\c_{n-1}-\lambda_{n-1}y_n''\end{matrix}\right] 2μ2λ12μn2λ22μn1λn22M1M2Mn2Mn1=c1μ1y0c2cn2cn1λn1yn

  3. 周期样条:若三次样条为以 b − a b-a ba 为周期的周期函数, f ( x n ) = f ( x 0 ) , S ( x 0 ) = S ( x n ) , S ′ ( x 0 ) = S ′ ( x n ) , S ′ ′ ( x 0 ) = S ′ ′ ( x n ) f(x_n)=f(x_0),S(x_0)=S(x_n),S'(x_0)=S'(x_n),S''(x_0)=S''(x_n) f(xn)=f(x0),S(x0)=S(xn),S(x0)=S(xn),S(x0)=S(xn),可得:
    μ 0 M n − 1 + 2 M 0 + λ 0 M 1 = 6 h 1 + h n ( f [ x 0 , x 1 ] − f [ x n − 1 , x n ] ) 这 里 : λ 0 = h 1 h 1 + h n , μ 0 = 1 − λ 0 = h n h 1 + h n μ n − 1 M n − 1 + 2 M n − 1 + λ n − 1 M 0 = c n − 1 \mu_0M_{n-1}+2M_0+\lambda_0M_1=\frac{6}{h_1+h_n}(f[x_0,x_1]-f[x_{n-1},x_n])\\这里:\lambda_0=\frac{h_1}{h_1+h_n},\mu_0=1-\lambda_0=\frac{h_n}{h_1+h_n}\\\mu_{n-1}M_{n-1}+2M_{n-1}+\lambda_{n-1}M_0=c_{n-1} μ0Mn1+2M0+λ0M1=h1+hn6(f[x0,x1]f[xn1,xn])λ0=h1+hnh1,μ0=1λ0=h1+hnhnμn1Mn1+2Mn1+λn1M0=cn1
    得到关于 { M i } i = 0 n − 1 \{M_i\}^{n-1}_{i=0} {Mi}i=0n1 的方程组:
    [ 2 λ 0 μ 0 μ 1 2 λ 1 ⋱ ⋱ ⋱ μ n − 2 2 λ n − 2 λ n − 1 μ n − 1 2 ] [ M 0 M 1 ⋮ M n − 2 M n − 1 ] = [ 6 h 1 + h n ( f [ x 0 , x 1 ] − f [ x n − 1 , x n ] ) c 1 ⋮ c n − 2 c n − 1 ] \left[\begin{matrix}2&\lambda_0&&\mu_0\\\mu_1&2&\lambda_1&\\\ddots&\ddots&\ddots\\&\mu_{n-2}&2&\lambda_{n-2}\\\lambda_{n-1}&&\mu_{n-1}&2\end{matrix}\right]\left[\begin{matrix}M_0\\M_1\\\vdots\\M_{n-2}\\M_{n-1}\end{matrix}\right]=\left[\begin{matrix}\frac{6}{h_1+h_n}(f[x_0,x_1]-f[x_{n-1},x_n])\\c_1\\\vdots\\c_{n-2}\\c_{n-1}\end{matrix}\right] 2μ1λn1λ02μn2λ12μn1μ0λn22M0M1Mn2Mn1=h1+hn6(f[x0,x1]f[xn1,xn])c1cn2cn1

求出 { M i } i = 0 n \{M_i\}^n_{i=0} {Mi}i=0n ,即得在 [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1] 上的三次样条插值函数为:
S i ( x ) = M i ( x i + 1 − x ) 3 6 h i + 1 + M i + 1 ( x − x i ) 3 6 h i + 1 + ( y i − M i 6 h i + 1 2 ) x i + 1 − x h i + 1 + ( y i + 1 − M i + 1 6 h i + 1 2 ) x − x i h i + 1 S_i(x)=M_i\frac{(x_{i+1}-x)^3}{6h_{i+1}}+M_{i+1}\frac{(x-x_i)^3}{6h_{i+1}}\\+(y_i-\frac{M_i}{6}h_{i+1}^2)\frac{x_{i+1}-x}{h_{i+1}}+(y_{i+1}-\frac{M_{i+1}}{6}h_{i+1}^2)\frac{x-x_i}{h_{i+1}} Si(x)=Mi6hi+1(xi+1x)3+Mi+16hi+1(xxi)3+(yi6Mihi+12)hi+1xi+1x+(yi+16Mi+1hi+12)hi+1xxi

定理3:满足3个边界条件其中一个的三次样条插值函数 S ( x ) S(x) S(x) 存在且唯一。

曲线拟合的最小二乘法

选取 φ ( x ) \varphi(x) φ(x),使偏差平方和最小:
∑ i = 1 m δ i 2 = ∑ i = 1 m [ φ ( x i ) − y i ] 2 = min ⁡ \sum_{i=1}^m\delta_i^2=\sum_{i=1}^m[\varphi(x_i)-y_i]^2=\min i=1mδi2=i=1m[φ(xi)yi]2=min

最小二乘解的求法

φ ( x ) = F ( a 0 , a 1 , ⋯   , a n , x ) \varphi(x)=F(a_0,a_1,\cdots,a_n,x) φ(x)=F(a0,a1,,an,x),其中 n < m , a k ( k = 0 , 1 , ⋯   , n ) n<m,a_k(k=0,1,\cdots,n) n<m,ak(k=0,1,,n) 是待定参数,记
S ( a 0 , a 1 , ⋯   , a n ) = ∑ i = 1 m [ F ( a 0 , a 1 , ⋯   , a n , x i ) − y i ] 2 S(a_0,a_1,\cdots,a_n)=\sum_{i=1}^m[F(a_0,a_1,\cdots,a_n,x_i)-y_i]^2 S(a0,a1,,an)=i=1m[F(a0,a1,,an,xi)yi]2
根据最小二乘法原则,求 a 0 ∗ , ⋯   , a n ∗ a_0^*,\cdots,a_n^* a0,,an,满足:
∂ S ∂ a k = 0       ( k = 0 , 1 , ⋯   , n ) \frac{\partial S}{\partial a_k}=0\ \ \ \ \ (k=0,1,\cdots,n) akS=0     (k=0,1,,n)
由上式的解 a 0 ∗ , ⋯   , a n ∗ a_0^*,\cdots,a_n^* a0,,an 得到的:
φ ∗ ( x ) = F ( a 0 ∗ , a 1 ∗ , ⋯   , a n ∗ , x ) \varphi^*(x)=F(a_0^*,a_1^*,\cdots,a_n^*,x) φ(x)=F(a0,a1,,an,x)
就为所求的最小二乘解

线性最小二乘问题的求法

φ ( x ) = a 0 φ 0 ( x ) + a 1 φ 1 ( x ) + ⋯ + a n φ n ( x ) \varphi(x)=a_0\varphi_0(x)+a_1\varphi_1(x)+\cdots+a_n\varphi_n(x) φ(x)=a0φ0(x)+a1φ1(x)++anφn(x),此时:
S ( a 0 , a 1 , ⋯   , a n ) = ∑ i = 1 m [ ∑ k = 0 n a k φ k ( x i ) − y i ] 2 S(a_0,a_1,\cdots,a_n)=\sum_{i=1}^m[\sum_{k=0}^na_k\varphi_k(x_i)-y_i]^2 S(a0,a1,,an)=i=1m[k=0nakφk(xi)yi]2
∂ S ∂ a k = 0    ( k = 0 , 1 , ⋯   , n ) \frac{\partial S}{\partial a_k}=0\ \ (k=0,1,\cdots,n) akS=0  (k=0,1,,n),得
∑ i = 1 m φ k ( x i ) [ ∑ k = 0 n a k φ k ( x i ) − y i ] = 0 , k = 0 , 1 , ⋯   , n a 0 ∑ i = 1 m φ k ( x i ) φ 0 ( x i ) + ⋯ + a n ∑ i = 1 m φ k ( x i ) φ n ( x i ) = ∑ i = 1 m φ k ( x i ) y i \sum_{i=1}^m\varphi_k(x_i)[\sum_{k=0}^na_k\varphi_k(x_i)-y_i]=0,k=0,1,\cdots,n\\a_0\sum_{i=1}^m\varphi_k(x_i)\varphi_0(x_i)+\cdots+a_n\sum_{i=1}^m\varphi_k(x_i)\varphi_n(x_i)=\sum_{i=1}^m\varphi_k(x_i)y_i i=1mφk(xi)[k=0nakφk(xi)yi]=0,k=0,1,,na0i=1mφk(xi)φ0(xi)++ani=1mφk(xi)φn(xi)=i=1mφk(xi)yi
引入内积记号: ( h , g ) = ∑ i = 1 m h ( x i ) g ( x i ) (h,g)=\sum_{i=1}^mh(x_i)g(x_i) (h,g)=i=1mh(xi)g(xi),则上述方程组可以表示为
a 0 ( φ k , φ 0 ) + ⋯ + a n ( φ k , φ n ) = ( φ k , f ) , k = 0 , 1 , ⋯   , n [ ( φ 0 , φ 0 ) ( φ 0 , φ 1 ) ⋯ ( φ 0 , φ n ) ( φ 1 , φ 0 ) ( φ 1 , φ 1 ) ⋯ ( φ 1 , φ n ) ⋮ ⋮ ⋮ ( φ n , φ 0 ) ( φ n , φ 1 ) ⋯ ( φ n , φ n ) ] [ a 0 a 1 ⋮ a n ] = [ ( φ 0 , f ) ( φ 1 , f ) ⋮ ( φ n , f ) ] a_0(\varphi_k,\varphi_0)+\cdots+a_n(\varphi_k,\varphi_n)=(\varphi_k,f),k=0,1,\cdots,n\\ \left[\begin{matrix}(\varphi_0,\varphi_0)&(\varphi_0,\varphi_1)&\cdots&(\varphi_0,\varphi_n)\\(\varphi_1,\varphi_0)&(\varphi_1,\varphi_1)&\cdots&(\varphi_1,\varphi_n)\\\vdots&\vdots&&\vdots\\(\varphi_n,\varphi_0)&(\varphi_n,\varphi_1)&\cdots&(\varphi_n,\varphi_n)\end{matrix}\right] \left[\begin{matrix}a_0\\a_1\\\vdots\\a_n\end{matrix}\right]= \left[\begin{matrix}(\varphi_0,f)\\(\varphi_1,f)\\\vdots\\(\varphi_n,f)\end{matrix}\right] a0(φk,φ0)++an(φk,φn)=(φk,f),k=0,1,,n(φ0,φ0)(φ1,φ0)(φn,φ0)(φ0,φ1)(φ1,φ1)(φn,φ1)(φ0,φn)(φ1,φn)(φn,φn)a0a1an=(φ0,f)(φ1,f)(φn,f)
解上述方程组即得到相应的最小二乘解 φ ∗ ( x ) = a 0 ∗ φ 0 ( x ) + a 1 ∗ φ 1 ( x ) + ⋯ + a n ∗ φ n ( x ) \varphi^*(x)=a_0^*\varphi_0(x)+a_1^*\varphi_1(x)+\cdots+a_n^*\varphi_n(x) φ(x)=a0φ0(x)+a1φ1(x)++anφn(x)

多项式拟合最小二乘法

φ 0 ( x ) = 1 , φ 1 ( x ) = x , ⋯   , φ n ( x ) = x n \varphi_0(x)=1,\varphi_1(x)=x,\cdots,\varphi_n(x)=x^n φ0(x)=1,φ1(x)=x,,φn(x)=xn,则可得
( φ j , φ k ) = ∑ i = 1 m x i j x i k = ∑ i = 1 m x i j + k , j , k = 0 , 1 , ⋯   , n ( φ i , f ) = ∑ i = 1 m x i j y i , k = 0 , 1 , ⋯   , n (\varphi_j,\varphi_k)=\sum_{i=1}^mx_i^jx_i^k=\sum_{i=1}^mx_i^{j+k},j,k=0,1,\cdots,n\\(\varphi_i,f)=\sum_{i=1}^mx_i^jy_i,k=0,1,\cdots,n (φj,φk)=i=1mxijxik=i=1mxij+k,j,k=0,1,,n(φi,f)=i=1mxijyi,k=0,1,,n
方程组为:
[ m ∑ i = 1 m x i ⋯ ∑ i = 1 m x i n ∑ i = 1 m x i ∑ i = 1 m x i 2 ⋯ ∑ i = 1 m x i n + 1 ⋮ ⋮ ⋮ ∑ i = 1 m x i n ∑ i = 1 m x i n + 1 ⋯ ∑ i = 1 m x i 2 n ] [ a 0 a 1 ⋮ a n ] = [ ∑ i = 1 m y i ∑ i = 1 m x i y i ⋮ ∑ i = 1 m x i n y i ] \left[\begin{matrix}m&\sum_{i=1}^mx_i&\cdots&\sum_{i=1}^mx_i^n\\\sum_{i=1}^mx_i&\sum_{i=1}^mx_i^2&\cdots&\sum_{i=1}^mx_i^{n+1}\\\vdots&\vdots&&\vdots\\\sum_{i=1}^mx_i^n&\sum_{i=1}^mx_i^{n+1}&\cdots&\sum_{i=1}^mx_i^{2n}\end{matrix}\right]\left[\begin{matrix}a_0\\a_1\\\vdots\\a_n\end{matrix}\right]=\left[\begin{matrix}\sum_{i=1}^my_i\\\sum_{i=1}^mx_iy_i\\\vdots\\\sum_{i=1}^mx_i^ny_i\end{matrix}\right] mi=1mxii=1mxini=1mxii=1mxi2i=1mxin+1i=1mxini=1mxin+1i=1mxi2na0a1an=i=1myii=1mxiyii=1mxinyi

求最小二乘法解的步骤:

  1. 根据数据 ( x i , y i ) ( i = 1 , 2 , ⋯   , m ) (x_i,y_i)(i=1,2,\cdots,m) (xi,yi)(i=1,2,,m),确定函数空间 Φ \Phi Φ 和基函数 φ 0 ( x ) , φ 1 ( x ) , ⋯   , φ n ( x ) \varphi_0(x),\varphi_1(x),\cdots,\varphi_n(x) φ0(x),φ1(x),,φn(x)
  2. 根据 φ ( x ) \varphi(x) φ(x) 的特点,建立 a k ( k = 0 , 1 , ⋯   , n ) a_k(k=0,1,\cdots,n) ak(k=0,1,,n) 的法方程组;
  3. 通过解法方程组求取最小二乘解 φ ∗ ( x ) \varphi^*(x) φ(x) 对应的参数 a k ∗ ( k = 0 , 1 , ⋯   , n ) a_k^*(k=0,1,\cdots,n) ak(k=0,1,,n)

思考题:用最小二乘原理,求超定线性方程组: { 2 x + 4 y = 11 3 x − 5 y = 3 x + 2 y = 6 2 x + y = 7 \begin{cases}2x+4y=11\\3x-5y=3\\x+2y=6\\2x+y=7\end{cases} 2x+4y=113x5y=3x+2y=62x+y=7,并给出均方误差。

解: { δ 1 = 2 x + 4 y − 11 δ 2 = 3 x − 5 y − 3 δ 3 = x + 2 y − 6 δ 4 = 2 x + y − 7 , S ( x , y ) = ∑ i = 1 4 δ i 2 → min ⁡ \begin{cases}\delta_1=2x+4y-11\\\delta_2=3x-5y-3\\\delta_3=x+2y-6\\\delta_4=2x+y-7\end{cases},S(x,y)=\sum_{i=1}^4\delta_i^2\rightarrow\min δ1=2x+4y11δ2=3x5y3δ3=x+2y6δ4=2x+y7,S(x,y)=i=14δi2min

加权技巧的应用

对给定实验数据 ( x i , y i ) ( i = 1 , 2 , ⋯   , m ) (x_i,y_i)(i=1,2,\cdots,m) (xi,yi)(i=1,2,,m),寻求一个函数: φ ∗ ( x ) = a 0 ∗ φ 0 ( x ) + a 1 ∗ φ 1 ( x ) + ⋯ + a n ∗ φ n ( x ) \varphi^*(x)=a_0^*\varphi_0(x)+a_1^*\varphi_1(x)+\cdots+a_n^*\varphi_n(x) φ(x)=a0φ0(x)+a1φ1(x)++anφn(x),使:
∑ i = 1 m W i [ φ ∗ ( x i ) − y i ] 2 = min ⁡ φ ( x ) ∈ Φ ∑ i = 1 m W i [ φ ( x i ) − y i ] 2 \sum_{i=1}^mW_i[\varphi^*(x_i)-y_i]^2=\min_{\varphi(x)\in\Phi}\sum_{i=1}^mW_i[\varphi(x_i)-y_i]^2 i=1mWi[φ(xi)yi]2=φ(x)Φmini=1mWi[φ(xi)yi]2
其中, φ ( x ) = a 0 φ 0 ( x ) + a 1 φ 1 ( x ) + ⋯ + a n φ n ( x ) \varphi(x)=a_0\varphi_0(x)+a_1\varphi_1(x)+\cdots+a_n\varphi_n(x) φ(x)=a0φ0(x)+a1φ1(x)++anφn(x) W i W_i Wi 是一列正数,称为,它的大小反映了数据 ( x i , y i ) (x_i,y_i) (xi,yi) 地位的强弱。

可归结为求多元函数
S ( a 0 , a 1 , ⋯   , a n ) = ∑ i = 1 m W i [ ∑ k = 0 n a k φ k ( x i ) − y i ] 2 S(a_0,a_1,\cdots,a_n)=\sum_{i=1}^mW_i[\sum_{k=0}^na_k\varphi_k(x_i)-y_i]^2 S(a0,a1,,an)=i=1mWi[k=0nakφk(xi)yi]2
的极小点 ( a 0 ∗ , a 1 ∗ , ⋯   , a n ∗ ) (a_0^*,a_1^*,\cdots,a_n^*) (a0,a1,,an)

特例:取 φ 0 ( x ) = 1 , φ 1 ( x ) = x , ⋯   , φ n ( x ) = x n \varphi_0(x)=1,\varphi_1(x)=x,\cdots,\varphi_n(x)=x^n φ0(x)=1,φ1(x)=x,,φn(x)=xn,则可得法方程组
[ ∑ i = 1 m W i ∑ i = 1 m W i x i ⋯ ∑ i = 1 m W i x i n ∑ i = 1 m W i x i ∑ i = 1 m W i x i 2 ⋯ ∑ i = 1 m W i x i n + 1 ⋮ ⋮ ⋮ ∑ i = 1 m W i x i n ∑ i = 1 m W i x i n + 1 ⋯ ∑ i = 1 m W i x i 2 n ] [ a 0 a 1 ⋮ a n ] = [ ∑ i = 1 m W i y i ∑ i = 1 m W i x i y i ⋮ ∑ i = 1 m W i x i n y i ] \left[\begin{matrix}\sum_{i=1}^mW_i&\sum_{i=1}^mW_ix_i&\cdots&\sum_{i=1}^mW_ix_i^n\\\sum_{i=1}^mW_ix_i&\sum_{i=1}^mW_ix_i^2&\cdots&\sum_{i=1}^mW_ix_i^{n+1}\\\vdots&\vdots&&\vdots\\\sum_{i=1}^mW_ix_i^n&\sum_{i=1}^mW_ix_i^{n+1}&\cdots&\sum_{i=1}^mW_ix_i^{2n}\end{matrix}\right]\left[\begin{matrix}a_0\\a_1\\\vdots\\a_n\end{matrix}\right]=\left[\begin{matrix}\sum_{i=1}^mW_iy_i\\\sum_{i=1}^mW_ix_iy_i\\\vdots\\\sum_{i=1}^mW_ix_i^ny_i\end{matrix}\right] i=1mWii=1mWixii=1mWixini=1mWixii=1mWixi2i=1mWixin+1i=1mWixini=1mWixin+1i=1mWixi2na0a1an=i=1mWiyii=1mWixiyii=1mWixinyi

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值