24小时热门版块排行榜    

Znn3bq.jpeg
查看: 784  |  回复: 8
当前主题已经存档。

jlzeng

木虫 (正式写手)

[交流] 请帮我看一段matlab程序

问题:
Min  10X2+10X3+40
Sub. to  1≤X1≤4
1≤X2≤4
1≤X3≤4
1≤X4≤4
-(6.9402131+0.252469*x(1)-0.276517*x(2)+0.207394*x(3)+0.314560*x(4)+0.039335*x(1)*x(1)+0.039335*x(2)*x(2)-0.003563*x(3)*x(3)-0.006647*x(4)*x(4)-0.006296*x(1)*x(2)-0.034093*x(1)*x(3)-0.059668*x(1)*x(4)+0.010462*x(2)*x(3)+0.005134*x(2)*x(4)-0.008807*x(3)*x(4))+8.62≤0
6.9402131+0.252469*x(1)-0.276517*x(2)+0.207394*x(3)+0.314560*x(4)+0.039335*x(1)*x(1)+0.039335*x(2)*x(2)-0.003563*x(3)*x(3)-0.006647*x(4)*x(4)-0.006296*x(1)*x(2)-0.034093*x(1)*x(3)-0.059668*x(1)*x(4)+0.010462*x(2)*x(3)+0.005134*x(2)*x(4)-0.008807*x(3)*x(4)-9.17≤0
0.6730551+0.301146*x(1)-0.078675*x(2)+0.011658*x(3)+0.178452*x(4)+0.009664*x(1)*x(1)+0.009664*x(2)*x(2)+0.001284*x(3)*x(3)-0.002713*x(4)*x(4)-0.012422*x(1)*x(2)-0.023157*x(1)*x(3)-0.036011*x(1)*x(4)+0.024744*x(2)*x(3)-0.020623*x(2)*x(4)-0.002149*x(3)*x(4)-1.5≤0
-(0.6730551+0.301146*x(1)-0.078675*x(2)+0.011658*x(3)+0.178452*x(4)+0.009664*x(1)*x(1)+0.009664*x(2)*x(2)+0.001284*x(3)*x(3)-0.002713*x(4)*x(4)-0.012422*x(1)*x(2)-0.023157*x(1)*x(3)-0.036011*x(1)*x(4)+0.024744*x(2)*x(3)-0.020623*x(2)*x(4)-0.002149*x(3)*x(4)) ≤0
-(51.8277931+6.142814*x(1)+1.235285*x(2)-1.799889*x(3)+4.118358*x(4)-0.434893*x(1)*x(1)-0.434893*x(2)*x(2)+0.033447*x(3)*x(3)+0.076468*x(4)*x(4)-0.201259*x(1)*x(2)-0.652022*x(1)*x(3)+0.820377*x(1)*x(4)+1.839250*x(2)*x(3)-1.451273*x(2)*x(4)-0.023900*x(3)*x(4))+95≤0
51.8277931+6.142814*x(1)+1.235285*x(2)-1.799889*x(3)+4.118358*x(4)-0.434893*x(1)*x(1)-0.434893*x(2)*x(2)+0.033447*x(3)*x(3)+0.076468*x(4)*x(4)-0.201259*x(1)*x(2)-0.652022*x(1)*x(3)+0.820377*x(1)*x(4)+1.839250*x(2)*x(3)-1.451273*x(2)*x(4)-0.023900*x(3)*x(4)-100≤0

