matlab中的csaps命令能产生拟合函数么

来源:百度知道 编辑:UC知道 时间:2024/06/17 10:05:25
如上,现在已经知道能用csaps对给定数据点进行3次样条拟合,但是计算某点的函数值时遇到麻烦,希望matlab的大虾们帮个忙

在命令框中输入cftool,打开拟合工具箱,用这个进行拟合
当然,还有专门的指令来进行这个工作,多项式拟合polyfit、曲线拟合lsqcurvefit,要知道这些函数的使用方法可以在命令框中输入help polyfit或者help lsqcurvefit,就可以看到关于这些函数的详细介绍和使用语法了。
  t应用举例:
  x = (0: 0.1: 2.5)';
  y = erf(x); %matlab自带的一个函数,得到和x中数据一一对应的一组值
  p = polyfit(x,y,6) %6是表示用6次多项式对散点进行拟合
  p =
  0.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004 %多项式系数,从左到右依次是高次项系数到低次项系数,最后一个是常数项,即多项式:
  y=0.0084x^6-0.0983x^5+0.4217x^4-0.7435x^3+0.1471x^2+1.1064x+0.0004
lsqcurvefit与polyfit相似。

pp = csaps(x,y)
使用上面函数创建了三次平滑样条后,使用ppval函数求解每个点的值

例如
x=0:0.1:2*pi;
y=sin(x);
pp = csaps(x,y)
ppval(pp,0.5)
sin(0.5)

pp =

form: 'pp'
breaks: [1x63 double]
coefs: [62x4 double]
pieces: 62
order: 4
dim: 1

ans =

0.4794

ans =

0.4794

当然如果你对样条工具箱比较熟悉的话 使用fnval函数也是可以的,ppval不是样条工具箱的函数