1、资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。景德镇陶瓷学院内部教材数学建模实验指导书 编者: 邱望仁景德镇陶瓷学院信息工程学院数学教研室 .2目 录实验项目一 数学软件有关知识与操作4实验1 Mathematica的安装、 启动、 退出、 符号运算和数值计算4实验2 Mathematica自定义函数和二维作图6实验3 Lindo和Lingo软件基本操作及应用9实验4 Matlab环境的熟悉与基本运算12实验5 Matlab数值及符号运算14实验6 Matlab语言的程序设计16实验7 Matlab的图形绘制17实验项目二 模型的了解与初等模型的验证19实验项目三 线性规划模型
2、20实验项目四 微分方程模型22实验1 求解及导弹追踪问题22实验2 正规战与游击战模型24实验项目五 综合性实验26实验1 投篮角度的问题26实验2 人口问题模型27备选综合题30备选题1 发现黄球并定位30备选题2 实用下料问题30备选题3 售后服务数据的运用33备选题4 研究生录取问题35备选题5 仓库容量有限条件下的随机存贮管理38备选题6 城市交通管理中的出租车规划41备选题8 学生面试问题45备选题9 邮政运输网络中的邮路规划和邮车调度46备选题10 建立食品卫生安全保障体系数学模型及改进模型的若干理论问题56备选题11 特殊工件磨削加工的数学建模59备选题12 空洞探测62备选题
3、13 钢管订购和运输63备选题14 飞越北极65备选题15 DNA序列分类66备选题16 基金使用计划68备选题17 公交车调度68备选题18 车灯线光源的计算71备选题19 赛程安排71备选题20 彩票中的数学72备选题21 SARS的传播74备选题22 露天矿生产的车辆安排81备选题23 公务员招聘84备选题24 电力市场的输电阻塞管理85备选题25 饮酒驾车90备选题26 易拉罐形状和尺寸的最优设计91备选题27 手机”套餐”优惠几何92备选题28 高等教育学费标准探讨99备选题29 地面搜索99备选题30 会议筹备100备选题31 卫星和飞船的跟踪测控104备选题32 眼科病床的合理安
4、排105备选题33 上海世博会影响力的定量评估120备选题34 输油管的布置120备选题35 天然肠衣搭配问题121备选题36 机器人避障问题122实验项目一 数学软件有关知识与操作实验1 Mathematica的安装、 启动、 退出、 符号运算和数值计算一、 实验目的1、 会安装、 启动、 退出Mathematica系统2、 熟悉Mathematica系统的符号运算和数值计算二、 实验要求 熟悉Mathematica系统的运行环境、 掌握该系统的一些基本符号运算与数值计算。三、 实验内容1、 启动方法:a、 点击开始菜单条的程序, 再点击Mathematica3.0菜单条中的Mathemat
5、ica3.0b 、 点击开始菜单条的程序, 再点击windows资源管理器, 最后选择c:ProgramFileSwolframResearchMathematic3.0mathematica.exe2、 退出 只需点击系统菜单条右上角的关闭按钮或点击系统菜单条的File菜单条中的Exit项。3、 Mathematica3.0系统的输入、 执行, 都在Notebook窗口中进行。 4、 数的计算a、 整数和整数的计算例 键入: 3+9,3*9,39按shift+enter, 则运行有如下结果: 12, 27, 19683b、 有理数的计算和浮点数例( 请上机比较结果) 键入: 3/9, 1/3
6、, N1/3 ( N为取近似值命令) ,N1/3,105、 Mathematica的数学常数Pi( 圆周率) 、 自然对数的底E和常见数学函数: 三角函数( 如Sinx) 和对数(Logx)等例 键入: Pi, SinPi/2, NLog10,2, LogE6、 基本表示式变换的操作命令Expand( 展开) 、 Factor( 因子分解) 、 Simplify( 化简) 、 Apart( 分项) 、 Cancel( 约分) 等例 键入:Simplify3/9运行得: 1/37、 微积分运算例键入: LimitSinx/x,x-0 ( 求极限) Dx4+3*x2-5,x (对x求导数)Inte
7、gratex2+3*x+6,x (求不定积分)Integratex*Sinx,x,0,1 (求定积分)8、 级数展开例 键入: SeriesSinx,x,0,10运行得: 9、 求和、 求积例 键入: Sumn2,n,1,10( 求平方和) 运行得: 385键入: Productn2,n,1,10( 求平方积) 运行得: 00010、 表的生成及取表元素例 键入: Tablen2,n,1,10( 表的生成) 运行得: 1,4,9,16,25,36,49,64,81,100键入: %4( 取表元素) 运行得: 1611、 方程的求解命令: Solve, NSolve, FindRoot 例 键入
8、: Solvex2-4=0,x ( 解代数方程) DSolve=x*yx,yx,x ( 解微分方程) NSolvex2-3=0,x ( 求代数方程的近似解) FindRootx4-x3-6*x2+2= =0,x,0.5( 找代数方程的根) 12、 线性代数: a=1,2,3,4, b=1,4,9,16键入: a=1,2,3,4 b=1,4,9,16实验2 Mathematica自定义函数和二维作图一、 实验目的1、 掌握Mathematica函数的自定义2、 了解Mathematica的二维作图功能 3、 会利用Mathematica作一元函数的图形二、 实验要求 掌握Mathematica函
9、数的定义及Mathematica的作图的一些基本命令; 能独立地运用命令作图三、 实验内容1、 函数2、 二维图1) 、 基本二维图Plot表示式,变量,下限,上限例2) 、 二维参数图ParametricPlotx(t),y(t),t,上限,下限例3、 绘出函数 的图形, 并由此观察的最大值的近似值.键入: Clearf,x 键入: Plotfx,x,0,10,PlotRange-0,2,Gridlines-Automatic键入: 运行结果为键入: Plotfx,x,2,4,PlotRange-Sqrt2,1.5,GridLines-Automatic4、 绘出函数f(x)=的图形。键入:
10、 Clearf Clearxfx_:=2x6+3x5+3x3-2x2 Plot,x,-5,5键入: Plot,x,-3,2键入: Plot,x,-2,1 键入: Plot,x,-0.2,0.5键入: Plot键入: Plot,x,-0.6,0.6运行得结果,请画出以上各图。下面是关于矩阵的运算方法四、 注意事项1、 Mathematic系统的算术运算符加减乘除乘方分别用”+”、 ”-”、 ”*”, ”/”、 ”来表示2、 表示乘的”*”可用空格来表示3、 数学常数、 函数及系统内部命令的第一个字母需大写4、 下标变量可用x1取代5、 当函数表示式不能求导时,需提供函数值取不同符号的两个初始值的
11、点6、 矩阵的乘号不能用”*”而只能用”.”五、 练习1、 令a=6, b=7, 计算2、 计算tan, arctan1, 3、 比较Sqrt2与NSqrt2有什么不同4、 对表示式进行因式分解5、 对表示式进行约分6、 求的值7、 生成1到100中偶数的表8、 求方程的解9、 y=sin50x,显示区域分别取作(1) -12, 12-1.5,1.5; (2) -9, 9-1.5,1.5; (3) -1, 1-1.5,1.5; (4) -0.25, 0.25-1.5,1.5;10、 安全过河问题实验3 Lindo和Lingo软件基本操作及应用一、 实验目的: 学会运用Lindo和Lingo软件
12、求解线性规划和非线性规划二、 实验要求 掌握Lindo和Lingo软件求解线性规划和非线性规划的方法三、 实验内容: 具体的内容(包过过程和结果)参见课本4.2,4.4,4.5MIN 100 XMON + 100 XTUE + 100 XWED + 100 XTHU + 100 XFRI + 100 XSAT + 100 XSUN SUBJECT TO SUN) XWED + XTHU + XFRI + XSAT + XSUN = 18 MON) XMON + XTHU + XFRI + XSAT + XSUN = 16 TUE) XMON + XTUE + XFRI + XSAT + XSU
13、N = 15 WED) XMON + XTUE + XWED + XSAT + XSUN = 16 THU) XMON + XTUE + XWED + XTHU + XSUN = 19 FRI) XMON + XTUE + XWED + XTHU + XFRI = 14 SAT) XTUE + XWED + XTHU + XFRI + XSAT = 12 ENDLP OPTIMUM FOUND AT STEP 7 OBJECTIVE FUNCTION VALUE 1) 2200.000 VARIABLE VALUE REDUCED COST XMON 2.000000 0.000000 XTU
14、E 2.000000 0.000000 XWED 4.000000 0.000000 XTHU 3.000000 0.000000 XFRI 3.000000 0.000000 XSAT 0.000000 0.000000 XSUN 8.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES SUN) 0.000000 -20.000000 MON) 0.000000 -20.000000 TUE) 0.000000 -20.000000 WED) 0.000000 -20.000000 THU) 0.000000 -20.000000 FRI) 0.
15、000000 -20.000000 SAT) 0.000000 -20.000000 NO. ITERATIONS= 7 RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE XMON 100.000000 50.000000 33.333332 XTUE 100.000000 50.000000 33.333332 XWED 100.000000 50.000000 33.333332 XTHU 100
16、.000000 50.000000 33.333332 XFRI 100.000000 50.000000 33.333332 XSAT 100.000000 50.000000 33.333332 XSUN 100.000000 50.000000 33.333332 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE SUN 18.000000 0.000000 5.000000 MON 16.000000 5.000000 0.000000 TUE 15.000000 0.000000 3
17、.333333 WED 16.000000 5.000000 0.000000 THU 19.000000 0.000000 3.333333 FRI 14.000000 0.000000 3.333333SAT 12.000000 5.000000 0.000000MAX 29970 P1T1 + 29970 P1T2 + 29910 P2T1 + 29910 P2T2 - 1000 I1T1 - 1000 I1T2 - 1000 I2T1 - 1000 I2T2 - 1200 E1T1 - 1200 E1T2 - 1200 E2T1 - 1200 E2T2 - 20 C1T1 - 20 C
18、1T2 - 20 C2T1 - 20 C2T2 - 3000 NDT1 - 3000 NDT2 - 20 R1T1 - 20 R1T2 - 20 R2T1 - 20 R2T2 - 300 N1T1 - 300 N1T2 - 300 N2T1 - 300 N2T2 SUBJECT TO 2) P1T1 + P2T1 - NDT1 = 130 3) P1T2 + P2T2 - NDT2 = 190 4) 900 B1T1 + 90 T1T1 = 80000 5) 900 B1T2 + 90 T1T2 = 80000 6) 600 B2T1 + 60 T2T1 = 70000 7) 600 B2T2
19、 + 60 T2T2 = 70000 8) I1T1 + I2T1 = 1000 9) I1T2 + I2T2 = 15 C2) XWH1C2 + XWH2C2 + XWH3C2 = 17 C3) XWH1C3 + XWH2C3 + XWH3C3 = 22 C4) XWH1C4 + XWH2C4 + XWH3C4 = 12! Supply constraints: WH1) XWH1C1 + XWH1C2 + XWH1C3 + XWH1C4 = 30 WH2) XWH2C1 + XWH2C2 + XWH2C3 + XWH2C4 = 25 WH3) XWH3C1 + XWH3C2 + XWH3C
20、3 + XWH3C4 = 888; VOLUME h*d*w = 1512;! These two enforce aesthetics; NOTNARRO h/w = .518;! Marketing requires a small footprint; FOOTPRNT d*w = 252;END实验4 Matlab环境的熟悉与基本运算 一、 实验目的: 1熟悉MATLAB开发环境2掌握矩阵、 变量、 表示式的各种基本运算二、 实验要求: 熟悉Matlab的基本界面和功能三、 实验内容: 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、 命令历史窗口、 帮助信息浏览器、 工作空间
21、浏览器文件和搜索路径浏览器。2.掌握MATLAB常见命令clc 清除命令窗口中内容clear 清除工作空间中变量help 对所选函数的功能、 调用格式及相关函数给出说明lookfor 查找具有某种功能的函数但却不知道该函数的准确名称who查询工作空间中的变量信息3.MATLAB变量与运算符变量命名规则如下: ( 1) 变量名能够由英语字母、 数字和下划线组成( 2) 变量名应以英文字母开头( 3) 长度不大于31个( 4) 区分大小写4.矩阵元素的选取5.MATLAB的基本运算6.MATLAB的常见函数四、 练习( 1) help rand, 然后随机生成一个26的数组, 观察command
22、window、 command history和workspace等窗口的变化结果。( 2) 学习使用clc、 clear, 了解其功能和作用。( 3) 输入C=1:2:20, 则C( i) 表示什么? 其中i=1,2,3,10。( 4) 输入A=7 1 5; 2 5 6; 3 1 5, B=1 1 1; 2 2 2; 3 3 3, 在命令窗口中执行下列表示式, 掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A2 A.2 B/A B./A( 5) 二维数组的创立和寻访, 创立一个二维数
23、组( 48) A, 查询数组A第2行、 第3列的元素, 查询数组A第2行的所有元素, 查询数组A第6列的所有元素。( 6) 两种运算指令形式和实质内涵的比较。设有3个二维数组A24, B24, C22, 写出所有由2个数组参与的合法的数组运算和矩阵指令。( 7) 学习使用表8列的常见函数( 经过help方法) ( 8) 学习使用表9数组操作函数。 实验5 Matlab数值及符号运算一、 实验目的与要求: 1、 了解伴随矩阵、 稀疏矩阵、 魔方矩阵、 对角矩阵、 范德蒙等矩阵的创立, 掌握矩阵的基本运算2、 掌握矩阵的数组运算3、 掌握多项式的基本运算4、 会求解代数方程5、 掌握创立符号表示式
24、和矩阵的方法6、 掌握符号表示式的微分和积分运算二、 实验内容: 1、 创立矩阵的方法: 直接输入法; 用matlab函数创立矩阵2、 矩阵运算: 4、 多项式运算 5、 代数方程组求解6、 复数运算7、 符号矩阵的创立8、 符号矩阵的修改9、 符号矩阵与数值矩阵的转换10、 符号微积分与积分变换11、 符号代数方程求解12、 符号微分方程求解 四、 练习: 1、 生成一个3行3列的随机矩阵, 并逆时针旋转90, 左右翻转, 上下翻转。2、 已知a=1 2 3, b=4 5 6, 求a.b和a./ b3、 数组和矩阵有何不同? 4、 已知a=1 2 3;4 5 6;7 8 0, 求其特征多项式
25、并求其根。5、 已知多项式a(x)=x2+2x+3, b(x)=4x2+5x+6, 求a, b的积并微分。6、 求解方程 1) 2) 7、 用两种方法创立符号矩阵, A = a, 2*b 3*a, 0 8、 计算二重不定积分9、 对符号方程f = ax2+bx+c 求解。1) 对x求解, 2) 对a求解。10、 求解微分方程。实验6 Matlab语言的程序设计一、 实验目的与要求: 1、 熟悉MATLAB程序编辑与设计环境2、 掌握各种编程语句语法规则及程序设计方法 3、 函数文件的编写和设计 4、 了解和熟悉跨空间变量传递和赋值 二、 实验基本知识: 1、 程序流程控制语句 for循环结构w
26、hile 循环结构 if-else-end分支结构2、 函数文件的结构和编写方法 三、 练习: 1) 熟悉MATLAB程序编辑与设计环境2) 用for循环语句实现求1100的和。3) 用for循环语句实现编写一个求n阶乘的函数文件。4) 编写求解方程的根的函数( 这个方程不一定为一元二次方程, 因的不同取值而定) , 这里应根据的不同取值分别处理, 有输入参数提示, 当时应提示”为恒不等式!”。并输入几组典型值加以检验。5) 输入一个百分制成绩, 要求输出成绩等级A+、 A、 B、 C、 D、 E。其中100分为A+, 90分99分为A, 80分89分为B, 70分79分为C, 60分69分为
27、D, 60分以下为E。6) 利用for循环语句编写计算n!的函数程序, 取n分别为-89、 0、 3、 5、 10验证其正确性(输入n为负数时输出出错信息)。7) Fibonacci数组的元素满足Fibonacci规则: , ; 且。现要求该数组中第一个大于10000的元素。实验7 Matlab的图形绘制 一、 实验目的与要求: 1、 学习MATLAB图形绘制的基本方法; 2、 熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3、 熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面, 并添加图形的各种标注; 4、 掌握plot、 subplot的指令格式和语法。二、 实验内容 1 二维
28、数据曲线图1.1 绘制单根二维曲线1.2 绘制多根二维曲线1.3 设置曲线样式1.4 图形标注与坐标控制1.5 图形的可视化编辑1.6 对函数自适应采样的绘图函数1.7 图形窗口的分割2 其它二维图形2.1 其它坐标系下的二维数据曲线图2.2 二维统计分析图3 隐函数绘图4 三维图形5 图形修饰处理6 图像处理与动画制作三、 练习【1】二维曲线绘图基本指令演示。本例运作后, 再试验plot(t), plot(Y), plot(Y,t) , 以观察产生图形的不同。【2】用图形表示连续调制波形Y=sin(t)sin(9t) 及其包络线。【3】在一个图形窗口绘制正弦和余弦曲线, 要求给图形加标题”正
29、弦和余弦曲线”, X轴Y轴分别标注为”时间t”和”正弦、 余弦”, 在图形的某个位置标注”sin(t)”cos(t)”, 并加图例, 显示网格, 坐标为正方形坐标系。【4】绘制向量x=1 3 0.5 2.5 2的饼形图, 并把3对应的部分分离出来。【5】绘制参数方程x=t,y=sin(t),z=cos(t)在t=0 7区间的三维曲线。【6】用hold on命令在同一个窗口绘制曲线y=sin(t), y1=sin(t+0.25)y2=sin(t+0.5), 其中t=0 10。【7】观察各种轴控制指令的影响。演示采用长轴为3.25, 短轴为1.15的椭圆。注意: 采用多子图表现时, 图形形状不但受
30、”控制指令”影响, 而且受整个图面”宽高比”及”子图数目”的影响。实验项目二 模型的了解与初等模型的验证一、 实验目的: 了解数学模型的基本概念和分类; 了解数学建模课程的意义; 了解数学建模竞赛的相关内容; 验证商人过河模型。二、 实验要求掌握数学建模的基本概念和基本内容, 掌握数学建模的基本过程, 会用数学软件验证商人过河模型。三、 实验内容1、 经过网络学习数学建模的基本概念和基本内容; 2、 利用网络了解数学建模课程的意义; 3、 利用网络了解大学生数学建模竞赛的相关内容; 4、 应用已经掌握的数学软件或编程软件, 求解商人过河模型。实验项目三 线性规划模型一、 实验目的: 学会运用M
31、athematica、 Lindo和Lingo或matlab软件求解线性规划和非线性规划、 整数规划等数学模型二、 实验要求掌握Mathematica、 Lindo和Lingo或matlab软件求解线性规划和非线性规划的方法, 并能用这些工具解决数学问题。三、 练习 运用lindo 、 lingo求解下列线性规划、 非线性规划问题1、 max 72x1+64x2st x1+x250 12x1+8x2480 3x1100 end2min 160x11+130x12+220x13+170x14+140x21+130x22+190x23+150x24+190x31+200x32+230x33stx1
32、1+x12+x13+x14=50x21+x22+x23+x24=60x31+x32+x33=50x11+x21+x31=30x12+x22+x32=70x13+x23+x33=10x14+x24=10end3. 练习在课本中的问题8小时 获利16元/公斤 获利24元/公斤 1桶原料牛奶 或12小时 4公斤A2 3公斤A1 例1 加工奶制品的生产计划问题: 额定每天买进50原料桶牛奶, 工厂每天的加工能力有限: 时间480小时至多加工100公斤A1 制订生产计划, 使每天获利最大? 例2 奶制品的生产销售计划 (在例1基础上深加工)8小时 获利16元/公斤 获利24元/公斤 1桶原料牛奶 或12
33、小时 4公斤A2 3公斤A1 0.8千克B12小时,3元1千克获利44元/千克 0.75千克B22小时,3元1千克获利32元/千克 问题: 额定每天买进50原料桶牛奶, 工厂每天的加工能力有限: 时间480小时至多加工100公斤A1 制订生产计划, 使每天获利最大? 附加问题: 30元可增加1桶牛奶, 3元可增加1小时时间, 应否投资? 现投资150元, 可赚回多少? B1, B2的获利经常有10%的波动, 对计划有无影响? 例3 三个货舱最大载重(吨),最大容积(米3) 飞机平衡三个货舱中实际载重必须与其最大载重成比例 重量( 吨) 空间(米3/吨) 后仓: 8; 5300中仓: 16; 8
34、700前仓: 10; 6800利润( 元/吨) 货物1184803100货物2156503800货物3235803500货物4123902850例4 汽车厂生产计划 汽车厂生产三种类型的汽车, 已知各类型每辆车对钢材、 劳动时间的需求, 利润及工厂每月的现有量。 制订月生产计划, 使工厂的利润最大。小型中型大型现有量钢材( 吨) 1535600劳动时间( 小时) 28025040060000利润( 万元) 234实验项目四 微分方程模型实验1 求解及导弹追踪问题一、 实验目的: 学会运用Mathematica软件求解简单的微分方程, 并会运用Mathematica软件求微分方程的数值解。二、
35、实验要求1、 熟悉掌握微分方程的求解2、 会运用Mathematica软件求微分方程的数值解。3、 会运用Mathematica软件做简单的编程三、 实验内容: 1 微分方程精确解( 1) 求解微分方程DSolvex x+x3,yx,x求得微分方程的解为: t=Tablec+(1/2)*x2+(1/4)*x4,c,-3,3;PlotEvaluatet,x,-1.5,1.5运行得积分曲线。(2) 求解微分方程, 并作出其积分曲线。DSolvex-2*yx/(x+1)=(x+1)(5/2),yx,x运行后得微分方程的解为: t=Table( x+1) 2*(2(x+1)(3/2)/3+c),c,-
36、3,3,2;PlotEvaluatet,x,-1,2运行后得积分曲线。2. 微分方程的数值解 在区间1, 4上求出微分方程, 的数值解, 并作出数值解的图形。Clearf,xsol=NDSolvexx-x2yxSinx+1=0,y1=1,yx,x,1,4 运行后得数值解。fx_:=Evaluateyx/.solPlotfx,x,1,4,PlotRange-All 运行得图形。3操作训练 在区间0, 0.5上求出微分方程, 的数值解, 并作出数值解的图形。Clearf,x,solsol=NDSolvex-yxTanx=Secx,y0=0,yx,x,0,0.5运行后得数值解并储存在变量sol中。fx_:=Evaluateyx/. solPlotf