我的程序如下:
m文件
function [c,ceq]=mycon(x)
c=[-(6.9402131+0.252469*x(1)-0.276517*x(2)+0.207394*x(3)+0.314560*x(4)+0.039335*x(1)*x(1)+0.039335*x(2)*x(2)-0.003563*x(3)*x(3)-0.006647*x(4)*x(4)-0.006296*x(1)*x(2)-0.034093*x(1)*x(3)-0.059668*x(1)*x(4)+0.010462*x(2)*x(3)+0.005134*x(2)*x(4)-0.008807*x(3)*x(4))+8.62;
    6.9402131+0.252469*x(1)-0.276517*x(2)+0.207394*x(3)+0.314560*x(4)+0.039335*x(1)*x(1)+0.039335*x(2)*x(2)-0.003563*x(3)*x(3)-0.006647*x(4)*x(4)-0.006296*x(1)*x(2)-0.034093*x(1)*x(3)-0.059668*x(1)*x(4)+0.010462*x(2)*x(3)+0.005134*x(2)*x(4)-0.008807*x(3)*x(4)-9.17;
    0.6730551+0.301146*x(1)-0.078675*x(2)+0.011658*x(3)+0.178452*x(4)+0.009664*x(1)*x(1)+0.009664*x(2)*x(2)+0.001284*x(3)*x(3)-0.002713*x(4)*x(4)-0.012422*x(1)*x(2)-0.023157*x(1)*x(3)-0.036011*x(1)*x(4)+0.024744*x(2)*x(3)-0.020623*x(2)*x(4)-0.002149*x(3)*x(4)-1.5;
    -(0.6730551+0.301146*x(1)-0.078675*x(2)+0.011658*x(3)+0.178452*x(4)+0.009664*x(1)*x(1)+0.009664*x(2)*x(2)+0.001284*x(3)*x(3)-0.002713*x(4)*x(4)-0.012422*x(1)*x(2)-0.023157*x(1)*x(3)-0.036011*x(1)*x(4)+0.024744*x(2)*x(3)-0.020623*x(2)*x(4)-0.002149*x(3)*x(4));
    -(51.8277931+6.142814*x(1)+1.235285*x(2)-1.799889*x(3)+4.118358*x(4)-0.434893*x(1)*x(1)-0.434893*x(2)*x(2)+0.033447*x(3)*x(3)+0.076468*x(4)*x(4)-0.201259*x(1)*x(2)-0.652022*x(1)*x(3)+0.820377*x(1)*x(4)+1.839250*x(2)*x(3)-1.451273*x(2)*x(4)-0.023900*x(3)*x(4))+95;
    51.8277931+6.142814*x(1)+1.235285*x(2)-1.799889*x(3)+4.118358*x(4)-0.434893*x(1)*x(1)-0.434893*x(2)*x(2)+0.033447*x(3)*x(3)+0.076468*x(4)*x(4)-0.201259*x(1)*x(2)-0.652022*x(1)*x(3)+0.820377*x(1)*x(4)+1.839250*x(2)*x(3)-1.451273*x(2)*x(4)-0.023900*x(3)*x(4)-100];
ceq=[];

主程序:
>> fun='x(1)*0+x(2)*10+10+x(3)*10+30+x(4)*0';
>> x0=[1 1 1 1];
>> A=[];
>> b=[];
>> Aeq=[];
>> beq=[];
>> lb=[1 1 1 1];
>> ub=[4 4 4 4];
>> [x,fval,exitflag,output,lambda,grad,hessian]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,@mycon)


运行结果:
Warning: Large-scale (trust region) method does not currently solve this type of problem,
switching to medium-scale (line search).
> In fmincon at 260
Maximum number of function evaluations exceeded;
increase OPTIONS.MaxFunEvals.

x =

    4.2343    3.1404    4.3459    4.3459


fval =

  114.8638


exitflag =

     0


output =

       iterations: 66
        funcCount: 401
         stepsize: 1
        algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
    firstorderopt: 10.0000
     cgiterations: []
          message: [1x79 char]


lambda =

         lower: [4x1 double]
         upper: [4x1 double]
         eqlin: [0x1 double]
      eqnonlin: [0x1 double]
       ineqlin: [0x1 double]
    ineqnonlin: [6x1 double]


grad =

         0
   10.0000
   10.0000
         0


hessian =

    0.5552    0.1233    0.0784   -0.4841
    0.1233    0.0670    0.0061   -0.1023
    0.0784    0.0061    0.0198   -0.0586
   -0.4841   -0.1023   -0.0586    0.4462

请问是什么原因出错了?谢谢
回复此楼
沉默坚守
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cuihang

铁杆木虫 (正式写手)

