下载此文档

matlab曲面拟合.docx


文档分类:高等教育 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
Matlab曲面插值和拟合数值求导Q:v=[];t=0::4;如何求出dv/dt;是要先拟合出曲线在求导函数吗?A:数值计算有误差的•简单可以那么做diff(v)./diff(t),当实验数据不够多时经常需要用到这种方法来画图。在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),这个是最常用的最小二乘法的拟合方法。对于二维曲面的拟合,有很多方法可以实现,oolbox里面的函数功能。具体使用方法可以看后面的例子。对于一维曲线的插值和拟合相对比较简单,这里就不多说了,对于二维曲面的插值和拟合还是比较有意思的,而且正好胖子有些数据想让我帮忙处理一下,就这个机会好好把二维曲面的插值和拟合总结归纳一下,下面给出实例和讲解。原始数据x=[1:1:15];y=[1:1:5];z=[;;;;];z是一个5乘12的矩阵。直接用原始数据画图如下:surf(x,y,z)title('OriginaldataPlot ');xlabel('X'),ylabel('Y'),zlabel( 'Z'),colormap,colorbar;axis([])^----035JO302先考虑插值,需要用到的函数interp2x1=1::12;y1=1::5;[x2,y2]=meshgrid(x1,y1);t1仁interp2(x,y,z,x2,y2, 'cubic');surf(x1,y1,t11)title('AfterFitdataPlot ');xlabel('X'),ylabel( 'Y'),zlabel( 'Z'),colormap,colorbar;axis([])05045040350302502AfterFitdataPlotY 0 0然后考虑拟合,这个稍微复杂一点:ky=3;knotsy=augknt([0::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( 'AfterPolynaldataPlot ');Z');xlabel('X'),ylabel('Y'),zlabel('colormap,colorbar;axis([])AfterPolynaldataPlot图上面的小圆点使用plot3画出来的原始数据点,具体怎么添加的方法我就不多说了。需要把不等边矩阵转换成等边矩阵然后再画图。效果从上面三个图上面已经看出来了。基本上满足了现在画图的要求,如果测量值比较精确,我们选择第二种方法插值法来画图,如果觉得测量值不是很精确需要用拟合的方法的话,那当然用第三种方法了。关于 oolbox当然还有更多应用,还有就是里面参数设置为什么要这样设,该怎样设要写下来估计再写一整页都写不完,所以还是大家感兴趣的自己去看帮助文档好了, 里面有详细介绍。这里

matlab曲面拟合 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2105194781
  • 文件大小241 KB
  • 时间2020-09-28