24小时热门版块排行榜    

查看: 1439  |  回复: 3

laoyeye2

木虫 (小有名气)

[求助] matlab 多目标优化求解最小值 已有1人参与

matlab 多目标优化求解最小值
1.jpg


matlab 多目标优化求解最小值-1
2.jpg

以下为求解过程。。。。。。。。。。。。。。。。。。。。。。。。。
目标函数:
function f = my_first_multi2(x)
f(1)=121.06621+5.47522*x(1)-28.46988*x(2)-13.5757*x(3)-0.54759*x(1)*x(2)-0.38818*x(1)*x(3)+1.32485*x(2)*x(3) ...
    +0.14034*x(1)^2+1.87034*x(2)^2+0.52653*x(3)^2;
约束函数:
function [c,ceq]=ga_con1(x)
c=[161.23586-10.31686*x(1)-24.81371*x(2)-9.95421*x(3)+0.91842*x(1)*x(2)-0.098083*x(1)*x(3) ...
    +0.377*x(2)*x(3)+0.24078*x(1)^2+1.18925*x(2)^2+0.81175*x(3)^2-12;
    512.14149-54.38052*x(1)+59.73721*x(2)+70.37891*x(3)+5.09733*x(1)*x(2)-1.81717*x(1)*x(3)-6.75775*x(2)*x(3) ...
    1.50459*x(1)^2-7.99343*x(2)^2-1.05542*x(3)^2-530];
ceq=[];
求解:
FitnessFunction=@ my_first_multi2;
lb=[8 4 6];
ub=[14 6 8];
[x,fval] = ga(FitnessFunction,3,[],[],[],[],lb,ub,@ga_con1)



最后出现的问题:Optimization terminated: no feasible point found.
x =
  8     4     6
fval =
  23.0374
回复此楼
世上无难事。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文刀星

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
laoyeye2: 金币+20, ★★★★★最佳答案, 谢谢。 2015-09-21 16:42:41
内容已删除
2楼2015-09-21 09:30:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文刀星

木虫 (小有名气)

不知道为什么,按理说你写的约束方程中,得出的c应该是个列向量,可是实际运行的时候却是一个2*2的矩阵;矩阵中的元素分别是...前后的式子计算出来的,所以约束函数中的约束就已经不是你原来所想要的约束了。你可以试试看,我很好奇,为什么会发生这样的情况。
比如
x=[8,4,6];
c=[161.23586-10.31686*x(1)-24.81371*x(2)-9.95421*x(3)+0.91842*x(1)*x(2)-0.098083*x(1)*x(3) ...
    +0.377*x(2)*x(3)+0.24078*x(1)^2+1.18925*x(2)^2+0.81175*x(3)^2-12;
    512.14149-54.38052*x(1)+59.73721*x(2)+70.37891*x(3)+5.09733*x(1)*x(2)-1.81717*x(1)*x(3)-6.75775*x(2)*x(3) ...
    +1.50459*x(1)^2-7.99343*x(2)^2-1.05542*x(3)^2-530];
运行后得到的结果是
c =

  -55.5977   60.7089
  652.0240 -599.5962
但是我们想要的结果应该是
c =

  5.1113
  52.4278
这是什么情况?
3楼2015-09-21 09:50:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

文刀星

木虫 (小有名气)

啊!!!为什么把+号放到...之前就好了呢?
x=[8,4,6];
c=[161.23586-10.31686*x(1)-24.81371*x(2)-9.95421*x(3)+0.91842*x(1)*x(2)-0.098083*x(1)*x(3) +...
    0.377*x(2)*x(3)+0.24078*x(1)^2+1.18925*x(2)^2+0.81175*x(3)^2-12;
    512.14149-54.38052*x(1)+59.73721*x(2)+70.37891*x(3)+5.09733*x(1)*x(2)-1.81717*x(1)*x(3)-6.75775*x(2)*x(3)+ ...
    1.50459*x(1)^2-7.99343*x(2)^2-1.05542*x(3)^2-530];

c =

  5.1113
  52.4278
4楼2015-09-21 09:58:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 laoyeye2 的主题更新
信息提示
请填处理意见