VASPer

★ ★
spur(金币+2,VIP+0):感谢参与!
提示说你选用的算法规模太大不适合这个问题,建议换成较小的线性搜索
只是个警告,其实不必理会它

[ Last edited by cuihang on 2008-3-31 at 10:05 ]
聪明人知道自己是傻子,傻子以为自己是聪明人
2楼2008-03-31 10:04:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jlzeng

木虫 (正式写手)

那是不是要换其他函数啊?
用哪个比较好呢?
沉默坚守
3楼2008-03-31 10:06:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

y1ding

铁杆木虫 (著名写手)

★ ★ ★
spur(金币+3,VIP+0):感谢应助!欢迎常来!!
Maximum number of function evaluations exceeded;
increase OPTIONS.MaxFunEvals.
___________________________
看英文,加大OPTIONS.MaxFunEvals

Warning: Large-scale (trust region) method does not currently solve this type of problem,
switching to medium-scale (line search).
提示说你选用的算法规模太大不适合这个问题,已经自动换成较小的线性搜索

exitflag =

     0
这个是不成功的意思
4楼2008-03-31 11:04:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

y1ding

铁杆木虫 (著名写手)


lei0736(金币+1,VIP+0):谢谢
多看help
英文说明已经很明确了
5楼2008-03-31 11:04:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

y1ding

铁杆木虫 (著名写手)

★ ★ ★
csfn(金币+3,VIP+0):thanks
引用回帖:
Originally posted by cuihang at 2008-3-31 10:04:
提示说你选用的算法规模太大不适合这个问题,建议换成较小的线性搜索
只是个警告,其实不必理会它

[ Last edited by cuihang on 2008-3-31 at 10:05 ]

output =

       iterations: 66
        funcCount: 401
         stepsize: 1
        algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
    firstorderopt: 10.0000
     cgiterations: []
          message: [1x79 char]

已经换成        algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'

英文说明了
6楼2008-03-31 11:05:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jlzeng

木虫 (正式写手)

csfn(金币+0,VIP+0):可以到此帖交流:http://emuch.net/bbs/viewthread.php?tid=759829&fpage=1
高手能否将我的程序进行适当修改?
我没学过matlab,很多东西都不明白:)
沉默坚守
7楼2008-03-31 11:59:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jlzeng

木虫 (正式写手)

关键是它给出的值超出了我的范围!
1≤X1≤4
1≤X2≤4
1≤X3≤4
1≤X4≤4
但是它给出的值为
x =    4.2343    3.1404    4.3459    4.3459
X1、X3、X4值均超过4了,怎么会事?
沉默坚守
8楼2008-03-31 12:26:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jlzeng

木虫 (正式写手)

谢谢各位提示!
已经搞定了:)
沉默坚守
9楼2008-04-01 11:04:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jlzeng 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考博] 华师大读博 +3 xq83 2026-04-22 3/150 2026-04-22 03:56 by 啊哒哒哒叨
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考研] 一志愿A区211,22408 321求调剂 +7 随心所欲☆ 2026-04-15 8/400 2026-04-21 08:22 by Equinoxhua
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 一志愿中科大材料与化工,353分还有调剂学校吗 +11 否极泰来2026 2026-04-15 13/650 2026-04-20 22:31 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +4 yexuqing 2026-04-19 4/200 2026-04-20 14:47 by brantleo
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 5/250 2026-04-20 10:13 by 南风观火
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 求调剂 +6 苦命人。。。 2026-04-18 7/350 2026-04-19 16:27 by 中豫男
[考研] 294求调剂 +15 淡然654321 2026-04-15 15/750 2026-04-19 08:20 by cuisz
[考研] 0854求调剂 +23 门路摸摸 2026-04-15 27/1350 2026-04-19 01:59 by 烟雨流涯
[考研] 300求调剂 +12 橙a777 2026-04-15 12/600 2026-04-18 23:51 by 路病情
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 急需调剂 +9 绝不放弃22 2026-04-15 10/500 2026-04-18 08:09 by chixmc
信息提示
请填处理意见