第三章 多项式与插值

第三章 多项式与插值

3.1 Lagrange插值

插值基函数
KaTeX parse error: Expected 'EOF', got '&' at position 9: L_n(x)=&̲\sum\limits_{i=…

3.2 Newton插值

插值多项式
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 n − 1 ) 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_{n-1}) Nn(x)=a0+a1(xx0)+a2(xx0)(xx1)+⋅⋅⋅+an(xx0)⋅⋅⋅(xxn1)

当 x = x 0 , N n ( x 0 ) = a 0 = f ( x 0 ) 当 x = x 1 , 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 当 x = x 2 , N n ( x 2 ) = a 0 + a 1 ( x 1 − x 0 ) + a 2 ( x 2 − x 1 ) ( x 2 − x 0 ) = f ( x 2 ) 则 a 2 = ⋅ ⋅ ⋅ 当x=x_0,N_n(x_0)=a_0=f(x_0)\\ 当x=x_1,N_n(x_1)=a_0+a_1(x_1-x_0)=f(x_1)\\ 则a_1=\frac{f(x_1)-f(x_0)}{x_1-x_0}\\ 当x=x_2,N_n(x_2)=a_0+a_1(x_1-x_0)+a_2(x_2-x_1)(x_2-x_0)=f(x_2)\\ 则a_2=··· x=x0,Nn(x0)=a0=f(x0)x=x1,Nn(x1)=a0+a1(x1x0)=f(x1)a1=x1x0f(x1)f(x0)x=x2,Nn(x2)=a0+a1(x1x0)+a2(x2x1)(x2x0)=f(x2)a2=⋅⋅⋅

引入一些概念,方便 a i a_i ai的表示与研究

(1)均差

f [ x m ] = f ( x m ) f[x_m]=f(x_m) f[xm]=f(xm)为f的零阶均差

f [ x 0 , x m ] = f [ x m ] − f [ x 0 ] x m − x 0 f[x_0,x_m]=\frac{f[x_m]-f[x_0]}{x_m-x_0} f[x0,xm]=xmx0f[xm]f[x0]为函数关于点 x 0 , x m x_0,x_m x0,xm的一阶均差

k k k阶均差为:
f [ x 0 , ⋅ ⋅ ⋅ , x k − 1 , x m ] = f [ x 0 , ⋅ ⋅ ⋅ , x k − 2 , x m ] − f [ x 0 , x 1 , ⋅ ⋅ ⋅ , x k − 1 ] x m − x k − 1 f[x_0,···,x_{k-1},x_m]=\frac{f[x_0,···,x_{k-2},x_m]-f[x_0,x_1,···,x_{k-1}]}{x_m-x_{k-1}} f[x0,⋅⋅⋅,xk1,xm]=xmxk1f[x0,⋅⋅⋅,xk2,xm]f[x0,x1,⋅⋅⋅,xk1]
由上面的论述有:
f ( x ) = f ( x 0 ) + f [ x , x 0 ] ( x − x 0 ) f [ x , x 0 ] = f [ x 0 , x 1 ] + f [ x , x 0 , x 1 ] ( x − x 1 ) f [ x , x 0 , x 1 ] = f [ x 0 , x 1 , x 2 ] + f [ x , x 0 , x 1 , x 2 ] ( x − x 2 ) … … f(x)=f(x_0)+f[x,x_0](x-x_0)\\ f[x,x_0]=f[x_0,x_1]+f[x,x_0,x_1](x-x_1)\\ f[x,x_0,x_1]=f[x_0,x_1,x_2]+f[x,x_0,x_1,x_2](x-x_2)\\ …… f(x)=f(x0)+f[x,x0](xx0)f[x,x0]=f[x0,x1]+f[x,x0,x1](xx1)f[x,x0,x1]=f[x0,x1,x2]+f[x,x0,x1,x2](xx2)……
只要把后一式代入前一式,就得到:
f ( 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 ) + f [ x , x 0 , x 1 , ⋅ ⋅ ⋅ , x n ] w n + 1 ( x ) = N n ( x ) + R n ( x ) \begin{align} f(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})\\ +&f[x,x_0,x_1,···,x_n]w_{n+1}(x)=N_n(x)+R_n(x) \end{align} f(x)=++f(x0)+f[x0,x1](xx0)+f[x0,x1,x2](xx0)(xx1)+⋅⋅⋅+f[x0,x1,⋅⋅⋅,xn](xx0)(xx1)⋅⋅⋅(xxn1)f[x,x0,x1,⋅⋅⋅,xn]wn+1(x)=Nn(x)+Rn(x)

