常见Lingo指令介绍

合集下载

LINGO教程(基本语法)

LINGO教程(基本语法)

H
20
输出结果: 运行菜单命令“LINGO|Solve”
最大利润=11077.5
最优整数解 X=(35,65)
H
21
输出结果备注: LINGO是将它作为PINLP(纯整数非线性规划)来求解,因此找到的是局部最优解。
通过菜单 “WINDOW| Status Window”看到状态窗口,可 看到最佳目标值“Best Obj” 与问题的上界“Obj Bound”已 经是一样的,当前解的最大 利润与这两个值非常接近, 是计算误差引起的。如果采 用全局最优求解程序(后面介 绍),可以验证它就是全局最 优解。
•限定变量取整数值的语句为“@GIN(X1)”和“@GIN(X2)”,不可以写成“@GIN(2)”,否 则LINGO将把这个模型看成没有整数变量。
•LINGO中函数一律需要以“@”开头,其中整型变量函数(@BIN、@GIN)和上下界 限定函数(@FREE、@SUB、@SLB)与LINDO中的命令类似。而且0/1变量函数 是@BIN函数。
H
18
一个简单的LINGO程序
例 直接用LINGO来解如下二次规划问题:
Max98x127x72x120.3x1x22x22 1
s.t. x1x2100
2
x12x2
3
x1,x2 0 为整数
4
输入窗口如下:
H
19
程序语句输入的备注:
•LINGO总是根据“MAX=”或“MIN=”寻找目标函数,而除注释语句和TITLE语句外的其 他语句都是约束条件,因此语句的顺序并不重要 。
H
27
集合及其属性
• QUARTERS集合的属性
• DEM
• RP
• OP
• INV

常见Lingo指令介绍

常见Lingo指令介绍

常见Lingo指令介绍常见Lingo指令介绍一、控制Sprite的常见指令1.指令名称:sprite member指令语法:the member of sprite指令说明:sprite所代表的cast member。

例:精灵替换set the member of sprite 1 to "yuan"可改为:Sprite(1).member=”yuan”点句表示法:ObjectName.[Property|function|Chunk that you want to specity]2.指令名称:sprite memberNum指令语法:the memberNum of sprite指令说明:sprite所代表的cast member所在的位置。

例:循环播放on exitFrame meif sprite (1). memberNum =10 thensprite (1). memberNum = 1elsesprite (1) .memberNum=sprite(1).memberNum+1end ifgo to the frameend3.旋转、倾斜、翻转精灵指令说明:这些变换可以应用于位图、文本、矢量图形、GIF及Flash,但不能用于域,以及工具面板上的椭圆和矩形。

(1)旋转:正值代表顺时针,负值代表逆时针sprite(1).rotation=30set the rotation of sprite 1 to 30例:指针调节sprite(1).rotation=sprite(1).rotation+5(2)倾斜:正值向右倾斜,负值向左倾斜,正常状态为0sprite(1).skew=10set the skew of sprite 1 to 10例:图形变形sprite(1).skew=sprite(1).skew+10(3)翻转:左右(水平)翻转flipH,上下(垂直)翻转flipV,设置值为TRUE或FALSE (1或0)sprite(1).flipH=TUREsprite(1).flipV=1例:翻转与恢复指令说明:相当于sprite在stage上的透明度,值可从0到100,数值越小透明度越高。

lingo函数命令

lingo函数命令

