03-第三章-Lingo基本函数-优化软件与应用-教学课件.ppt
《03-第三章-Lingo基本函数-优化软件与应用-教学课件.ppt》由会员分享,可在线阅读,更多相关《03-第三章-Lingo基本函数-优化软件与应用-教学课件.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主讲人:雒兴刚Email:Tel:83682292优化软件与应用Lingo有9种类型的函数:1基本运算符:包括算术运算符、逻辑运算符和关系运算符2数学函数:三角函数和常规的数学函数3金融函数:Lingo提供的两种金融函数4概率函数:Lingo提供了大量概率相关的函数5变量界定函数:这类函数用来定义变量的取值范围6集操作函数:这类函数为对集的操作提供帮助7集循环函数:遍历集的元素,执行一定的操作的函数8数据输入输出函数:这类函数允许模型和外部数据源相联系,进行数据的输入输出9辅助函数:各种杂类函数第三章 Lingo 基本函数基本运算符-算数运算符算术运算符是针对数值进行操作的。LINGO提供了5
2、种二元运算符:乘方乘除加减Lingo唯一的一元算术运算符是取反函数“”。优先级:-,*and/,+and-算术运算符示例:253,(2 4)5等等。第三章 Lingo 基本函数基本运算符-逻辑运算符逻辑运算符主要用于集循环函数的条件表达式中,来控制在函数中哪些集成员被包含,哪些被排斥。在创建稀疏集时用在成员资格过滤器中。(#not#否定该操作数的逻辑值,not是一个一元运算符)运算符为TRUE时条件运算符为TRUE时条件#eq#若两个运算数相等#ne#若两个运算符不相等#gt#若左边的运算符严格大于右边的运算符#ge#若左边的运算符大于或等于右边的运算符#lt#若左边的运算符严格小于右边的运算
3、符#le#若左边的运算符小于或等于右边的运算符#and#仅当两个参数都为true时#or#仅当两个参数都为true时第三章 Lingo 基本函数基本运算符-关系运算符(1)Lingo有三种关系运算符:“=”、“=”。(2)Lingo并不支持严格小于和严格大于关系运算符。(3)Lingo中还能用“”表示大于等于关系。(4)如让A严格小于B,那么:A+=B这里 是一个小的正数,它的值依赖于模型中A 小于B 多少才算不等。第三章 Lingo 基本函数数学函数abs(x)返回x的绝对值sin(x)返回x的正弦值,x采用弧度制cos(x)返回x的余弦值tan(x)返回x的正切值exp(x)返回常数e的x
4、次方log(x)返回x的自然对数lgm(x)返回x的gamma函数(积分形式)的自然对数sign(x)如果x=0时,返回不超过x的最大整数;当x0时,返回不低于x的最大整数。smax(x1,x2,xn)返回x1,x2,xn中的最大值smin(x1,x2,xn)返回x1,x2,xn中的最小值Lingo提供了大量的标准数学函数:第三章 Lingo 基本函数数学函数A B C DE a b x例:给定一个直角三角形,求包含该三角形的最小正方形。其中:求最小的正方形就相当于求如下的最优化问题:第三章 Lingo 基本函数金融函数 1fpa(I,n)返回如下情形的净现值(净现值就是在一定时期内为了获得一
5、定收益在该时期初所支付的实际费用):单位时段利率为I,连续n个时段支付,每个时段支付单位费用。若每个时段支付x单位的费用,则净现值可用x乘以fpa(I,n)算得。fpa的计算公式为:例:贷款买房问题贷款金额50000元,贷款年利率5.31%,采取分期付款方式(每年年末还固定金额,直至还清)。问拟贷款10年,每年需偿还多少元?LINGO代码如下:50000=x*fpa(.0531,10);答案是x=6573.069元。I=0.0531,n=10第三章 Lingo 基本函数金融函数 2fpl(I,n)返回如下情形的净现值:单位时段利率为I,第n个时段支付单位费用。fpl(I,n)的计算公式为:实际
6、上:第三章 Lingo 基本函数概率函数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服从标准正态分布。
7、11psn(x)标准正态分布的累积分布函数。12ptd(n,x)自由度为n的t分布的累积分布函数。第三章 Lingo 基本函数概率函数14rand(seed)返回0和1间的伪随机数,依赖于指定的种子。典型用法是U(I+1)=rand(U(I)。注意如果seed不变,那么产生的随机数也不变。MODEL:SETS:series/1.15/:u,znorm;ENDSETS!第一个均匀分布随机数是任意的;u(1)=rand(.1234);!产生其余的均匀分布的随机数;for(series(I)|I#GT#1:u(I)=rand(u(I-1);for(series(I):!正态分布随机数;psn(zno
8、rm(I)=u(I);!ZNORM 和ZT 可以是负数;free(znorm(I););END例:利用rand 产生15个标准正态分布的随机数。SolveX:thevaluereturnedbyPSN(X)istheareaunderthecurvetotheleftofthepointontheordinateindicatedbyX取消对变量x的默认下界为0的限制第三章 Lingo 基本函数集操作函数LINGO提供了几个函数帮助处理集。1in(set_name,primitive_index_1,primitive_index_2,)如果元素在指定集中,返回1;否则返回0;常用来产生补集。
9、例:全集为I,B是I的一个子集,C是B的补集。SETS:I/x1.x4/:x;B(I)/x2/:y;C(I)|#not#in(B,&1):z;ENDSETS2index(set_name,primitive_set_element)该函数返回在集set_name中原始集成员primitive_set_element的索引。如果set_name被忽略,那么LINGO将返回与primitive_set_element匹配的第一个原始集成员的索引。如果找不到,则产生一个错误。C 的第一个原始集,即I。翻译过来就是:I 里的成员,同时又不属于集合B第三章 Lingo 基本函数集操作函数3wrap(in
10、dex,limit)该函数返回j=index-k*limit,其中k是一个整数,取适当值保证j落在区间1,limit内。该函数相当于index“模limit再加1”。该函数在循环、多阶段计划编制中特别有用。参见后面的例子4size(set_name)该函数返回集set_name的成员个数。在模型中明确给出集大小时最好使用该函数。它的使用使模型更加数据中立,集大小改变时也更易维护。第三章 Lingo 基本函数集循环函数集循环函数遍历整个集进行操作。其语法为function(setname(set_index_list)|conditional_qualifier:expression_list)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 第三 Lingo 基本 函数 优化 软件 应用 教学 课件
限制150内