资源描述
开课学院、实验室:数学与统计DS1407 实验时间 :
课程
名称
数学实验
实验项目
名 称
水塔用水量的估计
——插值
实验项目类型
验证
演示
综合
设计
其他
指导
教师
肖剑
成 绩
实验目的
[1] 了解插值的基本原理
[2] 了解拉格朗日插值、线性插值、样条插值的基本思想;
[3] 了解三种网格节点数据的插值方法的基本思想;
[4] 掌握用MATLAB计算三种一维插值和两种二维插值的方法;
[5] 通过范例展现求解实际问题的初步建模过程;
通过自己动手作实验学习如何用插值方法解决实际问题,提高探索和解决问题的能力。通过撰写实验报告,促使自己提炼思想,按逻辑顺序进行整理,并以他人能领会的方式表达自己思想形成的过程和理由。提高写作、文字处理、排版等方面的能力。
一、实验内容
1.编写拉格朗日插值方法的函数M文件;
2.用三种插值方法对已知函数进行插值计算,
通过数值和图形输出,比较它们的效果;
3. 针对实际问题,试建立数学模型,并求解。
二、实验过程(一般应包括实验原理或问题分析,算法设计、程序、计算、图表等, 实验结果及分析)
(一)基础实验
1. 一维插值 利用以下一些具体函数,考察分段线性插值、三次样条插值和拉格朗日多项式插值等三种插值方法的差异。
1),xÎ[-5,5];
注意:适当选取节点及插值点的个数;比较时可以采用插值点的函数值与真实函数值的差异,或采用两个函数之间的某种距离。
算法程序:
{1}利用现有程序,建立M文件lagr1.m
{2}主程序
m=101;
x=-5:10/(m-1):5;
y=1./(1+x.^2);z=0*x;
plot(x,z,'r',x,y,'LineWidth',1.5),
gtext('y=1/(1+x^2)'),pause
n=7;
x0=-5:10/(n-1):5;
y0=1./(1+x0.^2);
y1=lagr1(x0,y0,x);hold on,
plot(x,y1,'r'),gtext('lagr'),pause,
y2=interp1(x0,y0,x,'spline');
plot(x,y2,'k');gtext('scyt'),pause,
y3=interp1(x0,y0,x);
plot(x,y3,'g');gtext('fenduan'),pause,
hold off
运行结果:
图1:插值比较图(红色:拉格朗日插值 蓝色:函数值 黑色:三次样条插值 绿色:分断插值)
由图直观可以看出:分断插值和三次样条与函数值较接近,拉格朗日插值与函数值相差较大
分析:在三种插值对比运用的过程中,进一步强化了hold on,hold off 的运用。
(二)应用实验
2.火车行驶的路程、速度数据如表7.1,计算从静止开始20 分钟内走过的路程。
表7.1
t(分)
2
4
6
8
10
12
14
16
18
20
v(km/h)
10
18
25
29
32
20
11
5
2
0
算法程序:
t0=0:2:20;
v0=[0 10 18 25 29 32 20 11 5 2 0];
t=0:.1:20;
v=interp1(t0,v0,t,'spline');
plot(t0,v0,'r',t,v)
xlabel('t(min)'),ylabel('v(km/h)')
grid
trapz(t,v)
运行结果:
ans =
306.3918
图形:
图2:火车速度与时间关系的三次样条图
分析:三次样条插值和分断插值的运用相对普遍,求解积分的trapz函数还不够熟悉。
3. 确定地球与金星之间的距离
天文学家在1914年8月份的7次观测中,测得地球与金星之间距离(单位:米),并取其常用对数值,与日期的一组历史数据如表7.2。
表7.2
日期(号)
18
20
22
24
26
28
30
距离对数
9.9617724
9.9543645
9.9468069
9.9390950
9.9312245
9.9231915
9.9149925
由此推断何时金星与地球的距离(米)的对数值为9.9351799?
算法程序:
day0=18:2:30;
s0=[9.9617724 9.9543645 9.9468069 9.9390950 9.9312245 9.9231915 9.9149925];
day=18:0.001:30;
sequ=9.9351799;
s=interp1(day0,s0,day);
plot(day0,s0,'r',day,s),
hold on
plot(day,sequ,'g'),
title('地球与金星距离随时间变化图');
xlabel('时间day'),ylabel('距离s');
grid
运行结果:
图3:地球与金星距离随时间变化图
分析:进一步巩固了插值的运用,回顾了利用放大法求解数值的过程。
4.山区地貌图 在某山区(平面区域(0,2800)´(0,2400)内,单位:米)测得一些地点的高程(单位:米)如表7.3,试作出该山区的地貌图和等高线图。
表7.3
2400
2000
1600
1200
800
400
0
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
Y/X
0 400 800 1200 1600 2000 2400 2800
算法程序:
x=0:400:2800;
y=0:400:2400;
high=[1180 1320 1450 1420 1400 1300 700 900;
1230 1390 1500 1500 1400 900 1100 1060;
1270 1500 1200 1100 1350 1450 1200 1150;
1370 1500 1200 1100 1550 1600 1550 1380;
1460 1500 1550 1600 1550 1600 1600 1600;
1450 1480 1500 1550 1510 1430 1300 1200;
1430 1450 1470 1320 1280 1200 1080 940];
xi=0:50:2800;xi=xi';
yi=0:50:2800;
h=interp2(x,y,high,xi,yi,'cubic');
mesh(xi,yi,h)
xlabel('x');
ylabel('y');
zlabel('high');
运行结果:
图3:山区地貌图
经三维图翻转,可得等高线图
图4:山区等高线图
分析:熟悉了二维插值运用,了解了matlab在画三维图的优势。
三.总结与体会
1.由本次实验的联系,将理论与实践充分结合,学习和理解了matlab中插值问题的求解方法。
2.由应用问题的求解,体会到数学建模在实际问题中的运用非常广泛,充分掌握了插值求解相关问题,matlab的编程需要非常严谨,才能更快更好的得出结果。
3.matlab的学习完全基于对软件的不断联系。只有多上机练习,才能对相关知识熟悉,并灵活运用 。
教师签名
年 月 日
展开阅读全文