实验五:基于MATLAB的BP神经网络设计

一、实验要求:

重点是掌握BP神经网络的学习算法原理和代码设计方法,应用MATLAB编写BP神经网络训练方法;应用神经网络工具箱设计BP神经网络实现对输入输出数据的模型拟合。

已知:

训练样本: 期望输入:[x1,x2]T=[1,3]T, 期望输出:[t1, t2] T =[0.95, 0.05] T

激发函数f为:。学习步长为η=1。

初始权值和阈值:

二、实验内容

2.1应用MATLAB编写BP神经网络训练方法

2.1.1 实验代码:
%输入
x = [1,3,-1];
%输出
t = [0.95,0.05];
plot(t(1),t(2),'<')
%初始权值
%第二层第一个神经元的输入权值
w_1_i_1 = [1,-2,-3]';
%第二层第二个神经元的输入权值
w_1_i_2 = [2,0,1]';
%第三层第一个神经元的输入权值
w_2_i_1 = [1,0,2]';
%第三层第二个神经元的输入权值
w_2_i_2 = [1,-2,-3]';
plot_x = [];
plot_y = [];
for i=1:1000In_2_1 = x*w_1_i_1;In_2_2 = x*w_1_i_2;o1 = 1/(1+exp(-In_2_1));o2 = 1/(1+exp(-In_2_2));In_3_1 = [o1,o2,-1]*w_2_i_1;In_3_2 = [o1,o2,-1]*w_2_i_2;y1 = 1/(1+exp(-In_3_1));y2 = 1/(1+exp(-In_3_2));plot_x = [plot_x y1];plot_y = [plot_y y2];%判断是否满足结果fprintf('第%d轮\n',i)disp('result:')disp([y1,y2])disp('target:')disp(t)if t(1)- y1 <=0.01 && y2 - t(2)<=0.01
​     disp('success!')
​     disp(w_1_i_1)
​     disp(w_1_i_2)
​     disp(w_2_i_1)
​     disp(w_2_i_2)
​     % 画法一
​     plot(plot_x,plot_y,'b*-');
​     axis([0,1,0,1]);  %设定x轴和y轴的显示范围,分别是x轴显示的最小值 最大值,y轴显示的最小值 最大值
​     breakend%计算广义误差a_2_1 = (t(1)-y1)*y1*(1-y1);a_2_2 = (t(2)-y2)*y2*(1-y2);a_1_1 = (a_2_1*w_2_i_1(1)+a_2_2*w_2_i_2(1))*o1*(1-o1);a_1_2 = (a_2_1*w_2_i_1(2)+a_2_2*w_2_i_2(2))*o2*(1-o2);%更新权值yita = 1;dia_ta_w_1_i_1 = yita*a_1_1*x';dia_ta_w_1_i_2 = yita*a_1_2*x';dia_ta_w_2_i_1 = yita*a_2_1*x';dia_ta_w_2_i_2 = yita*a_2_2*x';w_1_i_1 = w_1_i_1 + dia_ta_w_1_i_1;w_1_i_2 = w_1_i_2 + dia_ta_w_1_i_2;w_2_i_1 = w_2_i_1 + dia_ta_w_2_i_1;w_2_i_2 = w_2_i_2 + dia_ta_w_2_i_2;
end

2.2 应用神经网络工具箱设计BP神经网络实现对输入输出数据的模型拟合。

2.2.1 实验代码:
x = [1,3]
t = [0.95,0.05]
plot(x(1),x(2),'*'); %绘制原始数据分布图
hold on
plot(t(1),t(2),'o');
hold on
net = newff([0,1],[2,1],{'tansig','tansig'});
net.trainParam.epochs = 100; %训练的最大次数
net.trainParam.goal = 0.005; %全局最小误差
net = train(net,x,t);
O = sim(net,x)
plot(O(1),O(2),'<');
axis([0.9,1,0,4]);

三、运行结果及分析

3.1应用MATLAB编写BP神经网络训练方法

第107轮
result:0.9448   0.0600
target:0.9500   0.0500
success!1.1556-1.5331-3.15562.26740.80220.73262.00903.02710.99100.0349-4.8953-2.0349第645轮
result:0.9500   0.0500
target:0.9500   0.0500
success!1.1627-1.5119-3.16272.27210.81630.72792.02363.07070.9764-0.0078-5.0235-1.9922

3.2 应用神经网络工具箱设计BP神经网络实现对输入输出数据的模型拟合。

>> ANN_By_newffx =1   3t =0.9500   0.0500O =0.9997   0.0597

