自动系统计算 7_第1页
自动系统计算 7_第2页
自动系统计算 7_第3页
自动系统计算 7_第4页
自动系统计算 7_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

第3章MATLAB语言的基础知识MATLAB是美国MathWorks公司的软件产品,是一个高级的数值分析、处理与计算软件;SIMULINK是基于模型化图形组态的动态系统仿真软件,是MATLAB的一个附件。3.1MATLAB的安装和启动3.1.1MATLAB的安装

MATLAB只有在适当的环境下才能正常运行。因此适当配置外部系统是保证MATLAB运行的先决条件。对计算机的硬件配置和软件环境都要求。3.1.2MATLAB7.x的启动常用的方法就是双击桌面的MATLAB图标启动MATLAB后的界面:3.2MATLAB7.x的系统界面3.2.1MATLAB7.x系统界面窗口一般来说,MATLAB的所有函数和命令都可以在命令窗口中执行。(1)命令窗口(CommandWindow)MATLAB命令窗口中的“>>”为命令提示符,表示MATLAB正在处于准备状态。在命令提示符后键入命令并按下回车键后,MATLAB就会解释执行所输入的命令,并在命令后面给出计算结果。(2)历史命令窗口(CommandHistory)默认设置下历史命令窗口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。(3)当前目录窗口(CurrentDirectory)在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能。(4)工作空间窗口(Workspace)工作空间在MATLAB运行期间一直存在,关闭MATLAB后自动消失,当运行MATLAB程序时,程序中的变量将被加载到工作空间中。在一个程序中的运算结果以变量的形式保存在工作空间后,在MATLAB关闭之前该变量还可以被别的程序调用。在工作空间窗口中将显示所有目前保存在内存中的MATLAB变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。用户可用命令对工作空间中的变量进行显示、删除或保存等操作。3.2.2MATLAB7.x菜单项和工具栏MATLAB的系统界面上有6个功能菜单和带有9个快捷按钮的工具栏组。6个功能菜单(File,Edit,Debug,Desktop,Window,Help)各自有下一层的功能。9个快捷按钮均有对应的菜单命令。3.2.3MATLAB7.x的帮助系统MATLAB作为一个优秀的科学计算软件,具有比较完备的帮助体系,通过获取帮助信息,用户可以更好地运用MATLAB资源,快捷、可靠、有效地解决各种问题。3.3MATLAB的基础知识3.3.1矩阵的生成1.直接输入法例如,以下矩阵可以由下面的MATLAB语句直接在命令窗口,输入到工作空间中例:在矩阵后面再补一行>>A=[123;456;789]>>A1=[A;[135]]A1=1234567891351、求出这两个矩阵的乘积C;2、将C矩阵的右下角2×3子矩阵赋给D矩阵。例:已知矩阵解:输入以下命令,即可以完成2.外部文件读入法

MATLAB语言允许用户调用在MATLAB环境之外定义的矩阵。可以利用任意的文本编辑器编辑所要使用的矩阵,矩阵元素之间以特定分断符分开,并按行列布置,保存成*.txt,*.csv或*.dat等类型的文件,然后通过MATLAB的数据输入向导(ImportWizard)或通过MATLAB函数实现数据读入。例如:在MATLAB7/work文件中,建立文件data.txt:123456在MATLAB命令窗口中输入:3.利用MATLAB提供的函数对于一些比较特殊的矩阵(单位阵、矩阵中含1或0较多),由于其具有特殊的结构,MATLAB提供了一些函数用于生成这些矩阵。常用的有下面几个:zeros(m)生成m阶全0矩阵eye(m)生成m阶单位矩阵(注意:在英语中eye与I谐音)ones(m)生成m阶全1矩阵rand(m)生成m阶均匀分布的随机阵randn(m)生成m阶正态分布的随机矩阵magic(m)生成m阶魔方矩阵3.3.2变量、常量和语句与常规的程序设计语言不同的MATLAB并不要求事先对所使用的变量进行声明,也不需要指定变量类型,MATLAB语言会自动依据所赋予变量的值或对变量所进行的操作来识别变量的类型。在赋值过程中如果赋值变量已存在时,MATLAB语言将使用新值代替旧值,并以新值类型代替旧值类型。

