入门级理解插值方法

插值方法

1 Hermite插值

1.1 Hermite插值的定义

设在节点 a ≤ x 0 < x 1 < . . . < x n ≤ b ( i = 1 , 2 , . . . , n ) a\leq x_0<x_1<...<x_n\leq b(i=1,2,...,n) ax0<x1<...<xnb(i=1,2,...,n)上给出插值条件 y k = f ( x k ) , y k ‘ = f ‘ ( x k ) , k = 0 , 1 , . . . , n y_k=f(x_k), y_k^{‘}=f^{‘}(x_k), k=0, 1, ...,n yk=f(xk),yk=f(xk),k=0,1,...,n此时,在小区间 [ x i − 1 , x i ] [x_{i-1},x_i] [xi1,xi]上有四个插值条件,所以能构造一个三次多项式 H 3 ( i ) ( x ) H_3^{(i)}(x) H3(i)(x),只要令 H 3 ( i ) ( x ) = ϕ i − 1 ( x ) y i − 1 + ϕ i ( x ) y i + ψ i − 1 ( x ) y i − 1 ‘ + ψ i ( x ) y i ‘ H_3^{(i)}(x)=\phi_{i-1}(x)y_{i-1}+\phi_i(x)y_i+\psi_{i-1}(x)y_{i-1}^{‘}+\psi_i(x)y_i^{‘} H3(i)(x)=ϕi1(x)yi1+ϕi(x)yi+ψi1(x)yi1+ψi(x)yi其中 ϕ i − 1 ( x ) , ϕ i ( x ) , ψ i − 1 , ψ i ( x ) \phi_{i-1}(x), \phi_i(x), \psi_{i-1}, \psi_i(x) ϕi1(x),ϕi(x),ψi1,ψi(x)都是三次多项式,而且满足
ϕ i − 1 ( x i − 1 ) = 1 , ϕ i − 1 ( x i ) = 0 , ϕ i − 1 ‘ ( x i − 1 ) = 0 , ϕ i − 1 ‘ ( x i ) = 0 \phi_{i-1}(x_{i-1})=1, \phi_{i-1}(x_i)=0, \phi_{i-1}^{‘}(x_{i-1})=0, \phi_{i-1}^{‘}(x_i)=0 ϕi1(xi1)=1,ϕi1(xi)=0,ϕi1(xi1)=0,ϕi1(xi)=0 ϕ i ( x i − 1 ) = 0 , ϕ i ( x i ) = 1 , ϕ i ‘ ( x i − 1 ) = 0 , ϕ i ‘ ( x i ) = 0 \phi_i(x_{i-1})=0, \phi_i(x_i)=1, \phi_i^{‘}(x_{i-1})=0, \phi_i^{‘}(x_i)=0 ϕi(xi1)=0,ϕi(xi)=1,ϕi(xi1)=0,ϕi(xi)=0 ψ i − 1 ( x i − 1 ) = 0 , ψ i − 1 ( x i ) = 0 , ψ i − 1 ‘ ( x i − 1 ) = 1 , ψ i − 1 ‘ ( x i ) = 0 \psi_{i-1}(x_{i-1})=0, \psi_{i-1}(x_i)=0, \psi_{i-1}^{‘}(x_{i-1})=1, \psi_{i-1}^{‘}(x_i)=0 ψi1(xi1)=0,ψi1(xi)=0,ψi1(xi1)=1,ψi1(xi)=0 ψ i ( x i − 1 ) = 0 , ψ i ( x i ) = 0 , ψ i ‘ ( x i − 1 ) = 0 , ψ i ‘ ( x i ) = 1 \psi_i(x_{i-1})=0, \psi_i(x_i)=0, \psi_i^{‘}(x_{i-1})=0, \psi_i^{‘}(x_i)=1 ψi(xi1)=0,ψi(xi)=0,ψi(xi1)=0,ψi(xi)=1 ϕ i − 1 ( x ) , ϕ i ( x ) , ψ i − 1 ( x ) , ψ i ( x ) \phi_{i-1}(x), \phi_i(x), \psi_{i-1}(x), \psi_i(x) ϕi1(x),ϕi(x),ψi1(x),ψi(x)称为三次Hermite插值基函数。

