楼主: zhumin123
5936 15

求助:解非线性规划 [推广有奖]

  • 0关注
  • 0粉丝

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
31 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
62 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2007-4-12
最后登录
2009-6-16

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位前辈,小弟遇一非线性规划难题,不知道有没有解,这关系到我的论文阿,肯定各位能伸出援助之手!小弟感激不尽!

目标函数
max y=-3106.545+17.063X1+352.300X7-26.058X8-74.626X9

约束函数 X2=27.060-0.258X1+0.748X7+1.394X8
LnX3=0.551+0.742LnX1+0.328LnX7-0.096Lny
X4=22.031-0.048X1+0.233X7+0.094X8
LnX5=-1.278+0.526LnX1+0.252Lny
X6=-16.678+0.282X1+0.525X8-0.131X9
X1+X2+X3+X4+X5+X6+X7+X8+X9=1254.4
188.16<X3<196.8
X8> 100.352
X6< 188.16
X1、X2、X3、X4、X5、X6、X7、X8、X9均大于零
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:非线性规划 线性规划 非线性 目标函数 感激不尽 非线性规划

沙发
maoxinshu 发表于 2007-4-12 18:36:00 |只看作者 |坛友微信交流群
188.16&lt;X3&lt;196.8,    X1、X2、X3、X4、X5、X6、X7、X8、X9均大于零有这样的约束怎么可能有解

使用道具

藤椅
aris_zzy 发表于 2007-4-12 20:19:00 |只看作者 |坛友微信交流群

去用lingo 或者matlab的fmincon

http://www.ariszheng.com

使用道具

板凳
machcom 发表于 2007-4-13 14:08:00 |只看作者 |坛友微信交流群
用lingo去解

使用道具

报纸
zjzza 发表于 2007-4-21 02:00:00 |只看作者 |坛友微信交流群
小朋友,Lingo 软件很容易处理

使用道具

地板
zjzza 发表于 2007-4-21 02:25:00 |只看作者 |坛友微信交流群

max=-3106.545+17.063*X1+352.300*X7-26.058*X8-74.626*X9;
22.031-0.048*X1+0.233*X7+0.094*X8-x4=0;
X6=-16.678+0.282*X1+0.525*X8-0.131*X9;
X1+X2+X3+X4+X5+X6+X7+X8+X9=1254.4;
X3<196.8;
x3>188.16;
X8>100.352;
X6<188.16;
@log(X3)=0.551+0.742*@log(X1)+0.328*@log(X7)-0.096*@log(-3106.545+17.063*X1+352.300*X7-26.058*X8-74.626*X9);

@Log(X5)=-1.278+0.526*@Log(X1)+0.252*@log(-3106.545+17.063*X1+352.300*X7-26.058*X8-74.626*X9);

Local optimal solution found at iteration: 31
Objective value: 169239.6


Variable Value Reduced Cost
X1 170.1372 0.000000
X7 488.3852 0.000000
X8 100.3520 0.000000
X9 0.000000 340.2391
X4 137.0912 0.000000
X6 83.98550 0.000000
X2 0.000000 314.2138
X3 188.1600 0.000000
X5 86.28885 0.000000

Row Slack or Surplus Dual Price
1 169239.6 1.000000
2 0.000000 314.2138
3 0.000000 -314.2138
4 0.000000 314.2138
5 8.640000 0.000000
6 0.000000 -870.1502
7 0.000000 -532.1719
8 104.1745 0.000000
9 0.000000 104605.0
10 0.000000 -27113.15

使用道具

7
sql2002 发表于 2007-5-2 20:34:00 |只看作者 |坛友微信交流群
牛人
https://bbs.pinggu.org/forum.php?mod=viewthread&tid=2341078&page=1&extra=#pid18046472

使用道具

8
dingd 发表于 2007-5-3 21:16:00 |只看作者 |坛友微信交流群

这类问题1stOpt更简单、更强一些。

六楼的Lingo代码漏掉了一个约束:X2=27.060-0.258X1+0.748X7+1.394X8。

1:即使不考虑这个约束,上述Lingo结果也是不对的,1stOpt的答案是:

Max=221894.7791423

x1: 157.333650500463
x2: 0.000000
x3: 188.160000000001
x4: 161.51219634253
x5: 88.6602372499202
x6: 27.6900894411515
x7: 631.043826465871
x8: 0.000000
x9: 0.000000

2:如果考虑漏掉的约束:

Max=136967.211039892