(2) 差分

f k = f ( x k ) , x k = x 0 + k h f_k=f(x_k),x_k=x_0+kh fk=f(xk),xk=x0+kh k = 0 , 1 , ⋅ ⋅ ⋅ , n k=0,1,···,n k=0,1,⋅⋅⋅,n
△ f k = f k + 1 − f k ▽ f k = f k − f k − 1 \triangle{f_k}=f_{k+1}-f_{k}\\ \triangledown{f_k}=f_k-f_{k-1}\\ fk=fk+1fkfk=fkfk1
分别称为 f ( x ) f(x) f(x) x k x_k xk处以 h h h为步长的一阶向前差分和一阶向后差分。

一般地,可定义 m m m阶向前差分及 m m m阶向后差分为:

△ m f k = △ m − 1 f k + 1 − △ m − 1 f k \triangle^{m}{f_k}=\triangle^{m-1}{f_{k+1}}-\triangle^{m-1}{f_k} mfk=m1fk+1m1fk

▽ m f k = ▽ m − 1 f k − ▽ m − 1 f k − 1 \triangledown^{m}{f_k}=\triangledown^{m-1}{f_{k}}-\triangledown^{m-1}{f_{k-1}} mfk=m1fkm1fk1

均差与差分之间的关系:
f [ x k , x k + 1 ] = f k + 1 − f k x k + 1 − x k = △ f k h f [ x k , x k + 1 , x k + 2 ] = f [ x k + 1 , x k + 2 ] − f [ x k , x k + 1 ] x k + 2 − x k = 1 2 h 2 △ 2 f k f[x_k,x_{k+1}]=\frac{f_{k+1}-f_k}{x_{k+1}-x_k}=\frac{\triangle{f_k}}{h}\\ f[x_k,x_{k+1},x_{k+2}]=\frac{f[x_{k+1},x_{k+2}]-f[x_k,x_{k+1}]}{x_{k+2}-x_k}=\frac{1}{2h^2}\triangle^{2}{f_k} f[xk,xk+1]=xk+1xkfk+1fk=hfkf[xk,xk+1,xk+2]=xk+2xkf[xk+1,xk+2]f[xk,xk+1]=2h212fk

3.3 Hermite插值

给出节点 a ≤ x 0 < x 1 < ⋅ ⋅ ⋅ < x n ≤ b a\leq x_0 < x_1 <···<x_n \leq b ax0<x1<⋅⋅⋅<xnb,已知 f ( x i ) = f i f(x_i)=f_i f(xi)=fi, f ′ ( x i ) = m i f^{\prime}(x_i)=m_i f(xi)=mi ( i = 0 , 1 , ⋅ ⋅ ⋅ ⋅ , n ) (i=0,1,····,n) (i=0,1,⋅⋅⋅⋅,n).

可取基函数表示为:
H 2 n + 1 ( x ) = ∑ i = 0 n [ a i ( x ) f i + b i ( x ) m i ] H_{2n+1}(x)=\sum\limits_{i=0}^n\left[a_i(x)f_i+b_i(x)m_i\right] H2n+1(x)=i=0n[ai(x)fi+bi(x)mi]
其中 a i ( x ) a_i(x) ai(x) b i ( x ) b_i(x) bi(x)满足如下条件:
$$
\begin{align}
a_i(x_k)=\delta_{ik}
=\begin{cases}
0,i\neq k \quad\
1,i=k\
\end{cases},
a_i^{\prime}(x_k)=0\
b_i(x_k)=0,b_i^{\prime}=\delta_{ik},\quad i,k=0,1,···,n

\end{align}
$$

