| 查看: 3857 | 回复: 2 | ||||
[交流]
MATLAB三维插值与拟合 已有2人参与
|
|
MATLAB三维插值与拟合 插值和拟合都是数据优化的一种方法,当实验数据不够多时经常需要用到这种方法来画图。在matlab中都有特定的函数来完成这些功能。这两种方法的确别在于:当测量值是准确的,没有误差时,一般用插值;当测量值与真实值有误差时,一般用数据拟合。 插值: 对于一维曲线的插值,一般用到的函数yi=interp1(X,Y,xi,method) ,其中method包括nearst,linear,spline,cubic。 对于二维曲面的插值,一般用到的函数zi=interp2(X,Y,Z,xi,yi,method),其中method也和上面一样,常用的是cubic。 拟合: 对于一维曲线的拟合,一般用到的函数p=polyfit(x,y,n)和yi=polyval(p,xi),这个是最常用的最小二乘法的拟合方法。 对于二维曲面的拟合,有很多方法可以实现,但是我这里自己用的是Spline Toolbox里面的函数功能。具体使用方法可以看后面的例子。 原始数据 x=[1:1:15]; y=[1:1:5]; 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]; z是一个5乘12的矩阵。 直接用原始数据画图如下: surf(x,y,z) title(’Original data Plot’); xlabel(’X'), ylabel(’Y'), zlabel(’Z'), colormap, colorbar; axis([0 15 0 6 0.15 0.55]); 先考虑插值,需要用到的函数interp2 x1=1:0.2:12; y1=1:0.2:5; [x2,y2]=meshgrid(x1,y1); t11=interp2(x,y,z,x2,y2,’cubic’); surf(x1,y1,t11) title(’After Fit data Plot’); xlabel(’X'), ylabel(’Y'), zlabel(’Z'), colormap, colorbar; 然后考虑拟合 ky = 3; knotsy = augknt([0:2.5:13],ky); sp = spap2(knotsy,ky,y,z); yy = 0:.5:12; vals = fnval(sp,yy); coefsy = fnbrk(sp,’c'); kx = 5; knotsx = augknt([1:4:5],kx); sp2 = spap2(knotsx,kx,x,coefsy.’); coefs = fnbrk(sp2,’c').’; xv = 1:.25:5; yv = 1:.5:12; values = spcol(knotsx,kx,xv)*coefs*spcol(knotsy,ky,yv).’; surf(yv,xv,values) title(’After Polynal data Plot’); xlabel(’X'), ylabel(’Y'), zlabel(’Z'); colormap, colorbar; axis([0 15 0 6 0.2 0.55]); 效果从上面三个图上面已经看出来了。基本上满足了现在画图的要求,如果测量值比较精确,我们选择第二种方法插值法来画图,如果觉得测量值不是很精确需要用拟合的方法的话,那当然用第三种方法了。关于Spline Toolbox当然还有更多应用,还有就是里面参数设置为什么要这样设,该怎样设要写下来估计再写一整页都写不完,所以还是大家感兴趣的自己去看帮助文档好了,里面有详细介绍。 |
» 收录本帖的淘帖专辑推荐
matlab |
» 猜你喜欢
带资进组求博导收留
已经有9人回复
求助大佬们,伤口沾上了乙腈
已经有6人回复
26申博自荐
已经有6人回复
最近几年招的学生写论文不引自己组发的文章
已经有9人回复
A期刊撤稿
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
origin 里 “三次样条函数拟合” 与“三次多项式拟合”是一回事吗?如图
已经有3人回复
拜求!matlab拟合动力学参数
已经有14人回复
三维图谱中,用matlab如何实现去除一部分数据并实现曲面拟合
已经有10人回复
曲线拟合的问题,实在找不到曲线拟合表达式,求解
已经有8人回复
应用matlab求两个曲面的交线
已经有7人回复
一个二维插值问题
已经有3人回复
10次代数方程怎么找解析解 最好详细给出matlab程序 谢谢
已经有5人回复
matlab可以进行曲线插值吗?
已经有3人回复
如何在MATLAB中插值求取中间截面(外轮廓线)
已经有4人回复
TableCurve 3D v4.0 自动三维曲线拟合与经验公式查找软件【搜索无重复】Zxl890727
已经有125人回复
坐等----MAtlab中如何有三维数据拟合曲面,并得到曲面方程???????
已经有10人回复
数据拟合多项式
已经有6人回复
matlab多维插值原理是什么?
已经有5人回复
关于Jade拟合R值问题。
已经有14人回复
样条插值与样条拟合的区别
已经有5人回复
多幅二维图生成三维图
已经有8人回复
【求助】MATLAB多个mat中 数据画图问题
已经有7人回复
【求助】matlab 二次规划的优化的问题
已经有4人回复
【求助】matlab曲面拟合表达式
已经有10人回复
【求助】如何使得matlab拟合的曲线强制经过一个点
已经有8人回复
【求助】在MATLAB中如何将离散点拟合成曲面图
已经有18人回复

2楼2014-09-15 23:30:34
3楼2015-02-05 21:09:55













回复此楼
