GSS的第一篇博客文章DA matlab的三次样条插值函数spline的使用说明spline(x、y、xx ) ) ) ) ) ) ) ) ) ) )。
matlab三次样条插值函数spline的使用说明spline(x、y、xx ) ) ) ) ) ) ) ) ) ) )。
x、y是由插值节点坐标构成的向量(长度必须一致),xx是插值点的横坐标。 虽然三次样条插值函数有4n个未知数,但显然需要在内部节点追加连续、一次微分连续、二次微分连续合计3(n-1 )个条件和在所有节点函数值已知的合计n 1个条件合计4n-2个条件,可以看到边界
1. 非节点条件(not-a-knot condition),s’’(x0 )=s’’(x1 ); 这意味着spline缺省情况下使用此条件
即,通过线性外推得到边界节点的二次微分值
例如
x=0:10;
y=sin(x;
xx=0:25:10;
YY=spline(x,y,xx );
打印(x,y,‘o’,xx,yy ) )。
2. 给出一阶导数值
指定边界节点的倾斜。 也就是说,分别添加到向量y的前后。
例如
x=-4:4;
y=[ 0.15 1.12 2.36 2.36 1.46.49.060];
cs=spline(x,[0 y 0];
xx=linspace (-4,4,101 );
plot(x,y,‘o’,xx,PPval ) cs,xx ),’-’;
从图中可以看出,左右边界的倾斜度是0,切线是水平的
3.**不能处理给定二阶导数这样的边界样条函数,需要单独编程实现;
4. **自然边界条件s’(x0 )=s’(xn )=0样条函数不能处理,需要单独编程实现;