和以前的习惯一样,只举典例,然后给程序和运行结果进行说明。
问题背景是:
给定某地区20年的数据,6列,21行,第一列值为年份,第二列为人数,第三列为机动车数量,第四列为公路面积,第五列为公路客运量,第六列为公路货运量,这20年是1990年到2009年,现在给我们2010和2011年,第二、三和四列的数据,让我们用BP网络预测该地区2010年和2011年公路的客运量和公路货运量,也就是第五和六列的值。
问题背景详见《MATLAB在数学建模中的应用》卓金武第二版 134页 或者联系我。
其中,CUMCM 2006 B题 艾滋病治疗最佳停药时间的确定也可用此法,程序改改数据,还有神经网络输入输出层和隐含层的部分即可,详情多看书。
代码:
function main()
clc % 清屏
clear all; % 清除内存以便加快运算速度
close all; % 关闭当前所有figure图像
warning off; % 屏蔽没有必要的警告
SamNum=20; % 输入样本数量为20
TestSamNum=20; % 测试样本数量也是20
ForcastSamNum=2;% 预测样本数量为2
HiddenUnitNum=8;% 中间层隐节点数量取8
InDim=3; % 网络输入维度为3
OutDim=2; % 网络输出维度为2
% 原始数据
% 人数
sqrs=[20.55 22.44 25.37 27.13 29.45 30.10 30.96 34.06 36.42 38.09 39.13 39.99 41.93 44.59 47.30 52.89 55.7