集合操作函数
@IN( set_name, primitive_index_1 [, primitive_index_2 ...]) 判断一个集合中是否含有某个索引值。如果集合set_name中包含 由索引primitive_index_1 [, primitive_index_2 ...]所对应元素,则返 回1(逻辑值“真”),否则返回0(逻辑值“假”)。索引用“&1”、 “&2”或@INDEX函数等形式给出,这里“&1”表示对应于第1个 父集合的元素的索引值,“&2”表示对应于第2个父集合的元素的 索引值。 例:定义一个集合STUDENTS(基本集合),派生出集合PASSED和 FAILED,定义: SETS: STUDENTS / ZHAO, QIAN, SUN, LI/:; PASSED( STUDENTS) /QIAN,SUN/:; FAILED( STUDENTS) | #NOT# @IN( PASSED, &1):; ENDSETS
• @PFS(A,X,C) :当负荷上限为A,顾客数为C,并行服务器数 量为X时,有限源的Poisson服务系统的等待或返修顾客数的期 望值。(A是顾客数乘以平均服务时间,再除以平均返修时间。 当C和(或)X不是整数时,采用线性插值进行计算)。
概率相关函数
• @PFD(N,D,X):自由度为N和D的F分布的分布函数在X点的取 值。
• @FPL(I,N) 返回如下情形下总的净现值:单位时段 利率为I,第N个时段支付单位费用。根据复利的计 算公式,很容易知道 1 @FPL(I,N) ( 1 I ) N 。
概率相关函数
• @PSN(X):标准正态分布函数,即返回标准正态分布的分布函 数在X点的取值。 • @PSL(X):标准正态线性损失函数,即返回 MAX(0, Z-X)的期 望值, 其中 Z为标准正态随机变量。 • @PPS(A,X):Poisson分布函数,即返回均值为A的Poisson分布 的分布函数在X点的取值(当X不是整数时,采用线性插值进行 计算)。 • @PPL(A,X):Poisson分布的线性损失函数,即返回 MAX(0, ZX)的期望值, 其中 Z为均值为A的Poisson随机变量。 • @PBN(P,N,X):二项分布函数,即返回参数为(N,P)的二项 分布的分布函数在X点的取值(当N和(或)X不是整数时,采 用线性插值进行计算) 。

LINGO的基本运算和函数

LINGO的基本运算和函数

这些运算符的优先级由高到低为: 高 #not# #eq# #ne# #gt# 低 #and# #or#
关系运算符
#ge#
#lt#
#le#
LINGO 有三种关系运算符:“=”、“<=”和“>=”。
LINGO 函数
数学函数
LINGO 提供了大量的标准数学函数:
@ABS( X)
绝对值
@ACOS( X)
反余弦
x 的 gamma 函数的自然对数
@LOG( X)
自然对数
@LOG10( X)
以十为底的对数
@MOD( X, Y) X 模 Y
@POW( X, Y) X 的 Y 次方
@SIGN( X)
符号函数
@SIN( X)
正弦
@SINH( X)
双曲正弦
@SMAX( X1, X2,..., XN)
求最大
@SMIN( X1, X2,..., XN)

@gin(x)
限制 x 为整数
பைடு நூலகம்
在默认情况下,LINGO 规定变量是非负的,也就是说下界为 0,上界为+∞。
@free 取消了默认的下界为 0 的限制,使变量也可以取负值。@bnd 用于设定一个
变量的上下界,它也可以取消默认下界为 0 的约束。
集操作函数
@size(set_name) 该函数返回集 set_name 的成员个数。在模型中明确给出集大小时最好使用 该函数。它的使用使模型更加数据中立,集大小改变时也更易维护。
集循环函数
@function(setname[(set_index_list)[|conditional_qualifier]]:expressio n_list);

Lingo基本用法总结

Lingo基本用法总结

Lingo基本用法总结LINGO是用来求解线性和非线性优化问题的简易工具。

Lingo免费版可以支持30个未知数,lingo破解版可以支持几万个未知数、几万个约束条件。

当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。

在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。

然后点击工具条上的按钮即可。

算术运算符Lingo中变量不区分大小写,以字母开头不超过32个字符算术运算符是针对数值进行操作的。

LINGO提供了5种二元运算符:^乘方﹡乘/除﹢加﹣减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返回-1;否则,返回1@floor(x) 返回x的整数部分。

当x>=0时,返回不超过x的最大整数;当x<0时,返回不低于x的最大整数。

最大最小函数:@smax(x1,x2,…,xn) 返回x1,x2,…,xn中的最大值@smin(x1,x2,…,xn) 返回x1,x2,…,xn中的最小值边界限定函数:@bin(x) 限制x为0或1@bnd(L,x,U) 限制L≤x≤U@free(x) 取消对变量x的默认下界为0的限制,即x可以取任意实数@gin(x) 限制x为整数辅助函数1.@if(logical_condition,true_result,false_result)@if函数将评价一个逻辑表达式logical_condition,如果为真,返回true_ result,否则返回false_result在默认情况下,LINGO规定变量是非负的,也就是说下界为0,上界为+∞。

Lingo中的命令

Lingo中的命令

