第8章 数据插值与拟合精选文档.ppt
《第8章 数据插值与拟合精选文档.ppt》由会员分享,可在线阅读,更多相关《第8章 数据插值与拟合精选文档.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 数据插值与拟合2022/9/231本讲稿第一页,共四十九页8.1 数据插值o一维数据的插值问题o二维网格数据的插值问题o二维一般分布数据的插值问题o高维插值问题2022/9/232本讲稿第二页,共四十九页8.1.1 一维数据的插值问题ointerp1函数ospline函数olagrange插值ohermite插值2022/9/233本讲稿第三页,共四十九页1、interp1函数interp1函数的调用格式:py=interp1(x0,y0,x,method)py=interp1(x0,y0,x,method,extrap)*临近点插值:临近点插值:method=nearest*线性插值
2、:线性插值:method=linear*三次样条插值:三次样条插值:method=spline*立方插值:立方插值:method=pchip or cubic2022/9/234本讲稿第四页,共四十九页1、interp1函数选择插值方法时主要考虑因素:运算时间、占用计算机内存和插值的光滑程度。运算时间占用计算机内存光滑程度临近点插值快少差线性插值稍长较多稍好三次样条插值最长较多最好立方插值较长多较好插值方法比较插值方法比较2022/9/235本讲稿第五页,共四十九页例例:已知的数据点来自函数已知的数据点来自函数根据生成的数据进行插值处理,得出较平滑的曲线根据生成的数据进行插值处理,得出较平滑的
3、曲线直接生成数据。直接生成数据。o数据点:数据点:x=0:0.12:1;y=(x.2-3*x+5).*exp(-5*x).*sin(x);plot(x,y,x,y,o)2022/9/236本讲稿第六页,共四十九页p调用interp1()函数:x0=0:0.02:1;y0=(x0.2-3*x0+5).*exp(-5*x0).*sin(x0);y1=interp1(x,y,x0);y2=interp1(x,y,x0,cubic);y3=interp1(x,y,x0,spline);y4=interp1(x,y,x0,nearest);plot(x0,y1,y2,y3,y4,:,x,y,o,x0,y
4、0)p误差分析 max(abs(y0(1:49)-y2(1:49),max(abs(y0-y3),max(abs(y0-y4)ans=0.0177 0.0086 0.15981、interp1函数2022/9/237本讲稿第七页,共四十九页n功能 三次样条数据插值n格式 yy=spline(x,y,xx)n例:对离散分布在y=exp(x)sin(x)函数曲线上的数据点进行样条插值计算:x=0 2 4 5 8 12 12.8 17.2 19.9 20;y=exp(x).*sin(x);xx=0:.25:20;yy=spline(x,y,xx);plot(x,y,o,xx,yy)2、spline函
5、数2022/9/238本讲稿第八页,共四十九页3、lagrange插值o方法介绍 对给定的n个插值点 及对应的函数值 ,利用构造的n-1次lagrange插值多项式,则对插值区间内任意x的函数值y可通过下式求的:2022/9/239本讲稿第九页,共四十九页lagrange插值函数function y=lagrange(x0,y0,x)ii=1:length(x0);y=zeros(size(x);for i=ii ij=find(ii=i);y1=1;for j=1:length(ij),y1=y1.*(x-x0(ij(j);end y=y+y1*y0(i)/prod(x0(i)-x0(ij)
6、;end2022/9/2310本讲稿第十页,共四十九页pLagrange插值 x0=-1+2*0:10/10;y0=1./(1+25*x0.2);x=-1:0.01:1;y=lagrange(x0,y0,x);ya=1./(1+25*x.2);plot(x,ya,x,y,:)p调用interp1函数y1=interp1(x0,y0,x,cubic);y2=interp1(x0,y0,x,spline);plot(x,ya,x,y1,:,x,y2,-)3、lagrange插值例:对例:对 进行进行Lagrange插值插值2022/9/2311本讲稿第十一页,共四十九页 许多实际插值问题中,为使插
7、值函数能更好地许多实际插值问题中,为使插值函数能更好地和原来的函数重合,不但要求二者在节点上函数值和原来的函数重合,不但要求二者在节点上函数值相等,而且还要求相切,对应的导数值也相等,甚相等,而且还要求相切,对应的导数值也相等,甚至要求高阶导数也相等。这类插值称作切触插值,至要求高阶导数也相等。这类插值称作切触插值,或埃尔米特或埃尔米特(Hermite)插值。满足这种要求的插值多插值。满足这种要求的插值多项式就是埃尔米特插值多项式项式就是埃尔米特插值多项式4、埃尔米特插值(hermite插值)2022/9/2312本讲稿第十二页,共四十九页4、埃尔米特插值(hermite插值)o方法介绍 已知
8、n个插值点 及对应的函数值 和一阶导数值 。则对插值区间内任意x的函数值y的Hermite插值公式:2022/9/2313本讲稿第十三页,共四十九页hermite插值函数function y=hermite(x0,y0,y1,x)n=length(x0);m=length(x);for k=1:m yy=0.0;for i=1:n h=1.0;a=0.0;for j=1:n if j=i h=h*(x(k)-x0(j)/(x0(i)-x0(j)2;a=1/(x0(i)-x0(j)+a;end end yy=yy+h*(x0(i)-x(k)*(2*a*y0(i)-y1(i)+y0(i);end
9、y(k)=yy;end2022/9/2314本讲稿第十四页,共四十九页例:利用Hermite插值法求sin0.34的近似值。x0=0.3,0.32,0.35;y0=0.29552,0.31457,0.34290;y1=0.95534,0.94924,0.93937;y=hermite(x0,y0,y1,0.34)y=0.3335 sin(0.34)与精确值比较ans=0.33354、hermite插值2022/9/2315本讲稿第十五页,共四十九页8.1.2 二维网格数据的插值问题二维插值函数interp2的调用格式:pzi=interp2(x0,y0,z0,xi,yi)pzi=interp2
10、(x0,y0,z0,xi,yi,method)*临近点插值:临近点插值:method=nearest*线性插值:线性插值:method=linear (缺省算法)(缺省算法)*三次样条插值:三次样条插值:method=spline*立方插值:立方插值:method=pchip or cubic2022/9/2316本讲稿第十六页,共四十九页例 由二元函数获得一些较稀疏的网格数据,对整个函数曲面进行各种插值,并比较插值结果o绘制已知数据的网格图 x,y=meshgrid(-3:0.6:3,-2:0.4:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);surf(x,y,z);
11、axis(-3,3,-2,2,-0.7,1.5)8.1.2 二维网格数据的插值问题2022/9/2317本讲稿第十七页,共四十九页默认线性插值算法进行插值 x1,y1=meshgrid(-3:.2:3,-2:.2:2);z1=interp2(x,y,z,x1,y1);surf(x1,y1,z1),axis(-3,3,-2,2,-0.7,1.5)立方和样条插值:z1=interp2(x,y,z,x1,y1,cubic);z2=interp2(x,y,z,x1,y1,spline);surf(x1,y1,z1),axis(-3,3,-2,2,-0.7,1.5)figure;surf(x1,y1,z
12、2),axis(-3,3,-2,2,-0.7,1.5)2022/9/2318本讲稿第十八页,共四十九页算法误差的比较算法误差的比较z=(x1.2-2*x1).*exp(-x1.2-y1.2-x1.*y1);surf(x1,y1,abs(z-z1),axis(-3,3,-2,2,0,0.08)figure;surf(x1,y1,abs(z-z2),axis(-3,3,-2,2,0,0.025)2022/9/2319本讲稿第十九页,共四十九页8.1.3 二维一般分布数据的插值问题griddata函数的调用格式:pz=griddata(x0,y0,z0,x,y,method)method=v4:插值
13、算法,公认效果较好:插值算法,公认效果较好*临近点插值:临近点插值:method=nearest*线性插值:线性插值:method=linear (缺省算法)(缺省算法)*三次样条插值:三次样条插值:method=spline*立方插值:立方插值:method=cubic2022/9/2320本讲稿第二十页,共四十九页例 在x为-3,3,y为-2,2矩形区域随机选择一组数据点,用 v4 与cubic插值法进行处理,并对误差进行比较。已知数据点 x=-3+6*rand(200,1);y=-2+4*rand(200,1);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);plot(x
14、,y,x)%样本点的二维分布 figure,plot3(x,y,z,x),axis(-3,3,-2,2,-0.7,1.5),grid2022/9/2321本讲稿第二十一页,共四十九页cubic和v4算法 x1,y1=meshgrid(-3:0.2:3,-2:0.2:2);z1=griddata(x,y,z,x1,y1,cubic);surf(x1,y1,z1);axis(-3,3,-2,2,-0.7,1.5)z2=griddata(x,y,z,x1,y1,v4);figure;surf(x1,y1,z2);axis(-3,3,-2,2,-0.7,1.5)误差分析 z0=(x1.2-2*x1).
15、*exp(-x1.2-y1.2-x1.*y1);surf(x1,y1,abs(z0-z1),axis(-3,3,-2,2,0,0.15)figure;surf(x1,y1,abs(z0-z2);axis(-3,3,-2,2,0,0.15)2022/9/2322本讲稿第二十二页,共四十九页8.1.4 高维插值问题u三维插值三维插值interp3函数的调用格式:函数的调用格式:三维网格三维网格 x,y,z=meshgrid(x1,y1,z1)griddata3()三维非网格数据插值三维非网格数据插值un维插值维插值interpn函数函数un维网格维网格 x1,x2,xn=ndgridv1,v2,v
16、nugriddatan()n维非网格数据插值维非网格数据插值uinterp3()、interpn()调用格式同调用格式同interp2()一致一致ugriddata3()、griddatan()调用格式同调用格式同griddata()一致一致2022/9/2323本讲稿第二十三页,共四十九页例:通过函数生成一些网格型样本点,据此进行插值并给出插值误差。x,y,z=meshgrid(-1:0.2:1);x0,y0,z0=meshgrid(-1:0.05:1);V=exp(x.2.*z+y.2.*x+z.2.*y).*cos(x.2.*y.*z+z.2.*y.*x);V0=exp(x0.2.*z0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 数据插值与拟合精选文档 数据 拟合 精选 文档
限制150内