我写了一个名为&#34的函数;最大化毛利率"用于农业。公式如下:
max sigma(i = 1到n)sigma(j = 1到nc)(Pij * Yij - SDij ...(依此类推))...
此链接中的完整公式: http://i.stack.imgur.com/fMSiU.jpg
我认为它没有真正的matlab语法,并没有真正计算出最大值。还有另外两个公式,我想与它混合并将它们与进化算法(NSGA-II)联系起来,我真的不知道怎么做,虽然我很困惑自己在寻找它。
这是我在matlab中的功能:
function gx = costfunction( p,y,sd,fer,lb,oc,a,wp,Q,ma)
SigmaQNC = zeros(5,3);
SigmaNC = zeros(5,3);
for i=1:5
for j=1:3
SigmaQNC(i,j) = SigmaQNC(i,j) + Q(i,1);
SigmaNC(i,j) = (p(i,j).*y(i,j))-(sd(i,j)-fer(i,j)-lb(i,j)-oc(i,j)-ma(i,j)).*a(i,j)-wp(i,j).*SigmaQNC(i,j);
sort(SigmaNC);
end
end
gx=SigmaNC;
end
问题是,如何在matlab语法中真正编写它以及如何将这三个公式与NSGA-II相关联(如min Aij< = percent Aij< = max Aij)
任何形式的帮助都将受到赞赏。
答案 0 :(得分:-1)
是的,您的公式不是MATLAB语法。如果我理解正确,你想要最大化这个由NSGA-II和其他目标函数完成的目标函数。对于优化,最大f = -min f。