当n=1时,有:
{ a 0 ( x ) = ( 1 + 2 x − x 0 x 1 − x 0 ) ( x − x 1 x 0 − x 1 ) 2 a 1 ( x ) = ( 1 + 2 x − x 1 x 0 − x 1 ) ( x − x 0 x 1 − x 0 ) 2 b 0 ( x ) = ( x − x 0 ) ( x − x 1 x 0 − x 1 ) 2 b 1 ( x ) = ( x − x 1 ) ( x − x 0 x 1 − x 0 ) 2 \begin{cases} a_0(x)=(1+2\frac{x-x_0}{x_1-x_0})(\frac{x-x_1}{x_0-x_1})^2\\ a_1(x)=(1+2\frac{x-x_1}{x_0-x_1})(\frac{x-x_0}{x_1-x_0})^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_0}{x_1-x_0})^2\\ \end{cases} a0(x)=(1+2x1x0xx0)(x0x1xx1)2a1(x)=(1+2x0x1xx1)(x1x0xx0)2b0(x)=(xx0)(x0x1xx1)2b1(x)=(xx1)(x1x0xx0)2

3.4 分段低次插值

龙格现象:插值多项式不收敛的现象称为龙格现象

由于高次插值收敛性没有保证,实际的计算稳定性也没有保证。因此当插值节点n较大时通常不采用高次多项式插值,而改用低次分段插值。

3.5 三次样条插值

定义:

[ a , b ] [a,b] [a,b]上给一组节点 a ≤ x 0 < x 1 < ⋅ ⋅ ⋅ < x n ≤ b a\leq x_0<x_1<···<x_n \leq b ax0<x1<⋅⋅⋅<xnb,若函数 s ( x ) s(x) s(x)满足条件

(1) s ( x ) ∈ C 2 [ a , b ] s(x)\in C^2[a,b] s(x)C2[a,b]

(2) s ( x ) s(x) s(x)在每个小区间 [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1]是三次多项式

则称s(x)是节点 x 0 , x 1 , ⋅ ⋅ ⋅ , x n x_0,x_1,···,x_n x0,x1,⋅⋅⋅,xn上的三次样条函数

若s(x)在节点上还满足插值条件

(3) s ( x i ) = f i s(x_i)=f_i s(xi)=fi i = 0 , 1 , ⋅ ⋅ ⋅ , n i=0,1,···,n i=0,1,⋅⋅⋅,n

弯矩方程

s ( x ) s(x) s(x)在节点 a ≤ x 0 < x 1 < ⋅ ⋅ ⋅ < x n ≤ b a\leq x_0<x_1<···<x_n \leq b ax0<x1<⋅⋅⋅<xnb上的二阶导数值 s ′ ′ ( x i ) = M i ( i = 0 , 1 , ⋅ ⋅ ⋅ , n ) s^{\prime\prime}(x_i)=M_i(i=0,1,···,n) s′′(xi)=Mi(i=0,1,⋅⋅⋅,n) h i = x i + 1 − x i h_i=x_{i+1}-x_i hi=xi+1xi上是三次多项式,故 s ′ ′ ( x ) s^{\prime\prime}(x) s′′(x) [ x i , x i + 1 ] [x_i,x_{i+1}] [xi,xi+1]上是一次函数,可表示为
s ′ ′ ( x ) = x i + 1 − x h i M i + x − x i h i M i + 1 s^{\prime\prime}(x)=\frac{x_{i+1}-x}{h_i}M_i+\frac{x-x_i}{h_i}M_{i+1} s′′(x)=hixi+1xMi+hixxiMi+1