MATLAB语言变量名应该由一个字母引导,后面可以跟字母、数字、下划线等,不能含有标点符号,且长度不超31位。在MATLAB中变量名是区分大小写的,例如:Abc和ABc两个变量名表示两个不同的变量。在MATLAB中还有自己的一些特殊变量,称为常量。pi——圆周率的双精度浮点表示。eps——机器的浮点运算误差限。PC机上eps的默认值为2.2204×10-16,若某个量的绝对值小于eps,则可以认为这个量为0。i和j——若i或j量不被改写,则它们表示纯虚数i。Inf—无穷大量+∞的MATLAB表示。同样地,-∞可以表示为-inf。NaN——不定值(NotaNumber),通常由0/0运算、Inf/Inf及其他可能的运算得出。MATLAB语言的语句有下面两种结构:1.直接赋值语句直接赋值语句的基本结构如下:赋值变量=赋值表达式实现功能:把等号右边的表达式直接赋给左边的赋值变量,并返回到MATLAB的工作空间。2.函数调用语句函数调用语句的基本结构为:[返回变量列表]=函数名(输入变量列表)

其中函数名的要求和变量名的要求是一致的,一般函数名应该对应在MATLAB路径下的一个文件,例如,函数名Vdp应该对应于Vdp.m文件。3.3.3数值显示格式MATLAB语言提供了10种数据显示格式,常用的有下述几种格式:short小数点后4位(系统默认显示)long小数点后14位shorte4位指数形式longe15位指数形式hex 十六进制rat 小数的有理除式近似3.3.4字符串在MATLAB中,字符串和字符数组基本上是等价的。所有的字符串都用单引号进行输入或赋值(当然也可以用函数char来生成)。字符串的每个字符(包括空格)都是字符数组的一个元素。例如:3.4矩阵的运算3.4.1矩阵的数学运算1.矩阵转置如果矩阵含有复数元素,其转置矩阵首先对各个元素进行转置,然后再逐项求取其共轭复数值。这种转置方式又称为Hermit转置。【例3-1】求的Hermit转置2.矩阵的四则运算矩阵的加、减、乘运算符分别为“+、-、*”,用法与标量运算几乎相同,但计算时要满足其数学要求(如:维数相同的矩阵才可以加、减;维数相容的矩阵才可以相乘)。【例3-2】求矩阵和矩阵的乘积矩阵C在MATLAB中矩阵的除法有两种形式:左除“\”和右除“/”。它涉及到矩阵的求逆运算。求某矩阵的逆矩阵的命令是:inv()例如,求矩阵的逆矩阵D例如,求矩阵和矩阵相除后的商矩阵C=A\B3.矩阵的乘方运算A矩阵为方阵时,其乘方矩阵可以由A^x求出,其中x为常数。【例3-3】已知矩阵1)求A的平方;2)A的5次方根(得出的是5个矩阵中的主矩阵)3.4.2矩阵的数组运算我们在进行工程计算时常常遇到矩阵对应元素之间的直接运算。这种运算不同于前面讲的数学运算,称为数组运算,又称点运算。1.矩阵的点转置对于实数矩阵来说,点转置和转置完全相同。而对于复数矩阵来说,两种转置差别很大,点转置后不再取共轭。【例3-4】求矩阵的点转置2.基本运算数组的加、减与矩阵的加、减运算完全相同。数组的乘除法是指两同维数组对应元素之间的乘除法,它们的运算符为“.*”和“./”或“.\”。矩阵的数组运算中还有幂运算(运算符为.^)、指数运算(exp)、对数运算(log)、和开方运算(sqrt)等基本初等函数运算。有了“对应元素”的规定,数组运算实质上就是针对矩阵的每个元素进行的。【例3-5】求矩阵a的乘方和点乘方3.逻辑关系运算表3-2逻辑关系运算符号运算符功能函数名&逻辑与and|逻辑或or~逻辑非not逻辑异或xor==等于eq~=不等于ne<小于lt>大于gt<=小于等于le>=大于等于ge在关系比较中,若比较的双方为同维数组,则比较的结果也是同维数组。它的元素值由0和1组成。当比较双方对应位置上的元素值满足比较关系时,则它的对应值为1,否则为0。当比较的双方中一方为常数,另一方为一数组,则比较的结果与数组同维。3.4.3矩阵操作1.矩阵下标——通过确认下标,可以对矩阵进行插入子块、提取子块和重排子块的操作例:在矩阵后面再补一行>>A=[123;456;789]>>A1=[A;[135]]A1=1234567891352.矩阵大小——MATLAB提供了获得矩阵或向量大小的函数size()和length()例如,某矩阵运行以下程序得到3.矩阵翻转——MATLAB提供了矩阵翻转操作的函数。flipud()使得矩阵上下翻转,fliplr()使得矩阵左右翻转,rot90()使得矩阵逆时针翻转90°例如,矩阵运行以下程序,可得到:4.矩阵函数——MATLAB中提供了矩阵的专用函数名称含义名称含义norm计算矩阵范数poly计算矩阵的特征多项式rank计算矩阵的秩inv计算矩阵的逆det计算矩阵行列式pinv计算矩阵的伪逆trace计算矩阵的迹expm矩阵的指数函数eig计算矩阵的特征值、特征向量sqrtm矩阵的开方根函数3.4.4矩阵元素的数据变换(1)floor(A)将A中元素按-∞方向取整,即取不足整数;(2)ceil(A)将A中元素按+∞方向取整,即取过剩整数;(3)round(A)将A中的元素按四舍五入取整;(4)fix(A)将A中元素按离0近的方向取整。3.5流程控制结构MATLAB语言的流程控制语句主要有for、while、if-else-end及switch-case等4种语句。3.5.1for语句for循环的基本格式为:

