问题描述:如何用matlab求解
minf(1)=6-3x-4y-5z
minf(2)=3x+4y+5z-6
约束条件:
x+y+z=1
x,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 |
|