数学建模训练实验指导书

发布 2023-05-17 21:39:28 阅读 5209

数学建模课题组。

目录。第1部分必修实验内容 i

实验一 lindo软件的使用

实验二线性规划数学模型求解

实验三灵敏度分析

实验四求解整数规划

实验五求解目标规划

实验六求解二次规划

第2部分参考实验内容 ii

实验一 excel**的使用

实验二在excel电子**中建立线性规划模型

实验三在excel电子**中优化线性规划模型

实验四优化结果及灵敏度分析

实验五其他规划模型的excel求解方法

实验一 lindo软件的使用。

实验目的:通过实验使学生进一步掌握运筹学有关方法的原理、方法和求解过程,加深对运筹学的有关理论、方法的理解,提高学生的分析问题和解决问题的能力,以及实际动手能力。要求学生掌握运筹学有关方法的原理和步骤,能熟练地使用运筹学lindo软件。

实验步骤:实验主要采用开放实验教学模式。学生实验前预习相关内容,明确实验目的和实验步骤,由任课教师讲解实验的基本原理、方法及要求;实验课由教师演示、学生动手操作;学生上机按教师安排的试题完成实验内容。

1、实验介绍。

lindo是一种专门用于求解线性规划的著名计算软件包,其版权由美国lindo系统公司(lindo system inc)所拥有。lindo软件包的特点是程序执行速度快,易于输入、输出、求解和分析一个线性规划问题,还可以求解整数规划、二次规划等问题,在教育、科研和工农业生产中得到了广泛的应用。lindo演示版与发行版的主要区别是解决问题的规模不同。

lindo 6.1的演示版就可处理规模不超过300个变量150个约束的线性规划问题,也可以处理最多不超过50个变量的整数规划问题。

2、进入界面。

进入lindo后。系统在屏幕的下方打开一个编辑窗口,其默认标题是“untitled”,就是无标题的意思。屏幕的最上方有[file]、[edit]、[solve]、[reports]、[window]、[help]六个菜单,除[solve]和[reports]菜单外,其他功能与一般windows菜单大致相同。

而【solve】和【reports】菜单的功能很丰富,这里只对其最简单常用的命令作一简单的解释。

solve】菜单【solve】子菜单,用于求解在当前编辑窗口中的模型,该命令也可以不通过菜单而改用快捷键ctrl+s或用快捷按钮来执行。

compile model】子菜单,用于编译在当前编辑窗口中的模型,该命令也可以改用快捷键。trl+。或用快捷按钮来执行。

lindo求解一个模型时,总是要将其编译成lindo所能处理的程序而进行,这一般由lindo自动进行,但有时用户需要先将模型编译一下查对是否有错,则用到此命令。

【debug】子菜单,如果当前模型有无界解或无可行解时,该命令可用来调试当前编辑窗口中的模型。该命令也可以改用快捷键ctrl + d来执行。

【pivot】子菜单,对当前编辑窗口中的模型执行单纯形法的一次迭代,该命令也可以改用快捷键ctrl + n来执行。利用该命令,可以对模型一步步求解,以便观察中间的过程。

【preemptive goal】子菜单,用来处理具有不同优先权的多个目标函数的线性规划或整数规划问题,该命令也可以改用快捷键ctrl + g来执行。利用该命令,可以求解目标规划。

【reports】菜单。

solution子菜单,在报告窗口中建立一个关于当前编辑窗口中的模型的解的报告,该命令也可以改用快捷键。ctrl + o或快捷按钮来执行。lindo在求解一个模型时默认状态下是产生其解的报告的,但如果用户事先在edit菜单下option子菜单中将输出改为简洁方式(terse mode),则系统就会将解的报告省略。

此时,要输出解的报告就用到solution子菜单。

tableau子菜单,在输出窗口中显示模型的当前单纯形表,该命令也可以改用快捷键alt+7来执行。该命令与pivot命令结合使用,可得到单纯形法求解线性规划的详细过程。

