桑海风 李庆春 刘畔畔 吕学哲
【摘要】针对数学规划问题在全国大学生数学建模竞赛中的重要性,本文详细介绍两种求解规划模型软件(Matlab与Lingo)的具体操作过程.特别针对非标准形式,给出了有效的求解方案.
【关键词】数学建模; 优化模型; Matlab; Lingo
從1992年开始的全国大学生数学建模竞赛所出现的48道(本科组)题目中,约有2/3的竞赛题涉及数学规划模型.由此可见,数学规划模型的建立与求解在数学建模竞赛中占有重要的地位.因此能够快速求解规划类问题是数学建模队员的基本素质.利用Matlab与Lingo提供的强大的规划模型求解命令,可以简单快速地得到所要的结果.
一、Matlab与Lingo简介
数学软件大致可分为两大类:一类为通用型软件(如Matlab),一类为专用型软件(如Lingo).MATLAB ( Matrix Laboratory,即 “矩阵实验室”)是一款集数值计算、符号运算、图形处理及程序设计等强大功能于一体的软件,也是当今国际上最流行的科学与工程计算的软件工具之一.LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件包,它除了具有求解线性规划和二次规划问题的全部功能外,还可以用于求解非线性规划问题,也可以用于一些线性和非线性方程(组)的求解等.
二、利用Matlab求解数学规划问题
Matlab中求解数学规划问题的常用命令为linprog(处理线性规划)和fmincon(处理非线性规划).
1.线性规划
点击菜单‘lingo下的‘solve,得到结果:
说明:当x1=35,x2=65时,目标函数的最大值为11077.50.
注:1.求目标函数的最大值(或最小值)用MAX=目标函数(或MIN=目标函数)来表示.
2.每个语句都必须以英文的分号结束.
3.如果对变量的取值范围没有作特殊说明,则默认所有决策变量都非负.
4.LINGO中函数一律需要以“@”开头,其中@gin(x)表示x为整数.
5.如果熟悉Lingo软件,对于线性规划和非线性规划模型,建议也用Lingo求解.
四、结 语
现阶段大部分高校已经开设Matlab程序设计的相关课程,而开设Lingo软件课程的高校并不多.故对于有Matlab基础的同学,可以利用优化工具箱中的命令解决一些线性规划和非线性规划问题;而对于灵敏度分析和整数规划模型的求解等问题,建议利用Lingo软件求解.
【参考文献】
[1]卓金武.MATLAB 在数学建模中的应用[M].北京:北京航空航天大学出版社,2011.
[2]刘卫国.MATLAB程序设计与应用[M].北京:高等教育出版社,2007.
[3]谢金星,薛毅.优化建模与 LINDO/LINGO 软件[M].北京:清华大学出版社,2005.
[4]叶其孝,姜启源.数学建模[M].北京:机械工业出版社,2005.