对此积分两次,并利用 s ( x i ) = f i , s ( x i + 1 ) = f i + 1 s(x_i)=f_i,s(x_{i+1})=f_{i+1} s(xi)=fi,s(xi+1)=fi+1可得到
s ( x ) = ( x i + 1 − x ) 3 6 h i M i + ( x − x i ) 3 6 h i M i + 1 + x i + 1 − x h i ( f i − h i 2 6 M i ) + x − x i h i ( f i + 1 − h i 2 6 M i + 1 ) s(x)=\frac{(x_{i+1}-x)^3}{6h_i}M_i+\frac{(x-x_i)^3}{6h_i}M_{i+1}+\\ \frac{x_{i+1}-x}{h_i}(f_i-\frac{h_i^2}{6}M_i)+\frac{x-x_i}{h_i}(f_{i+1}-\frac{h_i^2}{6}M_{i+1}) s(x)=6hi(xi+1x)3Mi+6hi(xxi)3Mi+1+hixi+1x(fi6hi2Mi)+hixxi(fi+16hi2Mi+1)
这里 M i ( i = 0 , 1 , ⋅ ⋅ ⋅ , n ) M_i(i=0,1,···,n) Mi(i=0,1,⋅⋅⋅,n)是未知量,由于
当 x ∈ [ x i , x i + 1 ] 时, s ′ ( x ) = − ( x i + 1 − x ) 2 2 h i M i + ( x − x i ) 2 2 h i M i + 1 + f i + 1 − f i h i − h i 6 ( M i + 1 − M i ) 当x\in [x_i,x_{i+1}]时,s^{\prime}(x)=-\frac{(x_{i+1}-x)^2}{2h_i}M_i+\frac{(x-x_i)^2}{2h_i}M_{i+1}+\frac{f_{i+1}-f_i}{h_i}-\frac{h_i}{6}(M_{i+1}-M_i) x[xi,xi+1]时,s(x)=2hi(xi+1x)2Mi+2hi(xxi)2Mi+1+hifi+1fi6hi(Mi+1Mi) {_i}

当 x ∈ [ x i − 1 , x i ] 时, s ′ ( x ) = − ( x i − x ) 2 2 h i − 1 M i − 1 + ( x − x i − 1 ) 2 2 h i − 1 M i + f i − f i − 1 h i − 1 − h i − 1 6 ( M i − M i − 1 ) 当x\in [x_{i-1},x_{i}]时,s^{\prime}(x)=-\frac{(x_{i}-x)^2}{2h_{i-1}}M_{i-1}+\frac{(x-x_{i-1})^2}{2h_{i-1}}M_{i}+\frac{f_{i}-f_{i-1}}{h_{i-1}}-\frac{h_{i-1}}{6}(M_{i}-M_{i-1}) x[xi1,xi]时,s(x)=2hi1(xix)2Mi1+2hi1(xxi1)2Mi+hi1fifi16hi1(MiMi1)

s ′ ( x i + 0 ) = s ′ ( x i − 0 ) s^{\prime}(x_i+0)=s^{\prime}(x_i-0) s(xi+0)=s(xi0)所以可得到

u i M i − 1 + 2 M i + λ i M i − 1 = d i u_iM_{i-1}+2M_i+\lambda_i M_{i-1}=d_i uiMi1+2Mi+λiMi1=di

其中
{ u i = h i − 1 h i − 1 + h i , λ i = 1 − u i d i = f [ x i − 1 , x i , x i + 1 ] , i = 1 , 2 , ⋅ ⋅ ⋅ , n − 1 \begin{cases} u_i=\frac{h_{i-1}}{h_{i-1}+h_i},\lambda_{i}=1-u_i\\ d_i=f[x_{i-1},x_i,x_{i+1}],i=1,2,···,n-1 \end{cases} {ui=hi1+hihi1,λi=1uidi=f[xi1,xi,xi+1],i=1,2,⋅⋅⋅,n1
再补充两个方程:
{ 2 M 0 + M 1 = 6 h 0 ( f [ x 0 , x 1 ] − f 0 ′ ) = d 0 M n − 1 + 2 M n = 6 h n − 1 ( f n ′ − f [ x n − 1 , x n ] ) = d n \begin{cases} 2M_0+M_1=\frac{6}{h_0}(f[x_0,x_1]-f^{\prime}_0)=d_0\\ M_{n-1}+2M_n=\frac{6}{h_{n-1}}(f^{\prime}_n-f[x_{n-1},x_n])=d_n \end{cases} {2M0+M1=h06(f[x0,x1]f0)=d0Mn1+2Mn=hn16(fnf[xn1,xn])=dn

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值