文章对应视频讲解:(cubic spline)三次样条插值 Ⅰ、Ⅱ、Ⅲ 型
主要以实现为主,理论部分不做详细说明
一、三次样条插值
已知: s ( x i ) = f i , i = 1 , 2 , ⋯ , n − 1 s(x_i) = f_i, \quad i = 1,2,\cdots,n-1 s(xi)=fi,i=1,2,⋯,n−1 。
Ⅰ型边界条件: s ( x 0 ) = f 0 , s ( x n ) = f n s ′ ( x 0 ) = f 0 ′ , s ′ ( x n ) = f n ′ s(x_0) = f_0,s(x_n) = f_n \quad s'(x_0) = f'_0,s'(x_n)=f_n' s(x0)=f0,s(xn)=fns′(x0)=f0′,s′(xn)=fn′
Ⅱ型边界条件: s ( x 0 ) = f 0 , s ( x n ) = f n s ′ ′ ( x 0 ) = f 0 ′ ′ , s ′ ′ ( x n ) = f n ′ ′ s(x_0) = f_0,s(x_n) = f_n \quad s''(x_0) = f''_0,s''(x_n)=f''_n s(x0)=f0,s(xn)=fns′′(x0)=f0′′,s′′(xn)=fn′′
Ⅲ型边界条件: s ( x 0 ) = f 0 , s ( x n ) = s ( x 0 ) s ′ ( x 0 ) = s ′ ( x n ) , s ′ ′ ( x 0 ) = s ′ ′ ( x n ) s(x_0) = f_0,s(x_n) =s(x_0) \quad s'(x_0)=s'(x_n),s''(x_0)=s''(x_n) s(x0)=f0,s(xn)=s(x0)s′(x0)=s′(xn),s′′(x0)=s′′(xn)
设 h i = x i − x i − 1 , e i h_i = x_{i}-x_{i-1} , e_i hi=xi−xi−1,ei 为 [ x i − 1 , x i ] [x_{i-1},x_i] [xi−1,xi]构成的小区间, i = 1 , 2 , ⋯ , n i=1,2,\cdots,n i=1,2,⋯,n
M i = s I ′ ′ ( x i ) , i = 0 , 1 , ⋯ , n M_i = s''_I(x_i),i=0,1,\cdots,n Mi=sI′′(xi),i=0,1,⋯,n
满足三次样条函数 s ( x ) s(x) s(x)
s ( x ) = 1 6 h i [ ( x i − x ) 3 M i − 1 + ( x − x i − 1 ) 3 M i ] + 1 h i [ ( x i − x ) f i − 1 + ( x − x i − 1 ) f i ] − h i 6 [ ( x i − x ) M i − 1 + ( x − x i − 1 ) M i ] \begin{aligned} s(x)=& \frac{1}{6h_i}\left[\left(x_i-x\right)^3M_{i-1}+\left(x-x_{i-1}\right)^3M_i\right] \\ &+\frac{1}{h_{i}}\left[\left(x_{i}-x\right)f_{i-1}+\left(x-x_{i-1}\right)f_{i}\right] \\ &-\frac{h_i}6\left[\left(x_i-x\right)M_{i-1}+\left(x-x_{i-1}\right)M_i\right] \end{aligned} s(x)=6hi1[(xi−x)3Mi−1+(x−xi−1)3Mi]+hi1[(xi−x)fi−1+(x−xi−1)fi]−6hi[(xi−x)Mi−1+(x−xi−1)Mi]
其中 x ∈ e i , i = 1 , 2 , ⋯ , n x\in e_i,i=1,2,\cdots,n x∈ei,i=1,2,⋯,n
λ j = h j + 1 h j + h j + 1 , μ j = 1 − λ j = h j h j + h j + 1 \lambda_j = \dfrac{h_{j+1}}{h_j+h_{j+1}},\mu_j=1-\lambda_j=\dfrac{h_{j}}{h_j+h_{j+1}} λj=hj+hj+1hj+1,μj=1−λj=hj+hj+1hj
有
μ j M j − 1 + 2 M j + λ j M j + 1 = d j , j = 1 , 2 , ⋯ , n − 1 \begin{equation} \mu_jM_{j-1}+2M_j+\lambda_jM_{j+1}=d_j,\quad j=1,2,\cdots,n-1 \end{equation} μjMj−1+2Mj+λjMj+1=dj,j=1,2,⋯,n−1
其中 d j = 6 f [ x j − 1 , x j , x j + 1 ] d_j=6f\left[x_{j-1},x_j,x_{j+1}\right] dj=6f[xj−1,xj,x<

最低0.47元/天 解锁文章
10万+

被折叠的 条评论
为什么被折叠?



