实验名称:人口模型
实验指导:
请先回顾教科书MATLAB作图、求解方程和拟合的相关内容;了解人口预报问题、掌握指数增长模型(马尔萨斯人口模型)和阻滞增长模型(Logistic模型);了解拟合的相关内容. 如:掌握使用help命令help lsqcurvefit;使用命令DSOLVE Symbolic solution of ordinary differential equations,格式为DSOLVE('eqn1','eqn2', ...),例子:
>> dsolve('Dx=a*x+x^2','t') % ans=a/(-1+exp(-a*t)*C1*a)
使用命令LSQCURVEFIT solves non-linear least squares problems.
格式为X=LSQCURVEFIT(FUN,X0,XDATA,YDATA),
例子:用函数F = x(1)*sin(xdata)+x(2)拟合下面的数据的程序为:
FUN can be specified using @:
xdata = [5;4;6]; % example xdata
ydata = 3*sin([5;4;6])+6; % example ydata
x = lsqcurvefit(@myfun, [2 7], xdata, ydata)
where MYFUN is a MATLAB function such as:
function F = myfun(x,xdata)
F = x(1)*sin(xdata)+x(2);
实验名称:MATLAB作图
实验指导:
在开始本实验之前, 请回顾教科书MATLAB作图的相关内容, 了解心型线、星型线、双纽线和四叶玫瑰线的图形的代数表达式子(心型线: ; 星型线: ; 双纽线: ; 四叶玫瑰线: )、掌握二维和三维作图以及熟悉图形处理中的相关内容. 如掌握polar和plot画图,subplot分割图形,熟悉title()函数显示图形名称.
实验名称:投资收益和风险
实验指导:
在开始本实验之前, 请回顾教科书MATLAB作图、求解线性规划的相关内容,如
模型:min z=cX
, ,VLB≤X≤VUB
应该使用命令:[1] x=linprog(c,A,b,Aeq,beq, VLB,VUB)
[2] x=linprog(c,A,b,Aeq,beq, VLB,VUB, X0)
实验名称:整数线性规划
实验指导:
在开始本实验之前, 请回顾教科书整数线性规划的相关内容,如:割平面法和分枝定界法,穷举法. 掌握使用软件包解决整数线性规划,如数学建模工具箱:lpint(f,G,h,lb,ub,x,n,id)%整数线性规划分枝定界法,可求解线性全整数或线性混合整数规划。
实验名称:微分方程模型
实验指导:
请先回顾教科书MATLAB作图、求解微分方程的相关内容,如欧拉法,龙格-库塔法、线性多步法等方法。 了解微分方程的定性分析,了解Volterra模型: 的实际背景,掌握用Matlab软件求常微分方程的数值解,格式为:
[t,x]=ode45(‘f’,ts,x0,options)
例子: ,变为一阶微分方程组:
建立m-文件vdp1000.m如下:
function dy=vdp1000(t,y)
dy=zeros(2,1); dy(1)=y(2); dy(2)=1000*(1-y(1)^2)*y(2)-y(1);
取t0=0,tf=3000,输入命令:
[T,Y]=ode45('vdp1000',[0 3000],[2 0]);plot(T,Y(:,1),'-')
实验名称:山区地貌
实验指导:
请回顾教科书插值的方法的相关内容, 如:最近邻点插值、双线性插值方法和双三次插值方法;掌握用Matlab解插值问题,格式为:z=interp2(x0,y0,z0,x,y,’method’)
插值方法
‘nearest’ 最邻近插值
‘linear’ 双线性插值
‘cubic’ 双三次插值
缺省时, 双线性插值
要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。
例子:
输入以下命令:
x=1:5;y=1:3;temps=[82 81 80 82 84;79 63 61 65 81;84 84 82 85 86];mesh(x,y,temps)
以平滑数据,在x、y方向上每隔0.2个单位的地方进行插值.再输入以下命令:
xi=1:0.2:5;yi=1:0.2:3;zi=interp2(x,y,temps,xi',yi,'cubic');mesh(xi,yi,zi)
实验名称:物资调运问题
实验指导:
掌握Lingo 软件的基本使用方法:(1) Lingo 入门 (2) 在Lingo 中使用集合 (3) 运算符和函数 (4) Lingo 的主要菜单命令。了解Lingo 的操作环境,Lingo 软件能求解的优化模型,熟悉Lingo中使用集合,运算符和函数的相关命令及主要的菜单命令。使用Lindo的一些注意事项
1. “>”与“>=”功能相同
2. 变量与系数间可有空格(甚至回车),但无运算符
3. 变量以字母开头,不能超过8个字符
4. 变量名不区分大小写(包括关键字)
5. 目标函数所在行是第一行,第二行起为约束条件
6. 行号自动产生或人为定义,以“)”结束
7. “!”后为注释。
8. 在模型任何地方都可以用“TITLE”对模型命名
9. 变量不能出现在一个约束条件的右端
10. 表达式中不接受括号和逗号等符号
11. 表达式应化简,如2x1+3x2-4x1应写成-2x1+3x2
12. 缺省假定所有变量非负,可在模型“END”语句后用“FREE name”将变量name的非负假定取消
13. 可在“END”后用“SUB”或“SLB”设定变量上下界。例如:“sub x1 10”表示“x1< ="10”
14. “END”后对0-1变量说明:INT n或INT name
15. “END”后对整数变量说明:GIN n或GIN name
掌握Lingo 软件用于求解优化模型: (1) 用 Lingo 求解背包问题,配对问题的0-1 规划模型;(2) 用 Lingo 求解配料问题的整数规划模型。掌握用Lingo 软件求解背包问题,配对问题等0-1 规划模型,求解配料问题等整数规划模型,熟悉典型的程序结构。
设置目的:本实验旨在训练学生建立较复杂问题的数学模型的能力,并理解最优化方法在解决实际问题中的重要作用。
- 实验要求:
- 建立所提问题的数学模型。
- 使用相关软件对模型求解。
- 分析所得方案的灵敏度并给出实际含义。
- 实验步骤:
- 提出合理假设、设计符号并建立模型。
- 熟悉相应软件,做好模型求解的准备工作。
- 上机计算并分析解的灵敏度及实际含义。
- 问题详述:
某公司有两个工厂,四个仓库,工厂单一生产某种产品,工厂和仓库均可向所辖的50个客户供货,由于经营需要,公司拟对仓库作适当变更,变更的内容是指:可对1号库扩容;可在已选定的地址上新建一个仓库;可关闭2号或3号仓库。公司不主张仓库的个数超过4个。由于向客户供货和仓库改建的运费均由公司负担,故需建模为公司选择方案。如果可能,应将所建成模型推广为适应于类似地更一般情形下的方案选择。
注:本实验所需的数据由任课教师在布置实验时给出。
本问题建模的重要技巧之一是0-1变量的引入,应由此提醒学生在建模中注意变量引入的技巧。另外,实际问题中的有些约束条件是由问题自身的属性所决定的,并不在问题的表达中明显表示出来,但它可能对模型的好坏起着重要作用。这提醒建模者在建模过程中要对问题作深入细致的分析。
实验:公路路线设计
- 设置目的: 训练学生运用插值方法处理数据并解决实际问题的能力。
- 实验要求:
- 给出题给数据所表示的地形的拟合曲面。
- 给出满足题目要求的全部结果。
- 将所做工作写成一篇论文。
- 实验步骤:
- 理解题目,熟悉数据。
- 拟定拟合曲面的运算方案。
- 建立设计公路线路的数学模型并求解。
- 写出论文并分组讨论。
- 问题详述:
要在一山区修建公路,首先测得一些地点的高程,数据见表2(平面区域粉 ,表中数据为坐标点的高程,单位:米)。数据显示:在 处有一东西走向的山峰;从坐标(2400,2400)到(4800,0)有一西北至东南走向的山谷;在(2000,2800)附近有一山口湖,其最高水位略高于1350米,雨季在山谷中形成一溪流。经调查知,雨量最大时溪流水面宽度 与溪流最深处的坐标 的关系可近似表示为
公路从山脚(0,800)开始,经居民点(4000,2000)至矿区(2000,4000)。已知路段工程成本及路线坡度 (上升高度与水平距离之比)的限制如表1。
- 试给出一种线路设计方案,包括原理、方法及比较精确的线路位置(含桥梁、隧道),并估计该方案的总成本。
- 如果居民点改为 的居民区,公路只须经过居民区即可,那么你的方案有什么改变。
表1
工程种类
|
一般路段
|
桥梁
|
隧道
|
工程成本
(元/米)
|
300
|
2000
|
1500(长度≤300米),3000(长度≥301米)
|
对坡度 的限制
|
<0 .125
|
=0
|
<0 .100
|
表2
x
y
|
0
|
400
|
800
|
1200
|
1600
|
2000
|
2400
|
2800
|
3200
|
3600
|
4000
|
4400
|
4800
|
5200
|
5600
|
0
|
370
|
470
|
550
|
600
|
670
|
690
|
670
|
620
|
580
|
450
|
400
|
300
|
100
|
150
|
250
|
400
|
510
|
620
|
730
|
800
|
850
|
870
|
850
|
780
|
720
|
650
|
500
|
200
|
300
|
350
|
320
|
800
|
650
|
760
|
880
|
970
|
1020
|
1050
|
1020
|
830
|
800
|
700
|
300
|
500
|
550
|
480
|
350
|
1200
|
740
|
880
|
1080
|
1130
|
1250
|
1280
|
1230
|
1040
|
900
|
500
|
700
|
780
|
750
|
650
|
550
|
1600
|
830
|
980
|
1180
|
1320
|
1450
|
1420
|
1400
|
1300
|
700
|
900
|
850
|
840
|
380
|
780
|
750
|
2000
|
880
|
1060
|
1230
|
1390
|
1500
|
1500
|
1400
|
900
|
1100
|
1060
|
950
|
870
|
900
|
930
|
950
|
2400
|
910
|
1090
|
1270
|
1500
|
1200
|
1100
|
1350
|
1450
|
1200
|
1150
|
1010
|
880
|
1000
|
1050
|
1100
|
2800
|
950
|
1190
|
1370
|
1500
|
1200
|
1100
|
1550
|
1600
|
1550
|
1380
|
1070
|
900
|
1050
|
1150
|
1200
|
3200
|
1430
|
1450
|
1460
|
1500
|
1550
|
1600
|
1550
|
1600
|
1600
|
1600
|
1550
|
1500
|
1500
|
1550
|
1550
|
3600
|
1420
|
1430
|
1450
|
1480
|
1500
|
1550
|
1510
|
1430
|
1300
|
1200
|
980
|
850
|
750
|
550
|
500
|
4000
|
1380
|
1410
|
1430
|
1450
|
1470
|
1320
|
1280
|
1200
|
1080
|
940
|
780
|
620
|
460
|
370
|
350
|
4400
|
1370
|
1390
|
1410
|
1430
|
1440
|
1140
|
1110
|
1050
|
950
|
820
|
690
|
540
|
380
|
300
|
210
|
4800
|
1350
|
1370
|
1390
|
1400
|
1410
|
960
|
940
|
880
|
800
|
690
|
570
|
430
|
290
|
210
|
150
|
- 实验总结:关注数学知识灵活运用和综合分析并解决总是的能力。
实验名称:最短路问题
实验目的:
1. 熟悉图论的基本概念和定理;
2. 掌握最短路的两种算法: Dijkstra算法和Floy算法;
3.了解多阶段决策问题化为最短路问题的技巧.
实验准备:
请回顾教科书最短路的相关内容, 了解Dijkstra算法和Floy算法. 掌握使用软件包解决最短路问题. 图与网络论中求最短路径的Dijkstra算法 M-函数格式 [S,D]=minroute(i,m,W)
i为最短路径的起始点,m为图顶点数,W为图的带权邻接矩阵,不构成边的两顶点之间的权用inf表示。显示结果为:S的每一列从上到下记录了从始点到终点的最短路径所经顶点的序号; D是一行向量,记录了S中所示路径的大小;
例如
clear;w=inf*ones(6);w(1,3)=10;w(1,5)=30;w(1,6)=100;
w(2,3)=5;w(3,4)=50;w(4,6)=10;w(5,4)=20;w(5,6)=60;
i=1;[s,d]=minroute(i,6,w)
实验总结:更好地掌握应用图论中最短路的算法解决实际问题技巧,加深对数据建模的步骤、方法和数学应用的理解,提高自己的动手能力和解决实际问题的能力。