三次样条插值函数:
被插值函数:f(x)=1/(1+x^2) -5<=x<=5
插值点-5,-4,-3,-2,-1,0,1,2,3,4,5
clc;clear; x=-5:5; y=1./(1+x.^2); figure(1);hold on;plot(x,y,'r-o'); xi=-5:.05:5; yi=spline(x,y,xi); plot(xi,yi,'b-o');
说明
例2
具有指定端点斜率的分布的样条插值
当端点斜率已知时,使用 clamped 或 complete 样条插值。此示例在插值的终点处强制实施零斜率。
x = -4:4; y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0]; cs = spline(x,[0 y 0]); xx = linspace(-4,4,101); plot(x,y,'o',xx,ppval(cs,xx),'-');
注:
cs = spline(x,[0 y 0]);%这一句注明了插值点坐标和第一类边界条件,即提供端点处的一阶导数值。
返回的插值结果是一个结构体,
![](https://img2018.cnblogs.com/blog/1438899/201907/1438899-20190711152102219-910974253.png)
cs.coefs是每一段插值函数的系数,9个插值点,共8段样条函数,每个样条函数有4个系数。
![](https://img2018.cnblogs.com/blog/1438899/201907/1438899-20190711152300028-333965398.png)