长安浮云 发表于 2009-5-15 16:30

基于遗传神经网络的汽轮机代价敏感

要用MATLAB实现以下是程序部分,我是新手,调试不通,请教
主程序:
clear all
% 开始计时
tic,
% BP网络初始化
[P,T,R,S1,S2,S]=bpinit;
bounds=ones(S,1)*[-10 10];
% 初始种群个数
num=60;
pop=initializega(num,bounds,'fitness');
% 遗传代数
gen=200;
=ga(bounds,'fitness',[],pop,,'maxGenTerm',gen,...
'normGeomSelect',,['arithXover'],,'nonUnifMutation',);
for i=1:S
x(i)=endPop(1,i);
end;
sum=0;
% 前R*S1个编码为W1
for i=1:S1,
   for k=1:R,
   W1(i,k)=x(R*(i-1)+k);
   end
end
% 接着的S1*S2个编码(即第R*S1个后的编码)为W2
for i=1:S2,
for k=1:S1,
   W2(i,k)=x(S1*(i-1)+k+R*S1);
end
end
% 接着的S1个编码(即第R*S1+S1*S2个后的编码)为B1
for i=1:S1,
B1(i,1)=x((R*S1+S1*S2)+i);
end
% 接着的S2个编码(即第R*S1+S1*S2+S1个后的编码)为B2
for i=1:S2,
B2(i,1)=x((R*S1+S1*S2+S1)+i);
end
% 计算S1与S2层的输出
for i=1:60
   x1=W1*P(:,i)+B1;
   A1=1./(1+exp(-x1));
   x2=W2*A1+B2;
   A2=1./(1+exp(-x2));
   if A2<0.5

A3=0;
   elseif A2>=0.5
       A3=1;
   end
YY(i)=A3;
end
for i=1:1:40
   x1=W1*P(:,i)+B1;
   A1=1./(1+exp(-x1));
   x2=W2*A1+B2;
   A2=1./(1+exp(-x2));
   if A2<0.5
       sum(i)=0;
   elseifA2>=0.5
       sum(i)=10;
   end
end
   for i=41:1:60
   x1=W1*P(:,i)+B1;
   A1=1./(1+exp(-x1));
   x2=W2*A1+B2;
   A2=1./(1+exp(-x2));
   if A2<0.5
       sum(i)=100;
   elseif A2>=0.5
       sum(i)=0;
   end
   end
i=1:1:60
figure(1);
plot(i,YY(i),'ro',i,T(i),'b-');
xlabel('测试样本序号');
ylabel('故障类型');
legend('实际输出','样本输出')
figure(2);
plot(i,sum(i),'M+');
xlabel('测试样本序号');
ylabel('代价值');
legend('代价值')
toc % 结束计时

ChaChing 发表于 2009-5-15 19:32

个人水平专业有限, 建议楼主看下本版规则!
求助完整格式:出错代码和出错提示!
页: [1]
查看完整版本: 基于遗传神经网络的汽轮机代价敏感