1.2 Hermite插值的求法

因为 ϕ i − 1 ( x i ) = 0 , ϕ i − 1 ‘ ( x i ) = 0 \phi_{i-1}(x_i)=0, \phi_{i-1}^{‘}(x_i)=0 ϕi1(xi)=0,ϕi1(xi)=0,所以可以将 ϕ i − 1 ( x ) \phi_{i-1}(x) ϕi1(x)写成 ϕ i − 1 ( x ) = ( a x + b ) ( x − x i ) 2 \phi_{i-1}(x)=(ax+b)(x-x_i)^{2} ϕi1(x)=(ax+b)(xxi)2 ϕ i − 1 ( x i − 1 ) = 1 , ϕ i − 1 ‘ ( x i − 1 ) = 0 \phi_{i-1}(x_{i-1})=1, \phi_{i-1}^{‘}(x_{i-1})=0 ϕi1(xi1)=1,ϕi1(xi1)=0带入可得: ϕ i − 1 ( x ) = 1 h i 3 ( 2 x + x i − 3 x i − 1 ) ( x − x i ) 2 \phi_{i-1}(x)=\frac{1}{h_i^{3}}(2x+x_i-3x_{i-1})(x-x_i)^2 ϕi1(x)=hi31(2x+xi3xi1)(xxi)2 ϕ i ( x ) = 1 h i 3 ( 3 x i − 2 x − x i − 1 ) ( x − x i − 1 ) 2 \phi_i(x)=\frac{1}{h_i^3}(3x_i-2x-x_{i-1})(x-x_{i-1})^2 ϕi(x)=hi31(3xi2xxi1)(xxi1)2

因为 ψ i − 1 ( x i − 1 ) = 0 , ψ i − 1 ( x i ) = 0 , ψ i − 1 ‘ ( x i ) = 0 \psi_{i-1}(x_{i-1})=0, \psi_{i-1}(x_i)=0, \psi_{i-1}^{‘}(x_i)=0 ψi1(xi1)=0,ψi1(xi)=0,ψi1(xi)=0所以有 ψ i − 1 ( x ) = C ( x − x i − 1 ) ( x − x i ) 2 \psi_{i-1}(x)=C(x-x_{i-1})(x-x_i)^2 ψi1(x)=C(xxi1)(xxi)2 ψ i − 1 ‘ ( x i − 1 ) = 1 \psi_{i-1}^{‘}(x_{i-1})=1 ψi1(xi1)=1带入得 C h i 2 = 1 Ch_i^2=1 Chi2=1,即 C = h i − 2 C=h_i^{-2} C=hi2。所以 ψ i − 1 ( x ) = 1 h i 2 ( x − x i − 1 ) ( x − x i ) 2 \psi_{i-1}(x)=\frac{1}{h_i^2}(x-x_{i-1})(x-x_i)^2 ψi1(x)=hi21(xxi1)(xxi)2 ψ i ( x ) = 1 h i 2 ( x − x i − 1 ) 2 ( x − x i ) \psi_i(x)=\frac{1}{h_i^2}(x-x_{i-1})^2(x-x_i) ψi(x)=hi21(xxi1)2(xxi)

2 三次样条插值

2.1 三次样条插值的定义