for循环变量=起始值:步长:终止值 循环体

end

步长的缺省值是1。步长可以在正实数或负实数范围内任意指定,对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。例

求取和式运行以下程序:运行结果为3.5.2while语句while循环的基本格式为:

while表达式 循环体

end

若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若为假则跳出循环体,向下继续执行,否则继续执行循环体。

也可运行以下程序:例

求取和式运行结果为:3.5.3if-else-end语句if逻辑表达式 执行语句end

当逻辑表达式的值为真,则执行该结构中的执行语句内容,执行完后向下继续执行,若逻辑表达式的值为假,跳过结构中的执行语句继续向下执行。if-else格式if逻辑表达式 执行语句1else

执行语句2end

如果逻辑表达式的值为真,则执行语句1,然后跳过语句2向下执行;若逻辑表达式的值为假,则跳过执行语句1而执行语句2,然后向下执行。if格式:if-elseif格式if逻辑表达式1

执行语句1

elseif

逻辑表达式2

执行语句2 ……

elseif

逻辑表达式n

执行语句nelse

执行语句elend

如果逻辑表达式1的值为真,则执行语句1,若逻辑表达式1的值为假,则判断逻辑表达式2的值,若为真,则执行语句2,否则向下执行,若所有逻辑表达式均为假,执行语句el例

将数组作特殊排列运算结果为3.5.4switch-case语句switch语句的格式为:

switch表达式(标量或字符串)

case值1

语句1 case值2

语句2 ┅ case值n

语句n otherwise

语句ow end

表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果都不同,则执行otherwise中的语句。例

