QQ登录

只需要一步,快速开始

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

求解答,我用lingo计算最小交叉熵的解,老是提示错误,怎么解决?

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

6

主题

10

听众

42

积分

升级  38.95%

  • TA的每日心情
    难过
    2014-3-27 10:56
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    master
    跳转到指定楼层
    1#
    发表于 2013-11-6 17:12 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 svanscan 于 2013-11-6 17:12 编辑

    model:!16家银行;
    sets:
    A/1..16/:ai;
    B/1..16/:bj;
    links(A,B):X,X0;
    !X1=X_*;
    endsets
    data:
    ai=0.049105298,0.19706518,0.079929381,0.040404067,0.00307861,0.029535259,0.030970463,0.081245849,
    0.053001907,0.122173474,0.000229636,0.067807575,0.359324615,0.051351782,0.004097295,0.008038271;
    bj=0.06029401,0.017726814,0.034382538,0.041643595,0.006514545,0.075761924,0.011835925,0.017374484,
    0.11483671,0.17727039,0.029125245,0.127436517,0.242528843,0.025613802,0.002559618,0.015095039;
    enddata
    !目标函数:
    [obj]min=@sum(links(i,j)/i#ne#j:X(i,j)*(@log(X(i,j))-@log(X0(i,j))));
    aa=@sum(A(i):ai(i));
    bb=@sum(b(j):bj(j));
    !约束条件;
    @for(A(i):@sum(B(j):X(i,j))=X(i,i)+ai(i););
    @for(B(j):@sum(A(i):X(i,j))=X(j,j)+bj(j););
    @for(links(i,j):X0(i,j)=@if(i#EQ#j,0,ai(i)*bj(j)));
    end


    file:///C:\Users\lenovo\AppData\Roaming\Tencent\Users\605193618\QQ\WinTemp\RichOle\U)R3W8`~KYA$65%A~QPA6G7.jpg[img=0,1]file:///C:\Users\lenovo\AppData\Roaming\Tencent\Users\605193618\QQ\WinTemp\RichOle\L0OIYB[O6@$12DM)ZFW}1MR.jpg[/img][img=0,1]file:///C:\Users\lenovo\AppData\Roaming\Tencent\Users\605193618\QQ\WinTemp\RichOle\L0OIYB[O6@$12DM)ZFW}1MR.jpg[/img]file:///C:\Users\lenovo\AppData\Roaming\Tencent\Users\605193618\QQ\WinTemp\RichOle\U)R3W8`~KYA$65%A~QPA6G7.jpg
    提示错误如下
    error code  1017
    error text
    unexpected jacobian overflow. Contact Lingo Systems for patch availability(1).
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

    程序中有些错误,改正后可以在LINGO 11上运行,如需软件,可以在这个帖子中下载:
    http://www.madio.net/thread-190400-1-1.html
    你的这个错误信息经常会出现在LINGO 9的版本中,建议尝试LINGO 10或者LINGO 11。
    如果使用默认设置,则提示无可行解,但勾选Global Solver后求解时间过长,我简单试了下没有结果,你不妨检查下模型。
    修改后的程序代码下:
    model:!16家银行;sets:
    A/1..16/:ai;
    B/1..16/:bj;
    links(A,B):X,X0;
    !X1=X_*;
    endsets
    data:
    ai=0.049105298,0.19706518,0.079929381,0.040404067,0.00307861,0.029535259,0.030970463,0.081245849,
    0.053001907,0.122173474,0.000229636,0.067807575,0.359324615,0.051351782,0.004097295,0.008038271;
    bj=0.06029401,0.017726814,0.034382538,0.041643595,0.006514545,0.075761924,0.011835925,0.017374484,
    0.11483671,0.17727039,0.029125245,0.127436517,0.242528843,0.025613802,0.002559618,0.015095039;
    enddata
    !目标函数;
    [obj]min=@sum(links(i,j)|i#ne#j:X(i,j)*(@log(X(i,j))-@log(X0(i,j))));
    aa=@sum(A(i):ai(i));
    bb=@sum(b(j):bj(j));
    !约束条件;
    @for(A(i):@sum(B(j):X(i,j))=X(i,i)+ai(i););
    @for(B(j):@sum(A(i):X(i,j))=X(j,j)+bj(j););
    @for(links(i,j):X0(i,j)=@if(i#EQ#j,0,ai(i)*bj(j)));
    end

    有什么好说的
    回复

    使用道具 举报

    svanscan        

    6

    主题

    10

    听众

    42

    积分

    升级  38.95%

  • TA的每日心情
    难过
    2014-3-27 10:56
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    master
    wujianjack2 发表于 2013-11-6 18:06
    程序中有些错误,改正后可以在LINGO 11上运行,如需软件,可以在这个帖子中下载:
    http://www.madio.net/t ...

    谢谢啊,但我电脑是32位的,装lingo11,会不会运行不畅

    点评

    wujianjack2  没这回事吧??你试下吧。  详情 回复 发表于 2013-11-6 20:38
    回复

    使用道具 举报

    svanscan        

    6

    主题

    10

    听众

    42

    积分

    升级  38.95%

  • TA的每日心情
    难过
    2014-3-27 10:56
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    master
    wujianjack2 发表于 2013-11-6 18:06
    程序中有些错误,改正后可以在LINGO 11上运行,如需软件,可以在这个帖子中下载:
    http://www.madio.net/t ...

    可是,我用的是别人的数据,他运行出来的最有解不是这样子的,高手这又是为什么

    点评

    wujianjack2  你的模型和别人的是一样的么?检查下吧。  详情 回复 发表于 2013-11-6 20:39
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

    svanscan 发表于 2013-11-6 19:49
    谢谢啊,但我电脑是32位的,装lingo11,会不会运行不畅

       没这回事吧??你试下吧。
    有什么好说的
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

    svanscan 发表于 2013-11-6 20:14
    可是,我用的是别人的数据,他运行出来的最有解不是这样子的,高手这又是为什么

        你的模型和别人的是一样的么?检查下吧。
    有什么好说的
    回复

    使用道具 举报

    svanscan        

    6

    主题

    10

    听众

    42

    积分

    升级  38.95%

  • TA的每日心情
    难过
    2014-3-27 10:56
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    master
    wujianjack2 发表于 2013-11-6 20:39
    你的模型和别人的是一样的么?检查下吧。

    哦,是有点不一样,我不知道怎么把我的模型写到这上面,就传到附件里了,还请麻烦你帮我看下,应该怎么改?谢谢。 最小交叉熵数学模型.doc (15.5 KB, 下载次数: 3)
    回复

    使用道具 举报

    svanscan        

    6

    主题

    10

    听众

    42

    积分

    升级  38.95%

  • TA的每日心情
    难过
    2014-3-27 10:56
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    master
    wujianjack2 发表于 2013-11-6 20:39
    你的模型和别人的是一样的么?检查下吧。

    我忘记了一个约束条件,如果我的再加上,所有的元素和为1这样的约束条件,又该怎么改呢,
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

       匆匆写了几句,仍无解,可能有哪个地方写错了,你自己看看吧。
    MODEL:
    SETS:
    ASET:AI;  !SIXTEEN BANKS;
    BSET:BJ;  !SIXTEEN BANKS;
    LINKS(ASET,BSET):XZERO,XSTAR,RATIO_LOG_STAR_ZERO;
    ENDSETS
    DATA:
    AI=0.049105298,0.19706518,0.079929381,0.040404067,0.00307861,0.029535259,0.030970463,0.081245849,
       0.053001907,0.122173474,0.000229636,0.067807575,0.359324615,0.051351782,0.004097295,0.008038271;
    BJ=0.06029401,0.017726814,0.034382538,0.041643595,0.006514545,0.075761924,0.011835925,0.017374484,
       0.11483671,0.17727039,0.029125245,0.127436517,0.242528843,0.025613802,0.002559618,0.015095039;
    ENDDATA
    [OBJ] MIN=@SUM(LINKS(I,J):XSTAR(I,J)*RATIO_LOG_STAR_ZERO(I,J));
    @FOR(LINKS(I,J):RATIO_LOG_STAR_ZERO(I,J)=@IF(XSTAR(I,J) #NE# 0 #AND# XZERO(I,J) #NE# 0,@LOG(XSTAR(I,J))-@LOG(XZERO(I,J)),0));
    @FOR(BSET(J):@SUM(ASET(I):XSTAR(I,J))=BJ(J));
    @FOR(ASET(I):@SUM(BSET(J):XSTAR(I,J))=AI(I));
    @FOR(LINKS(I,J)|I #NE# J:XZERO(I,J)=AI(I)*BJ(J));
    @FOR(LINKS(I,J)|I #EQ# J:XZERO(I,J)=0);
    @SUM(LINKS(I,J):XZERO(I,J)+XSTAR(I,J))=1;
    END

    点评

    svanscan  朋友,附件里是我计算的模型,有些急,还请你费心看一下,指点迷津,到底是哪点出来问题  详情 回复 发表于 2013-11-8 17:01
    svanscan  万分感谢呐!!!  详情 回复 发表于 2013-11-8 13:12
    有什么好说的
    回复

    使用道具 举报

    svanscan        

    6

    主题

    10

    听众

    42

    积分

    升级  38.95%

  • TA的每日心情
    难过
    2014-3-27 10:56
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    自我介绍
    master
    wujianjack2 发表于 2013-11-8 12:52
    匆匆写了几句,仍无解,可能有哪个地方写错了,你自己看看吧。
    MODEL:
    SETS:

    万分感谢呐!!!
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-7-9 00:57 , Processed in 0.627957 second(s), 98 queries .

    回顶部