【智能控制实验】基于MATLAB的BP神经网络设计相关推荐

  1. 【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计

    基于MATLAB的BP神经网络实现非线性函数拟合设计 一.实验要求: 重点是掌握BP神经网络的学习算法原理,掌握matlab工具箱设计BP神经网络拟合非线性模型的方法(m文件):掌握在图形用户界面下设 ...

  2. matlab耀输,基于 Matlab的BP神经网络在太阳耀斑级别预测中的应用

    第 42卷 第 3期 2014年 5月 河南师范大学学报(自然科学版) Journal of Henan Normal University(Natural Science Edition) Z.42 ...

  3. 【身份证识别】基于matlab GUI BP神经网络身份证识别【含Matlab源码 2239期】

    ⛄一.身份证号码识别简介 1 引言 当今是一个信息高度发达的时代,对于每个公民而言身份证那一连串的数字体现了个人信息的唯一性,出于保障公民合法权益和社会治安的考虑,越来越多的行业都开始建立自己的安全保 ...

  4. 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板)【含Matlab源码 790期】

    ⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...

  5. bp神经网络matlab代码_基于Matlab的BP神经网络识别26个英文字母

    一.设计思想 字符识别在现代日常生活的应用越来越广泛,比如车辆牌照自动识别系统,手写识别系统,办公自动化等等.本文采用BP网络对26个英文字母进行识别.首先将待识别的26个字母中的每一个字母都通过长和 ...

  6. 【车牌识别】基于matlab GUI BP神经网络车牌识别(带面板+语音播报)【含Matlab源码 1220期】

    ⛄一.BP车牌识别简介(附课程作业报告) 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组 ...

  7. 基于Matlab的BP神经网络识别26个英文字母

    一.设计思想 字符识别在现代日常生活的应用越来越广泛,比如车辆牌照自动识别系统,手写识别系统,办公自动化等等.本文采用BP网络对26个英文字母进行识别.首先将待识别的26个字母中的每一个字母都通过长和 ...

  8. 【交通标志识别】基于matlab GUI BP神经网络交通标志识别系统(含语音报警)【含Matlab源码 2240期】

    ⛄一.BP神经网络交通标志识别简介 道路交通标志用以禁止.警告.指示和限制道路使用者有秩序地使用道路, 保障出行安全.若能自动识别道路交通标志, 则将极大减少道路交通事故的发生.但是由于道路交通错综复 ...

  9. 基于matlab的bp神经网络,基于MATLAB的BP神经网络建模及系统仿真 (1)

    文章编号:1001-9944(2001)01-0034-03 基于M AT LAB 的BP 神经网络建模及系统仿真 Ξ 侯北平,卢 佩 (天津轻工业学院自动化系,天津 300222) 摘 要:将M A ...

最新文章

  1. php 多维数组 array sort 排序 :array_multisort
  2. 打开组策略时提示inetres.admx管理模板解析出错解决方法
  3. 微信小程序获取当前时间戳、获取当前时间、时间戳加减
  4. 献给汇编初学者-函数调用堆栈变化分析
  5. jqueryEasyui常用代码
  6. java mysql 单例模式_java 单例模式(singleton)连接 mysql 数据库
  7. Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
  8. 算法:回溯一 电话拨号数字里面的字母组合 letter-combinations-of-a-phone-number
  9. 计算机端口怎么配置波特率,怎么查看车载导航端口号、波特率和取码方式?
  10. Field.Store ,ANALYZED备忘
  11. 关于OriginPRO/Origin画图消锯齿以及平滑点与点之间的连接
  12. Python 告诉你中秋应该去哪里
  13. vc 调用matlab figure 画图
  14. python好学吗一般要学多久-Python好学吗?精通Python需要多长时间?
  15. mba和研究生的区别
  16. 3D视觉——4.手势识别(Gesture Recognition)入门——使用MediaPipe含单帧(Singel Frame)和实时视频(Real-Time Video)
  17. Kaggle赛题解析:Google手语识别
  18. CentOS(Linux)安装Chrome浏览器
  19. java 8之函数编程自定义函数接口@FunctionalInterface
  20. 大直径钢管直线度测量仪的使用

热门文章

  1. 【stm32】ADC的规则通道和注入通道混合使用
  2. 安装Vmware Tools时,显示安装程序无法自动安装VMCI,需要手动安装
  3. Kubernetes之Job
  4. 根据排队论阐述路由器和高速公路的拥堵以及拥堵缓解问题(二)
  5. 菜鸟慢慢爬行-----web(5)
  6. arduino驱动lcd1602
  7. PHP 的命令行模式
  8. 对人工智能未来发展的思考
  9. 2022-2028年中国体外诊断行业市场发展现状及竞争格局预测报告
  10. DataQL The content of elements must consist of well-formed character data or markup. 问题