clear,clc
close all
a=load('Q3.txt');
z=a([1:10:900],[1:4]);
z=z';
P=z([1:3],[1:end]);
[PN,PS1]=mapminmax(P);
T=z(4,[1:end]);
[TN,PS2]=mapminmax(T);
EPOCHS=1000;
GOAL=0.000001;
s=3:15;
res=zeros(size(s));
for i=1:length(s)
net=newff(TN,[s(i),1.],{'tansig','purelin'},'trainlm');
net.iw{1,1}=zeros(size(net.iw{1,1}))+0.5;
net.iw{2,1}=zeros(size(net.iw{2,1}))+0.75;
net.b{1,1}=zeros(size(net.b{1,1}))+0.5;
net.b{2,1}=zeros(size(net.b{2,1}))+0.1;
net.trainParam.epochs=EPOCHS;
net.trainParam.goal=GOAL;
net=train(net,PN,TN);
y=sim(net,PN);
e=T-y;
error=mse(e,net);
res(i)=norm(error);
end
number=find(res==min(res));
if(length(number)>1)
no=number(1)
else no=number
end
clear error res;
net=newff(minmax(PN),[no,1],{'tansig','purelin'},'trainlm');
net.iw{1,1}=zeros(size(net.iw{1,1}))+0.5;
net.iw{2,1}=zeros(size(net.iw{2,1}))+0.75;
net.b{1,1}=zeros(size(net.b{1,1}))+0.5;
net.b{2,1}=zeros(size(net.b{2,1}));
net.trainParam.epochs=EPOCHS;
net.trainParam.goal=GOAL;
net=train(net,PN,TN);
y=sim(net,PN);
e=tn-y;
error=mse(e,net);
data1=load('Q31.txt');
data1=data1';
N=data1(4,[1:99]);
M=data1([1:3],[1:99]);
MN=mapminmax('apply',M,PS1);
YM1=sim(net1,MN);
YR=mapminmax('reverse',YM1,PS2)
MSE2=mean((YR-N).^2)
error=abs(YR-N);
figure
plot(error,'-*')
title('神经网络预测误差')
figure
plot(YR,':og');
hold on
plot(N,'-*');
legend('预测输出','期望输出','fontsize',12)
title('BP网络预测输出','fontsize',12)
xlabel('样本','fontsize',12)
ylabel('输出','fontsize',12)
错误使用 newff>new_5p1 (line 165)
Layer sizes is not a row vector of positive integers.
出错 newff>create_network (line 129)
net = new_5p1(varargin{:});
出错 newff (line 101)
out1 = create_network(varargin{:});
>>