已知一个单位负反馈系统开环传递函数为当k分别为35和36时,其系统的单位阶跃响应完全不同。试用switch语句绘制系统的单位阶跃响应曲线。运行以下程序3.6m文件所谓m文件就是由MATLAB语言编写的以.m为扩展名,可在MATLAB语言环境下运行程序源代码文件。m文件可以分为脚本文件(Script)和函数文件(Function)两种。m文件不仅可以在MATLAB的程序编辑器中编写,也可以在其他的文本编辑器中编写。3.6.1脚本文件脚本文件为文本形式,是若干命令或函数的集合,用于执行特定的功能。脚本的操作对象为MATLAB工作空间内的变量,并且在脚本执行结束后,脚本中对变量的一切操作均会被保留。脚本文件的执行方式非常简单,用户只要在MATLAB命令窗口的‘>>’提示符下输入m文件文件名即可。3.6.2函数文件函数需要给定输入参数,并能够对输入变量进行若干操作,实现特定的功能,最后给出一定的输出结果或图形等,其操作对象为函数的输入变量和函数内的局部变量等。MATLAB语言的函数文件包含如下5个部分:(1)函数定义行:是函数语句的第一行,在该行中将定义函数名、输入变量列表及输出变量列表等。(2)H1行:指函数帮助文本的第一行,为该函数文件的帮助主题,当使用lookfor命令时,可以查看到该行信息。(3)帮助文本:这部分提供了函数的完整的帮助信息,包括H1之后至第一个可执行语句为止的所有注释语句,通过MATLAB语言的帮助系统查看函数的帮助信息时,将显示该部分。(4)函数体:指函数代码段,也是函数的主体部分。(5)注释部分:指对函数体中各语句的解释和说明文本,注释语句是以%引导的。例如:调用函数文件:3.7MATLAB的绘图功能

MATLAB语言提供了强大的图形绘制功能,可以方便地实现数据的视觉化。3.7.1二维图形绘制1.基本形式——plot(x,y),其中x和y是维数相同的行向量。例如2.多条曲线在同一个画面上可以画许多条曲线,其基本格式为plot(x1,y1,x2,y2,…)。例如:它们都是维数相同的行向量3.线型和颜色

MATLAB对曲线的线型和颜色有许多选择。其基本格式为plot(x1,y1,'c1',x2,y2,'c2',…)颜色共有8种:y黄、r红、g绿、b蓝、w白、k黑、m紫、c青线方式共4种:-实线、:点线、-.虚点线、--波折线点方式有:.圆点、+加号、*星号、xx形、o小圆例如4.网格和标记在所绘制的图中加上网格,只有在命令窗口中输入:>>grid,即可;要插入各种标记,只要在图形窗口的菜单中选择Insert和相应选项即可。6、多幅图形5、坐标系的控制在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,也可以用axis命令人工修改坐标。用subplot(m,n,p)命令可以一个窗口分隔成m×n个图形区域,p代表当前的区域号,在每个区域中分别画一个图。例如:3.7.2三维图形绘制1.三维曲线——MATLAB提供了plot3()函数,它允许用户在三维空间绘制三维曲线,基本格式为:plot3(x,y,z)例如它们都是维数相同的行向量2.三维曲面使用mesh命令可以绘制三维表面网格图例如(-7.5≤x≤7.5,-7.5≤y≤7.5)3.7.3图形的输出首先,在MATLAB图形窗口中选择【File】菜单中的【ExportSetup】选项,将打开图形输出设置对话框,设置好图形的尺寸,字体和线型后,选择【Export】按钮,打开图形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。3.8MATLAB的应用3.8.1矩阵的分解1.矩阵的三角分解——矩阵的三角分解又称为LU分解,它的目的是把矩阵分解为上三角矩阵U和下三角矩阵L的乘积。基本格式为[L,U,P]=lu(A),其中P为置换矩阵。2.矩阵的正交分解——矩阵的正交分解又称QR法,是将矩阵分解成一个正规正交矩阵与上三角形矩阵。基本格式为[Q,R]=qr(A),其中Q代表正规正交矩阵,而R代表上三角形矩阵。3.矩阵的奇异值分解——奇异值分解(sigularvaluedecomposition,SVD)是另一种正交矩阵分解法。

[U,S,V]=svd(A),其中U和V是二个相互正交矩阵,而S是对角矩阵,它的对角元素是A矩阵的奇异值。使用SVD分解法的用途是解最小平方误差法和数据压缩。4.矩阵的特征值分解——求取方阵A的特征值和特征向量基本命令[v,d]=eig(A),返回的d阵是A阵的特征值对角阵。3.8.2多项式处理1.多项式表示多项式在MATLAB中使用降幂系数的行向量表示。例如使用函数roots()可以找出多项式等于零(即方程)的根。

已知多项式的根,使用poly()函数也可以构造出相应的多项式。2.多项式计算在MATLAB中,

温馨提示

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

评论

0/150

提交评论