定义:给定节点 a = x 0 < x 1 < . . . < x n = b a=x_0<x_1<...<x_n=b a=x0<x1<...<xn=b,及其上的函数值 y k = f ( x k ) , k = 0 , 1 , . . . , n y_k=f(x_k), k=0,1,...,n yk=f(xk),k=0,1,...,n.如果函数满足:
(1)S(x)是一个分段的三次多项式且 S ( x k ) = y k S(x_k)=y_k S(xk)=yk
(2) S ( x ) ∈ C 2 [ a , b ] S(x)\in C^2[a,b] S(x)C2[a,b].
则称S(x)是区间[a,b]上的三次样条插值函数。
S(x)在区间 [ x i − 1 , x i ] [x_{i-1}, x_i] [xi1,xi]上是三次多项式, S ( x ) = a i x 3 + b i x 2 + c i x + d i S(x)=a_ix^3+b_ix^2+c_ix+d_i S(x)=aix3+bix2+cix+di有四个待定系数,所以在整个区间上总的来说, S ( x ) S(x) S(x)共有4n个待定系数。
S ( x j − 0 ) = S ( x j + 0 ) S(x_j-0)=S(x_j+0) S(xj0)=S(xj+0) S ‘ ( x j − 0 ) = S ‘ ( x j + 0 ) S^{‘}(x_j-0)=S^{‘}(x_j+0) S(xj0)=S(xj+0) S ‘ ’ ( x j − 0 ) = S ‘ ’ ( x j + 0 ) S^{‘’}(x_j-0)=S^{‘’}(x_j+0) S(xj0)=S(xj+0)共有 3 n − 3 3n-3 3n3个条件,再加上 S ( x ) S(x) S(x)满足 S ( x j ) = f j , j = 0 , 1 , 2 , . . . n S(x_j)=f_j, j=0,1,2,...n S(xj)=fj,j=0,1,2,...n这又有 n + 1 n+1 n+1个条件。目前,共有 4 n − 2 4n-2 4n2个条件。
因此,还需要两个条件才能确定 S ( x ) S(x) S(x)
通常可在 [ a , b ] [a, b] [a,b]端点 a = x 0 , b = x n a=x_0, b=x_n a=x0,b=xn上各加上一个条件,称为边界条件。

2.2 边界条件

常见的边界条件有:
1)给定两端一阶导数值, S ‘ ( x 0 ) = y ’ 0 S‘(x_0)=y’_0 S(x0)=y0 S ‘ ( x n ) = y ’ n S‘(x_n)=y’_n S(xn)=yn
2)给定两端二阶导数值, S ’ ’ ( x 0 ) = y ’ ’ 0 S’’(x_0)=y’’_0 S(x0)=y0 S ’ ’ ( x n ) = y ’ ’ n S’’(x_n)=y’’_n S(xn)=yn。特殊的有 S ’ ’ ( x 0 ) = S ’ ’ ( x n ) = 0 S’’(x_0)=S’’(x_n)=0 S(x0)=S(xn)=0,称为自然边界条件;
3)假设 f ( x ) f(x) f(x)是以 b − a b-a ba为周期的周期函数,这时要求 S ( x 0 + 0 ) = S ( x n − 0 ) S(x_0+0)=S(x_n-0) S(x0+0)=S(xn0) S ’ ( x 0 + 0 ) = S ’ ( x n − 0 ) S’(x_0+0)=S’(x_n-0) S(x0+0)=S(xn0) S ’ ’ ( x 0 + 0 ) = S ’ ’ ( x n − 0 ) S’’(x_0+0)=S’’(x_n-0) S(x0+0)=S(xn0)此时, y n = y 0 y_n=y_0 yn=y0,这样确定的 S ( x ) S(x) S(x)为周期样条函数。

2.3 三次样条函数的求法

2.3.1 三转角方法

