数学建模社区-数学中国

标题: 菜鸟求教 [打印本页]

作者: 10037Scott    时间: 2010-2-23 08:49
标题: 菜鸟求教
各位师兄师姐你们好:
   我才开始学lingo8.0,有些问题相求教你们,望多多指点。
1.lingo8.0的内部函数是啥?有外部函数吗?
2.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));
  );
end
中的 如@for(series( I)| I #GT# 1:    u( I) = @rand( u( I - 1))  );这样的嵌套语句,中时常出现
setname(i)和setname(j)的部分。这i和j怎么用  ?我正晕着呢
3.
其LINGO代码如下:
min f(x)+g(y)
st  f(x)={100+2x   g(y)={60+3y
             {2x                     {2y
x+y>=30    x,y.=0

model:
  min=fx+fy;
  fx=@if(x #gt# 0, 100,0)+2*x;
  fy=@if(y #gt# 0,60,0)+3*y;
  x+y>=30;
end
中的 fy=@if(y #gt# 0,60,0)+3*y;是错的,能改成 fy=@if(y #gt# 0,60+3*y,2*y);吗?
4.Cutoff(目标函数的截断值被达到)是啥意思?
5.@file只能调用txt文件的数据吗?如果分段函数有三个以上的分枝,还能用@if吗?如果不能要如何处理??




编辑 引用 评分 回复 TOP

作者: liwenhui    时间: 2010-2-24 14:04
本帖最后由 liwenhui 于 2010-2-24 14:07 编辑

1.学过C语言或者别的编程语言没有,内部函数应该指它的库函数
2.举例:
        sets:
               dog/1..5/:p,q;
            endsets
   @for(dog(i):p(i)*q(i));

以上代码的意思可以这样理解:集合设定部分表示的意思是“定义两个含有5个元素的向量p和q,且它们两个构成一个集合dog(或者理解为它们两个属于于一个5维向量空间dog)”
下面的@for()函数可以这样理解“针对集合dog的第i个位置,i依次从1变化到5,求相应位置的p的值和q的值的积”
3.lingo9里面分段函数这样的表示是可以的,不知道lingo8里面行不行。
4.我知道的有txt文件的数据可以调用,还有lingo本身的数据文件扩展名为.ldt可以调用,据说纯ASII码也可以,但没有试过,理论上将只要是windows平台,它也是完全可以的。
针对三个分支的分段函数,可以用函数的嵌套,比如一个函数y,当x大于0时为1,当x等于0时为0,当x小于0时为-1,那么可以这样表示:y=@if(y #ge#0,1,@if(y #eq#0,0,-1));

不知道我这样说你懂了吗?
作者: 10037Scott    时间: 2010-2-24 20:46
回复 2# liwenhui


    明白了 乐不思蜀师兄 多谢指导




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5