优化不工作因为适应度函数必须是一个函数处理

13个视图(30天)
%定义目标函数
objFun1 = @ (x) -0.0365 * 0.18 x (1) + * x (2) - 0.389;% F (1)
objFun2 = @ (x) 0.0435 * 0.266 x (1) * (2) + 4.2 * x (3) + 0.019 * x (1) * (2) - 0.3 * (1) * x (3) - 0.2485;% F (2)
%定义约束函数
constraintFun = @ (x)协议([][]);在这种情况下%没有约束
%定义上下界限
磅= [6;1;0.05);%下界
乌兰巴托= [22;5;0.45);%上界
%定义结构的问题
问题。目标= {@ (x) -objFun1 (x) @ (x) objFun2 (x)};% F(1)多目标函数最小化和最大化- F (2)
问题。x0 = [6;1;0.05);%初始猜测
问题。磅=磅;%下界
问题。乌兰巴托=乌兰巴托;%上界
问题。nonlcon = constraintFun;%非线性约束
%为gamultiobj设置选项
选择= optimoptions (“gamultiobj”,“显示”,“通路”,“PlotFcn”,@gaplotpareto);
%解决多目标优化问题
[x, fval exitflag、输出]= gamultiobj(问题,选项);
%显示帕累托前面的解决方案金宝搏官方网站
流(“帕累托前解决方案:\ n”金宝搏官方网站);
i = 1:元素个数(fval)
流(“解决方案% d: \ n”,我);
流(F (1): % .4f \ n '-fval(我1));%乘以1的最大值F (1)
流(F (2): % .4f \ n 'fval(我,2));
流(“x1: % .4f \ n”x(我,1));
流(“x2: % .4f \ n”x(我,2));
流(“x3: % .4f \ n”x(我,3));
流(“- - - - - - - - - - - - - - - - - - - - - - - - - \ n”);
结束
%根据喜好找到最佳解决方案
optimalIndex =找到(fval (: 1) = = max (fval (: 1)));%找到解决方案的最大价值F (1)
optimalSolution = x (optimalIndex:);
流(“最佳解决方案:\ n”);
流(F (1): % .4f \ n '-fval (optimalIndex 1));%乘以1的最大值F (1)
流(F (2): % .4f \ n 'fval (optimalIndex 2));
流(“x1: % .4f \ n”,optimalSolution (1));
流(“x2: % .4f \ n”optimalSolution (2));
流(“x3: % .4f \ n”,optimalSolution (3));

答案(1)

马特·J
马特·J 5分钟前
编辑:马特·J 3分钟前
问题。目标=
@ (x) [-0.0365 * (1) + 0.18 * x (2) - 0.389;
0.0435 * 0.266 x (1) - * x (2) x (3) + 0.019 + 4.2 * * x (1) * (2) - 0.3 * (1) * x (3) - 0.2485);

类别

找到更多的在多目标优化帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!