人工神经网络-第1B章Matlab与神经网络工具箱_第1页
人工神经网络-第1B章Matlab与神经网络工具箱_第2页
人工神经网络-第1B章Matlab与神经网络工具箱_第3页
人工神经网络-第1B章Matlab与神经网络工具箱_第4页
人工神经网络-第1B章Matlab与神经网络工具箱_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、何东健2.1 Matlab2.1 Matlab简介简介 Matlab的首创者的首创者Cleve Moler博士在数值分析,博士在数值分析,特别是在线性代数的领域中很有影响。特别是在线性代数的领域中很有影响。 Matlab(Matrix Laboratory,即矩阵实验室)即矩阵实验室) Matlab于于1984年推出了正式版本。后来年推出了正式版本。后来Moler组建了一个名为组建了一个名为MathWorks的软件开发的软件开发公司(公司(http:/www.M)专门扩展专门扩展并改进并改进Matlab。 1998年推出年推出5.3版。版。2000年年11月月6日推出最新日推出最新版本版本Ma

2、tlab 6.0。 此后,又推出了此后,又推出了7.0版本版本。Matlab 7.0有有40余余个工具箱包,包括个工具箱包,包括控制系统工具箱(控制系统工具箱(Control System Toolbox)信号处理工具箱(信号处理工具箱(Signal Processing toolbox)系统辨识工具箱(系统辨识工具箱(System Identification toolbox)鲁棒控制工具箱(鲁棒控制工具箱(Robust Control toolbox)分析于综合工具箱(分析于综合工具箱(-analysis and synthesis toolbox)定量反馈理论工具箱(定量反馈理论工具箱(

3、QFT toolbox)神经网络工具箱(神经网络工具箱(Neural Network toolbox)最优化工具箱(最优化工具箱(Optimisation toolbox)数据库工具箱(数据库工具箱(Database toolbox)网络工具箱(网络工具箱(Matlab WebServer)等。等。 严格的说,严格的说,Matlab并不是一种计算机语言,并不是一种计算机语言,因为用它编写出来的程序并不能脱离因为用它编写出来的程序并不能脱离Matlab环环境而执行,但从功能上说,境而执行,但从功能上说,Matlab已经完全具已经完全具备了计算机语言的结构和性能,因此我们也习备了计算机语言的结构和

4、性能,因此我们也习惯称之为惯称之为Matlab语言。语言。 Matlab 5.3以上版本提供了以上版本提供了C/C+的接口,通的接口,通过另外一个工具过另外一个工具MatCom,能用能用Visual C调调用用Matlab编写的程序,从而大大减少编写的程序,从而大大减少C程序程序的编写难度。的编写难度。 2. 2 MatlabMatlab的基本操作的基本操作2.2.1 Matlab的安装的安装 关键是关键是选择合适的工具箱选择合适的工具箱和相应的帮助文件。和相应的帮助文件。 2.2.2帮助文件(帮助文件(helpdesk)两种:(两种:(1)pdf格式格式 (2)html格式格式2.2.32.

5、2.3演示(演示(demodemo).4退出:退出:exit exit 或或quitquit命令命令2.3 Matlab2.3 Matlab的基本语句结构的基本语句结构2.3.1 2.3.1 基本的赋值语句基本的赋值语句变量名列表=表达式 如:A1,2,3;4,5,6;7,8,0等号右边的表达式可以用分号结束,也可以用逗号或换行号结束。Matlab区分大小写区分大小写,Abc,ABC,abc表示不同的矩阵名。在矩阵A中,同一行中的内容用逗号分隔,而采同一行中的内容用逗号分隔,而采用分号来表示换行用分号来表示换行。一般情况下,用于同行中分隔的逗号是可以由空逗号是可以由空格格来代替

6、的。 2.3.2 Matlab2.3.2 Matlab的保留字符串的保留字符串判断0元素用的误差限eps,其默认值为eps=2.220410-16 pi表示圆周率 Inf表示无穷大。Matlab允许的最大数据为1.79769310308;一个数据大于此数则认为是Inf。1/0产生Inf。 即使在Matlab中保留了若干字符串,它们还可以重新进行赋值。如果用户想将判0的误差限扩大10倍,则可以采用eps=10eps命令来进行修正。 2.4 2.4 矩阵的基本运算矩阵的基本运算 矩阵A有n行m列,称A矩阵为nm矩阵。 2.4.1 2.4.1 矩阵加减法运算:矩阵加减法运算: C=A+B 和和C=A

7、B。 2.4.2 2.4.2 矩阵的转置:矩阵的转置:AT 在Matlab下,矩阵A的转置(包括复矩阵的转置)均可以简单地由A求出。 2.4.3 2.4.3 矩阵乘法矩阵乘法 C=AC=AB B在这里并不需要指定A、B的维数。 2.4.4 2.4.4 矩阵的点乘矩阵的点乘 两个矩阵对应元素之间的乘积。 C=A.B 2.4.5 2.4.5 矩阵的除法矩阵的除法Matlab定义了矩阵的除法运算,其意义相当于矩阵的求逆运算。 如:Ax=B, x=inv(A)B,也可简单地写成x=A/B。2.4.6 2.4.6 单个矩阵元素的赋值与运算单个矩阵元素的赋值与运算Matlab允许用户对一个矩阵的单个元素进

8、行赋值允许用户对一个矩阵的单个元素进行赋值和操作。和操作。 Matlab还允许对子矩阵进行定义和处理。还允许对子矩阵进行定义和处理。 A(:,(:,j)表示表示A矩阵的第矩阵的第j列元素;列元素;A(i,:),:)表示表示A矩阵的第矩阵的第i列全部元素。列全部元素。A(:,(:,1)=1,4,7A(2,:),:)=4,5,62.5 Matlab2.5 Matlab的控制语句的控制语句 2.5.1 Matlab的循环语句结构的循环语句结构forfor语句和语句和whilewhile语句语句For For 语句的基本格式语句的基本格式 forfor 循环变量循环变量i=i=表达式表达式S1S1:表

9、达式表达式S3S3:表达式表达式S2S2 循环语句组循环语句组 endend 在在C C语言中,循环体的内容是以大括号语言中,循环体的内容是以大括号括起来的,括起来的,而在而在MatlabMatlab语言中,循环体的内容是以循环语句和语言中,循环体的内容是以循环语句和endend语句括起来的,所以在使用语句括起来的,所以在使用MatlabMatlab时应注意这一时应注意这一点。点。 求 取 S1的 值 ii S3 i循 环 体 语 句求 取 S2的 值i i在在 S S1 1、 S S2 2之之 间间是否结束循环for循环体的程序框图循环体的程序框图 while语句的结构语句的结构 while

10、 (条件式) 循环语句组endwhile语句的框图语句的框图 条件式成立?执行循环体内容是否循 环 结 束2.5.2 Matlab的条件转移语句结构的条件转移语句结构基本格式:基本格式: if(条件式)条件块语句组end 条件式成立?执行循环体内容是结构框图结构框图 绝对转移绝对转移 由于由于Matlab没有提供绝对转移的指令,所以这样的功能没有提供绝对转移的指令,所以这样的功能可通过可通过if和和while的组合来完成。见例的组合来完成。见例3。 复杂的条件结构复杂的条件结构 if(条件式)条件块语句组1else条件语句组2end条件语句1语句2 是否if(条件式1)条件块语句组1elsei

11、f (条件式2)条件块语句组2end条件1条件2条件n语句n语句1语句2语句n1是是2.6 Matlab2.6 Matlab的编程基础的编程基础 2.6.1 MatlabMatlab允许的文件类型允许的文件类型 Matlab编写的程序分为编写的程序分为M函数和函数和M文件文件,其后缀名均,其后缀名均为为.m。 Matlab允许用户调用可执行文件允许用户调用可执行文件.exe。其调用方式是其调用方式是在在下键入下键入“!”,再接可执行文件的文件名。,再接可执行文件的文件名。 Matlab通过通过Mex功能可以实现对功能可以实现对C或或Fortran语言编写语言编写的程序的调用。的程序的调用。 2

12、.6.2 Matlab变量的管理变量的管理Size(A)得到得到A的维数,包括行数和列数,此时的维数,包括行数和列数,此时A是矩阵;是矩阵;Length(A) 得到得到A的长度,此时的长度,此时A是向量;是向量;Who 查看当前工作空间有哪些变量名;查看当前工作空间有哪些变量名;Whos 了解这些变量的具体细节,包括名称(了解这些变量的具体细节,包括名称(name),),大大小(小(size),),元素数(元素数(element),),字节数(字节数(bytes)等等Clear 删除变量;删除变量;Save 文件名文件名 变量列表变量列表 其它选项其它选项 :将工作空间的变量保存:将工作空间的

13、变量保存到文件中。到文件中。 assii:ASCII码格式码格式Load 文件名:将文件名:将save命令存储起来的数据再从文件调入工命令存储起来的数据再从文件调入工作空间。作空间。2.7 Matlab2.7 Matlab的绘图功能的绘图功能2.7.1 2.7.1 建立和控制图形窗口建立和控制图形窗口figure建立新的图形窗口clf清除当前图形close关闭图形2.7.2 2.7.2 基本基本X-YX-Y图形图形plot线性图形title图形标题xlabelX轴标记ylableY轴标记text文本注释grid网格线hold保持当前图形subplot在一个图形窗口画多个坐标图。例:subplo

14、t(2,3,2);plot(X)表示在2行3列的大图形中的第2号图中画X的形状。 2.8 神经网络工具箱常用函数列表神经网络工具箱常用函数列表 2.8.1 重要的感知器神经网络函数重要的感知器神经网络函数初始化:初始化:initpinitp训练:训练:trainptrainp仿真:仿真:simupsimup学习规则:学习规则:learnplearnp2.8.2 线性神经网络函数线性神经网络函数 初始化:initlin设计:solvelin仿真:simulin离线训练:trainwh在线自适应训练:adaptwh学习规则:learnwh2.8.3 BP网络函数网络函数Initff:初始化不超过3

15、层的前向网络;Simuff:仿真不超过3层的前向网络;Trainbp,trainbpx,trainlm:训练BP(Trainbp:最慢;trainbpx:次之;trainlm:速度最快,但需要更多的存储空间。)Learnbp: 学习规则2.8.4 自组织网络自组织网络初始化:initsm仿真:simuc训练:trainc:利用竞争规则训练trainsm:利用Kohonen规则训练2.8.5反馈网络(反馈网络(Hopfield网络)网络)仿真:simuhop设计:solvehop2.9 MatlabMatlab编程举例编程举例%percept1.m%NEWP 建立一个感知器.%SIM 对感知器神

16、经网络进行仿真.%ADAPT 修正感知器神经网络.%P 为输入向量%T 为目标向量P=-1.0 -0.5 +0.3 -0.1; -0.5 +0.5 -0.5 +1.0T=1 1 0 0; % 绘制输入向量plotpv(P,T);disp(Press any key to continue.)pause %按任意键继续%建立一个感受知器net=newp(-1 1;-1 1,1);watchon;cla;%绘制输入向量plotpv(P,T);%绘制分类线linehandle=plotpc(net.IW1,net.b1);E=1;%初始化感知器net=init(net);disp(Press any key,to plot the initial classification line.)pause linehandle=plotpc(net.IW1,net.b1);%修正感知器网络while (sse(E) %sse:a network perfomance function to sum squared error. net,Y,E=adapt(net,P,T); linehandle=plotpc(net.IW1,net.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论