LINGO WINDOWS命令5.1 文件菜单(File Menu)1.1.新建(New)从文件菜单中选用“新建”命令、单击“新建”按钮或直接按F2键可以创建一个新的“Model”窗口。

在这个新的“Model”窗口中能够输入所要求解的模型。

2.2.打开(Open)从文件菜单中选用“打开”命令、单击“打开”按钮或直接按F3键可以打开一个已经存在的文本文件。

这个文件可能是一个Model文件。

3.3.保存(Save)从文件菜单中选用“保存”命令、单击“保存”按钮或直接按F4键用来保存当前活动窗口(最前台的窗口)中的模型结果、命令序列等保存为文件。

4.4.另存为...(Save As...)从文件菜单中选用“另存为...”命令或按F5键可以将当前活动窗口中的内容保存为文本文件,其文件名为你在“另存为...”对话框中输入的文件名。

利用这种方法你可以将任何窗口的内容如模型、求解结果或命令保存为文件。

5.5.关闭(Close)在文件菜单中选用“关闭”(Close)命令或按F6键将关闭当前活动窗口。

如果这个窗口是新建窗口或已经改变了当前文件的内容,LINGO系统将会提示是否想要保存改变后的内容。

6.6.打印(Print)在文件菜单中选用“打印” (Print)命令、单击“打印”按钮或直接按F7键可以将当前活动窗口中的内容发送到打印机。

7.7.打印设置(Print Setup...)在文件菜单中选用“打印设置...”命令或直接按F8键可以将文件输出到指定的打印机。

8.8.打印预览(Print Preview)在文件菜单中选用“打印预览...”命令或直接按Shift+F8键可以进行打印预览。

9.9.输出到日志文件(Log Output...)从文件菜单中选用“Log Output...”命令或按F9键打开一个对话框,用于生成一个日志文件,它存储接下来在“命令窗口”中输入的所有命令。

10.提交LINGO命令脚本文件(Take Commands...)从文件菜单中选用“Take Commands...”命令或直接按F11键就可以将LINGO命令脚本(command script)文件提交给系统进程来运行。

LINGO使用说明(比较简单)

LINGO使用说明(比较简单)

Lingo介绍Lingo是美国LINDO系统公司(Lindo Symtem Inc)开发的求解数学规划系列软件中的一个(其他软件为LINGDO,GINO,What’s Best等),它的主要功能是求解大型线性、非线性和整数规划问题,目前的版本是lingo11.0。

lingo分为Demo、solve suite、hyper、industrial、extended等六类不同版本,只有Demo版本是免费的,其他版本需要向LINDO系统公司(在中国的代理商)购买,Lingo的不同版本对模型的变量总数、非线性变量个数、整型变量个数和约束条件的数量做出不同的限制(其中extended版本无限制)。

Lingo的主要功能特色为:(1)既能求解线性规划,也有较强的求解非线性规划的能力;(2)输入模型简练直观;(3)运行速度快、计算能力强;(4)内置建模语言,提供几十种内部函数,从而能以较少语句,较直观的方式描述较大规模的优化模型;(5)将集合的概念引入编程语言,很容易将实际问题转换为Lingo语言;(6)能方便地与excel、数据库等其他软件交换数据。

学校图书馆40本《lingo和excel在数学建模中的应用》,袁新生、邵大宏、郁时炼主编,科学出版社Lingo程序设计简要说明在数学建模中会遇到如规划类的题型,在这种模型中总存在着一个目标,并希望这个目标的取值尽可能的大或小,同时与这个目标有关的一系列变量之间存在一些约束。

在构造出目标函数和约束条件的表达式后,我们需要对求出这个最值和各变量的取值。

一般我们用LINGO来对模型进行求解,本文将通过举一个简单的例子,围绕这个例子逐步学习LINGO 的使用。

LINGO只是一个求解工具,我们主要的任务还是模型的建立!当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。

在主窗口内的标题为LINGO Model –LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。

lingo中links用法

lingo中links用法

lingo中links用法在Lingo中,"links"是一个很常见的命令,用于创建和管理不同部分之间的链接或关联。

具体用法如下:1. 创建链接:使用"links"命令可创建一个链接,将一个对象与另一个对象关联起来。

例如,要将对象A与对象B关联起来,可以使用以下命令:```links(A).to(B)```这将创建一个从对象A指向对象B的链接。

