主程序如下:
options = gaoptimset ('PopulationSize',40,'EliteCount',5,'CrossoverFraction',0.75,'MigrationFraction',0.1,'Generations',200,'StallGenLimit',200,'TolFun',1e-6,'UseParallel',false,'Vectorized','on'); %设置参数
[x,fval]=ga(@GA_danfeng,5,[],[],[],[],[],[],[],options);
%其中'Vectorized','on'便是向量化已打开
适应度函数为
function f =GA_danfeng(x)
global k;
load w;load ps;
a=w';p=ps';
f1=(a./x(:,1)).^4./((1-(a./x(:,2)).^2).^2+(a./x(:,1)).^4).*(x(:,3).*(1+(2*x(:,4)*a./x(:,5)).^2)./((1-(a./x(:,5)).^2).^2+(2*x(:,4)*a./x(:,5)).^2));
f2=(f1-p).^2;
f=sum(f2);
end
提示的错误为:
>> GA_dan
错误使用 makeState (line 72)
When 'Vectorized' is 'on', your fitness fu