数据插值和函数逼近matlab实现

数据插值和函数逼近matlab实现

ID:11347926

大小:325.00 KB

页数:9页

时间:2018-07-11

数据插值和函数逼近matlab实现_第1页
数据插值和函数逼近matlab实现_第2页
数据插值和函数逼近matlab实现_第3页
数据插值和函数逼近matlab实现_第4页
数据插值和函数逼近matlab实现_第5页
资源描述:

《数据插值和函数逼近matlab实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据插值和函数逼近1数据插值由已知样本点,以数据更为平滑为目标,求出其他点处的函数值。在信号处理与图像处理上应用广泛。求解方法:y1=interp1(x,y,x1,'方法')z1=interp2(x,y,z,x1,y1,'方法')1.1一维数据的插值例:假设样本点来自,进行插值处理,得到平滑的曲线。x=0:0.1:1;y=(x.^2-3*x+5).*exp(-5*x).*sin(x);plot(x,y,'*');holdon ;xs=0:0.01:1;y1=interp1(x,y,xs) ;%线性插值y2=interp1(x,y,xs,'

2、cubic')%分段3次Hermite插值y3=interp1(x,y,xs,'spline')%分段三次样条插值plot(xs,y1,'r',xs,y2,'g',xs,y3,'b');例:草图样条曲线功能。functionsketch()x=[];y=[];gca;holdon;axis([01,01]);while1[x0,y0,button]=ginput(1);if(isempty(button))break;end;x=[xx0];y=[yy0];plot(x,y,'*');end;xx=[x(1):(x(end)-x(1))/

3、100:x(end)];yy=interp1(x,y,xx,'spline');plot(xx,yy,x,y,'*');end1.2二维网格数据的插值例3:假设样本点来自,进行插值处理,得到平滑的曲面。[x,y]=meshgrid(-3:0.6:3,-2:0.4:2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);mesh(x,y,z);[x1,y1]=meshgrid(-3:0.2:3,-2:0.2:2);z1=interp2(x,y,z,x1,y1);mesh(x1,y1,z1);z1=interp2(x,y,

4、z,x1,y1,'cubic');mesh(x1,y1,z1);z1=interp2(x,y,z,x1,y1,'spline');mesh(x1,y1,z1);1.3二维一般分布数据的插值例4:假设样本点来自,进行插值处理,得到平滑的曲面。x=-3+6*rand(200,1);y=-2+4*rand(200,1);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);plot3(x,y,z,'*');[x1,y1]=meshgrid(-3:0.2:3,-2:0.2:2);z1=griddata(x,y,z,x1,y1,'c

5、ubic');mesh(x1,y1,z1) ;z1=griddata(x,y,z,x1,y1,'v4');mesh(x1,y1,z1) ;2样条插值函数逼近由已知样本点,求能对其较好拟合的函数表达式。求解方法:S=csapi(x,y);%定义一个三次样条函数类S=spapi(k,x,y);%定义一个k次B样条函数类ys=fnval(S,xs);%计算插值结果fnplt(S);%绘制插值结果例:从中取样本点,计算三次样条函数。%准备样本点x=[0,0.4,1,2,pi,1.5*pi,2*pi];y=sin(x);%计算三次样条函数S=csa

6、pi(x,y);fnplt(S,'r');holdon;ezplot('sin(t)',[02*pi]);plot(x,y,'o') ;6个曲线段的参数方程的系数S.coefs:-0.1393-0.02501.00590-0.1393-0.19230.91890.3894-0.0268-0.44310.53770.84150.1766-0.5236-0.42890.90930.06880.0813-0.93390.00000.06880.4053-0.1697-1.0000第2个曲线段的参数方程:练习:利用上例中的变量S,生成各个曲线段的

7、参数方程,并绘制图形。functionFS=GetAllFun(S)  symsx;  fori=1:S.pieces       FS(i)=S.coefs(i,1)*(x-S.breaks(i))^(S.order-1);       forj=2:S.order          FS(i)=FS(i)+S.coefs(i,j)*(x-S.breaks(i))^(S.order-j);       end  end%绘制所有的曲线段  figure;   holdon;  fori=1:S.pieces    ezplot(FS(i

8、),[S.breaks(i),S.breaks(i+1)]);  end  axis([0S.breaks(end)-11]);例:从中取样本点,计算三次B样条函数。%准备样本点x=[0,0.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。