QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2275|回复: 2
打印 上一主题 下一主题

菜鸟求教

[复制链接]
字体大小: 正常 放大

4

主题

2

听众

25

积分

升级  21.05%

该用户从未签到

自我介绍
我好动,没心眼,经常得罪人。大错不犯小错不断,为人还算正直,就是不太合群
跳转到指定楼层
1#
发表于 2010-2-23 08:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
各位师兄师姐你们好:
   我才开始学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
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
liwenhui        

70

主题

65

听众

5192

积分

独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

    社区QQ达人 邮箱绑定达人 发帖功臣 元老勋章 新人进步奖 风雨历程奖 最具活力勋章

    群组计量经济学之性

    群组LINGO

    本帖最后由 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));

    不知道我这样说你懂了吗?
    回复

    使用道具 举报

    4

    主题

    2

    听众

    25

    积分

    升级  21.05%

    该用户从未签到

    自我介绍
    我好动,没心眼,经常得罪人。大错不犯小错不断,为人还算正直,就是不太合群
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-28 02:11 , Processed in 0.393539 second(s), 62 queries .

    回顶部