在菜单的下方,是一排快捷按钮,分别对应一些常用的操作。从左到右,第一组的五个按钮依次对应[file]菜单中的new、open、view、s**e和print五个命令,第二组的八个按钮依次对应【edit】菜单中的cut、copy、paste、find/replace、option…、go to line…、paste symbol…和clear all八个命令,第三组的两个按钮依次对应[solve]菜单中的solve和comple model两个命令,第四组的三个按钮依次对应[reports]菜单中的solution、peruse…和picture…三个命令,第五组的三个按钮依次对应【window】菜单中的send to back、tile和close all三个命令,最后一组的两个按钮中左边的对应【help】菜单中的contents命令而右边的则是联机帮助按钮。

实验二线性规划数学模型求解。

实验目的:用lindo求解数学模型。

实验步骤:1.输入一个模型。

我们以下列模型作为例子,来讲解其输入和计算的方法。该例的模型是。

如果是刚打开lindo系统,则它的一个空白的编辑窗口已经打开,其标题为“untitled”,我们要在这个窗口中输入模型。如果没有找到该窗口,或者需要新开一个编辑窗口,则可以通过【file】菜单下的子菜单匡new或快捷键f2或快捷按钮来创建一个空白的编辑窗口。

用户可以将下面的例子按以下方式输入到编辑窗口中:

这里,第一行是目标函数,根据具体问题的要求可以是max或min;第二行的“st”表示以下是约束条件,“st”也可写成“subject to”或“等;接下来的三行是约束条件,最后一行的“end”通知lindo模型结束。

模型输入须注意以下几点:

①目标函数必须放在模型的开始,以max或min开头,只需输入目标函数体(变量及其系数),而不需要写“z=…”

②lindo不区分字母的大小写;

变量名应为不超过8个字符的字符串,第一个字符必须是字母,其后可以是字母、数字等字符,但不能包括空格、逗号、“+一”、“等运算符;

变量的系数放在变量之前,与变量之间可以有空格,但不能有算符,如“*”等;

⑤系数和右端常数中不能有分隔符出现,如2000不允许写成2,000或2 000等;

⑥lindo可接受的运算符有“+”和“>”四种,其优先顺序是从左到右,不接受括号等标志优先顺序的算符,因此输入的式子必须事先经过化简,也不允许出现类似于“3xi+2x2-xl>6”的式子;

⑦只有变量及其系数能够出现在目标函数中和约束条件的左端,而只有常数能够出现在约束条件的右端;

⑧系统默认变量为非负的,因此非负的变量无需再加标识;

⑨约束条件中的“≤”和“≥”分别用“<”和“>”代替,用户也可以写成为“<=和“>=

⑩如果模型中的目标函数或约束条件较长而一行容纳不下的话,lindo允许换行,除在变量名中间及系数和常数中间外,其他位置均可插入enter键而换行。

此外,lindo允许在输入的模型中插入注释。在用户需要插入注释的位置,先插入一个“!”通知lindo其后是注释,lindo将把该行“!”右侧的所有字符当作注释。

在lindo中我们还可以为约束命名,约束名要放在相应约束的左侧,名字结束后以右括号“)”标识,如车床台时限制) x1+3x2<18

给约束命名可以增加lindo输出的可读性。如果用户在输入模型时没给约束命名,lindo在结果输出时将自动给第。

一、二、…个约束条件命名(其实是编号)为、…lindo总是把目标函数编号为l)。

2.模型的求解。

在输入完成之后,就可以利用【solve】菜单下的solve子菜单或快捷键ctrl+s或快捷按钮回进行求解。执行该命令后,系统进行计算,然后出现对话框,询问是否要做灵敏度分析(do range analysis?),这里我们不作,选择no ,系统然后会给出一个计算情况报告,包括解的状况、迭代次数、是否不可行、目标值、所用时间等,其余的条目我们可不关心。

关闭此对话框后,可通过windows菜单将reports window调至前台,lindo已将计算结果信息记录在该窗口中。本例题的输出结果是:

