楼主: xiabin0721
1369 3

[商业管理] 非线性约束优化求解 [推广有奖]

  • 1关注
  • 2粉丝

已卖:199份资源

博士生

41%

还不是VIP/贵宾

-

威望
0
论坛币
94 个
通用积分
0.6354
学术水平
2 点
热心指数
2 点
信用等级
0 点
经验
2653 点
帖子
92
精华
0
在线时间
321 小时
注册时间
2012-12-11
最后登录
2025-10-24

楼主
xiabin0721 学生认证  发表于 2014-11-23 20:31:44 |AI写论文
30论坛币

问题:min f(s,t)=s^2-4*s^2*(s-t)/(4*s-t)^2;

    s.t.         s>t;

                  s>0;

                  t>0;

       s^2*(4*s-7*t)-2*t*(4*s-t)^3=0;


我的代码是:

function y = OptimFun(x)

y =x(1)^2-4*x(1)^2*(x(1)-x(2))/(4*x(1)-x(2))^2;


function[c,ceq] = mycon(x)

c = [];


ceq=x(1)^2*(4*x(1)-7*x(2))-2*x(2)*(4*x(1)-x(2))^3;


x = fmincon(@OptimFun,[0.01 0.00],[-1 1],[0],[],[],[0 0],[  ],@ConFun)



正确结果应该是 0.122 0.023 啊,结果老输出两个相同的值,请教大神们这个问题该怎么解呢?


最佳答案

关键词:非线性 function fmincon Optim Fun function

沙发
qlb061 发表于 2014-11-23 20:59:05
  1. 直接用LINGO:
  2. min = s^2-4*s^2*(s-t)/(4*s-t)^2;
  3. s^2*(4*s-7*t)-2*t*(4*s-t)^3=0;

  4. Global optimal solution found.
  5. Objective value: -0.1223518E-01
  6. Objective bound: -0.1223518E-01
  7. Infeasibilities: 0.000000
  8. Extended solver steps: 1609
  9. Total solver iterations: 50216
  10. Elapsed runtime seconds: 11.34

  11. Model Class: NLP

  12. Total variables: 2
  13. Nonlinear variables: 2
  14. Integer variables: 0

  15. Total constraints: 2
  16. Nonlinear constraints: 2

  17. Total nonzeros: 4
  18. Nonlinear nonzeros: 4

  19. Variable Value Reduced Cost
  20. S 0.1225910 0.000000
  21. T 0.2391305E-01 -0.9754716E-08

  22. Row Slack or Surplus Dual Price
  23. 1 -0.1223518E-01 -1.000000
  24. 2 0.000000 0.5755037
复制代码

天道酬勤!

藤椅
xiabin0721 学生认证  发表于 2014-11-23 21:27:01
qlb061 发表于 2014-11-23 20:59
感谢!我没有用过Lingo,你是不是只要输02和03两行代码就搞定了?那么,s>t和s>0,t>0都不需要输入吗?

板凳
qlb061 发表于 2014-11-24 11:33:56
xiabin0721 发表于 2014-11-23 21:27
感谢!我没有用过Lingo,你是不是只要输02和03两行代码就搞定了?那么,s>t和s>0,t>0都不需要输入吗?
对的,求解程序只需要2-3两行。
LINGO默认变量取值非负,你也可以加上约束条件,不过没必要。

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-30 12:58