x1: 183.11549008588
x2: 270.585558685774
x3: 188.160000000013
x4: 103.815333140057
x5: 85.0339654884266
x6: 34.9605682042217
x7: 388.729084395614
x8: 0
x9: 0

附1stOpt代码:

ConstStr y=-3106.545+17.063*X1+352.300*X7-26.058*X8-74.626*X9;
Parameter x(1:2)[0,],x3[188.16,196.8],x(4:5)[0,],x6[0,188.16],x(7:9)[0,];
MaxFunction y;
X2=27.060-0.258*X1+0.748*X7+1.394*X8;
Ln(X3)=0.551+0.742*Ln(X1)+0.328*Ln(X7)-0.096*Ln(abs(y));
X4=22.031-0.048*X1+0.233*X7+0.094*X8;
Ln(X5)=-1.278+0.526*Ln(X1)+0.252*Ln(abs(y));
X6=-16.678+0.282*X1+0.525*X8-0.131*X9;
X1+X2+X3+X4+X5+X6+X7+X8+X9=1254.4;

使用道具

9
zjzza 发表于 2007-5-3 22:33:00 |只看作者 |坛友微信交流群

8楼有两处错误,

1、缺了条件:X8>100.352;
2、Parameter x(1:2)[0,],x3[188.16,196.8],x(4:5)[0,],x6[0,188.16],x(7:9)[0,];与原条件不符,因为原条件边界不能取等号;

如果按照你的错误做法,lingo 运行结果如下,与你的结果完全相同。

Global optimal solution found at iteration: 130986
Objective value: 136967.2


Variable Value Reduced Cost
X1 183.1155 0.000000
X7 388.7291 0.000000
X8 0.000000 592.3176
X9 0.000000 233.4801
X4 103.8153 0.000000
X6 34.96057 0.000000
X2 270.5856 0.000000
X3 188.1600 469.3340
X5 85.03397 0.000000
Y 136967.2 0.000000

Row Slack or Surplus Dual Price
1 136967.2 1.000000
2 0.000000 188.5141
3 0.000000 -188.5141
4 0.000000 188.5141
5 153.1994 0.000000
6 0.000000 -0.6652787E-01
7 0.000000 52839.08
8 0.000000 -16030.11
9 0.000000 -188.5141

[此贴子已经被作者于2007-5-3 22:53:39编辑过]

使用道具

10
zjzza 发表于 2007-5-3 22:42:00 |只看作者 |坛友微信交流群

正确做法应该是:

程序:

max=-3106.545+17.063*X1+352.300*X7-26.058*X8-74.626*X9;
22.031-0.048*X1+0.233*X7+0.094*X8-x4=0;
X6=-16.678+0.282*X1+0.525*X8-0.131*X9;
X1+X2+X3+X4+X5+X6+X7+X8+X9=1254.4;
X2=27.060-0.258*X1+0.748*X7+1.394*X8;
X3<196.8;
x3>188.16;
X8>100.352;
X6<188.16;
x1>0;x2>0;x4>0;x5>0;x6>0;x7>0;x9>0;
@log(X3)=0.551+0.742*@log(X1)+0.328*@log(X7)-0.096*@log(-3106.545+17.063*X1+352.300*X7-26.058*X8-74.626*X9);

@Log(X5)=-1.278+0.526*@Log(X1)+0.252*@log(-3106.545+17.063*X1+352.300*X7-26.058*X8-74.626*X9);

运行结果为:

Global optimal solution found at iteration: 126
Objective value: 76033.60


Variable Value Reduced Cost
X1 217.5779 0.000000
X7 221.5231 0.000000
X8 100.3520 0.000000
X9 0.000000 240.2764
X4 72.63523 0.000000
X6 97.36376 0.000000
X2 276.5149 0.000000
X3 188.1600 0.000000
X5 80.27317 0.000000

Row Slack or Surplus Dual Price
1 76033.60 1.000000
2 0.000000 202.3007
3 0.000000 -202.3007
4 0.000000 202.3007
5 0.000000 -202.3007
6 8.640000 0.000000
7 0.000000 -548.2099
8 0.000000 -632.0460
9 90.79624 0.000000
10 217.5779 0.000000
11 276.5149 0.000000
12 72.63523 0.000000
13 80.27317 0.000000
14 97.36376 0.000000
15 221.5231 0.000000
16 0.000000 0.000000
17 0.000000 65086.30
18 0.000000 -16239.32

[此贴子已经被作者于2007-5-3 22:51:16编辑过]

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-11-6 05:04