平时用matlab 做实验,但是不知道如何用matlab 曲面拟合,下面我讲一下我的经验
1.什么拟合
对于一维曲线的拟合,一般用到的函数p=polyfit(x,y,n)和yi=polyval(p,xi),这个是最常用的最小二乘法的拟合方法。
对于二维曲面的拟合,有很多方法可以实现,但是我这里自己用的是Spline Toolbox里面的函数功能。具体使用方法可以看后面的例子。
对于一维曲线的插值和拟合相对比较简单,这里就不多说了,对于二维曲面的插值和拟合还是比较有意思的。
总结归纳一下给出实例和讲解。
2. 样例
原始数据
x=[1:1:12];
y=[1:1:5];
z是一个5乘12的矩阵
z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;
0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;
0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;
0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;
0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];
直接用原始数据绘图例如以下:
surf三维表面图
surf(x,y,z);
title(‘Original data Plot’);
xlabel(‘X’), ylabel(‘Y’), zlabel(‘Z’),
对X,Y,Z轴范围的控制
axis([0 15 0 6 0.2 0.55]);
具体怎么操作的可以看“Matlab曲面拟合工具箱sftool的使用方法”这篇文章