BP神经网络bp设计.ppt

上传人:wuy****n92 文档编号:70725651 上传时间:2023-01-27 格式:PPT 页数:107 大小:1.19MB
返回 下载 相关 举报
BP神经网络bp设计.ppt_第1页
第1页 / 共107页
BP神经网络bp设计.ppt_第2页
第2页 / 共107页
点击查看更多>>
资源描述

《BP神经网络bp设计.ppt》由会员分享,可在线阅读,更多相关《BP神经网络bp设计.ppt(107页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第三章第三章前馈人工神经网络前馈人工神经网络误差反传(误差反传(BP)算法的改进与)算法的改进与BP网络设计网络设计3.4基于基于BP算法的多层前馈网络模型算法的多层前馈网络模型n三层三层BP网络网络输入层输入层隐层隐层输出层输出层数学表达数学表达n模型的数学表达模型的数学表达输入向量:输入向量:X=(x1,x2,xi,xn)T隐层输出向量:隐层输出向量:Y=(y1,y2,yj,ym)T输出层输出向量:输出层输出向量:O=(o1,o2,ok,ol)T期望输出向量:期望输出向量:d=(d1,d2,dk,dl)T输入层到隐层之间的权值矩阵:输入层到隐层之间的权值矩阵:V=(V1,V2,Vj,Vm)

2、隐层到输出层之间的权值矩阵:隐层到输出层之间的权值矩阵:W=(W1,W2,Wk,Wl)各个变量之间如何建立联系,来描述整个网络各个变量之间如何建立联系,来描述整个网络?神经网络的学习神经网络的学习n学习的过程:学习的过程:w神神经经网网络络在在外外界界输输入入样样本本的的刺刺激激下下不不断断改改变变网网络络的的连连接接权权值值乃乃至至拓拓扑扑结结构构,以以使使网网络络的的输输出出不不断断地地接接近近期期望的输出。望的输出。n学习的本质:学习的本质:w对可变权值的动态调整对可变权值的动态调整n学习规则:学习规则:w权权值值调调整整规规则则,即即在在学学习习过过程程中中网网络络中中各各神神经经元元

3、的的连连接权变化所依据的一定的调整规则。接权变化所依据的一定的调整规则。nBPBP算法是一种学习规则算法是一种学习规则BP算法的基本思想算法的基本思想n学习的类型:有导师学习学习的类型:有导师学习n核心思想:核心思想:w将输出误差将输出误差以某种形式以某种形式通过隐层向输入层逐层反传通过隐层向输入层逐层反传n学习的过程:学习的过程:w信号的正向传播信号的正向传播误差的反向传播误差的反向传播将误差分摊给各层的所有将误差分摊给各层的所有单元各层单元的误单元各层单元的误差信号差信号修正各单元权修正各单元权值值BP算法的学习过程算法的学习过程n正向传播:正向传播:w输入样本输入层各隐层输出层输入样本输

4、入层各隐层输出层n判断是否转入反向传播阶段:判断是否转入反向传播阶段:w若输出层的实际输出与期望的输出(教师信号)不符若输出层的实际输出与期望的输出(教师信号)不符n误差反传误差反传w误差以某种形式在各层表示修正各层单元的权值误差以某种形式在各层表示修正各层单元的权值n网络输出的误差减少到可接受的程度网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止进行到预先设定的学习次数为止建立权值变化量与误差之间的关系建立权值变化量与误差之间的关系n输出层与隐层之间的连接权值调整输出层与隐层之间的连接权值调整n隐层和输入层之间的连接权值调整隐层和输入层之间的连接权值调整j=0,1,2,m;k=1

5、,2,l(3.4.9a)i=0,1,2,n;j=1,2,m(3.4.9b)式中负号表示梯度下降,常数式中负号表示梯度下降,常数(0,1)表示比例系数,反映了表示比例系数,反映了训练速率。可以看出训练速率。可以看出BP算法属于算法属于学习规则类,这类算法常被学习规则类,这类算法常被称为误差的梯度下降称为误差的梯度下降(Gradient Descent)算法。算法。BP算法的程序实现算法的程序实现(1)初始化;初始化;(4)计算各层误差信号;计算各层误差信号;(5)调整各层权值;调整各层权值;(6)检查是否对所有样本完成一检查是否对所有样本完成一次次轮训;轮训;(7)检查网络总误差是否达到精检查网

6、络总误差是否达到精度要求。度要求。(2)输入训练样本对输入训练样本对X Xp、d dp计算各层输出;计算各层输出;(3)计算网络输出误差;计算网络输出误差;BP算法的程序实现算法的程序实现然后根据总误差计算各层的然后根据总误差计算各层的误差信号并调整权值。误差信号并调整权值。另另一一种种方方法法是是在在所所有有样样本本输输入之后,计算网络的总误差:入之后,计算网络的总误差:多层前馈网的主要能力多层前馈网的主要能力(1)非线性映射能力非线性映射能力 多层前馈网能学习和存贮大量输入多层前馈网能学习和存贮大量输入-输出模式映射输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。关系,而无需事

7、先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供只要能提供足够多的样本模式对供BP网络进行学习训网络进行学习训练,它便能完成由练,它便能完成由n维输入空间到维输入空间到m维输出空间的非线维输出空间的非线性映射。性映射。多层前馈网的主要能力多层前馈网的主要能力(2)泛化能力泛化能力 当向网络输入训练时未曾见过的非样本数据时,当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这网络也能完成由输入空间向输出空间的正确映射。这种能力称为多层前馈网的泛化能力。种能力称为多层前馈网的泛化能力。(3)容错能力容错能力 输入样本中带有较大的误差甚至个别错误对

8、网络的输输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。入输出规律影响很小。误差曲面与误差曲面与BP算法的局限性算法的局限性误差函数的可调整参误差函数的可调整参数的个数数的个数nw等于各层权值等于各层权值数加上阈值数,即:数加上阈值数,即:误差误差E是是nw+1维空间中维空间中一个形状极为复杂的曲面,一个形状极为复杂的曲面,该曲面上的每个点的该曲面上的每个点的“高度高度”对应于一个误差值,每个对应于一个误差值,每个点的坐标向量对应着点的坐标向量对应着nw个权个权值,因此称这样的空间为误值,因此称这样的空间为误差的权空间。差的权空间。误差曲面的分布误差曲面的分布BP算法的局限性

9、算法的局限性n曲面的分布特点曲面的分布特点-算法的局限性算法的局限性n(1)存在平坦区域存在平坦区域-误差下降缓慢,影响收敛速度误差下降缓慢,影响收敛速度n(2)存在多个极小点存在多个极小点-易陷入局部最小点易陷入局部最小点曲面分布特点曲面分布特点1:存在平坦区域:存在平坦区域n平坦误差的梯度变化小平坦误差的梯度变化小接近于零接近于零存在平坦区域的原因分析存在平坦区域的原因分析n接近于零的情况分析接近于零的情况分析n造成平坦区的原因:造成平坦区的原因:各节点的净输入过大各节点的净输入过大对应着误差的某个谷点对应着误差的某个谷点 平坦区平坦区 曲面分布特点曲面分布特点2:存在多个极小点:存在多个

10、极小点n误差梯度为零误差梯度为零n多多数数极极小小点点都都是是局局部部极极小小,即即使使是是全全局局极极小小往往往也不是唯一的。往也不是唯一的。单权值单权值双权值双权值曲面分布特点曲面分布特点2:存在多个极小点:存在多个极小点nBP算法算法w以误差梯度下降为权值调整原则以误差梯度下降为权值调整原则n误差曲面的这一特点误差曲面的这一特点w使之无法辨别极小点的性质使之无法辨别极小点的性质n导致的结果:导致的结果:w因因而而训训练练经经常常陷陷入入某某个个局局部部极极小小点点而而不不能能自自拔拔,从从而而使训练无法收敛于给定误差。使训练无法收敛于给定误差。标准标准BP算法的改进引言算法的改进引言n误

11、差曲面的形状固有的误差曲面的形状固有的n算法的作用是什么?算法的作用是什么?w调整权值,找到最优点调整权值,找到最优点n那么如何更好地调整权值?那么如何更好地调整权值?w利利用用算算法法使使得得权权值值在在更更新新的的过过程程中中,走走合合适适的的路路径径,比如跳出平坦区来提高收敛速度,跳出局部最小点等等比如跳出平坦区来提高收敛速度,跳出局部最小点等等n如何操作?如何操作?w需需要要在在进进入入平平坦坦区区或或局局部部最最小小点点时时进进行行一一些些判判断断,通通过过改变某些参数来使得权值的调整更为合理。改变某些参数来使得权值的调整更为合理。标准的标准的BP算法内在的缺陷:算法内在的缺陷:易形

12、成局部极小而得不到全局最优;易形成局部极小而得不到全局最优;训练次数多使得学习效率低,收敛速度慢;训练次数多使得学习效率低,收敛速度慢;隐节点的选取缺乏理论指导;隐节点的选取缺乏理论指导;训练时学习新样本有遗忘旧样本的趋势。训练时学习新样本有遗忘旧样本的趋势。针针对对上上述述问问题题,国国内内外外已已提提出出不不少少有有效效的的改改进进算法,下面仅介绍其中算法,下面仅介绍其中3种较常用的方法。种较常用的方法。3.5标准标准BP算法的改进算法的改进n改进改进1:增加动量项:增加动量项n改进改进2:自适应调节学习率:自适应调节学习率n改进改进3:引入陡度因子引入陡度因子改进改进1:增加动量项:增加

13、动量项n提出的原因:提出的原因:w标标准准BP算算法法只只按按t时时刻刻误误差差的的梯梯度度降降方方向向调调整整,而没有考虑而没有考虑t时刻以前的梯度方向时刻以前的梯度方向w从从而而常常使使训训练练过过程程发发生生振振荡荡,收收敛敛缓缓慢。慢。n方法:方法:为动量系数,一般有为动量系数,一般有(0 0,1 1)n实质:实质:w从从前前一一次次权权值值调调整整量量中中取取出出一一部部分分迭迭加加到到本本次次权权值值调调整整量中量中n作用:作用:w动动量量项项反反映映了了以以前前积积累累的的调调整整经经验验,对对于于t时时刻刻的的调调整整起阻尼作用。起阻尼作用。w当当误误差差曲曲面面出出现现骤骤然

14、然起起伏伏时时,可可减减小小振振荡荡趋趋势势,提提高高训训练速度。练速度。改进改进1:增加动量项:增加动量项改进改进2:自适应调节学习率:自适应调节学习率n提出的原因:提出的原因:w标标准准BP算算法法中中,学学习习率率也也称称为为步步长长,确确定定一一个从始至终都合适的最佳学习率很难。个从始至终都合适的最佳学习率很难。w平坦区域内,平坦区域内,太小会使训练次数增加;太小会使训练次数增加;w在在误误差差变变化化剧剧烈烈的的区区域域,太太大大会会因因调调整整量量过过大大而而跨跨过过较较窄窄的的“坑坑凹凹”处处,使使训训练练出出现现振振荡荡,反而使迭代次数增加。反而使迭代次数增加。改进改进2:自适

15、应调节学习率:自适应调节学习率n基本思想:基本思想:w自适应改变学习率,使其根据环境变化增大或减小。自适应改变学习率,使其根据环境变化增大或减小。n基本方法:基本方法:w设设一一初初始始学学习习率率,若若经经过过一一批批次次权权值值调调整整后后使使总总误误差差,则本次调整无效,且,则本次调整无效,且=(1)。改进改进3:引入陡度因子引入陡度因子n提出的原因:提出的原因:w误差曲面上存在着平坦区域。误差曲面上存在着平坦区域。w权权值值调调整整进进入入平平坦坦区区的的原原因因是是神神经经元元输输出出进进入入了了转转移移函函数的饱和区。数的饱和区。n基本思想:基本思想:w如如果果在在调调整整进进入入

16、平平坦坦区区后后,设设法法压压缩缩神神经经元元的的净净输输入入,使使其其输输出出退退出出转转移移函函数数的的不不饱饱和和区区,就就可可以以改改变变误误差差函函数的形状,从而使调整脱离平坦区。数的形状,从而使调整脱离平坦区。改进改进3:引入陡度因子引入陡度因子n基本方法:基本方法:w在原转移函数中引入一个陡度因子在原转移函数中引入一个陡度因子w当当发发现现E接接近近零零而而d-o仍仍较较大大时时,可可判判断断已已进进入入平坦区,此时令平坦区,此时令1;w当退出平坦区后,再令当退出平坦区后,再令=1。改进改进3:引入陡度因子引入陡度因子作用分析:作用分析:w1:net坐坐标标压压缩缩了了倍倍,神神

17、经经元元的的转转移移函函数数曲曲线线的的敏敏感感区区段段变变长长,从从而而可可使使绝绝对对值值较较大大的的net退出饱和值。退出饱和值。w=1:转转移移函函数数恢恢复复原原状状,对对绝绝对对值值较较小小的的net具具有有较较高高的的灵灵敏敏度。度。w应应用用结结果果表表明明该该方方法法对对于于提提高高BP算法的收敛速度十分有效。算法的收敛速度十分有效。n基于基于BP算法的多层前馈网络模型算法的多层前馈网络模型nBP算法的实现算法的实现w基本思想基本思想w推导过程推导过程w程序实现程序实现nBP学习算法的功能学习算法的功能nBP学习算法的局限性学习算法的局限性nBP学习算法的改进学习算法的改进3

18、.6BP网络设计基础网络设计基础n一一、训练样本集的准备、训练样本集的准备w1.输入输出量的选择输入输出量的选择w2.输入量的提取与表示输入量的提取与表示w3.输出量的表示输出量的表示n二、输入输出数据的归一化二、输入输出数据的归一化n三、网络训练与测试三、网络训练与测试1输出量的选择输出量的选择n输出量输出量:代表系统要实现的功能目标代表系统要实现的功能目标系统的性能指标系统的性能指标分类问题的类别归属分类问题的类别归属非线性函数的函数值非线性函数的函数值一一 、训训练练样样本本集集的的准准备备输入量的选择输入量的选择n输入量选择的两条基本原则输入量选择的两条基本原则w必必须须选选择择那那些

19、些对对输输出出影影响响大大且且能能够够检检测测或或提提取取的的变量变量w各输入变量之间互不相关或相关性很小各输入变量之间互不相关或相关性很小一一 、训训练练样样本本集集的的准准备备输入输出量的性质输入输出量的性质n从从输输入入、输输出出量量的的性性质质来来看看,可可分分为为两两类类:一一类类是数值变量,一类是语言变量。是数值变量,一类是语言变量。w数值变量数值变量的值是数值确定的连续量或离散量。的值是数值确定的连续量或离散量。w语语言言变变量量是是用用自自然然语语言言表表示示的的概概念念,其其“语语言言值值”是是用自然语言表示的事物的各种属性。用自然语言表示的事物的各种属性。当当选选用用语语言

20、言变变量量作作为为网网络络的的输输入入或或输输出出变变量量时时,需需将其语言值转换为离散的数值量。将其语言值转换为离散的数值量。一一 、训训练练样样本本集集的的准准备备2.2.输入量的提取与表示输入量的提取与表示XC=(111100111)TXI=(111100111)TXT=(111100111)T(1)文字符号输文字符号输入入一一 、训训练练样样本本集集的的准准备备(2)曲线输入)曲线输入p=1,2,P一一 、训训练练样样本本集集的的准准备备(3)函数自变量输入函数自变量输入w一一般般有有几几个个输输入入量量就就设设几几个个分分量量,1个个输输入入分分量量对对应应1个输入层节点。个输入层节