当给定左右端点的一阶导数值时,假定 S ’ ( x j ) = m j ( j = 0 , 1 , 2 , . . . , n ) S’(x_j)=m_j(j=0,1,2,...,n) S(xj)=mj(j=0,1,2,...,n),再利用三次Hermite插值的一半表达式可知: S ( x ) = Σ j = 0 n [ y j α j ( x ) + m j β j ( x ) ] S(x)=\Sigma_{j=0}^n[y_j\alpha_j(x)+m_j\beta_j(x)] S(x)=Σj=0n[yjαj(x)+mjβj(x)],其中 α j ( x ) , β j ( x ) \alpha_j(x), \beta_j(x) αj(x),βj(x)为分段三次Hermite插值基函数,再利用三次样条函数的定义及其相应的边界条件 S ’ ’ ( x 0 ) = f ’ 0 , S ’ ( x n ) = f ’ n S’’(x_0)=f’_0, S’(x_n)=f’_n S(x0)=f0,S(xn)=fn x ∈ [ x i − 1 , x i ] x\in[x_{i-1},x_i] x[xi1,xi]时,有 S ( x ) = 1 h i 3 [ ( x i + 2 x − 3 x i − 1 ) ( x − x i ) 2 y i − 1 + ( 3 x i − 2 x − x i ) ( x − x i − 1 ) 2 y i ] + 1 h i 2 [ ( x − x i − 1 ) ( x − x i ) 2 m i − 1 + ( x − x i − 1 ) 2 ( x − x i ) m i ] S(x)=\frac{1}{h_i^3}[(x_i+2x-3x_{i-1})(x-x_i)^2y_{i-1}+(3x_i-2x-x_i)(x-x_{i-1})^2y_i]\\+ \frac{1}{h_i^2}[(x-x_{i-1})(x-x_i)^2m_{i-1}+(x-x_{i-1})^2(x-x_i)m_i] S(x)=hi31[(xi+2x3xi1)(xxi)2yi1+(3xi2xxi)(xxi1)2yi]+hi21[(xxi1)(xxi)2mi1+(xxi1)2(xxi)mi]其中 h i = x i − x i − 1 h_i=x_i-x_{i-1} hi=xixi1,为了确定 S ( x ) S(x) S(x),只需要确定 m i , i = 0 , 1 , . . . , n m_i, i=0,1,...,n mi,i=0,1,...,n可利用三次样条函数二阶导数连续的性质,即 S ’ ’ ( x i − 0 ) = S ’ ’ ( x i + 0 ) S’’(x_i-0)=S’’(x_i+0) S(xi0)=S(xi+0)
x ∈ [ x i − 1 , x i ] x\in[x_{i-1},x_i] x[xi1,xi]时,由于 S ’ ( x ) = 2 h i 3 { [ ( x − x i ) 2 + ( x i + 2 x − 3 x i − 1 ) ( x − x i ) ] y i − 1 + [ ( 3 x i − 2 x − x i ) ( x − x i − 1 ) − 2 ( x − x i − 1 ) 2 ] y i } + 1 h i 2 { [ ( x − x i ) 2 + 2 ( x − x i − 1 ) ( x − x i ) ] m i − 1 + [ ( x − x i − 1 ) 2 + 2 ( x − x i − 1 ) ( x − x i ) ] m i } S’(x)=\frac{2}{h_i^3}\{[(x-x_i)^2+(x_i+2x-3x_{i-1})(x-x_i)]y_{i-1} \\ +[(3x_i-2x-x_i)(x-x_{i-1})-2(x-x_{i-1})^2]y_i\} \\ +\frac{1}{h_i^2}\{[(x-x_i)^2+2(x-x_{i-1})(x-x_i)]m_{i-1} \\ +[(x-x_{i-1})^2+2(x-x_{i-1})(x-x_i)]m_i\} S(x)=hi32{[(xxi)2+(xi+2x3xi1)(xxi)]yi1+[(3xi2xxi)(xxi1)2(xxi1)2]yi}+hi21{[(xxi)2+2(xxi1)(xxi)]mi1+[(xxi1)2+2(xxi1)(xxi)]mi}
S ’ ’ ( x ) = 6 h i 3 ( 2 x − x i − 1 − x i ) ( y i − 1 − y i ) + 2 h i 2 [ ( 3 x − x i − 1 − 2 x i ) m i − 1 + ( 3 x − 2 x i − 1 − x i ) m i ] S’’(x)=\frac{6}{h_i^3}(2x-x_{i-1}-x_i)(y_{i-1}-y_i)\\+\frac{2}{h_i^2}[(3x-x_{i-1}-2x_i)m_{i-1}+(3x-2x_{i-1}-x_i)m_i] S(x)=hi36(2xxi1xi)(yi1yi)+hi22[(3xxi12xi)mi1+(3x2xi1xi)mi]可以看出 S ’ ’ ( x ) S’’(x) S(x)是一个线性函数的形式。
x i x_i xi点处考虑它的左极限和右极限:
S ’ ’ ( x i − 0 ) = 6 h i 2 ( y i − 1 − y i ) + 2 h i ( m i − 1 + 2 m i ) S’’(x_i-0)=\frac{6}{h_i^2}(y_{i-1}-y_i)+\frac{2}{h_i}(m_{i-1}+2m_i) S(xi0)=hi26(yi1yi)+hi2(mi1+2mi) S ’ ’ ( x i + 0 ) = 6 h i + 1 2 ( y i + 1 − y i ) − 2 h i + 1 ( 2 m i + m i + 1 ) S’’(x_i+0)=\frac{6}{h_{i+1}^2}(y_{i+1}-y_i)-\frac{2}{h_{i+1}}(2m_i+m_{i+1}) S(xi+0)=hi+126(yi+1yi)hi+12(2mi+mi+1)由连续性条件 S ’ ’ ( x i − 0 ) = S ’ ’ ( x i + 0 ) S’’(x_i-0)=S’’(x_i+0) S(xi0)=S(xi+0)可得: 1 h i m i − 1 + 2 ( 1 h i + 1 h i + 1 ) m i + 1 h i + 1 m i + 1 = 3 ( y i + 1 − y i h i + 1 2 + y i − y i − 1 h i 2 ) \frac{1}{h_i}m_{i-1}+2\left(\frac{1}{h_i}+\frac{1}{h_{i+1}}\right)m_i+\frac{1}{h_{i+1}}m_{i+1}=3\left(\frac{y_{i+1}-y_i}{h_{i+1}^2}+\frac{y_i-y_{i-1}}{h_i^2}\right) hi1mi1+2(hi1+hi+11)mi+hi+11mi+1=3(hi+12yi+1yi+hi2yiyi1)两侧同时除以 ( 1 h i + 1 h i + 1 ) \left(\frac{1}{h_i}+\frac{1}{h_{i+1}}\right) (hi1+hi+11),并记 h i + 1 h i + h i + 1 = λ i \frac{h_{i+1}}{h_i+h_{i+1}}=\lambda_i hi+hi+1hi+1=λi h i h i + h i + 1 = 1 − λ i = μ i \frac{h_i}{h_i+h_{i+1}}=1-\lambda_i=\mu_i hi+hi+1hi=1λi=μi 3 ( λ i f [ x i − 1 , x i ] + μ i f [ x i , x i + 1 ] ) = g i 3(\lambda_if[x_{i-1},x_i]+\mu_if[x_i,x_{i+1}])=g_i 3(λif[xi1,xi]+μif[xi,xi+1])=gi,则有 λ i m i − 1 + 2 m i + μ i m i + 1 = g i , i = 1 , 2 , . . . , n − 1. \lambda_im_{i-1}+2m_i+\mu_im_{i+1}=g_i, i=1,2,...,n-1. λimi1+2mi+μimi+1=gi,i=1,2,...,n1.这个式子中未知的是 m i , m i , m i + 1 m_i, m_i, m_{i+1} mi,mi,mi+1
  若边界条件为: m 0 = y ’ 0 , m n = y ’ n m_0=y’_0, m_n=y’_n m0=y0,mn=yn,带入上面的式子可以得到矩阵的形式
