matlab中的gamultiobj工具箱求解获得pareto值时,如何输出对应点自变量的值。
代码如下:
function f = my_first_multi(x)
f(1)=26.04917-7.30667*x(1)-1.82617*x(2)+2.03*x(3)+2.27729*x(4)+0.145*x(1)*x(2)-0.16125*x(1)*x(3)-0.18625*x(1)*x(4)-0.03925*x(2)*x(3)-0.04325*x(2)*x(4)+0.030312*x(3)*x(4)+0.52708*x(1)^2+0.032083*x(2)^2 +0.028646*x(3)^2+0.012005*x(4)^2;
f(2)=3.27083+0.49792*x(1)+0.02667*x(2)-0.82687*x(3)+0.016875*x(4)+0.034875*x(1)*x(2)-0.26781*x(1)*x(3)+0.15453*x(1)*x(4)-0.055312*x(2)*x(3)+0.033656*x(2)*x(4)-0.18898*x(3)*x(4)-0.028437*x(1)^2-0.000987*x(2)^2 +0.2507*x(3)^2+0.03598*x(4)^2;
fitnessfcn = @my_first_multi;
nvars = 4;
lb=[4 15 8 12];
ub=[8 35 16 28];
A = []; b = [];
Aeq = []; beq = [];
options=gaoptimset('ParetoFraction',0.3,'PopulationSize',100,'Generations',200,'StallGenLimit',200,'TolFun',1e-100,'PlotFcns',@gaplotpareto);
[x,fval ,EXITFLAG] = gamultiobj(fitnessfcn,nvars, A,b,Aeq,beq,lb,ub,options);
![调用MATLAB中多目标优化函数为什么只有pareto图形而不输出最优解和最优值]()
1.jpg |