end end end P=n; for i=1:9
n(1,i)=n(1,i)./24; n(2,i)=n(2,i)./43; n(3,i)=n(3,i)./73; n(4,i)=n(4,i)./104; n(5,i)=n(5,i)./123; n(6,i)=n(6,i)./104; n(7,i)=n(7,i)./73; n(8,i)=n(8,i)./43; n(9,i)=n(9,i)./25; end
[m,d]=eig(n'); j=jordan(n'); for i=1:9;
if d(i,i)==1 end break end x=i;
b=m(:,i)./sum(m(:,i)); c=[9 8 7 6 5 4 3 2 1]; c*b
%BP神经网络 clear all
A=load('chengxu.txt'); x=A(:,1:4);
y=[A(:,5)]'./85.33;;
%给x中每列中存上你要的初始自变量数据 x2=[63.06 64.08 67.80 4.1496 69.06 68.52 69.75 0.2534 56.84 49.67 58.36 14.359 66.16 70.61 67.12 1.71 ];
y3=[65.68 67.03 59.05 67.50 ]';
%注意这里为了进行归一化处理,求最小值最大值
40
xmin1=min(x(:,1)); xmax1=max(x(:,1)); xmin2=min(x(:,2)); xmax2=max(x(:,2)); xmin3=min(x(:,3)); xmax3=max(x(:,3)); xmin4=min(x(:,4)); xmax4=max(x(:,4));
net.trainparam.epochs=10000;
%网络初始化 [8,8,8,1]是网络形状,{'tansig','logsig','logsig','tansig'}使网络具体结构
net=newff([xmin1,xmax1;xmin2,xmax2;xmin3,xmax3;xmin4,xmax4],[8,8,8,1],{'tansig','logsig','logsig','tansig'}); x=x';
%训练网络,你一定要注意到y是要归一化的即要小于1 [net,tr,y1,e]=train(net,x,y); y1=(y1.*85.33)'; y2=sim(net,x2); y2=(y2.*85.33)'; e=mae(y2'-y3);
fprintf('%f %f %f %f ',y2(1),y2(2),y2(3),y2(4)); fprintf(' e=%f',e); subplot(3,1,2); plot(x2,y2,'*'); title('网络产生') grid on
subplot(3,1,1); plot(x2,y3,'o'); title('原始数据') grid on
41