📄 calobjvalue.m
字号:
function objvalue=calobjvalue(pop)
%pop=((-10+(10+10))*rand(2,10));
%pop(10,2)
%测试函数1
%最优
% for i=1:10
% obfuct1=sin(sqrt(pop(i,1)^2+pop(i,2)^2))^2-0.5;
% obfuct2=(1+0.001*(sqrt(pop(i,1)^2+pop(i,2)^2))^2);
% objvalue(i,1)=0.5+obfuct1/obfuct2;
% end
%__________________________________________________________________________
%pop(10,10)
%测试函数2,Rastrigrin函数,自变量范围:(-10,10)
%最优解为X=(0...0),f(X)=0
a=size(pop);
objvalue=zeros(a(1),1);
for i=1:a(1)
for j=1:a(2)
obfuct1=pop(i,j)^2;
obfuct2=10*cos(2*pi*pop(i,j))-10;
objvalue(i,1)=objvalue(i,1)+(obfuct1-obfuct2);
end
end
%__________________________________________________________________________
%pop(10,9)
%测试函数3,Rosenbrock函数,自变量范围:(-10,10)
%最优解为X=(1...1),f(X)=0
%
% a=size(pop);
% objvalue=zeros(a(1),1);
% for i=1:a(1)
% for j=1:(a(2)-1)
% obfuct1=100*(pop(i,j+1)-pop(i,j)^2)^2;
% obfuct2=(pop(i,j)-1)^2;
% objvalue(i,1)=objvalue(i,1)+(obfuct1+obfuct2);
% end
% end
%_________________________________________________________________________
%pop(10,10)
%测试函数4,Griewank函数,自变量范围:(-10,10)
%最优解为X=(0...0),f(X)=0
%
% a=size(pop);
% objvalue=zeros(a(1),1);
% objvalue1=zeros(a(1),1);
% objvalue2=ones(a(1),1);
% for i=1:a(1)
% for j=1:(a(2)-1)
% obfuct1=pop(i,j)^2;
% obfuct2=cos(pop(i,j)/sqrt(j));
% objvalue1(i,1)=objvalue1(i,1)+obfuct1;
% objvalue2(i,1)=objvalue2(i,1)*obfuct2;
% end
% objvalue(i,1) =1/4000*objvalue1(i,1)-objvalue2(i,1)+1;
% end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -