函数逼近——(cubic spline)三次样条插值 Ⅰ、Ⅱ、Ⅲ 型 | 北太天元 or matlab

文章对应视频讲解:(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,,n1

Ⅰ型边界条件: 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=xixi1,ei [ x i − 1 , x i ] [x_{i-1},x_i] [xi1,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[(xix)3Mi1+(xxi1)3Mi]+hi1[(xix)fi1+(xxi1)fi]6hi[(xix)Mi1+(xxi1)Mi]
其中 x ∈ e i , i = 1 , 2 , ⋯   , n x\in e_i,i=1,2,\cdots,n xei,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} μjMj1+2Mj+λjMj+1=dj,j=1,2,,n1
其中 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[xj1,xj,x<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水折木

谢谢前辈的鼓励,我会继续加油的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值