21、点。(4)图象输入图象输入w在在这这类类应应用用中中,一一般般先先根根据据识识别别的的具具体体目目的的从从图图象象中中提提取取一一些些有有用用的的特特征征参参数数,再再根根据据这这些些参参数数对对输输入入的的贡献进行筛选,这种特征提取属于图象处理的范畴。贡献进行筛选,这种特征提取属于图象处理的范畴。一一 、训训练练样样本本集集的的准准备备3.3.输出量的表示输出量的表示(1)“n中取中取1”表示法表示法“n中取中取1”是令输出向量的分量数等于类别数,输入是令输出向量的分量数等于类别数,输入样本被判为哪一类,对应的输出分量取样本被判为哪一类,对应的输出分量取1,其余,其余n-1个分个分量全取量全

22、取0。例如,用。例如,用0001、0010、0100和和1000可分别表可分别表示优、良、中、差示优、良、中、差4个类别。个类别。(2)“n-1”表示法表示法 如果用如果用n-1个全为个全为0的输出向量表示某个类别,则可的输出向量表示某个类别,则可以节省一个输出节点。例如,用以节省一个输出节点。例如,用000、001、010和和100也也可表示优、良、中、差可表示优、良、中、差4个类别。个类别。(3)数值表示法数值表示法 对于渐进式的分类,可以将语言值转化为二值之间对于渐进式的分类,可以将语言值转化为二值之间的数值表示。数值的选择要注意保持由小到大的渐进关的数值表示。数值的选择要注意保持由小到

