问题重述:现有10个气象观测点,经分析发现有些观测点的降雨量数据和其他的观测点数据具有紧密联系,故这些观测点可取消。经SPSS统计分析可得出,第3,6,7观测点的数据可由其他七个观测点推出。现通过七个观测点的30年降雨量数据,和实际3,6,7的30年数据,建立神经网络模型。然后再利用输入值和网络给出预测值。代码解析:clearclcA=[6004886166886486487285926885206646166087525606246489127684569127281000656624768824688744624;464384520440336184624440464384408512424504552384432496416320552440352368480304552584416520;448416488352496512432624472456392280328488360488400392408432504272496448304448472584472424;648432544880552880576728424640544720536472832472736440720616600848776720496560472432504672;232448496432448312504472440416576256296584456544624248472272576616496320368176360376320544;488512432552456664640464336592688576552704656480344536432648744720664608504680512568576336;544448592440544440424440368432496528336480464672504416408560512440432392560480576440368584];B3=[584520616520496312728528624376424552464584632496496592496472616480448480600384672680480680];B6=[176432504376448384480624544432552272344648464552752256188320544576568440352232424416432536];B7=[328536536456552344568568600504576360312680536576720304624312688680544408456288408392328632];B=[B3;B6;B7];%bp神经模拟[pn,minp,maxp,tn,mint,maxt]=premnmx(A,B);%对于输入矩阵A和输出矩阵B进行归一化处理??大致意思是将A和B归一到-1和1之间,分别放入矩阵pn和tn中,具体用法待查dx=[-1,1;-1,1;-1,1;-1,1;-1,1;-1,1;-1,1];%归一化处理后最小值为-1,最大值为1指的是输入向量的R成分R*Q1matrixofQ1sampleR-elementinputvectors??因为输入的A有七行,所以这里有七行-1,1net=newff(dx,[7,10,3],{'tansig','tansig','purelin'},'traingd');%建立模型,并采用基本梯度下降法训练.训练网络结构的建立,如下图。第二个参数表示隐含层的每层的节点个数(Sizeofithlayer,forN-1layers)??输出矩阵的大小由B决定所以不用指定。注意第三个参数{'tansig','tansig','purelin'}是三个隐含层传递函数的类型,分别为两个S型正切和一个线性,第四个参数是反馈的函数类型,此处为“梯度下降法的BP算法训练函数”。另外performancefunction默认是“均方误差MSE:meansquarederror”,本参数没有给出。net.trainParam.show=100;%100轮回显示一次结果net.trainParam.Lr=0.05;%学习速度为0.05net.trainParam.epochs=100000;%最大训练轮回为100000次net.trainParam.goal=1e-4;%均方误差为0.0001net=train(net,pn,tn);%开始训练,其中pn,tn分别为输入输出样本%训练时应该用归一化之后的数据an=sim(net,pn);%用训练好的模型进行仿真sim是仿真命令,具体用法待查a=postmnmx(an,mint,maxt);%训练结束后还应对网络的输出an=sim(net,pn)作如下处理这个地方写的有点乱。an指的不是输入,而是指利用了归一化后的输入值pn和网络net得到了预测值an,然后再对an进从归一化中恢复到正常数据a中,和上边的A没关系。%绘图,对比模拟结果x=1976:2005;newk=a(1,:);分别取预测值矩阵的三行,然后画出图形。newh=a(2,:);newm=a(3,:);subplot(3,1,1);plot(x,newk,'b--+',x,B3,'r-o')subplot分割屏幕,分割方式为3行1列,最后一个数字代表图的序号;plot画图,形式为(x,y,’代表颜色和线型的字符串’),可以同时画多个图,如plot(x1,y1,’’,x2,y2,’’);title给图加标题,xlable(‘’)和ylable(‘’)给x,y轴加标注title('3号观测站降水量预测')ylabel('降水量/mm')subplot(3,1,2);plot(x,newh,'b--+',x,B6,'r-o')title('6号观测站降水量预测')ylabel('降水量/mm')subplot(3,1,3);plot(x,newm,'b--+',x,B7,'r-o')title('7号观测站降水量预测')ylabel('降水量/mm')神经网络的图:分四个部分:第一部分展示神经网络的结构。第二部分运算法则(algorithms):训练函数:梯度下降法(traingd)gradient:道路的斜度,坡度,变化程度descent:下降,下坡propagate:繁衍,增殖,传播,普及backpropagation:反馈表现:默认是均方误差mean:意思,有价值有意义,卑鄙低微的,中间的平均的第三部分进程:epoch:纪元,时代,时期耗时下降程度(即精确度)有效程度检验第四部分画图:表现:说的是时间和精确度的关系训练状态:体现了精确度和有效性检验(没什么用)衰减:R值、数据和拟合的情况