数学建模社区-数学中国

标题: 一个优化问题 [打印本页]

作者: zhenshan198    时间: 2011-1-21 21:44
标题: 一个优化问题
本帖最后由 zhenshan198 于 2011-1-21 23:04 编辑

请用lingo求解这个问题
min f(x)=x1^2+x2^2+8
s.t.  
     x1^2-x2>=0
     -x1-x2^2+2=100
     x1,x2>=0

我的编程为
min=x1*x1+x2*x2+8;
x1*x1-x2>=0;
-x1-x2*x2+2=100;

结果却是
  No feasible solution found.
  Infeasibilities:                              0.000000
  Extended solver steps:                               0
  Total solver iterations:                             0
  Model Class:                                       NLP
  Total variables:                      2
  Nonlinear variables:                  2
  Integer variables:                    0
  Total constraints:                    3
  Nonlinear constraints:                3
  Total nonzeros:                       6
  Nonlinear nonzeros:                   4
                                Variable           Value        Reduced Cost
                                      X1        0.000000            0.000000
                                      X2        0.000000            0.000000
                                     Row    Slack or Surplus      Dual Price
                                       1  -0.1000000+308           -1.000000
                                       2        0.000000            0.000000
                                       3        0.000000            0.000000

望哪位大侠指点迷津,万分感谢!


作者: xlm2010    时间: 2011-1-21 21:49
shafa  我先试试
作者: 五味大侠    时间: 2011-1-21 22:59
lz,你第三个式子等号右边怎么是100。。。
作者: zhenshan198    时间: 2011-1-21 23:03
回复 五味大侠 的帖子

哦 应该是100,题目打错了一个数据
   
作者: zhenshan198    时间: 2011-1-21 23:05
回复 五味大侠 的帖子


    现在改过来了,你再看看
作者: 五味大侠    时间: 2011-1-21 23:13
式子应该没问题吧。不过确实无可行解啊。你想问什么?
作者: zhenshan198    时间: 2011-1-21 23:21
不会吧,lingo解不出来,不敢相信,matlab可以解出来的。
作者: zhenshan198    时间: 2011-1-21 23:23
回复 五味大侠 的帖子


    lingo是求解优化问题的专业软件啊
作者: 五味大侠    时间: 2011-1-21 23:25
lingo里认为x1和x2是大于等于0的啊,你看看matlab解出来的应该不满足x1,x2>=0的条件吧
作者: zhenshan198    时间: 2011-1-21 23:27
x =

    1.0032
    0.9985


y =

   10.0077
这是matlab给出的结果

作者: 五味大侠    时间: 2011-1-21 23:32
你matlab没弄错吧,这问题用眼扫一下显然就是无可行解的。。。
作者: zhenshan198    时间: 2011-1-21 23:40
回复 五味大侠 的帖子


    这是MATLAB一教程上的例题,用了惩罚函数,应该不会有问题
作者: 五味大侠    时间: 2011-1-21 23:52
别说书上,单论这题,你觉得书上结果对吗?
作者: zhenshan198    时间: 2011-1-22 00:03
回复 五味大侠 的帖子

我发现问题了,你说的那个地方应该是0不是100,这样lingo解出来了结果是
Global optimal solution found.
  Objective value:                              10.00000
  Objective bound:                              10.00000
  Infeasibilities:                             0.5125306E-08
  Extended solver steps:                               2
  Total solver iterations:                            91

  Model Class:                                       NLP

  Total variables:                      2
  Nonlinear variables:                  2
  Integer variables:                    0

  Total constraints:                    3
  Nonlinear constraints:                3

  Total nonzeros:                       6
  Nonlinear nonzeros:                   4

                                Variable           Value        Reduced Cost
                                      X1        1.000000            0.000000
                                      X2        1.000000            0.000000

                                     Row    Slack or Surplus      Dual Price
                                       1        10.00000           -1.000000
                                       2       0.2724872E-07      -0.4000000
                                       3      -0.5125306E-08        1.200000

这才是对的,谢谢啦!
   
作者: zhenshan198    时间: 2011-1-22 00:04
回复 zhenshan198 的帖子
肯定是排版出错了,100应该是无可行解的

   
作者: 五味大侠    时间: 2011-1-22 00:06
客气了。嗯,之前一直觉得100这数给的很诡异。。。
作者: 肖情    时间: 2011-1-22 08:58
有时候,就得多用软件算一下,避免错误结果。。。
作者: zhenshan198    时间: 2011-1-22 10:46
回复 肖情 的帖子

就是就是
   
作者: tiant0928    时间: 2011-1-22 16:52
matlab的结果不满足规划的约束:-x1-x2^2+2=100
作者: tiant0928    时间: 2011-1-22 16:57
把模型改为:
min=x1*x1+x2*x2+8;
x1*x1-x2>=0;
x1+x2*x2=-98;
@bnd(-10000,x1,10000);
@bnd(-10000,x2,10000);
可以有解
作者: tiant0928    时间: 2011-1-22 16:59
是不是lz的模型本身有问题,x1,x2均大于0,规划问题的约束-x1-x2*x2+2=100;显然满足不了啊。


作者: tiant0928    时间: 2011-1-24 08:44
LZ你的模型 有问题,在x1,x2非负情况下,约束:-x1-x2^2+2=100显然无法满足,matlab的结果应该是虚数解吧??

作者: zhenshan198    时间: 2011-1-24 20:09
回复 tiant0928 的帖子

题目中的一个约束条件应该是:-x1-x2^2+2=0;是印刷出错了
作者: shengshengchina    时间: 2011-10-6 09:13
在优化问题方面,我宁愿相信lingo,matlab有时总是莫名惊诧!
作者: yp4567    时间: 2011-10-6 10:26





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