给你个例子吧,分别用spap2和spaps两种B样条以及csaps三次样条曲线拟和余弦曲线。
% xSplineFit.m
% 功能: 三种样条函数拟合方法:csaps()、spap2()和spaps()
%
% Author: HUANG Huajiang
% Copyright 2003 UNILAB Research Center,
% East China University of Science and Technology, Shanghai, PRC
% $Revision: 1.0 $ $Date: 2003/05/02 $
% 生成离散数据(x,y),其中,x为四个周期,y为加入随机误差的余弦波
x = linspace(0,4*pi,41);
y = cos(x) + (rand(1,41)-.5)*.2;
pp = csaps(x,y,0.98); % By csaps()
knots = 9;
K = 4;
sp1 = spap2(knots,K,x,y); % By spap2()
sp2 = spaps(x,y, 0.016 ); % By spaps()
% 分别绘制三种方法的拟合曲线
plot(x,y,'ok');hold on;fnplt(pp,'r');hold off % By csaps()
figure
plot(x,y,'ok');hold on;fnplt(sp1,'b');hold off % By spap2()
figure
plot(x,y,'ok');hold on;fnplt(sp2,'r');hold off % By spaps()
% 在同一坐标上绘制三条曲线以便比较
figure
plot(x,y,'ok'); hold on, fnplt(pp,'k'),fnplt(sp1,'b'), fnplt(sp2,'r')
xlabel('x')
ylabel('y')
hold off
参考资料:《化工计算》