可以看出这个形式就变成了 n − 1 n-1 n1个未知数和 n − 1 n-1 n1个方程。左边是一个稀疏的三对角矩阵,求解方式有很多。
  若边界条件为: 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则有: 2 m 0 + m 1 = 3 f [ x 0 , x 1 ] − 1 2 h 1 y ’ ’ 0 = g 0 2m_0+m_1=3f[x_0,x_1]-\frac{1}{2}h_1y’’_0=g_0 2m0+m1=3f[x0,x1]21h1y0=g0 m n − 1 + 2 m n = 3 f [ x n − 1 , x n ] + 1 2 h n y ’ ’ n = g n m_{n-1}+2m_n=3f[x_{n-1},x_n]+\frac{1}{2}h_ny’’_n=g_n mn1+2mn=3f[xn1,xn]+21hnyn=gn将这两个方程和上式放在一起就得到了 n + 1 n+1 n+1个未知数和 n + 1 n+1 n+1个方程。
在这里插入图片描述

  若边界条件为周期性边界条件,由 S ’ ( x 0 + 0 ) = S ’ ( x n − 0 ) S’(x_0+0)=S’(x_n-0) S(x0+0)=S(xn0) S ’ ’ ( x 0 + 0 ) = S ’ ’ ( x n − 0 ) S’’(x_0+0)=S’’(x_n-0) S(x0+0)=S(xn0),有 m 0 = m n m_0=m_n m0=mn λ n m n − 1 + 2 m n + μ n m 1 = g n \lambda_nm_{n-1}+2m_n+\mu_nm_1=g_n λnmn1+2mn+μnm1=gn λ n = h 1 h 1 + h n \lambda_n=\frac{h_1}{h_1+h_n} λn=h1+hnh1 μ n = 1 − λ n = h n h 1 + h n \mu_n=1-\lambda_n=\frac{h_n}{h_1+h_n} μn=1λn=h1+hnhn g n = 3 ( λ n f [ x 0 , x 1 ] + μ n f [ x n − 1 , x n ] ) g_n=3(\lambda_nf[x_0,x_1]+\mu_nf[x_{n-1},x_n]) gn=3(λnf[x0,x1]+μnf[xn1,xn])