23、大的渐进关系,并要根据实际意义拉开距离。系,并要根据实际意义拉开距离。一一 、训训练练样样本本集集的的准准备备二、输入输出数据的归一化二、输入输出数据的归一化 归一化也称为或标准化,是指通过变换处理将归一化也称为或标准化,是指通过变换处理将网络的输入、输出数据限制在网络的输入、输出数据限制在0,1或或-1,1区间区间内。内。进行归一化的主要原因:进行归一化的主要原因:归一化的方法:归一化的方法:进行归一化的主要原因:进行归一化的主要原因:n网网络络的的各各个个输输入入数数据据常常常常具具有有不不同同的的物物理理意意义义和和不不同同的的量量纲纲,归归一一化化给给各各输输入入分分量量以以同同等等重

24、重要要的的地地位;位;nBP网网的的神神经经元元均均采采用用Sigmoid转转移移函函数数,变变换换后后可可防防止止因因净净输输入入的的绝绝对对值值过过大大而而使使神神经经元元输输出出饱饱和和,继而使权值调整进入误差曲面的平坦区;继而使权值调整进入误差曲面的平坦区;nSigmoid转转移移函函数数的的输输出出在在01或或-11之之间间。教教师师信信号号如如不不进进行行归归一一化化处处理理,势势必必使使数数值值大大的的输输出出分分量量绝对误差绝对误差大,数值小的输出分量绝对误差小。大,数值小的输出分量绝对误差小。二二、输输入入输输出出数数据据的的归归一一化化归一化的方法:归一化的方法:将输入输出

