function DWXL=shunlian3(zhanyou, manyi, xiaol, danwei)
%由市场占有率,顾客的满意度,销量预测下一年的单位销量
[L1,C1]=size(zhanyou);
[L2,C2]=size(manyi);
[pn4,minp4,maxp4] = premnmx(zhanyou); %归一化
[pn5,minp5,maxp5] = premnmx(manyi);
[pn6,minp6,maxp6] = premnmx( xiaol);
[pn7,minp7,maxp7] = premnmx(danwei);
for i=1:L1
zy=pn4(i,1:4); % 72*5 ,用前四年的数据学习-训练
my=pn5(i,1:4); % 72*5
xl=pn6(i,1:4); % 72*5
dw=pn7(i,2:5); % 72*5
m=[zy; my; xl];% 三个影响因素
net = newff([-1 1;-1 1;-1 1],[5 10 1],{'tansig','tansig','purelin'});
% 构建网络, 函数newff建立一个可训练的前馈网络。
net.trainParam.epochs=3000; %迭代的次数
net.trainFcn='trainlm'; %训练函数
net.trainParam.goal=1e-5; %误差
net.trainParam.lr=0.05; %速率
[net,b] = train(net,m,dw);
%训练的一种方式是批处理方式,它由函数train触发。在批处理方式中,当整个训练设置被应用到网络后权重和偏置才被更新。在每一个训练例子中的计算的梯度加在一起来决定权重和偏置的变化。
end
for i=1:L1
fanhua(1,i)=pn4(i,5); %第五年的数据
fanhua(2,i)=pn5(i,5);
fanhua(3,i)=pn6(i,5);
a=sim(net,[fanhua(1,i); fanhua(2,i); fanhua(3,i)]);
%函数sim 模拟一个网络。sim 接收网络输入p,网络对象net,返回网络输出a,由第五年的数据预测出第六年的数据
DWXL=postmnmx(a,minp7,maxp7); %撤销归一化
end