在这里插入图片描述
所以是一个n个未知数n个方程的线性方程组。
在给定第一类边界条件的情况下,三对角方法很好。8

2.3.2 三弯矩算法

  由于三次样条函数在每个小区间上都是一个三次多项式,所以它的二阶导数在整个区间上是一个分段的线性函数,在每个小区间上是一个线性函数。设 S ’ ’ ( x i ) = M i , i = 0 , 1 , . . . , n S’’(x_i)=M_i, i=0,1,...,n S(xi)=Mi,i=0,1,...,n,则对 x ∈ [ x i − 1 , x i ] x\in[x_{i-1},x_i] x[xi1,xi]有: S ’ ’ ( x ) = x − x i x i − 1 − x i M i − 1 + x − x i − 1 x i − x i − 1 M i S’’(x)=\frac{x-x_i}{x_{i-1}-x_i}M_{i-1}+\frac{x-x_{i-1}}{x_i-x_{i-1}}M_i S(x)=xi1xixxiMi1+xixi1xxi1Mi连续积分两次,并利用 S ( x i − 1 ) = y i − 1 S(x_{i-1})=y_{i-1} S(xi1)=yi1 S ( x i ) = y i S(x_i)=y_i S(xi)=yi确定积分常数,可得 S ( x ) = 1 6 h i [ ( x i − x ) 3 M i − 1 + ( x − x i − 1 ) 3 M i ] + ( y i − 1 h i − h i M i − 1 6 ) ( x i − x ) + ( y i h i − h i M i 6 ) ( x − x i − 1 ) S(x)=\frac{1}{6h_i}[(x_i-x)^3M_{i-1}+(x-x_{i-1})^3M_i]\\+\left(\frac{y_{i-1}}{h_i}-\frac{h_iM_{i-1}}{6}\right)(x_i-x)+ \left(\frac{y_i}{h_i}-\frac{h_iM_i}{6}\right)(x-x_{i-1}) S(x)=6hi1[(xix)3Mi1+(xxi1)3Mi]+(hiyi16hiMi1)(xix)+(hiyi6hiMi)(xxi1)其中 h i = x i − x i − 1 h_i=x_i-x_{i-1} hi=xixi1,为了确定 S ( x ) S(x) S(x),只需要确定 M ( i ) , i = 0 , 1 , . . . , n M(i), i=0, 1, ..., n M(i),i=0,1,...,n,可利用 S ’ ( x i − 0 ) = S ’ ( x i + 0 ) S’(x_i-0)=S’(x_i+0) S(xi0)=S(xi+0)来求出 M i M_i Mi。则有: S ’ ( x ) = 1 2 h i [ ( x − x i − 1 ) 2 M i − ( x − x i ) 2 M i − 1 ] + f [ x i − 1 , x i ] + h i 6 ( M i − 1 − M i ) S’(x)=\frac{1}{2h_i}[(x-x_{i-1})^2M_i-(x-x_i)^2M_{i-1}]+f[x_{i-1},x_i]+\frac{h_i}{6}(M_{i-1}-M_i) S(x)=2hi1[(xxi1)2Mi(xxi)2Mi1]+f[xi1,xi]+6hi(Mi1Mi)于是有 S ’ ( x i − 0 ) = h i 6 ( M i − 1 + 2 M i ) + f [ x i − 1 , x i ] S’(x_i-0)=\frac{h_i}{6}(M_{i-1}+2M_i)+f[x_{i-1},x_i] S(xi0)=6hi(Mi1+2Mi)+f[xi1,xi] S ’ ( x i + 0 ) = − h i + 1 6 ( 2 M i + M i + 1 ) + f [ x i , x i + 1 ] S’(x_i+0)=-\frac{h_{i+1}}{6}(2M_i+M_{i+1})+f[x_i,x_{i+1}] S(xi+0)=6hi+1(2Mi+Mi+1)+f[xi,xi+1] h i 6 M i − 1 + h i + h i + 1 3 M i + h i + 1 6 M i + 1 = f [ x i , x i + 1 ] − f [ x i − 1 , x i ] \frac{h_i}{6}M _{i-1}+\frac{h_i+h_{i+1}}{3}M_i+\frac{h_{i+1}}{6}M_{i+1}=f[x_i,x_{i+1}]-f[x_{i-1},x_i] 6hiMi1+3hi+hi+1Mi+6hi+1Mi+1=f[xi,xi+1]f[xi1,xi]引入记号:
