欢迎来到天天文库
浏览记录
ID:6698487
大小:123.50 KB
页数:11页
时间:2018-01-22
《lingo使用说明(比较简单)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Lingo介绍Lingo是美国LINDO系统公司(LindoSymtemInc)开发的求解数学规划系列软件中的一个(其他软件为LINGDO,GINO,What’sBest等),它的主要功能是求解大型线性、非线性和整数规划问题,目前的版本是lingo11.0。lingo分为Demo、solvesuite、hyper、industrial、extended等六类不同版本,只有Demo版本是免费的,其他版本需要向LINDO系统公司(在中国的代理商)购买,Lingo的不同版本对模型的变量总数、非线性变量个数、整型变量个数和约束条件的数量做出不同的限制(其中extende
2、d版本无限制)。Lingo的主要功能特色为:(1)既能求解线性规划,也有较强的求解非线性规划的能力;(2)输入模型简练直观;(3)运行速度快、计算能力强;(4)内置建模语言,提供几十种内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型;(5)将集合的概念引入编程语言,很容易将实际问题转换为Lingo语言;(6)能方便地与excel、数据库等其他软件交换数据。学校图书馆40本《lingo和excel在数学建模中的应用》,袁新生、邵大宏、郁时炼主编,科学出版社11第页,共10页Lingo程序设计简要说明在数学建模中会遇到如规划类的题型,在这种模型中总存在
3、着一个目标,并希望这个目标的取值尽可能的大或小,同时与这个目标有关的一系列变量之间存在一些约束。在构造出目标函数和约束条件的表达式后,我们需要对求出这个最值和各变量的取值。一般我们用LINGO来对模型进行求解,本文将通过举一个简单的例子,围绕这个例子逐步学习LINGO的使用。LINGO只是一个求解工具,我们主要的任务还是模型的建立!当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGOModel–LINGO1
4、的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。示例:求解线性规划问题:求解这个模型的相应LINGO程序代码如下:程序一:max=x1+x2+x3+x4+x5+x6+x7+x8;;;;;;;注:然后点击工具条上的按钮即可。本模型的最优解为2.63636411第页,共10页程序二:SETS:xb1/1..8/:x;xb2/1..6/:b,c;xb3(xb2,xb1):a;ENDSETSDATA:a=174556932856725435695445472588765544451768875628;b=153827441526;c=498469;
5、ENDDATAMAX=@sum(xb1(i):x(i));@for(xb2(i):@sum(xb1(j):a(i,j)*x(j))+c(i)<=b(i););注:然后点击工具条上的按钮即可。本模型的最优解为2.636364注意:(1)在lingo中输入的各种符号一定要是英文状态下输入,不能是中文输入状态下的符号。例如正确输入xb3(xb2,xb1):a;错误输入xb3(xb2,xb1):a;(2)Lingo中不区分字母大小写一.变量、常量定义在lingo中变量在使用前是无需定义也可以使用的。在描述类似xi,aij带有下标的变量时,我们可以在使用时一一例举,即,x
6、1,x2,x3….x8,但这样显然很麻烦(刚接触LINGO的时候大部分是这样使用的)。Lingo中可以使用sets来预先定义这些变量,然后就可以在loop语句方便地访问这一组变量,也可以用小x(2),a(2,3)的形式访问个别变量,这和C语言中的数组是类似的。1.SETS的使用:为了定义xi,aij,那么首先要确定下标i和j的取值范围。在lingo中用sets来表示。代码:SETS:Xb1/1..8/;Xb2/1..6/;ENDSETS其中xb1、xb2分别为下标1..8,1..6的名字(sets_name),这些名字在loop语句中要使用。对于sets_nam
7、e一般将它命名为有意义的名称,这个sets_name必须以字母或下划线(_)开始。二维下标是在两个一维下标定义的基础上给定的,定义a(i,j)下标的代码如下:11第页,共10页SETS:Xb1/1..8/;Xb2/1..6/;Xb3(xb2,xb1);ENDSETS(关于下标的定义还有其他的方法,请参考LINGO的help文件,自行学习)现在下标已经定义完成了,定义数组变量时则需在下标后加上冒号再写上变量名,代码如下:SETS:Xb1/1..8/:x,c,b;Xb2/1..6/;Xb3(xb2,xb1):a;ENDSETS2.DATA的使用(常量定义):在lin
8、go中把常量理解为已经被
此文档下载收益归作者所有