📄 fitness.m
字号:
function fitnessval=fitness(chrom,p,aim)
global P_cross P_mutation sumen
load training_data1;
[Popsize len]=size(chrom);
fitness_gene=zeros(Popsize,1);
in_he=zeros(2,1);
out_he=zeros(1);
in_out=0;
out_out=0;
% 权值和阈值的分配设置
for i=1:Popsize
w_he=[chrom(i,1);
chrom(i,2);];
% w_out=[chrom(i,5)];
b_he=chrom(i,3);
a=chrom(i,4);
in_he=w_he(1)*p(1)+w_he(2)*p(2)+b_he;
out_he=(1-exp(-a*in_he))/(1+exp(a*in_he));
% error=zeros(2,1);
% for j=1:2
% for s=1:2
% % 隐层的输入与输出
% in_he(s)=sum(w_he(:,s).*p(:,j))+b_he(s);%隐层的输入
% % if in_he(s)>1.0e002
% % out_he(s)=-1;
% % else
% out_he(s)=(1-exp(in_he(s)))/(1+exp(in_he(s))); %隐层的输出
% % end
% end
% % 输出层的输入与输出
% in_out=w_out*out_he+b_out;
% out_out=1/(1+exp(-in_out));
%
% error(j)=aim(j)-out_out;
% end
% fitness_gene(i)=8/sum(error.^2); % 染色体均方误差
end
for in=1:n
m=(jn-1)*n+in+1
k1=fun5(x,F,zF)+un;
k2=fun5(x+h*k1/2,F,zF)+un;
k3=fun5(x+h*k2/2,F,zF)+un;
k4=fun5(x+h*k3,F,zF)+un;
x=x+h/6*(k1+2*k2+2*k3+k4);
yn=x(:,1);
y1(m)=x(:,41);
if yn<0
error('yn<0请重新设置控制参数')
end
y(m)=yn;
t1(m)=(m-1)*h;
end
en=r-yn;
e(jn+1)=en;
sumen=sumen+abs(e(jn+1));
save data1;
fitnessval=sumen;
% y=fitness_gene;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -