资源描述:
《神经网络Matlab和神经网络工具箱》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
2.1Matlab简介Matlab的首创者CleveMoler博士在数值分析,特别是在是指线性代数的领域中很有影响。Matlab(MatrixLaboratory,即矩阵实验室)Matlab于1984年推出了正式版本。后来Moler组建了一个名为MathWorks的软件开发公司(http://www.Mathworks.com)专门扩展并改进Matlab。1998年推出5.3版。2000年11月6日推出最新版本Matlab6.0。
1Matlab6.0有30个工具箱包,包括控制系统工具箱(ControlSystemToolbox)信号处理工具箱(SignalProcessingtoolbox)系统辨识工具箱(SystemIdentificationtoolbox)鲁棒控制工具箱(RobustControltoolbox)μ分析于综合工具箱(μ-analysisandsynthesistoolbox)定量反馈理论工具箱(QFTtoolbox)神经网络工具箱(NeuralNetworktoolbox)最优化工具箱(Optimisationtoolbox)数据库工具箱(Databasetoolbox)网络工具箱(MatlabWebServer)等。
2严格的说,Matlab并不是一种计算机语言,因为用它编写出来的程序并不能脱离Matlab环境而执行,但从功能上说,Matlab已经完全具备了计算机语言的结构和性能,因此我们也习惯的称之为Matlab语言。Matlab5.3以上版本提供了C/C++的接口,通过另外一个工具MatCom,能用VisualC++调用Matlab编写的程序,从而大大减少C++程序的编写难度。此工具我已经用过,效果不错。
32.2Matlab的基本操作2.2.1Matlab的安装关键是选择合适的工具箱和相应的帮助文件。2.2.2帮助文件(helpdesk)两种:(1)pdf格式(2)html格式2.2.3演示(demo)2.2.4退出:exit或quit命令
42.3Matlab的基本语句结构2.3.1基本的赋值语句变量名列表=表达式如:A=[1,2,3;4,5,6;7,8,0]等号右边的表达式可以用分号结束,也可以用逗号或换行号结束。Matlab区分大小写,Abc,ABC,abc表示不同的矩阵名。在矩阵A中,同一行中的内容用逗号分隔,而采用分号来表示换行。一般情况下,用于同行中分隔的逗号是可以由空格来代替的。
52.3.2Matlab的保留字符串判断0元素用的误差限eps,其默认值为eps=2.2204×10-16pi表示圆周率Inf表示无穷大。Matlab允许的最大数据为1.797693×10308;一个数据大于此数则认为是Inf。1/0产生Inf。即使在Matlab中保留了若干字符串,它们还可以重新进行赋值。如果用户想将判0的误差限扩大10倍,则可以采用eps=10×eps命令来进行修正。
62.4矩阵的基本运算矩阵A有n行m列,称A矩阵为n×m矩阵。2.4.1矩阵加减法运算:C=A+B和C=A-B。2.4.2矩阵的转置:AT在Matlab下,矩阵A的转置(包括复矩阵的转置)均可以简单地由A’求出。2.4.3矩阵乘法C=A×B在这里并不需要指定A、B的维数。
72.4.4矩阵的点乘两个矩阵对应元素之间的乘积。C=A.×B2.4.5矩阵的除法Matlab定义了矩阵的除法运算,其意义相当于矩阵的求逆运算。如:Ax=B,x=inv(A)×B,也可简单地写成x=A/B。
82.4.6单个矩阵元素的赋值与运算Matlab允许用户对一个矩阵地单个元素进行赋值和操作。Matlab还允许对子矩阵进行定义和处理。A(:,j)表示A矩阵的第j列元素;A(i,:)表示A矩阵的第i行全部元素。A(:,1)=[1,4,7]A(2,:)=[4,5,6]
92.5Matlab的控制语句2.5.1Matlab的循环语句结构for语句和while语句for语句的基本格式for循环变量i=表达式S1:表达式S3:表达式S2循环语句组end在C语言中,循环体的内容是以大括号{}括起来的,而在Matlab语言中,循环体的内容是以循环语句和end语句括起来的,所以在使用Matlab时应注意这一点。
10for循环体的程序框图
11while语句的结构while(条件式)循环语句组endwhile语句的框图
122.5.2Matlab的条件转移语句结构基本格式:if(条件式)条件块语句组end结构框图
13绝对转移由于Matlab没有提供绝对转移的指令,所以这样的功能可通过if和while的组合来完成。见例3。复杂的条件结构if(条件式)条件块语句组1else条件语句组2end
14if(条件式1)条件块语句组1elseif(条件式2)条件块语句组2………end
152.6Matlab的编程基础2.6.1Matlab允许的文件类型Matlab编写的程序分为M函数和M文件,其后缀名均为.m。Matlab允许用户调用可执行文件.exe。其调用方式是在>>下键入“!”,再接可执行文件的文件名。Matlab通过Mex功能可以实现对C或Fortran语言编写的程序的调用。
162.6.2Matlab变量的管理Size(A)得到A的维数,包括行数和列数,此时A是矩阵;Length(A)得到A的长度,此时A是向量;Who查看当前工作空间有哪些变量名;Whos了解这些变量的具体细节,包括名称(name),大小(size),元素数(element),字节数(bytes)等Clear删除变量;Save文件名变量列表其它选项:将工作空间的变量保存到文件中。-assii:ASCII码格式Load文件名:将save命令存储起来的数据再从文件调入工作空间。
172.7Matlab的绘图功能2.7.1建立和控制图形窗口figure建立新的图形窗口clf清除当前图形close关闭图形
182.7.2基本X-Y图形plot线性图形title图形标题xlabelX轴标记ylableY轴标记text文本注释grid网格线hold保持当前图形subplot在一个图形窗口画多个坐标图。例:subplot(2,3,2);plot(X)表示在2行3列的大图形中的第2号图中画X的形状。
192.8神经网络工具箱常用函数列表2.8.1重要的感知器神经网络函数初始化:initp训练:trainp仿真:simup学习规则:learnp
202.8.2线性神经网络函数初始化:initlin设计:solvelin仿真:simulin离线训练:trainwh在线自适应训练:adaptwh学习规则:learnwh
212.8.3BP网络函数Initff:初始化不超过3层的前向网络;Simuff:仿真不超过3层的前向网络;Trainbp,trainbpx,trainlm:训练BP(Trainbp:最慢;trainbpx:次之;trainlm:速度最快,但需要更多的存储空间。)Learnbp:学习规则
222.8.4自组织网络初始化:initsm仿真:simuc训练:trainc:利用竞争规则训练trainsm:利用Kohonen规则训练2.8.5反馈网络(Hopfield网络)仿真:simuhop设计:solvehop
232.9Matlab编程举例作业:2002年5月8日分块矩阵求逆法:A=A11A12A21A22上面的矩阵是一个分块矩阵,这时B=A-1=B11B12B21B22其中,B22=(A22-A21A11-1A12)-1,B12=-A11-1A12B22B21=-B22A21A11-1,B11=A11-1-B12A21A11-1。
24根据上述算法,计算:A=214-2-1-430-1-301234-2-3-4428631260-290-34686912的逆矩阵。(分块维数n1取3)【允许用inv()求A11-1】