目标函数:min(x1+1.67x2)
max(219x1+478x2)
约束条件:x1<=400
x2<=1800
x1*x2>=0
利用MATLAB求多目标线性函数优化问题,求高手解答下
答案:2 悬赏:60
解决时间 2021-04-08 15:37
- 提问者网友:追忆成伤
- 2021-04-08 03:06
最佳答案
- 二级知识专家网友:说多了都是废话
- 2021-04-08 04:17
对多目标的优化不是特别熟,但直观上感觉你的两个目标函数前是否应该应该有个权重?
如果可以简单将它化为这样的问题“min(x1+1.67x2-219x1-478x2)”那用fmincon应该可以。
如果可以简单将它化为这样的问题“min(x1+1.67x2-219x1-478x2)”那用fmincon应该可以。
全部回答
- 1楼网友:為→妳鎖鈊
- 2021-04-08 04:34
function fgoal
clear;clc;
x0=[0 0 0 0];%x的初值,随便给啦
goal=[1 1 1 1]; %目标值,本题也可以随便给啦
weight=[1 1 1 1]; %权重值,本题也可以随便给啦
a=[-1 0 0 0;0 -1 0 0; 0 0 -1 0;0 0 0 -1]; %xi>0(i=1,2,3,4) 化成标准形xi<=0
b=[0;0;0;0]
aeq=[1 1 1 1];%∑xi=1;
beq=1;
[x,fval,attainfactor,exitflag]=fgoalattain(@fun,x0,goal,weight,a,b,aeq,beq)
function f=fun(x)
f(1)=15.4*x(1)+13.0*x(2)+13.6*x(3)+20.6*x(4);
f(2)=-(36.4*x(1)+43.1*x(2)+41.2*x(3)+28.2*x(4));
f(3)=2.75*x(1)+2.32*x(2)+2.42*x(3)+3.68*x(4);
f(4)=2.20*x(1)+1.80*x(2)+1.20*x(3)+9.60*x(4);
运行结果:
x = -0.0000 1.0000 0 0.0000
fval = 13.0000 -43.1000 2.3200 1.8000
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |