www.gusucode.com > BP神经网络算法的matlab代码 > BP神经网络算法的matlab代码/bp源程序/sourse/Predict.m

    clear
tf='AnnData.txt';
fid=fopen(tf);
n=7;
m=3000;
geshi='';
for i=1:n
   geshi=[geshi '%f '];
end
ALLData=fscanf(fid,geshi,[n,m]);
[mx,my]=size(ALLData);
%%%%%%%%%%%%%%控制预测点的数目%%%%%%%%%%
iitr=[1:1:my];
[mx,my]=size(iitr);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ALLData=ALLData(:,iitr);

D1=ALLData(1,:);
D2=ALLData(2,:);
D3=ALLData(3,:);
D4=ALLData(4,:);
D5=ALLData(5,:);
D6=ALLData(6,:);
D7=ALLData(7,:);

DataIn=[D1;D3;D4;D5];
DataOut=D7;


[pn,minp,maxp,tn,mint,maxt]=premnmx(DataIn ,DataOut );


load ANN  % load ANN

deltp=maxp'-minp';
p1=minp';
p1=p1(ones(my,1),:)';
deltp=deltp(ones(my,1),:)';
%%%%%%%% ANN方法计算 CHF  %%%%%%%%%%   

         datin=[D1;D3;D4;D5];
         pin=(2*(datin-p1)-deltp)./deltp;
         atr=sim(net,pin);
         a=postmnmx(atr,mint,maxt);
         bb=a./DataOut;
rms=sqrt(sum((bb-1).^2)/my)
end
end
end
ave=sum(bb-1)/my
max(bb)
min(bb)
b=abs(bb-1);
rm=[0.05 .1 .15  0.2 .25 .3 .35 .4 .45  .5];
num=[];
for i= 1:10
num=[num sum(b<rm(i))/my]
end
rms
plot(rm,num,'.-')
xlabel('误差')
ylabel('数据百分数')
pause
x=linspace(0,1.600,10); 
x2=linspace(0,1.200,10);
y1=x;
y2=0.7*x;
y3=1.3*x2;
plot(x,y1,'r-',x,y2,'r-',x2,y3,'r-',DataOut,a,'r+')
xlabel('实验值(W/cm^2 )')
ylabel('预测值(W/cm^2 )')
axis('square')