25、数据变换为将输入输出数据变换为0,1区间的值常用以下变换式区间的值常用以下变换式其中,其中,xI代表输入或输出数据,代表输入或输出数据,xmin代表数据变化的代表数据变化的最小值,最小值,xman代表数据的最大值。代表数据的最大值。将输入输出数据变换为将输入输出数据变换为-1,1区间的值常用以下变换式区间的值常用以下变换式其中,其中,xmid代表数据变化范围中间值。代表数据变化范围中间值。二二、输输入入输输出出数数据据的的归归一一化化三、网络训练与测试三、网络训练与测试 网络的性能好坏主要看其是否具有很好的泛化能网络的性能好坏主要看其是否具有很好的泛化能力,对泛化能力的测试不能用训练集的数据进

26、行,而要力,对泛化能力的测试不能用训练集的数据进行,而要用训练集以外的测试数据来进行检验。用训练集以外的测试数据来进行检验。三三、网网络络训训练练与与测测试试在隐节点数一定的情况下,为获得好的泛化能力,在隐节点数一定的情况下,为获得好的泛化能力,存在着一个最佳训练次数。存在着一个最佳训练次数。三三、网网络络训训练练与与测测试试三、网络训练与测试三、网络训练与测试MATLAB是一个功能十分强大的工程计算及数值分析软件是一个功能十分强大的工程计算及数值分析软件u在在20世世纪纪70年年代代末末期期,线线性性代代数数领领域域颇颇有有名名望望的的CleveMoler博博士士利利用用Fortran语语言