循环次数=2。

其中,“reduced cost(减缩**)”一一给出单纯形表中的目标函数中变量的系数(max型问题,也就是检验数),其中基变量的reduced cost值应为0,对于非基变量,相应的reduced cost值表示当该非基变量增加一个单位时目标函数减少的量。本例中此值均为0。

reports window最多可存储64000个字符信息。超出该限制,lindo会自动删除前期信息,以为新信息开辟存放空间。如果用户需要将该窗口中较长的解信息完全存储起来,可通过file菜单的队。

[log output]命令为输出结果打开一个磁盘文件,这样reports window窗口中所有信息均可储存在磁盘文件中。该文件为txt文本格式,可用[flle]菜单的[view]命令或快捷按钮打开阅读或用一般的文本阅读器如notebook或word等阅读并编辑。

实验三灵敏度分析。

实验目的:用lindo进行灵敏度分析。

实验步骤:作灵敏度分析的方法有两种。一种是在求解模型之后,系统询问是否要做灵敏度分析(do rangeanalysis?

) 时,我们选择yes。另一种是用[reports]菜单的[range]子菜单,效果相同。

1.灵敏度分析。

当用户要求系统作灵敏度分析后,系统会在reports窗口中输出有关结果。对我们的例子,其结果是:

大意是:最优基不变的范围。

2.其它优化模型的表述。

lindo还可以用来处理其他几种优化模型,如整数规划、0-1规划、二次规划等。这里仅就几种有关线性规划的部分决策变量受到某种限制情况下的处理方法进行介绍。其方法是在输入模型的正常约束条件之后,在“end”后增加一定的表述。

有:free vary—表示变量vary不受限制,可取任意实数值。

gin vary—表示变量vary只取非负整数值,用以求解整数规划或混合整数规划。

int vary—表示变量vary等只能取值0或1,用以求解0-1整数规划。

slb vary value—表示变量vary以value为下界。

sub vary value—表示变量vary以value为上界。

上述在命令后加变量名的说明方式,每行只说明一个变量。如果问题有多个同种类型的变量需要说明,可以重复使用上述命令。如果要在一行中说明多个变量,也可采用命令后加数字的方式,如。

free m—表示问题的前m个变量为自由变量,当然要求用户在建立问题的模型时要将自由变量放在问题的前面。类似地,可用gin m一一表示问题的前m个变量要求取整数值,int m一一表示问题的前m个变量是0-1变量。

title model name一一将输入的模型命名为model name。它既可以放在“end”之后,又可以放在目标函数之前的一行,是惟一可以放在目标函数之前的东西。

实验四求解整数规划。

实验目的:用lindo求解整数规划。

数学建模实验指导书一

实验。一 数学规划模型实验。学时 4学时。实验类型 验证。一 实验目的 1 归纳和学习求解数学规划模型的基本原理和方法 2 掌握学会用软件求解数学规划问题及观察解的形态和进行解的定性分析 3 熟悉lingo软件关于数学规划模型求解的各种命令 4 通过范例学习建立数学规划方面的数学模型以及求解全过程 ...

《数学建模与数学实验》实验指导书

谢建宏编。软件与通信工程学院。2011年2月。实验1 matlab程序设计与作图 1 实验2 线性规划建模实验 3 实验3 无约束 非线性优化建模实验 5 实验4 数学建模与数学实验 谢建宏编。软件与通信工程学院。2011年2月。一 实验目的。熟悉matlab软件的用户环境 了解matlab软件的一...

数学建模课程设计指导书

课程名称 数学建模 课程设计时间 一周。开课学期 第四学期。课程设计目的 通过对 数学建模 的学习,使学生初步了解数学建模的过程与思想。在课程结束后,进行课程设计其目的是培养学生综合运用所学知识和技能 独立分析和解决问题的能力,提高学生的数学修养与素质,增强学生学习的兴趣,加强学生的科学研究的训练 ...