matlab闭合曲线插值,[转载]Matlab曲线拟合和插值
MATLAB软件提供了基本的曲线拟合函数的命令.1.函数拟合多项式函数拟合:a=polyfit(xdata,ydata,n)其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式y=a1xn+...+anx+a n+1的系数多项式在x处的值y可用下面程序计算.y=polyval(a,x,m)线性:m=1,二次:m=2,…polyfit的输出
MATLAB软件提供了基本的曲线拟合函数的命令.
1.函数拟合
多项式函数拟合:a=polyfit(xdata,ydata,n)
其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式输入.输出参数a为拟合多项式
y=a1xn+...+anx+a n+1的系数
多项式在x处的值y可用下面程序计算.
y=polyval(a,x,m)
线性:m=1,
二次:m=2,
…
polyfit的输出是一个多项式系数的行向量。为了计算在xi数据点的多项式值,调用MATLAB的函数polyval。
例:
x=0:0.1:1;
y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30
11.2];
A=polyfit(x,y,2)
Z=polyval(A,x);
Plot(x,y,’r*’,x,z,’b’)
一般的曲线拟合:p=curvefit(‘Fun’,p0,xdata,ydata)
其中Fun表示函数Fun(p,data)的M函数文件,p0表示函数的初值.curvefit()命令的求解问题形式是最小二乘解
若要求解点x处的函数值可用程序f=Fun(p,x)计算.
2、函数插值
一维插值:
interp1(x,y,cx,’method’)
一维插值:
interp1(x,y,z,cx,cy,’method’)
method:nearest、linear、spline、cubic
例:
clear
echo
on
x=-2:0.4:2;
y=[2.8 2.96 2.54
3.44 3.56 5.4
6.0 8.7 10.1 13.3
14.0];
t=-2:0.01:2;
nst=interp1(x,y,t,'nearest');
plot(x,y,'r*',t,nst)
title('最临近点插值')
lnr=interp1(x,y,t,'linear');
figure(2)
plot(x,y,'r*',t,lnr,'b:')
title('线性插值')
spl=interp1(x,y,t,'spline');
figure(3)
plot(x,y,'r*',t,spl)
title('样条插值')
cbc=interp1(x,y,t,'cubic');
figure(4)
plot(x,y,'r*',t,cbc,'k-')
title('三次插值')3
二维插值
二维插值是基于与一维插值同样的基本思想。然而,正如名字所隐含的,二维插值是对两变量的函数z=f(x,
y)进行插值。interp2的基本形式是interp2(x, y, z, xi, yi,
method)。这里x和y是两个独立变量,z是一个应变量矩阵。x和y对z的关系是
z(i, :) = f(x,
y(i))和z(:, j) = f(x(j), y).
也就是,当x变化时,z的第i行与y的第i个元素y(i)相关,当y变化时,z的第j列与x的第j个元素x(j)相关,。xi是沿x-轴插值的一个数值数组;yi是沿y-轴插值的一个数值数组。
可选的参数method可以是'linear','cubic'或'nearest'。在这种情况下,cubic不意味着3次样条,而是使用3次多项式的另一种算法。linear方法是线性插值,仅用作连接图上数据点。nearest方法只选择最接近各估计点的粗略数据点。在所有的情况下,假定独立变量x和y是线性间隔和单调的。关于这些方法的更多的信息,可请求在线帮助,例如,»
help interp2,或参阅MATLAB参考手册。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)