27、言、基基于于特特征征值值计计算算的的软软件件包包EISPACK和和线线性性代代数数软软件件包包LINPACK,开开发发了了集集命命令令、解释、科学计算于一身的交互式软件解释、科学计算于一身的交互式软件MATLAB.u1983年年,工工程程师师JohnLittle接接触触到到Matlab并并深深受受其其影影响响,于于是是与与CleveMoler、StevBangert合合作作用用C开开发发了了第第二二代代Matlab专业版,增加了数据可视化功能。专业版,增加了数据可视化功能。u1984年年MathWorks公公司司成成立立,MATLAB被被推推向向市市场场,经经过过多多年年发发展展,在在数数值值

28、性性软软件件市市场场占占据据了了主主导导地地位位,已已经经发发展展成成为为多多学学科科多多种种工工作作平平台台的的功功能能强强大大的的工工程程计计算算及及数数值值分分析软件软件,被誉为析软件软件,被誉为“巨人肩上的工具巨人肩上的工具”MATLAB基础基础2.1MATLAB概述概述 一、一、MATLABMATLAB的发展历程和影响力的发展历程和影响力的发展历程和影响力的发展历程和影响力uMATLAB即即MatrixLaboratory(矩阵实验室),主要用于(矩阵实验室),主要用于矩矩阵运算阵运算,具有丰富的矩阵运算函数,使之在求解诸如信号处理、,具有丰富的矩阵运算函数,使之在求解诸如信号处理、

29、系统识别、自动控制、非线性系统、模糊控制、优化技术等、神系统识别、自动控制、非线性系统、模糊控制、优化技术等、神经网络、小波分析等领域的问题时,显得简捷、高效、方便。经网络、小波分析等领域的问题时,显得简捷、高效、方便。u有大量事先定义的数学函数,并且有很强的用户自定义函数有大量事先定义的数学函数,并且有很强的用户自定义函数的能力;的能力;u有强大的绘图功能,可方便地输出复杂的二维、三维图图形;有强大的绘图功能,可方便地输出复杂的二维、三维图图形;u能与其它语言编写的程序结合,具有输入输出格式化数据的能能与其它语言编写的程序结合,具有输入输出格式化数据的能力;力;u有在多个应用领域解决难题的工

30、具箱;有在多个应用领域解决难题的工具箱;uSimulink是一个基于图形界面的动态系统建模与仿真工具;是一个基于图形界面的动态系统建模与仿真工具;u具有符号运算能力。具有符号运算能力。二、二、MATLAB的主要特点的主要特点三、三、MATLAB界面简介界面简介 变量浏览器变量浏览器历历史史命命令令记录窗记录窗MATLAB工作窗工作窗当前目路当前目路sumlink快捷按钮快捷按钮1、MATLAB的主界面的主界面2、MATLAB的程序编辑器的程序编辑器学习学习MATLABn什么是 MATLAB?nMATLAB能干什么?n掌握MATLABn应用实例什么是什么是MATLAB?1.MATLAB代表代表M