λ i = h i + 1 h i + h i + 1 , μ i = h i h i − h i + 1 , d i = 6 f [ x i − 1 , x i , x i + 1 ] \lambda_i=\frac{h_{i+1}}{h_i+h_{i+1}}, \mu_i=\frac{h_i}{h_i-h_{i+1}}, d_i=6f[x_{i-1},x_i, x_{i+1}] λi=hi+hi+1hi+1,μi=hihi+1hi,di=6f[xi1,xi,xi+1] μ i M i − 1 + 2 M i + λ i M i + 1 = d i , i = 1 , 2 , . . . , n − 1 \mu_iM_{i-1}+2M_i+\lambda_iM_{i+1}=d_i, i=1,2,...,n-1 μiMi1+2Mi+λiMi+1=di,i=1,2,...,n1
假如我们有边界条件为: M 0 = y ’ ’ 0 , M n = y ’ ’ n M_0=y’’_0, M_n=y’’_n M0=y0,Mn=yn,可得
在这里插入图片描述

假如我们有边界条件为: 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,则有 2 M 0 + M 1 = 6 h 1 ( f [ x 0 , x 1 ] − y ’ 0 ) = d 0 2M_0+M_1=\frac{6}{h_1}(f[x_0,x_1]-y’_0)=d_0 2M0+M1=h16(f[x0,x1]y0)=d0 M n − 1 + 2 M n = 6 h n ( y ’ n − f [ x n − 1 , x n ] ) = d n M_{n-1}+2M_n=\frac{6}{h_n}(y’_n-f[x_{n-1},x_n])=d_n Mn1+2Mn=hn6(ynf[xn1,xn])=dn
在这里插入图片描述

假如边界条件为周期性边界条件,由 S ’ ( x 0 + 0 ) = S ’ ( x n − 0 ) S’(x_0+0)=S’(x_n-0) S(x0+0)=S(xn0) S ’ ’ ( x 0 + 0 ) = S ’ ’ ( x n − 0 ) S’’(x_0+0)=S’’(x_n-0) S(x0+0)=S(xn0),有 M 0 = M n M_0=M_n M0=Mn λ n M 1 + μ n M n − 1 + 2 M n = d n \lambda_nM_1+\mu_nM_{n-1}+2M_n=d_n λnM1+μnMn1+2Mn=dn其中 λ n = h 1 h 1 + h n , μ n = 1 − λ n = h n h 1 + h n , d n = 6 f [ x 0 , x 1 . x n − 1 ] \lambda_n=\frac{h_1}{h_1+h_n}, \mu_n=1-\lambda_n=\frac{h_n}{h_1+h_n}, d_n=6f[x_0,x_1.x_{n-1}] λn=h1+hnh1,μn=1λn=h1+hnhn,dn=6f[x0,x1.xn1]
所以针对给定第二类边界条件的情况下,三弯矩方法很好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值