2. 检查链接:可以使用"links"命令检查两个对象之间是否存在链接。

例如,要检查对象A和对象B之间是否存在链接,可以使用以下命令:```links(A).has(B)```如果存在链接,则返回true;否则返回false。

3. 获取链接的数量:可以使用"links"命令获取某个对象所拥有的链接的数量。

例如,要获取对象A的链接数量,可以使用以下命令:```links(A).count```这将返回与对象A相关的链接的数量。

4. 获取链接的目标对象:可以使用"links"命令获取某个对象链接的目标对象。

例如,要获取对象A的链接的目标对象,可以使用以下命令:```links(A).target```这将返回与对象A链接的目标对象。

5. 删除链接:使用"links"命令可以删除两个对象之间的链接。

例如,要删除对象A与对象B之间的链接,可以使用以下命令:```links(A).remove(B)```这将删除从对象A指向对象B的链接。

请注意,上述示例中的"A"和"B"是用作对象的占位符。

您可以将其替换为实际的对象名称或引用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常见Lingo指令介绍一、控制Sprite的常见指令1.指令名称:sprite member指令语法:the member of sprite指令说明:sprite所代表的cast member。

例:精灵替换set the member of sprite 1 to "yuan"可改为:Sprite(1).member=”yuan”点句表示法:ObjectName.[Property|function|Chunk that you want to specity]2.指令名称:sprite memberNum指令语法:the memberNum of sprite指令说明:sprite所代表的cast member所在的位置。

例:循环播放on exitFrame meif sprite (1). memberNum =10 thensprite (1). memberNum = 1elsesprite (1) .memberNum=sprite(1).memberNum+1end ifgo to the frameend3.旋转、倾斜、翻转精灵指令说明:这些变换可以应用于位图、文本、矢量图形、GIF及Flash,但不能用于域,以及工具面板上的椭圆和矩形。

(1)旋转:正值代表顺时针,负值代表逆时针sprite(1).rotation=30set the rotation of sprite 1 to 30例:指针调节sprite(1).rotation=sprite(1).rotation+5(2)倾斜:正值向右倾斜,负值向左倾斜,正常状态为0sprite(1).skew=10set the skew of sprite 1 to 10例:图形变形sprite(1).skew=sprite(1).skew+10(3)翻转:左右(水平)翻转flipH,上下(垂直)翻转flipV,设置值为TRUE或FALSE (1或0)sprite(1).flipH=TUREsprite(1).flipV=1例:翻转与恢复指令说明:相当于sprite在stage上的透明度,值可从0到100,数值越小透明度越高。

Sprite(1).blend=50Set the blend of sprite 1 to 50例:图像渐淡sprite(1).blend=505.指令名称:loc、locH、locV指令说明:the loc of sprite:sprite当前的位置,相当于point(the loch, the locV)the locH of sprite:水平位置the locV of sprite:垂直位置sprite(1).loc=point(320,240)------pointsprite(1).locH=320――数值sprite(1).locV=240――数值例:设置精灵位置sprite(1).loc=point(320,240)6.locZ指令说明:sprite目前在Z轴上的高度。

Channels之间存在高低与前后的关系,channel小的sprite位于下层,channel大的sprite位于上层。

例:点击相应图片移到最上层。

on startMovieglobal highestCardhighestCard=5endon mouseUpglobal highestCardhighestCard=highestCard+1sprite(the clickOn).locZ=highestCardend7.Top、bottom、Left、right指令说明:环绕sprite长方形的上下左右坐标。

on mouseUp meput sprite(1).topput sprite(1).bottomput sprite(1).leftput sprite(1).rightend用massage窗口查看。

例:文字上下或左右反复运动。

Put Sprite(1).rect例:匹配题intersects的应用指令说明:在stage上留下残影sprite(1).trails=true9.updatestage更新画面,常用于显示连续的动作例:拖尾移动on mouseUp mesprite(1).trails=truerepeat with x=1 to 100sprite(1).locH=sprite(1).locH+2updatestageend repeatend10.foreColor、backColor控制演员前景色、背景色的属性。

注意:这个属性主要用于用“tools palette”工具画出的Shape(向量)图形例:鼠标点击循环改变精灵的前景(背景)色on mouseUp mesprite(1).foreColor=sprite(1).foreColor-1end11.constraint指令说明:将某一可移动的sprite的中心点的活动范围限制在另一个sprite的四周边框内。

