1、实验报告3.8 数 据 插 值 与 拟 合 实 验一 、 实 验 目 的 及 意 义1 了解插值、最 小 二 乘 拟 合 的基本原理2 掌握用 MATLAB 计算一维插值和两种二维插值的方法;3 掌 握 用 MATLAB作 最 小 二 乘 多 项 式 拟 合 和 曲 线 拟 合 的 方 法 。二 、 实 验 内 容1针对实际问题,试建立数学模型。用 MATLAB 计算一维插值和两种二维插值的方法求解;1 用 MATLAB中 的 函 数 作 一 元 函 数 的 多 项 式 拟 合 与 曲 线 拟 合 , 作 出 误 差图 ;2 用 MATLAB中 的 函 数 作 二 元 函 数 的 最 小 二
2、乘 拟 合 , 作 出 误 差 图 ;3 针 对 预 测 和 确 定 参 数 的 实 际 问 题 , 建 立 数 学 模 型 , 并 求 解 。三 、 实 验 步 骤1 开 启 软 件 平 台 MATLAB, 开 启 MATLAB编 辑 窗 口 ; 2 根 据 各 种 数 值 解 法 步 骤 编 写 M文 件3 保 存 文 件 并 运 行 ;4 观 察 运 行 结 果 (数 值 或 图 形 );5 根 据 观 察 到 的 结 果 写 出 实 验 报 告 , 并 浅 谈 学 习 心 得 体 会 。四 、 实 验 要 求 与 任 务根 据 实 验 内 容 和 步 骤 , 完 成 以 下 具 体 实
3、 验 , 要 求 写 出 实 验 报 告 ( 实 验 目的 问 题 数 学 模 型 算 法 与 编 程 计 算 结 果 分 析 、 检 验 和 结 论 心得 体 会 )1.山区地貌:在某山区测得一些地点的高程如下表3.8。平面区域为:1200=x=4000,1200=y=3600)试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。表3.8 某山区高程表yx 1200 1600 2000 2400 2800 3200 3600 40001200 1130 1250 1280 1230 1040 900 500 7001600 1320 1450 1420 1400 1300 700 90
4、0 8502000 1390 1500 1500 1400 900 1100 1060 9502400 1500 1200 1100 1350 1450 1200 1150 10102800 1500 1200 1100 1550 1600 1550 1380 10703200 1500 1550 1600 1550 1600 1600 1600 15503600 1480 1500 1550 1510 1430 1300 1200 980解:x0=1200:400:4000;y0=1200:400:3600;z0=1130,1250,1280,1230,1040,900,500,700;13
5、20,1450,1420,1400,1300,700,900,850;1390,1500,1500,1400,900,1100,1060,950;1500,1200,1100,1350,1450,1200,1150,1010;1500,1200,1100,1550,1600,1550,1380,1070;1500,1550,1600,1550,1600,1600,1600,1550;1480,1500,1550,1510,1430,1300,1200,980;meshc(x0,y0,z0)xlabel(x);ylabel(y);zlabel(z)title(原始图)分段线性插值输入命令:xi2
6、,yi2=meshgrid(1200:10:4000,1200:10:3600);zi2=interp2(x0,y0,z0,xi2,yi2,linear);meshc(xi2,yi2,zi2)xlabel(x);ylabel(y);zlabel(z)title(插值后) 三次样条插值输入命令:xi,yi=meshgrid(1200:10:4000,1200:10:3600);zi=interp2(x0,y0,z0,xi,yi,spline);meshc(xi,yi,zi), title(三次样条插值表面图)xlabel(x);ylabel(y);zlabel(z) 双三次插值输入命令:xi,y
7、i=meshgrid(1200:10:4000,1200:10:3600);zi=interp2(x0,y0,z0,xi,yi,cubic);meshc(xi,yi,zi), title(双三次插值后的表面图)xlabel(x轴);ylabel(y轴);zlabel(z轴) 画等高线图:n=9;pcolor(x0,y0,z0)shading interpzmax=max(max(z0);zmin=min(min(z0);caxis(zmin,zmax)colorbarhold onC=contour(x0,y0,z0,n,k:);clabel(C)title(未拟合图形)hold off pc
8、olor(xi,yi,zi)shading interpzmax1=max(max(zi);zmin1=min(min(zi);caxis(zmin1,zmax1)colorbarhold onC=contour(xi,yi,zi,n,k:);clabel(C)title(拟合图形 )hold off 相应的图形中都画出了地貌图和等高线,在以上的三种插值方法中,最为精确的要属双三次插值方法,可能在间隔取值较小时,它与三次样条插值所绘出的图形差异不大,不很明显。2.某年美国旧车价格的调查资料如下表所示,其中下xi表示轿车的使用年数,yi表示相应的平均价格。试分析用什么形式的曲线来拟合上述的数据,
9、并计算使用4.5年后轿车的平均价格大致为多少?xi 1 2 3 4 5 6 7 8 9 10yi 2615 1943 1494 1087 765 538 484 290 226 204解:通过以上数据产生其粗糙的曲线:xi=1:10;yi=2615,1943,1494,1087,765,538,484,290,226,204;plot(xi,yi,.) 对上图分析,假设轿车的价格与时间的关系为:yi=a*exp(-b*xi)则:x_ex2=1 2 3 4 5 6 7 8 9 10;y_ex2=2615 1943 1494 1087 765 538 484 290 226 204;plot(x_
10、ex2,y_ex2,o) %先画出原始数据的散点图,以便于后续的观察grid onhold on%假设售价与时间是指数关系即:y=a*exp(b*x)Y_ex2=log(y_ex2); %将函数进行转换,把函数转换成 Y=b*x+Lna这样一个%一次函数aa=polyfit(x_ex2,Y_ex2,1) %用多项式拟合求解系数a,ba=exp(aa(2);b=aa(1);y1_ex2=a*exp(b*x_ex2);plot(x_ex2,y1_ex2) %画出拟合后的曲线xlabel(年数 )ylabel(销售价格 )title(拟合后的函数与原始数据的比较图)hold offgrid offy45_ex2=exp(polyval(aa,4.5) %计算在4.5 年时的汽车的销售价格 aa =-0.2969 8.1591y45_ex2 =918.6543结论:轿车的销售价格和使用时间呈现指数关系,在使用4.5年后,汽车的平均售价为918.7元