数学建模常用软件选讲
第3章 lingo的使用
LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等,功能十分强大,是求解优化模型的最佳选择。其特色在于内置建模语言,提供十几个内部函数,可以允许决策变量是整数(即整数规划,包括 0-1 整数规划),方便灵活,而且执行速度非常快。
3.1 Lingo程序特点:
(1)目标函数必须由“min =”或“max =”开头; (2)每条语句后必须使用分号“;”结束。 (3)变量与其系数间要有乘号。 3.2 线性规划问题
例 如何在LINGO中求解如下的LP问题:
mins.t.2x1?3x2x1?x2?350x1?1002x1?x2?600x1,x2?0
在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600;
然后点击工具条上的按钮 即可。
3.3 二次规划问题
目标函数是二次函数,约束条件是线性的规划问题 例如:
minf?3x2?y2?xy?0.4y?1.2x?0.9y?1.1?s.t.?x?y?1?y?0.7?
min=3*x^2+y^2-x*y+0.4*y; 1.2*x+0.9*y>1.1; x+y=1; y<0.7;
3.4 非线性规划问题
《数学模型》(第三版)(姜启源等编)第四章第三节例1中,解法三得到一个非线性规划模型:
max z?2x1?3x2?4x3 s.. 1.5tx1?3x2?5x3?600 280x1?250x2?400x3?60000 x1(x1?80)?0 x2(x2?80)?0 x3(x3?80)?0
x1 , x2 , x3均为整数 输入lingo:
MAX= 2 * X1 + 3 * X2 + 4 * X3 ; 1.5 * X1 + 3 * X2 + 5 * X3 <= 600 ; 280 * X1 + 250 * X2 + 400 * X3 <= 60000 ; X1*( X1-80) >= 0 ; X2*( X2-80) >= 0 ; X3*( X3-80) >= 0 ;
@GIN( X1); @GIN( X2); @GIN( X3); 注:
变量界定函数实现对变量取值范围的附加限制,共4种: @bin(x) 限制x为0或1 @bnd(L,x,U) 限制L≤x≤U
@free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数 @gin(x) 限制x为整数
第5章 matlab的使用
Matlab是matrix laboratory的缩写,是矩阵实验室的意思,它是一个功能强大的数学工具软件。Matlab的产生是与数学计算紧密联系在一起的,1980年美国新墨西哥大学计算机科学系主任cleve Moler在给学生讲授线性代数课程时,发现学生利用高级语言编程解决线性代数问题花费很多时间,为了减轻学生编程的负担,用高级语言编写了最早的MATLAB。
Matlab语言是一种用于工程计算的高性能语言,它主要包括两大内容:核心函数和工具箱。Matlab的典型应用包括以下几个方面:数学计算、算法开发、建模及仿真、数据分析及可视化、科学及工程绘图、应用开发。
5.1 matlab的工作环境
1.启动和退出matlab
启动matlab程序与启动其它windows程序一样,通常通过单击桌面上的相应图标来执行。当然,也可以通过“开始”菜单中相应命令启动。
退出matlab时,也可以像退出其它windows程序一样操作,也可以在命令窗口中键入quit或exit来退出。
2.菜单和工具栏
Matlab的菜单和工具界面与windows程序的界面类似,用户只要稍加实践就可以掌握其功能和使用方法。菜单的内容会随着在命令窗口执行不同命令而作出相应改变。
3.命令窗口
命令窗口是matlab的主要交互窗口,用于输入命令并显示除图形以外的所有执行结果。Matlab命令窗口中的“>>”为运算提示符,表示matlab处于准备状态。当在提示符后输入一段程序或一段运算式后按“回车”键,matlab会给出计算结果,并再次进入准备状态。单击命令窗口右上角的箭头按钮可以使命令窗口脱离主窗口而成为一个独立的窗口。
常用控制命令及其功能: clc:清除命令窗口中的内容 clear:清除工作空间中的变量 clf:清除图形窗
type :显示指定的M文件的内容
exit/quit:结束matlab会话,程序完成,如果没有明确保存,则变量中的数据丢失
help :获取在线帮助 4.历史命令窗口
该窗口主要用于记录所有执行过的命令,在默认设置下,该窗口会保留自安装后所有使用过命令的历史记录,并标明使用时间。同时,用户可以通过用鼠标双击某一历史命令来重新执行该命令。与命令窗口类似,该窗口也可以成为一个独立的窗口。
选中该窗口,然后单击鼠标右键,弹出一个菜单,用户可以通过此菜单删除或粘贴历史记录,也可以为选中的表达式或命令创建一个M文件。
5.当前工作目录窗口
当前工作目录是指matlab运行文件时的目录。只有在当前工作目录或搜索路径下的文件、函数可以被运行或调用。在窗口中可显示或改变当前工作目录,还可以显示当前工作目录下的文件。
6.工作空间窗口
在工作空间窗口中将显示目前内存中所有的matlab变量的变量名、数据结构、字节数以及类型等信息。
5.2 基本运算与函数
在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之后,并按入Enter键即可。例如:
>> (5*2+1.3-0.8)*10/25