matlab 多目标规划如何用matlab求解minf(1)=6-3x-4y-5zminf(2)=3x+4y+5z-6约束条件:x+y+z=1x,y,z>0

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 15:11:24
matlab 多目标规划如何用matlab求解minf(1)=6-3x-4y-5zminf(2)=3x+4y+5z-6约束条件:x+y+z=1x,y,z>0

matlab 多目标规划如何用matlab求解minf(1)=6-3x-4y-5zminf(2)=3x+4y+5z-6约束条件:x+y+z=1x,y,z>0
matlab 多目标规划
如何用matlab求解
minf(1)=6-3x-4y-5z
minf(2)=3x+4y+5z-6
约束条件:
x+y+z=1
x,y,z>0

matlab 多目标规划如何用matlab求解minf(1)=6-3x-4y-5zminf(2)=3x+4y+5z-6约束条件:x+y+z=1x,y,z>0
是这样的
function zFgoalattain
% 多目标最优化
clear all; clc
% 给定目标,权重按目标比例确定,给出初值
%options = optimset('TolCon',1e-008);
goal = [1 1 ];
weight = [0.5 0.5];
x0 = [1 1 1];
% 给出约束条件的系数
A=[]; B=[];
Aeq = [1 1 1]; Beq = 1;
lb=[0 0 0]; ub=[];
[x,fval,attainfactor,exitflag] = fgoalattain(@ObjFun,x0,goal,weight,A,B,Aeq,Beq,lb,ub)
% ------------------------------------------------------------------
function f = ObjFun(x)
f1=-3*x(1)-4*x(2)-5*x(3)+6;
f2=3*x(1)+4*x(2)+5*x(3)-6;
f=[f1;f2];
结果:
x =
0 0 1.0000
fval =
1.0000
-1.0000
attainfactor = 6.9944e-015
exitflag = 5