当前位置:文档之家› 数学建模竞赛-神经网络

数学建模竞赛-神经网络

神经网络

解:设计BP网,编写文件ch14eg4.m,结构和参数见程序中的说明。

clear;close all;
x = [0:0.25:10]; y = 0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x); % x,y分别为输入和目标向量
net=newff(minmax(x),[20,1],{'tansig','purelin'}); % 创建一个前馈网络
y0 = sim(net,x); % 仿真未经训练的网络net
net.trainFcn='trainlm'; % 采用L-M优化算法TRAINLM
net.trainParam.epochs = 500; net.trainParam.goal = 1e-6; % 设置训练参数[net,tr]=train(net,x,y); % 调用相应算法训练网络
y1 = sim(net,x); % 对BP网络进行仿真
E = y-y1; MSE=mse(E) % 计算仿真误差
figure; % 下面绘制匹配结果曲线
plot(x,y0,':',x,y1,'r*',x,0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x),'b');
运行如下:
>> ch14eg4
MSE =9.6867e-007
例14.6 蠓虫分类问题。

两种蠓虫Af和Apf已由生物学家W.L.Grogan和W.W.Wirth(1981)根据他们的触角长度和翅长加以区分。

现测得6只Apf蠓虫和9只Af蠓虫的触长、翅长的数据如下:
Apf: (1.14,1.78),(1.18,1.96),(1.20,1.86),(1.26,2.),(1.28,2.00),(1.30,1.96).
Af: (1.24,1.72),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.4,1.7),
(1.48,1.82),(1.54,1.82),(1.56,2.08)
请用恰当的方法对触长、翅长分别为(1.24,1.80),(1.28,1.84),(1.40,2.04)的3个样本进行识别。

解:设计一个Lvq神经网络进行分类。

编写m文件ch14eg6.m
clear; close all;
Af=[1.24,1.36,1.38,1.38,1.38,1.4,1.48,1.54,1.56;1.27,1.74,1.64,1.82, 1.9,1.7,1.82,1.82,2.08];
Apf=[1.14 1.18 1.20 1.26 1.28 1.30;1.78 1.96 1.86 2.00 2.00 1.96];
x=[Af Apf];%输入向量
y0=[2*ones(1,9) ones(1,6)];%类2表示Af, 类1表示Apf
y=ind2vec(y0);%将下标向量转换为单值向量作为目标向量
net = newlvq(minmax(x),8,[0.6,0.4]);%建立LVQ网络
net.trainParam.show=100; net.trainParam.epochs = 1000;%设置参数
net = train(net,x,y); ytmp=sim(net,x);%对网络进行训练并用原样本仿真
y1=vec2ind(ytmp);%将单值向量还原为下标向量作为输出向量
xt=[1.24,1.28,1.40;1.80,1.84,2.04];%测试输入样本
yttmp=sim(net,xt)%对网络用新样本进行仿真
yt=vec2ind(yttmp)%输出新样本所属类别
figure;%打开一个图形窗口
plot(Af(1,:),Af(2,:),'+',Apf(1,:),Apf(2,:),'o',xt(1,:),xt(2,:),'*');
legend('Af','Apf','检测样本') 运行可得:
>> ch14eg6 yt =
1 1 1
可见测试样本属于Apf 。

14 Epochs
T r a i n i n g -B l u e G o a l -B l a c k。

相关主题