欢迎来到得力文库 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
得力文库 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    LINGO11教学教学教程.doc

    • 资源ID:559690       资源大小:595KB        全文页数:56页
    • 资源格式: DOC        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    LINGO11教学教学教程.doc

    |LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型 的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。§1 LINGO快速入门当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之 下。在主窗口内的标题为LINGO Model LINGO1的窗口是LINGO的默认模型窗口,建立 的模型都都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO中求解如下的LP问题: 0 , 600 2 100 350 . . 3 2 min 2 1 2 1 1 2 1 2 1 x x x x x x x t s x x 在模型窗口中输入如下代码: min=2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2=” 。LINGO中还能用“”表示大于等于关系。LINGO并不支持严格小于和严格大于关系运算符。然而, 如果需要严格小于和严格大于关系,比如让A严格小于B: A= 4.2 数学函数 LINGO提供了大量的标准数学函数: abs(x) 返回x的绝对值 sin(x) 返回x的正弦值,x采用弧度制 cos(x) 返回x的余弦值 tan(x) 返回x的正切值 exp(x) 返回常数e的x次方 log(x) 返回x的自然对数 lgm(x) 返回x的gamma函数的自然对数 sign(x) 如果x=0时,返回不超过x的最大整数;当 x<0时,返回不低于x的最小整数。 smax(x1,x2,xn) 返回x1,x2,xn中的最大值 smin(x1,x2,xn) 返回x1,x2,xn中的最小值 例4.3.1 求sin(2),floor(-1.2)的值.例4.3 给定一个直角三角形,求包含该三角形的最小正方 形。解:如图所示。 , sin cos , cos , sin x b x a DE x b AD x a CE 求最小的正方形就相当于求如下的最优化问题: A B C D DA E a b x| DE AD CE x , , max min 2 0 LINGO代码如下: model: sets:object/1.3/: f; endsets data:a, b = 3, 4; !两个直角边长,修改很方便; enddataf(1) = a * sin(x);f(2) = b * cos(x);f(3) = a * cos(x) + b * sin(x);min = smax(f(1),f(2),f(3);bnd(0,x,1.57); end在上面的代码中用到了函数bnd,详情请见4.5节。4.3 金融函数 目前LINGO提供了两个金融函数。 1fpa(I,n) 返回如下情形的净现值:单位时段利率为I,连续n个时段支付,每个时段支付单位 费用。若每个时段支付x单位的费用,则净现值可用x乘以fpa(I,n)算得。fpa的计算 公式为 I I I n n k k ) 1 ( 1 ) 1 ( 1 1 。 净现值就是在一定时期内为了获得一定收益在该时期初所支付的实际费用。 例4.4 贷款买房问题 贷款金额50000元,贷款年利率5.31%,采取分期付款方式 (每年年末还固定金额,直至还清) 。问拟贷款10年,每年需偿还多少元? LINGO代码如下: 50000 = x * fpa(.0531,10); 答案是x=6573.069元。 2fpl(I,n) 返回如下情形的净现值:单位时段利率为I,第n个时段支付单位费用。fpl(I,n)的 计算公式为 n I ) 1 ( 。 细心的读者可以发现这两个函数间的关系: n k k I fpl n I fpa 1 ) , ( ) , ( 。4.4 概率函数 1pbn(p,n,x) 二项分布的累积分布函数。当n和(或)x不是整数时,用线性插值法进行计算。 2pcx(n,x) 自由度为n的 2 分布的累积分布函数。 3peb(a,x) 当到达负荷为a,服务系统有x个服务器且允许无穷排队时的Erlang繁忙概率。 4pel(a,x) 当到达负荷为a,服务系统有x个服务器且不允许排队时的Erlang繁忙概率。 5pfd(n,d,x)|自由度为n和d的F分布的累积分布函数。 6pfs(a,x,c) 当负荷上限为a,顾客数为c,平行服务器数量为x时,有限源的Poisson服务系统的 等待或返修顾客数的期望值。a是顾客数乘以平均服务时间,再除以平均返修时间。当c 和(或)x不是整数时,采用线性插值进行计算。 7phg(pop,g,n,x) 超几何(Hypergeometric)分布的累积分布函数。pop表示产品总数,g是正品数。从 所有产品中任意取出n(npop)件。pop,g,n和x都可以是非整数,这时采用线性插值 进行计算。 8ppl(a,x) Poisson分布的线性损失函数,即返回max(0,z-x)的期望值,其中随机变量z服从均 值为a的Poisson分布。 9pps(a,x) 均值为a的Poisson分布的累积分布函数。当x不是整数时,采用线性插值进行计算。 10psl(x) 单位正态线性损失函数,即返回max(0,z-x)的期望值,其中随机变量z服从标准正态 分布。 11psn(x) 标准正态分布的累积分布函数。 12ptd(n,x) 自由度为n的t分布的累积分布函数。 13qrand(seed):一次可以生成很多 产生服从(0,1)区间的拟随机数。qrand只允许在模型的数据部分使用,它将用拟随 机数填满集属性。通常,声明一个m×n的二维表,m表示运行实验的次数,n表示每次实 验所需的随机数的个数。在行内,随机数是独立分布的;在行间,随机数是非常均匀的。 这些随机数是用“分层取样”的方法产生的。 例4.5 model: data:M=4; N=2; seed=1234567; enddata sets:rows/1.M/;cols/1.N/;table(rows,cols): x; endsets data:X=qrand(seed); enddata end 如果没有为函数指定种子,那么LINGO将用系统时间构造种子。 14rand(seed):一次只生成一个 返回0和1间的伪随机数,依赖于指定的种子。典型用法是U(I+1)=rand(U(I)。注 意如果seed不变,那么产生的随机数也不变。 例4.6 利用rand产生15个标准正态分布的随机数和自由度为2的t分布的随机数。 model: !产生一列正态分布和t分布的随机数; sets:series/1.15/: u, znorm, zt; endsets|!第一个均匀分布随机数是任意的;u( 1) = rand( .1234);!产生其余的均匀分布的随机数;for(series( I)| I #GT# 1:u( I) = rand( u( I - 1);for( series( I):!正态分布随机数;psn( znorm( I) = u( I);!和自由度为2的t分布随机数;ptd( 2, zt( I) = u( I);!ZNORM 和 ZT 可以是负数;free( znorm( I); free( zt( I);); end4.5 变量界定函数 变量界定函数实现对变量取值范围的附加限制,共4种: bin(x) 限制x为0或1 bnd(L,x,U) 限制LxU free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数 gin(x) 限制x为整数 在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+。free取 消了默认的下界为0的限制,使变量也可以取负值。bnd用于设定一个变量的上下界,它 也可以取消默认下界为0的约束。4.6 集操作函数 LINGO提供了几个函数帮助处理集。 1in(set_name,primitive_index_1 ,primitive_index_2,) 如果元素在指定集中,返回1;否则返回0。 例4.7 全集为I,B是I的一个子集,C是B的补集。 sets:I/x1.x4/;B(I)/x2/;C(I)|#not#in(B, endsets 2index(set_name, primitive_set_element) 该函数返回在集set_name中原始集成员primitive_set_element的索引。如果set_name 被忽略,那么LINGO将返回与primitive_set_element匹配的第一个原始集成员的索引。 如果找不到,则产生一个错误。例4.8 如何确定集成员(B,Y)属于派生集S3。 sets:S1/A B C/;S2/X Y Z/;S3(S1,S2)/A X, A Z, B Y, C X/; endsets X=in(S3,index(S1,B),index(S2,Y); 问:index(S1,B)的值是什么?例4.8.1 问以下程序中y和z的结果是什么? sets:|S/0 1 2/:x; endsets data:X=4,5,6; enddata y=x(1); z=x(index(s,1); 看下面的例子,表明有时为index指定集是必要的。 例4.9 sets:girls/debble,sue,alice/;boys/bob,joe,sue,fred/; endsets I1=index(sue); I2=index(boys,sue); I1的值是2,I2的值是3。我们建议在使用index函数时最好指定集。 3wrap(index,limit) 该函数返回j=index-k*limit,其中k是一个整数,取适当值保证j落在区间 1,limit内。该函数相当于index除limit后的余数(余数为零时取值为limit)。该函 数在循环、多阶段计划编制中特别有用。 4size(set_name) 该函数返回集set_name的成员个数。在模型中明确给出集大小时最好使用该函数。它 的使用使模型更加数据中立,集大小改变时也更易维护。4.7 集循环函数 集循环函数遍历整个集进行操作。其语法为 function(setname(set_index_list)|conditional_qualifier: expression_list); function相应于下面罗列的四个集循环函数之一;setname是要遍历的集;set_ index_list是集索引列表;conditional_qualifier是用来限制集循环函数的范围,当集 循环函数遍历集的每个成员时,LINGO都要对conditional_qualifier进行评价,若结果 为真,则对该成员执行function操作,否则跳过,继续执行下一次循环。 expression_list是被应用到每个集成员的表达式列表,当用的是for函数时, expression_list可以包含多个表达式,其间用逗号隔开。这些表达式将被作为约束加到 模型中。当使用其余的三个集循环函数时,expression_list只能有一个表达式。如果省 略set_index_list,那么在expression_list中引用的所有属性的类型都是setname集。 1for 该函数用来产生对集成员的约束。基于建模语言的标量需要显式输入每个约束,不过 for函数允许只输入一个约束,然后LINGO自动产生每个集成员的约束。 例4.10 产生序列1,4,9,16,25 model: sets:number/1.5/:x; endsetsfor(number(I): x(I)=I2); end 2sum 该函数返回遍历指定的集成员的一个表达式的和。 例4.11 求向量5,1,3,4,6,10前5个数的和。 model: data:

    注意事项

    本文(LINGO11教学教学教程.doc)为本站会员(小**)主动上传,得力文库 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知得力文库 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开