% gap.xls中存储训练样本的原始输入数据 37组
% gat.xls中存储训练样本的原始输出数据 37组
% p_test.xls中存储测试样本的原始输入数据 12组
% t_test.xls中存储测试样本的原始输出数据 12组
% 其中gabpEval.m适应度值计算函数,gadecod.m解码函数
%--------------------------------------------------------------------------
nntwarn off;% nntwarn函数可以临时关闭神经网络工具箱的警告功能,当代码使用到神经
% 网络工具箱的函数时会产生大量的警告 而这个函数可以跳过这些警告 但
% 是,为了保证代码可以在新版本的工具箱下运行,我们不鼓励这么做
pc=xlsread('gap.xls');
tc=xlsread('gat.xls');
p_test=xlsread('p_test.xls');
t_test=xlsread('t_test.xls');
p=pc';
t=tc';
p_test=p_test';
t_test=t_test';
% 归一化处理
for i=1:2
P(i,:)=(p(i,:)-min(p(i,:)))/(max(p(i,:))-min(p(i,:)));
end
for i=1:4
T(i,:)=(t(i,:)-min(t(i,:)))/(max(t(i,:))-min(t(i,:)));
end
for i=1:2
P_test(i,:)=(p_test(i,:)-min(p_test(i,:)))/(max(p_test(i,:))-min(p_test(i,:)));
end
%--------------------------------------------------------------------------
% 创建BP神经网络,隐含层节点数为12
net=newff(minmax(P),[12,4],{'tansig','purelin'},'trainlm');
%--------------------------------------------------------------------------
% 下面使用遗传算法对网络进行优化
R=size(P,1);% BP神经网络输入层节点数
S2=size(T,1);% BP神经网络输出层节点数
S1=12;% 隐含层节点数
S=R*S1+S1*S2+S1+S2;% 遗传算法编码长度
aa=ones(S,1)*[-1,1];
popu=100;% 种群规模
initPop=initializega(popu,aa,'gabpEval');% 初始化种群
gen=500;% 遗传代数
% 下面调用gaot工具箱,其中目标函数定义为gabpEval
[x,endPop,bPop,trace]=ga(aa,'gabpEval',[],initPop,[1e-6 1 1],'maxGenTerm',...
gen,'normGeomSelect',[0.09],['arithXover'],[2],'nonUnifMutation',[2 gen 3]);
%--------------------------------------------------------------------------
% 绘收敛曲线图
figure;
plot(trace(:,1),1./trace(:,3),'r-');
hold on;
plot(trace(:,1),1./trace(:,2),'b-');
xlabel('遗传代数');
ylabel('平方和误差');
figure;
plot(trace(:,1),trace(:,3),'r-');
hold on;
plot(trace(:,1),trace(:,2),'b-');
xlabel('遗传代数');
ylabel('适应度');legend('平均适应度值','最优适应度值');
%--------------------------------------------------------------------------
% 下面将初步得到的权值矩阵赋给尚未开始训练的BP网络
[W1,B1,W2,B2,P,T,A1,A2,SE,val]=gadecod(x);
net.IW{1,1}=W1;
net.LW{2,1}=W2;
net.b{1}=B1;
net.b{2}=B2;
% 设置训练参数
net.trainParam.epochs=3000;
net.trainParam.goal=1e-6;
% 训练网络
net=train(net,P,T);
w1=net.IW{1,1};
w2=net.LW{2,1};
b1=net.b{1};
b2=net.b{2};
% 测试网络性能
temp=sim(net,P_test);
yuce1=[temp(1,:);temp(2,:),;temp(3,:);temp(4,:)];
for i=1:4
yuce(i,:)=yuce1(i,:)*(max(t_test(i,:))-min(t_test(i,:)))+min(t_test(i,:));
end
%--------------------------------------------------------------------------
% 测试输出结果之一
figure;
plot(1:12,yuce(1,:),'bo-');
ylabel('切口外径 mm');
hold on;
plot(1:12,t_test(1,:),'r*-');
legend('测试结果','测试样本');
figure;
plot(1:12,yuce(1,:)-t_test(1,:),'b-');
ylabel('误差 mm');
title('测试结果与测试样本误差');
figure;
plot(1:12,((yuce(1,:)-t_test(1,:))/t_test(1,:))*100,'b*');
ylabel('百分比');
title('测试结果与测试样本误差');
% 测试输出结果之二
figure;
plot(1:12,yuce(2,:),'bo-');
ylabel('切口内径 mm');
hold on;
plot(1:12,t_test(2,:),'r*-');
legend('测试结果','测试样本');
figure;
plot(1:12,yuce(2,:)-t_test(2,:),'b-');
ylabel('误差 mm');
title('测试结果与测试样本误差');
figure;
plot(1:12,((yuce(2,:)-t_test(2,:))/t_test(2,:))*100,'b*');
ylabel('百分比');
title('测试结果与测试样本误差');
% 测试输出结果之三
figure;
plot(1:12,yuce(3,:),'bo-');
ylabel('最大滚切力 N');
hold on;
plot(1:12,t_test(3,:),'r*-');
legend('测试结果','测试样本');
figure;
plot(1:12,yuce(3,:)-t_test(3,:),'b-');
ylabel('误差 N');
title('测试结果与测试样本误差');
figure;
plot(1:12,((yuce(3,:)-t_test(3,:))/t_test(3,:))*100,'b*');
ylabel('百分比');
title('测试结果与测试样本误差');
% 测试输出结果之四
figure;
plot(1:12,yuce(4,:),'bo-');
ylabel('切断时间 s');
hold on;
plot(1:12,t_test(4,:),'r*-');
legend('测试结果','测试样本');
figure;
plot(1:12,yuce(4,:)-t_test(4,:),'b-');
ylabel('误差 s');
title('测试结果与测试样本误差');
figure;
plot(1:12,((yuce(4,:)-t_test(4,:))/t_test(4,:))*100,'b*');
ylabel('百分比');
title('测试结果与测试样本误差');
%--------------------------------------------------------------------------
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
使用MATLAB编写的GA-BP神经网络,可进行多组数据处理 % gap.xls中存储训练样本的原始输入数据 37组 % gat.xls中存储训练样本的原始输出数据 37组 % p_test.xls中存储测试样本的原始输入数据 12组 % t_test.xls中存储测试样本的原始输出数据 12组
资源详情
资源评论
资源推荐
收起资源包目录


共 1 条
- 1
































weixin_42653672
- 粉丝: 121
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 软件开发是工程吗?.docx
- T网络(索膜)施工记录.xls
- 电气工程自动化控制中PLC技术的应用.docx
- 基于AT89C51单片机的音乐喷泉控制系统方案设计书.doc
- linux的数据库oracleg安装.doc
- 广州卷烟销售网络建设联动工作实施策划.doc
- 浅析未来五年公用事业通信市场发展趋势.docx
- 软件专业毕业设计选题大全.doc
- 计算机网络第讲计算机网络概述.ppt
- 基于USB接口的现场数据采集系统设计开题报告.doc
- 基于大数据背景下档案管理模式创新与应用初探.docx
- 景宁县电子商务建设情况的调研报告.doc
- 大数据时代下的林业发展研究.docx
- 加强重大科技项目管理的对策研究——以宁波市为例.doc
- vsc和sqlserver影院管理完整.doc
- 互联网模式下计算机基础课后辅导探讨.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论4