matlab中B样条函数

怎么在matlab中产生一个B样条函数呀?spmak可以吗?高手指点下,用什么命令产生,具体该怎么用呢?多谢啦
我是想产生一个B样条函数,知道是3次的,没有其他点的信息,然后用这个产生的B样条做为平滑函数

可以用S=spapi(k,x,y) S为样条插值对象,k为B样条阶次,一般选择4和5
x0=[0 0.4 1 2 pi];
y0=sin(x0);
ezplot('sin(t)',[0,pi]);
hold on
sp1=csapi(x0,y0);fnplt(sp1,'r--'); %三次分段多项式插值
hold on
sp2=spapi(5,x0,y0);fnplt(sp2,'b:'); %5次B样条插值

比较可知,B样条效果好的多,看起来都完全重合了,而多项式插值还有一点点的差值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-10
spline function 一类分段(片)光滑、并且在各段交接处也有一定光滑性的函数。简称样条。样条一词来源于工程绘图人员为了将一些指定点连接成一条光顺曲线所使用的工具,即富有弹性的细木条或薄钢条。由这样的样条形成的曲线在连接点处具有连续的坡度与曲率。分段低次多项式、在分段处具有一定光滑性的函数插值就是模拟以上原理发展起来的,它克服了高次多项式插值可能出现的振荡现象,具有较好的数值稳定性和收敛性,由这种插值过程产生的函数就是多项式样条函数。
第2个回答  2019-03-25
如何在MATLAB中获取B-样条插值后的完整数据?
本人小白,请教各位大神,我对原始数据进行B样条插值后的完整数据如何获取?
x =[100:100 :1000] ;
y =[ 10.416:0.434 :18.662] ;
[xx,yy] =ndgrid(x,y);
z=[];%由于数据量大,我是直接从数据表导入工作空间的
surf(x,y,z);%生成原始数据曲面图
sp=spapi({4,4}, {x,y},z');%插值生成B样条函数
如何获取B样条函数生成的完整数据呢?也就是说如何获取到插值后的数据(x,y,z)
相似回答