31、ATrixLABoratoryn它它的的首首创创者者是是美美国国新新墨墨西西哥哥大大学学计计算算机机系系的的系系主主任任Cleve Cleve MolerMoler博博士士,他他在在教教授授线线性性代代数数课课程程发发现现其其他他语语言言很很不不方方便便,篇篇构构思思开开发发了了MATLABMATLAB。最最初初采采用用FORTRANFORTRAN语语言言编编写写,2020世世纪纪8080年年代代后后出出现现了了MATLABMATLAB的的第二版,全部采用第二版,全部采用C C语言编写语言编写.n19841984年年MolerMoler博博士士和和一一批批数数学学家家及及软软件件专专家家创创建

32、建了了MathWorksMathWorks公司,专门开发公司,专门开发MATLABMATLAB。n19931993年出现了微机版,到年出现了微机版,到20032003年是年是6.56.5版版2.一种演草纸式的科学计算语言一种演草纸式的科学计算语言3.MATLAB是一高性能的技术计算语言是一高性能的技术计算语言.w强大的数值计算和工程运算功能强大的数值计算和工程运算功能w符号计算功能符号计算功能w强大的科学数据可视化能力强大的科学数据可视化能力w多种工具箱多种工具箱MATLAB能干什么?能干什么?MATLAB可以进行:可以进行:n数学计算、算法开发、数据采集数学计算、算法开发、数据采集n建模、仿

33、真、原型建模、仿真、原型n数据分析、开发和可视化数据分析、开发和可视化n科科学学和和工工程程图图形形应应用用程程序序的的开开发发,包包括括图图形形用用户户界界面面的创建。的创建。MATLAB广泛应用于:广泛应用于:n数数值值计计算算、图图形形处处理理、符符号号运运算算、数数学学建建模模、系系统统辨辨识、小波分析、实时控制、动态仿真等领域。识、小波分析、实时控制、动态仿真等领域。nMATLAB开发环境:进行应用研究开发的交互式平台开发环境:进行应用研究开发的交互式平台nMATLAB数学与运算函数库:用于科学计算的函数数学与运算函数库:用于科学计算的函数nMATLAB语言:进行应用开发的编程工具语

34、言:进行应用开发的编程工具n图形化开发:二维、三维图形开发的工具图形化开发:二维、三维图形开发的工具n应用程序接口应用程序接口(API):用于与其他预言混编:用于与其他预言混编n面面向向专专门门领领域域的的工工具具箱箱:小小波波工工具具箱箱、神神经经网网络络工工具具箱箱、信信号号处处理理工工具具箱箱、图图像像处处理理工工具具箱箱、模模糊糊逻逻辑辑工工具具箱箱、优优化化工工具具箱箱、鲁鲁棒棒控控制制工工具具箱箱等等几几十十个个不不同同应应用的工具箱。用的工具箱。MATLAB的构成的构成开发环境开发环境包括:命令窗口、图形窗口、编辑窗口、帮助窗口包括:命令窗口、图形窗口、编辑窗口、帮助窗口TheM

35、ATLABLanguageMATLAB语言的特点语言的特点wMatlab的基本数据单元是不需指定维数的矩阵。的基本数据单元是不需指定维数的矩阵。wMatlab的的所所有有计计算算都都是是通通过过双双精精度度进进行行的的,在在内存中的数都是双精度的。内存中的数都是双精度的。wdouble是是一一个个双双精精度度浮浮点点数数,每每个个存存储储的的双双精精度数用度数用64位。位。wchar用于存储字符,每个存储的字符用用于存储字符,每个存储的字符用16位。位。程序程序M文件与文件与m函数函数图形显示图形显示流程控制流程控制其它输出其它输出函数函数语句语句变量变量各种运算符各种运算符MATLAB的程序

36、构成:的程序构成:常变量及其命名规则常变量及其命名规则n变量名可以有数字、字母、下划线构成;变量名可以有数字、字母、下划线构成;n变量的首字符必须是字母;变量的首字符必须是字母;n区分变量名的大小写区分变量名的大小写n每个变量名最长只能包含每个变量名最长只能包含19个字符。个字符。Matlab中预定义变量中预定义变量nAns分分配配最最新新计计算算表表达达式式的的值值,这这个个表表达达式式并并没没有有给定一个名字给定一个名字nEps 返回机器精度返回机器精度nRealmax 返回计算机能处理的最大浮点数返回计算机能处理的最大浮点数nRealmin 返回计算机能处理的最小的非零浮点数返回计算机能

