用LINGO解决非线性规划问题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1LINGO软件基本功能2LINGO软件简介一、LINGO介绍二、用LINGO解决基本的线性规划问题三、用LINGO解决非线性规划问题3一、LINGO介绍LINGO是美国LINDO系统公司LindoSystemInc开发的求解数学规划系列软件中的一个,还有LINDO,GINO,What’sbest等等,它的主要功能是求解大型线形、非线形和整数规划的问题。在此主要介绍LINGO如何求解规划问题,所使用的LINGO为V12.0版。4一、LINGO介绍LINGOV12.0版可用于求以下各类最优化数学模型:LPLinearProgram线性规划QPQuadraticProgram二次规划ILPIntegerLinearProgram整数线性规划IQPIntegerQuadraticProgram整数二次规划PILPPureIntegerLinearProgram纯整数线性规划PIQPPureIntegerQuadraticProgram纯整数二次规划NLPNonlinearProgram非线性规划INLPIntegerNonlinearProgram整数非线性规划PINLPPureIntegerNonlinearProgram纯整数非线性规划5一、LINGO介绍LINGO的主要功能特色为:1.既能求解线性规划问题,也有一定求解非线性规划问题的能力;2.输入模型简练直观;3.运行速度快、计算能力强;6一、LINGO介绍LINGO的主要功能特色为:4.内置建模语言,提供几十个内部函数,从而能以较少的语句,较直观的方式描述较大规模的优化模型;5.将集合的概念引入编程语言,很容易将实际问题转换为LINGO模型;6.能方便地与Excel、数据库等其他软件交换数据。7二、用LINGO解决基本的线性规划问题例1求解如下的线性规划模型:121212212max5070,318,216,420,,0zxxxxxxxxx8二、用LINGO解决基本的线性规划问题我们编辑一个LINGO程序:MAX=50*X1+70*X2;!目标函数;X1+3*X2=18;!X1,X2为决策变量;2*X1+X2=16;4*X2=20;!第二到四行均为约束条件9二、用LINGO解决基本的线性规划问题我们编辑程序并求解后,得到LINGOModel窗口、Solutionreport窗口和Solverstatus窗口如下:10二、用LINGO解决基本的线性规划问题通过此例我们对LINGO有了一个基本的认识,下面我们来总结一下LINGO语法规定:1.求目标函数的最大值或最小值分别用MAX=……或MIN=……来表示;2.每个语句必须以分号“;”结束,每行可以有多个语句,语句可以跨行;3.变量名称必须以字母(A-Z)开头,由字母、数字(0-9)和下划线所组成,长度不超过32个字符,不区分大小写;11二、用LINGO解决基本的线性规划问题4.可以给语句加上标号,例如[OBJ]MAX=50*X1+70*X2(乘号*不能省略);5.以!开头,以“;”结束的语句是注释语句,显示为绿色;6.如果对变量的取值范围没有做特殊说明,则所有默认的决策变量均为非负数;7.LINGO模型以语句一般以“MODEL:”开头,以“END”结束,对于比较简单的模型,这两语句可以省略8.变量界定函数(见下页)12二、用LINGO解决基本的线性规划问题8.变量界定函数:@BND(L,x,U),即L=x=U;注意:没有想象中的的@SLB函数与@SUB函数;@BIN(x),限制x仅取整数0或1;注意:不是@INT(x)函数;@FREE(x),取消对x的符号限制;@GIN(x),限制x仅取非负整数。13三、用LINGO解决非线性规划问题例2求解二次规划问题:MODEL:MIN=x^2+y^2-2*x-4*y;!目标函数;x+y=1;!x,y为决策变量;y=0.5;!第二、三行均为约束条件;end14三、用LINGO解决非线性规划问题15三、用LINGO解决非线性规划问题结果是:当x=0.5,y=0.5时取得最小值,最小值为-2.5注意比较:当去掉第二个约束条件y=0.5时,最小值为-3(当x=0,y=1时);当去掉所有约束条件(无条件最值)时,最小值为-5(当x=1,y=2时);16三、用LINGO解决非线性规划问题例3求解非线性规划问题:17三、用LINGO解决非线性规划问题18三、用LINGO解决非线性规划问题19三、用LINGO解决非线性规划问题例4求解二次规划问题:max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2;x1+x2=100;x1=2*x2;@gin(x1);@gin(x2);直接使用LINGO最大化过程:20三、用LINGO解决非线性规划问题21三、用LINGO解决非线性规划问题结果是:当x1=35,x2=65时最大利润为11077.50,【说明:在LINGO11版本中执行上述同样程序后,其结果是:当x1=36,x2=64取得最大利润11076.80,怀疑是旧版本的算法在数值不均衡时引起的计算错误。不过当采用最小化目标函数时,却并不出错!】

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功