24小时热门版块排行榜    

查看: 1780  |  回复: 4

qinzhen724

新虫 (小有名气)

[求助] Matlab中用fmincon求解最小值问题,调试了好多次,一直找不到可行解,求大神指导 已有2人参与

用fmincon求解最小值问题(1个目标函数、9个变量、6个线性等式约束),一直都是No feasible solution,不知道本身无解还是什么问题。

x0=[4000;4000;2000;500;100;10;10;10;10];
A=[]; b=[];
Aeq=[-88.840439250000020,    20.679950666666663,   -2.158236236666667e+02,    -3.601469919166667e+02,   -36.694763666666690,   21.462819666666660,   -13.261596999999995,   7.477251833333336,   -1.023975406666667e+02;  
    0.012,    0,      0,     0.012,  0.012,    0,      0,      0,    0.012;  
    0,      0.002,  0.002,     0,    0.004,    0,    0.003,  0.002,    0;      
    0.016,    0,    0.016,   0.032,    0,      0,      0,      0,    0.016;            
    0,        0,      0,       0,      0,    0.028,  0.014,    0,      0;  
    0,        0,      0,       0,      0,      0,      0,   0.032,   0.032]
beq=[4588048.12066667;
         171.600000000000;
         21.5666666666667;
         241.933333333333;
         2.10000000000000;
         0.600000000000000]
VLB=[0.001;0.001;0.001;0.001;0.001;0.001;0.001;0.001;0.001];
VUB=[6601.833333;4978.305556;4978.305556;5172.684028;2489.152778;34.625;69.25;8.65625;8.65625];
options = optimoptions(@fmincon,'Algorithm','interior-point','MaxIter',5000);
[x,fval,exitflag,output]=fmincon(@Gibbsfun,x0,A,b,Aeq,beq,VLB,VUB,[],options)

%%目标函数为myobjfun
function G=myobjfun(x)
    deltaG1=-8.841665127258336e+04; deltaG2=-1.661952727160000e+05;
    deltaG3=5.504948170966668e+04; deltaG4=-1.666712325249982e+03;
    deltaG5=1.092642304030001e+05; deltaG6=-2.281491138470000e+05;
    deltaG7=1.169078584030000e+05; deltaG8=1.087887085851667e+05;
    deltaG9=4.941138012599998e+04;
G=x(1)*(deltaG1+8314*log(x(1)/sum(x)*1.2))+x(2)*(deltaG2+8314*log(x(2)/sum(x)*1.2))...
+x(3)*(deltaG3+8314*log(x(3)/sum(x)*1.2))+x(4)*(deltaG4+8314*log(x(4)/sum(x)*1.2))...
+x(5)*(deltaG5+8314*log(x(5)/sum(x)*1.2))+x(6)*(deltaG6+8314*log(x(6)/sum(x)*1.2))...
+x(7)*(deltaG7+8314*log(x(7)/sum(x)*1.2))+x(8)*(deltaG8+8314*log(x(8)/sum(x)*1.2))...
+x(9)*(deltaG9+8314*log(x(9)/sum(x)*1.2))

计算结果如下:
No feasible solution found.
fmincon stopped because the size of the current step is less than
the default value of the step size tolerance but constraints are not
satisfied to within the default value of the constraint tolerance.

<stopping criteria details>
x =
   1.0e+03 *

   4.666024308553983
   3.857233354391819
   2.387214185792911
   0.000001000000005
   0.000001000000001
   0.015465337002847
   0.000001000000003
   0.008656249999525
   0.006364985001793

fval =
    -1.006342210855910e+09

exitflag =
    -2

output =

         iterations: 70
          funcCount: 710
    constrviolation: 5.438285104570996e+06
           stepsize: 9.313859771460607e-10
          algorithm: 'interior-point'
      firstorderopt: 0.043644013275751
       cgiterations: 76
            message: 'No feasible solution found.
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
内容已删除
2楼2016-01-22 20:36:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qinzhen724

新虫 (小有名气)

引用回帖:
2楼: Originally posted by dingd at 2016-01-22 20:36:15
除了Matlab代码,把原问题用文本和图片描述下

谢谢你的回答。这就是一个简单气化炉的吉布斯模型的求解过程,等式约束是根据质量守恒和能量守恒得出,因为建模过程涉及不少物理化学的参数,不太好描述、
3楼2016-01-27 09:10:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wang_chuan

银虫 (正式写手)

【答案】应助回帖

你采用的是MATLAB内置的寻优方法,内点法,此类方法要求被求对象导数存在且容易求得,你的问题不一定符合这个要求。也就是说,你待求解的问题非线性强,不能用数学方法来做,或找不到可行解。建议用粒子群算法自己写一下程序,几十行定能求解出来。
4楼2016-01-27 22:30:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qinzhen724

新虫 (小有名气)

引用回帖:
4楼: Originally posted by wang_chuan at 2016-01-27 22:30:02
你采用的是MATLAB内置的寻优方法,内点法,此类方法要求被求对象导数存在且容易求得,你的问题不一定符合这个要求。也就是说,你待求解的问题非线性强,不能用数学方法来做,或找不到可行解。建议用粒子群算法自己写 ...

好的,我试试,谢谢
5楼2016-02-01 23:25:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 qinzhen724 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 面上项目filecode邪修 +4 西山十月 2026-08-09 6/300 2026-08-10 00:16 by liufeng0619
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +7 Lanmanbaby 2026-08-09 14/700 2026-08-09 23:33 by Tide man
[基金申请] 2026国自然放榜时间 +4 布布和一二 2026-08-08 4/200 2026-08-09 22:24 by otj2008
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[考博] 【2027博士申请】纳米药物递送方向 20+3 13586093586 2026-08-03 5/250 2026-08-08 21:54 by 13586093586
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] 化学口download_prp&amp;fileCode的固定段好像这几天一直没变,有变的大神么? +3 Tide man 2026-08-07 4/200 2026-08-07 22:39 by Tide man
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +9 archvillain 2026-08-04 11/550 2026-08-05 20:06 by wlwhappy
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
信息提示
请填处理意见