on startMoviesprite(1).constraint=2-- 2代表sprite(2)12.visible指令说明:sprite在stage上可见或隐藏。

一个隐藏的sprite仍具有位置、尺寸等各种属性,只是视觉上看不见而已。

Sprite(1).visible=false13.puppetSprite判断某一sprite是否处于puppet状态,是时,其属性与行为将由Lingo控制,否则依据score window中的设置。

例:将sprite 1设置为puppet状态。

On prepateMoviepuppetSprite 1, trueend14.quad控制sprite的四个顶点,用数组的方式来存放四个点的坐标值,依序分别为左上、右上、右下、左下,改变四个点的坐标,可以改变sprite的图框形状on mouseUp meput sprite(1).quadput sprite(1).quad[1]put sprite(1).quad[2]put sprite(1).quad[3]put sprite(1).quad[4]endsprite(1).quad=[point(9.0000,10.0000), point(309.0000, 10.0000), point(309.0000, 210.0000), point(9.0000, 210.0000)]sprite(1).quad[1]= point(9.0000,10.0000)数组在Lingo里就叫做列表,列表可以存储一系列连续的数据,如果数据具有相似性、规律性,需要放到一起就可以使用列表来表示。

二、鼠标(Mouse)控制的常见指令1.指令名称:clickOn指令语法:the clickOn指令说明:判断鼠标最近一次点选过的sprite。

返回最近一次单击精灵通道的通道号,如果在舞台上单击则返回值为0。

注意:只有附带程序(写在cast或sprite里面均可)的sprite才会被判断,即使这个程序毫无作用也无妨,例如:on mouseDown--end例:(1)beep次数控制on mouseUprepeat with x=1 to the clickOnbeepend repeatend(2)设置不带程序sprite(3)message窗口观察clickonon mouseDownput the clickonend2.指令名称:mouseH、mouseV指令语法:the mouseH、the mouseV指令说明:当前鼠标点(cursor)的水平位置(the mouseH)与垂直位置(the mouseV)。

例:判断鼠标接近spriteon exitFrame medH=the mouseH-sprite(1).locHdV=the mouseV-sprite(1).locVif dH*dH+dV*dV<7*7 thenbeepend ifend——鼠标判断在附近变为手的形状。

3.mouseLocpoint(the mouseH, the mouseV)例:鼠标设置sprite的位置综合练习:拖动四角变形图片。

on mousedowntemp=sprite(1).quadrepeat while the mousedownsprite(the clickon).loc=the mouseloctemp[the clickon-1]=the mouselocsprite(1).quad=tempupdatestageend repeatend4.rollOver指令语法:the rollover指令说明:rollOver(whichSprite)的作用是判别光标目前是否位于the sprite 的长方形区域内,是则rollOver(whichSprite)为1,否则为0。

The rollover所代表的是光标下的sprite channel。

这个指令通常用在frame script里面。

例:鼠标略过,发出不同的音乐。

on exitFrame mecase (the rollover) of1: puppetSound "piano"2: puppetsound"干杯吧朋友"3: puppetSound"我是一只小小鸟"end caseend5.mouseEnter、mouseLeave语法指令:on mouseEnter、on mouseLeave指令说明:mouseEnter:判断鼠标是否刚刚进入某个sprite区域;mouseLeave:判断鼠标是否离开这个区域。

如果这个sprite是bitmap图形,且其ink effect是matte,则他的区域为图形本身,否则为环绕其的长方形。

他们与rollover()的区别:(1)mouseEnter与mouseLeave通常在cast script or sprite script,而rollOver ()却用在frame script;(2)mouseEnter与mouseLeave只被执行一次,而rollOver()常常会连续被执行。

例一:将上例完善,鼠标放到相应文字上改变颜色和鼠标形状on mouseEntermember(1).forecolor=56cursor(280)end mouseEnteron mouseLeavemember(1).forecolor=255cursor(-1)end mouseLeave例二:鼠标超时警告on mouseEnterstarttimerendon mouseLeaveif the timer>2*60 thenalert "Too Slow!"end ifendtick6.mouseWithin指令语法:on mouseWithin指令说明:判断鼠标点是否位于某个sprite区域之内。

相关文档
最新文档