www.gsyw.net > mAtlAB中splinE函数用法

mAtlAB中splinE函数用法

spline函数:功能 :三次样条数据插值.格式:(1)yy = spline(x,y,xx) 对于给定的离散的测量数据x,y(称为断点),要寻找一个三项多项式y = p(x) ,以逼近每对数据(x,y)点间的曲线.过两点(xi, yi) 和(xi+1, yi+1) 只能确定一条直线,而通过

spline是样条曲线数据插值函数,用法:yy = spline(x,Y,xx),x和Y是原矢量,xx是要求各点位置矢量,yy是生成的新值.画图可用:plot(xx,yy)

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),'-');例如上述matlab自带的例子, cs.breaks是各段拟合曲线的段点,如上述代码,结果为[-4 -3 -2 -1 0

spline是样条,是一种分段光滑的多项式,MATLAB里面spline函数是三次样条插值,也就是用分段光滑的曲线去插值,每一段都是三次多项式.要知道原理的话得找本书好好看看,虽然不难但也不是几句话就能讲清楚的.

clear;clc rand('seed',2); x=1:20; y=rand(1,20); p=spline(x,y); plot(x,y,'ko') x=linspace(0,20,1000); y=ppval(p,x); hold on plot(x,y,'b',x(1:end-1),diff(y)./diff(x),'r') legend('sample','f(x)','f''(x)')

也就是用插值方法,增加样点,用样条函数拟合,这样使得曲线平滑了%不是很平滑的曲线 x=1:5; y=1+x.^2+8*rand(1,length(x)); plot(x,y,'b-');%插值,增加x样点数 x1 = 1:0.1:5%用样条函数插值 y1=spline(x,y,x1); hold on; plot(x1,y1,'r-');(红线比蓝线平滑)

matlab中的三次样条插值函数是spline,用法是:yy=spline(x,y,xx),pp=spline(x,y),前者求出对应xx的纵坐标,后者求出一个多项式,可用ppval计算纵坐标值.

ppval下面是spline所给的帮助中的例子,matlab版本r2006a 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),'-');

可以用matlab的拟合函数,先根据数据的走向,初定曲线的模型,拟合出其函数的系数,最后得到其函数的表达式.

spline函数三次样条函数插值 用法:yi=spline(x,y,xi) 式中,x,y为插值点的向量,xi为所求点的横坐标值,yi为所求点的纵坐标值,使用目的是通过三次样条函数插值求函数值.实例说明:x=0:16; y=tan(pi*x/20); xi=linspace(0,16) yi=spline(x,y,xi) plot(x,y,'o',xi,yi)

网站地图

All rights reserved Powered by www.gsyw.net

copyright ©right 2010-2021。
www.gsyw.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com