您好,欢迎来到六九路网。
搜索
您的当前位置:首页matlab实验-6matlab插值与拟合实验 (1)

matlab实验-6matlab插值与拟合实验 (1)

来源:六九路网
 - !

新乡学院

数学与信息科学系实验报告

实验名称 插值与拟合 所属课程 数学软件与实验 实验类型 综合型实验 专 业 信息与计算科学 班 级 2011级1班 学 号 11111021012 姓 名 李欢丽 指导教师 朱耀生

0

- !

一、实验概述 【实验目的】 学会用一维插值函数yi=interp1(xo,yo,x,’menthod’)求出函数在插值点处的函数值,和用二维函数plot()作图。用二维插值函数zi=interp2(x0,y0,z0,x,y,’method’)求其在网格节点数据的插值,和用三维函数surfc()作图. 【实验原理】 1,一维插值函数yi=interp1(xo,yo,x,’menthod’),yi被插值点处的函数值,xo,yo插值节点,x被插值点,nearest最邻近插值,linear线性插值,spline三次样条插值,cubic立方插值,缺省时,为分段线性插值. 2,二维作图函数plot(x,y),x,y都是向量时,则以x中元素为横坐标,y中元素为纵坐标,且x,y长度相同。x,y都是矩阵,x列与y列结合,绘制多条平面曲线,且必同大小。 3,用作网格节点数据的插值zi=interp2(x0,y0,z0,x,y,’method’),zi为被插值点的函数值,x0,y0,z0点,x,y被插值点,’method’中’nearest’为最邻近差值,’linear’为双线性插值,’cubic’为双三次插值,缺省时为双线性插值。 4,网格生成函数[X,Y]meshgrid(x,y),x,y为给定的向量,X,Y是网格划分后得到的网格矩阵绘制三维曲面图;三维曲面绘制函数surfc(x,y,z) 【实验环境】 MatlabR2010b 二、实验内容 问题1 对函数f(x)1,x[-5,5],分别用分段线性插值和三次样条插值作插值(其1x2中插值节点不少于20),并分别作出每种插值方法的误差曲线. 1.分析问题 通过一维插值函数yi=interp1(xo,yo,x,’menthod’)求出函数在插值点处的函数值,然后用二维函数plot()作图。 2.问题求解 function y=lagrange(x0,y0,x) % x0插值节点, y0插值节点处的函数值,x要计算函数值的点; n=length(x0); %计算x0的长度 m=length(x); %计算x的长度 for i=1:m s=0;z=x(i); for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); %计算插值基函数 1

- !

end end s=p*y0(k)+s; end y(i)=s; %计算在x(i)处的函数值(拉格朗日) end x0=-5:0.5:5; y0=1./(1+x0.^2); x=-5:0.1:5; y=1./(1+x.^2); y1=lagrange(x0,y0,x); z1=y1-y; plot(x,y1,'k+')%拉格朗日插值作图 hold on plot(x,z1,'k+')%拉格朗日下的误差曲线 y2=interp1(x0,y0,x); hold on plot(x,y2,'r')%分段线性插值作图 z2=y2-y; plot(x,z2,'r')%分段线性插值下的误差曲线 y3=interp1(x0,y0,x,'spline'); plot(x,y3,'m.')%三次样条插值作图 hold on z3=y3-y; plot(x,z3)%三次样条插值下的误差曲线 hold off axis([-5 5 0 1]) 3.结果 0.80.60.40.20-0.2-5-4-3-2-1012345 2

- !

4.结论及分析 经过多次试验可推知分析无误。 问题2 山区地貌图 在某山区(平面区域(0,2800)(0,2400)内,单位:米)测得一些地点的高程(单位:米)如表1,试作出该山区的地貌图. 表1 2400 2000 1600 1200 800 400 0 Y/X 0 400 800 1200 1600 2000 2400 2800 1430 1450 1470 1320 1280 1200 1080 940 1450 1480 1500 1550 1510 1430 1300 1200 1460 1500 1550 1600 1550 1600 1600 1600 1370 1500 1200 1100 1550 1600 1550 1380 1270 1500 1200 1100 1350 1450 1200 1150 1230 1390 1500 1500 1400 900 1100 1060 1180 1320 1450 1420 1400 1300 700 900 1.分析问题 要做出该山区的地貌图可依据测得的一些地点的高程通过二维插值函数zi=interp2(x0,y0,z0,x,y,’method’)的方法出多地点的高程,然后再用surfc()函数三维作图. 2.问题求解 x0=2800:-400:0;%X表示列数?且为减函数 y0=2400:-400:0;%行数 z0=[1430 1450 1470 1320 1280 1200 1080 940; 1450 1480 1500 1550 1510 1430 1300 1200; 1460 1500 1550 1600 1550 1600 1600 1600; 1370 1500 1200 1100 1550 1600 1550 1380; 1270 1500 1200 1100 1350 1450 1200 1150; 1230 1390 1500 1500 1400 900 1100 1060; 1180 1320 1450 1420 1400 1300 700 900;]%输入数据时,注意空格和分号 x=2400:-40:0; y1=2400:-40:0; y=y1';%X,Y为矩阵时,X为行向量,Y为列向量。 z=interp2(x0,y0,z0,x,y);%一切以课件为准!!! surfc(x,y,z)%surfc 等高线,surf绘制三维曲面图,mesh绘制三维网格图 3.结果 3

- !

1600140012001000800600300020001000050001000150025002000 4.结论及分析 通过多次试验,可推知分析无误。 三、实验小结 1,做误差曲线时x0=-5:0.5:5;y0=1./(1+x0.^2);x=-5:0.1:5; y1=lagrange(x0,y0,x); z1=y1-y;plot(x,z1,'k+')%拉格朗日下的误差曲线 y=1./(1+x.^2);必不可少 2.二维插值函数zi=interp2(x0,y0,z0,x,y,’method’),其中x,y为矩阵,或x为行向量,y为列向量。且X,y范围不可超过x0,y0 3,y的转置可表示为y’。 4,输入一个矩阵的元素时,空格和分号的个数要做到不重不漏。

4

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务