37、处理的最小的非零浮点数nPi ,3.14159265nInf 定定义义为为1/0。当当出出现现被被零零除除时时,Matlab就就返返回回inf,并不中断执行而继续计算,并不中断执行而继续计算nNaN 定定义义为为“NotaNumber”,这这个个非非数数值值要要么么是是类型,要么是类型,要么是inf/inf向量的创建向量的创建n在在matlab的命令窗口键入以下字符的命令窗口键入以下字符na=123456987na=n123456987n 希希望望得得到到元元素素从从0到到20,步步距距为为2的的一一个个向向量量,只需键入以下命令即可只需键入以下命令即可nt=0:2:20nt=n2468101

38、214161820矩阵的创建矩阵的创建输输入入矩矩阵阵时时每每一一行行元元素素有有分分号号或或者者回回车车键键分隔。例如分隔。例如:nnB=1234;5678;9101112n B=n 1 2 3 4n 5 6 7 8n 9 10 11 12各各种种运运算算符符Matlab语言最基本的赋值语句结构为:语言最基本的赋值语句结构为:变量名列表变量名列表=表达式表达式注注1:整整个个赋赋值值语语句句以以;结结束束,则则不不在在屏屏幕幕上上返返回回结结果,否则立即返回结果。果,否则立即返回结果。注注2:多个语句可在同一行,用逗号分开。:多个语句可在同一行,用逗号分开。注注3:表达是太长可以用续行符号:

39、表达是太长可以用续行符号语句语句函数函数nMatlab由由包包括括许许多多标标准准函函数数,每每个个函函数数都都完成某一特定功能的代码组成。完成某一特定功能的代码组成。nMatlab也也允允许许用用户户编编写写自自己己所所需需的的函函数数,其其扩扩展展名名为为.m,其其中中必必须须以以关关键键字字function开头开头.流程控制流程控制n循环语句循环语句for,whilen条件转移条件转移ifend,ifelseifelseendn开关语句开关语句switchcasen注是语句注是语句%n中断语句中断语句breakn暂停语句暂停语句pausen回显语句回显语句echoon/off1 1、fo

40、r循环语句循环语句基本格式基本格式for for 循环变量起始值:步长:终止值循环变量起始值:步长:终止值 循环体循环体 end end步长缺省值为步长缺省值为1,可以在正实数或负实数范围,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套小于终止值时,循环结束。循环结构可以嵌套使用。使用。2、while循环语句循环语句基本格式基本格式while表达式表达式循环体循环体end若若表表达达式式为为真真,则则执执行行循循环环体

41、体的的内内容容,执执行行后后再再判判断断表表达达式式是是否否为为真真,若若不不为为真真,则则跳跳出出循循环环体体,向向下下继继续执行。续执行。While循环和循环和for循环的区别在于,循环的区别在于,while循环结构的循环体被执循环结构的循环体被执行的次数不是确定的,而行的次数不是确定的,而for结构中循环体的执行次数是确定的。结构中循环体的执行次数是确定的。3、if,else,elseif语句语句(1)if逻辑表达式逻辑表达式执行语句执行语句end(2)if逻辑表达式逻辑表达式(3)if逻辑表达式逻辑表达式1执行语句执行语句1执行语句执行语句1elseelseif逻辑表达式逻辑表达式2执

42、行语句执行语句2执行语句执行语句2endend4、switch语句语句switch表达式(可以是标量或字符串)表达式(可以是标量或字符串)case值值1语句语句1case值值2语句语句2.otherwise语句语句3endMATLAB程序的基本组成结构程序的基本组成结构说明说明清除命令:清除清除命令:清除workspace中的变量和图形(中的变量和图形(clear,close)定义变量:包括全局变量的声明及参数值的设定定义变量:包括全局变量的声明及参数值的设定逐行执行命令:指逐行执行命令:指MATLAB提供的运算指令或工具箱提供的运算指令或工具箱提供的专用命令提供的专用命令控制循环控制循环:包

43、含包含for,ifthen,switch,while等语句等语句逐行执行命令逐行执行命令end绘图命令:将运算结果绘制出来绘图命令:将运算结果绘制出来n当当然然更更复复杂杂程程序序还还需需要要调调用用子子程程序序,或或与与simulink以以及及其其他他应用程序结合起来。应用程序结合起来。2、程序、程序M文件文件n以以.m格格式式进进行行存存取取,包包含含一一连连串串的的MATLAB指指令令和和必必要要的的注注解解。需需要要在在工工作作空空间间中中创创建建并并获获取取变变量量,也也就就是是说说处处理理的的数据为命令窗口中的数据,没有输入参数,也不会返回参数。数据为命令窗口中的数据,没有输入参数

44、,也不会返回参数。n程序运行时只需在工作空间中键入其名称即可。程序运行时只需在工作空间中键入其名称即可。MATLAB的程序类型的程序类型MATLAB的程序类型有三种,一种是在命令窗口下执行的的程序类型有三种,一种是在命令窗口下执行的脚本脚本M文件;另外一种是可以存取的文件;另外一种是可以存取的M文件,也即程序文件;文件,也即程序文件;最后一种是函数(最后一种是函数(function)文件。)文件。1、脚本、脚本M文件文件在命令窗口中输入并执行,它所用的变量都要在工作空间在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出中获取,不需要输入输出参数的调用,退出

45、MATLAB后就后就释放了。释放了。(1)函数定义行(关键字)函数定义行(关键字function)nfunctionout1,out2,.=filename(in1,in2,.)n输输入入和和输输出出(返返回回)的的参参数数个个数数分分别别由由nargin和和nargout两两个个MATLAB保留的变量来给出。保留的变量来给出。(2)第一行帮助行,即)第一行帮助行,即H1行行n以(以(%)开头,作为)开头,作为lookfor指令搜索的行指令搜索的行(3)函数体说明及有关注解)函数体说明及有关注解n以(以(%)开头,用以说明函数的作用及有关内容)开头,用以说明函数的作用及有关内容(4)函数体语句

46、)函数体语句n函函数数体体内内使使用用的的除除返返回回和和输输入入变变量量这这些些在在function语语句句中中直直接接引引用用的的变变量量以以外外的的所所有有变变量量都都是是局局部部变变量量,即即在在该该函函数数返返回回之之后后,这这些些变变量量会会自自动动在在MATLAB的的工工作作空空间间中中清清除除掉掉。如如果果希希望望这这些些中中间间变变量量成成为为在在整整个个程程序序中中都都起起作作用用的的变变量量,则则可可以以将将它们设置为全局变量。它们设置为全局变量。3、函数文件、函数文件 与在命令窗口中输入命令一样,函数接受输入参数,然后与在命令窗口中输入命令一样,函数接受输入参数,然后执

47、行并输出结果。用执行并输出结果。用help命令可以显示它的注释说明。命令可以显示它的注释说明。GraphicsMATLAB提供了丰富的绘图功能提供了丰富的绘图功能helpgraph2d可得到所有画二维图形的命令可得到所有画二维图形的命令helpgraph3d可得到所有画三维图形的命令可得到所有画三维图形的命令1 1、基本的绘图命令、基本的绘图命令plot(x1,y1,option1,x2,y2,option2,)x1,y1x1,y1给出的数据分别为给出的数据分别为x,yx,y轴坐标值,轴坐标值,option1option1为选项为选项参数,以逐点连折线的方式绘制参数,以逐点连折线的方式绘制1

48、1个二维图形;同时类个二维图形;同时类似地绘制第二个二维图形。似地绘制第二个二维图形。这是这是plotplot命令的完全格式,在实际应用中可以根据需命令的完全格式,在实际应用中可以根据需要进行简化。比如:要进行简化。比如:plot(x,y)plot(x,y);plot(x,y,option)plot(x,y,option)选项参数选项参数optionoption定义了图形曲线的颜色、线型及标示定义了图形曲线的颜色、线型及标示符号,它由一对单引号括起来。符号,它由一对单引号括起来。2、选择图像、选择图像 figure(1););figure(2););figure(n)打开不同的图形窗口,以便绘

49、制不同的图形。打开不同的图形窗口,以便绘制不同的图形。3、grid on:在所画出的图形坐标中加入栅格:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格:除去图形坐标中的栅格4、hold on:把当前图形保持在屏幕上不变,同时:把当前图形保持在屏幕上不变,同时 允许在这个坐标内绘制另外一个图形。允许在这个坐标内绘制另外一个图形。hold off:使新图覆盖旧的图形:使新图覆盖旧的图形5、设定轴的范围、设定轴的范围 axis(xmin xmax ymin ymax)axis(equal):将:将x坐标轴和坐标轴和y坐标轴的单位刻坐标轴的单位刻度大小调整为一样。度大小调整为一样

50、。6、文字标示、文字标示text(x,y,字符串字符串)在在图图形形的的指指定定坐坐标标位位置置(x,y)处处,标标示示单单引引号号括括起起来来的的字符串。字符串。ntitle(字符串字符串)在所画图形的最上端显示说明该图形标题的字符串。在所画图形的最上端显示说明该图形标题的字符串。nxlabel(字符串字符串),ylabel(字符串字符串)设置设置x,y坐标轴的名称。坐标轴的名称。n输入特殊的文字需要用反斜杠(输入特殊的文字需要用反斜杠()开头。)开头。7、legend(字符串字符串1,字符串字符串2,字符串字符串n)n在在屏屏幕幕上上开开启启一一个个小小视视窗窗,然然后后依依据据绘绘图图命

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com