收藏 分销(赏)

MATLAB语言程序设计教程(第二版)教学课件整本书电子教案全套教学教程电子教案.ppt

上传人:精*** 文档编号:10095133 上传时间:2025-04-21 格式:PPT 页数:642 大小:5.61MB
下载 相关 举报
MATLAB语言程序设计教程(第二版)教学课件整本书电子教案全套教学教程电子教案.ppt_第1页
第1页 / 共642页
MATLAB语言程序设计教程(第二版)教学课件整本书电子教案全套教学教程电子教案.ppt_第2页
第2页 / 共642页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,1,章,MATLAB,概述,第,1,章,MATLAB,概述,学习目标,了解,MATLAB,的主要功能,掌握,MATLAB,的安装方法以及,MATLAB,系统的启动与退出;,掌握,MATLAB,的工作界面、,MATLAB,的文件管理方式;,学会使用,MATLAB,的帮助功能。,1.1,MATLAB,的影响及其发展历史,MATLAB,是,MathWorks,公司于,1984,年推出的一套高性能的数值计算可视化软件,MATLAB,一般包括数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,MATLAB,提供了强大的科学运算功能、灵活的程序设计流程、高质量的图形生成功能及模拟、便捷的与其他程序和语言接口的功能,1.1,MATLAB,的影响及其发展历史,1980,年前后,,MATLAB,初具雏形。,1983,年工程师,Jonh,Little,与,Cleve,Moler,、,Steve,Bangert,合作开发了第二代专业版,MATLAB,。,1984,年成立,MathWorks,公司,推出,MATLAB,第,1,版(,DOS,版),正式将,MATLAB,推向市场。,1993,年,MathWorks,公司推出,MATLAB 4.0,版本,1997,年春,,MATLAB 5.0,版问世,1.1,MATLAB,的影响及其发展历史,1999,年春的,MATLAB 5.3,版也相继问世,2002,年,6,月,,MathWorks,公司再推出,MATLAB 6.5,版,2004,年,6,月,推出,MATLAB 7.0,版,2005,年,3,月,,MATLAB 7.0.4,正式发布,1.2,MATLAB 7.0,的主要功能,数值计算功能(,Numeric,),符号计算功能(,Symbolic,),图形和可视化功能(,Graphic,),活笔记本功能(,Notebook,),可视化建模和仿真功能(,Simulink,),1.3.1,运行环境,1,硬件环境,计算机的,CPU,为,Pentium,、,Pentium,Por,、,Pentium II,、,Pentium III,、,Pentium 4,、,Xeon PIII,、,AMD,Athlon,、,AMD,Athlon,XP,等,最好是,Pentium III,或更高。,内存至少,128MB,,推荐在,256MB,以上。,硬盘至少有,2GB,以上的剩余空间。,显卡最小为,8,位图形适配器,并在,256,色以上。,CD,光驱至少为,20,倍速以上。,1.3.1,运行环境,2,软件环境,操作系统为,Windows 98/NT/2000/XP/2003,等版本。,浏览器应为,Netscape Navigator 4.0a,及更高版本或,Microsoft Internet Explorer 4.0,及更高版本。,要安装运行,MATLAB Notebook,、,MATLAB Excel Builder,、,Excel Link,、,Database Toolbox,和,MATLAB Web Server,,需要安装,Microsoft Word 8.0,(,Office 97,)、,Office 2000,或,Office XP,等。,要实现,API,,需要预先安装,Compaq Visual Fortran 5.0,、,6.1,或,6.6,,,Microsoft Visual C/C+5.0,、,6.0,或,7.0,,或者安装,Borland C/C+5.0,或,5.02,,,Borland C+Builder 3.0,、,4.0,、,5.0,或,6.0,,,Watcom,version 10.6/11,或者,LCC2.4,。,为了能够阅读和打印软件所附带的,PDF,格式的帮助信息,需要安装,Adobe Acrobat Reader 3.0,或更高版本。,1.3.2,安装过程,安装前准备,由于病毒监测软件可能对安装过程产生影响,因而在安装前应该关闭所运行的病毒监测软件。,关闭当前运行的其他程序,尤其是正在运行的,MATLAB,软件的其他版本或其副本。,准备,PLP,密码号(序列号)安装时使用。,准备,MATLAB 7.0,安装光盘或程序包。,1.3.2,安装过程,(,1,)将,MATLAB 7.0,光盘放入光驱,将会自动运行安装程序。如果不能自动运行安装程序,可执行光盘目录下的,Setup.exe,安装程序。,(,2,)单击,Next,按钮,打开,License Information,对话框,(,3,)正确输入用户名、公司名及序列号后,单击,Next,按钮,打开,License Agreement,软件许可协议对话框,(,4,)要遵守软件许可协议,单击,Yes,按钮,打开,Installation Type,安装类型选择对话框,(,5,),选择好安装类型后,单击,Next,按钮,打开,Folder Selection,安装路径选择对话框,用户可按照提示选择安装路径,(,6,)选择安装路径,单击,Next,按钮,打开安装复制对话框,如图,1-6,所示。这是软件安装的主要过程,系统会自动完成安装。,(,7,)复制安装完毕后,打开,Setup Complete,安装完成对话框,1.4,MATLAB 7.0,系统的启动与退出,1,MATLAB 7.0,系统的启动,选择“开始”“程序”,MATLAB 7.0,命令,运行,MATLAB7.0,安装目录下系统启动程序,MATLAB 7.0.exe,执行桌面上的,MATLAB 7.0,快捷方式,2,MATLAB 7.0,系统的退出,选择,FileExit,MATLAB,命令,在,MATLAB,命令窗口输入,Exit,或,Quit,命令,单击,MATLAB,标题栏上的关闭按钮,1.5,MATLAB 7.0,工作界面,在默认情况下,,MATLAB 7.0,工作界面包括,6,个窗口,分别为:,主窗口,命令窗口,命令历史记录窗口,当前目录窗口,工作空间窗口和发行说明窗口,1.5.1,菜单栏,MATLAB 7.0,窗口的菜单栏共包含,File,、,Edit,、,Debug,、,Desktop,、,Window,和,Help,等,6,个菜单项。,File,菜单,在,File,菜单中共有,11,个命令,New,Open,Close Command Window,Import Data,Save Workspace As,Set Path,Preferences,Page Setup,Print,Print Selection,Exit MATLAB,Edit,菜单,在,Edit,菜单中共有,12,个命令,Undo,Redo,Cut,Copy,Paste,Paste Special,Select All,Delete,Find,Clear Command Window,Clear Command History,Clear Workspace,Debug,菜单,在,Debug,菜单中共有,8,个命令,Open M-Files when Debugging,Step,Step In,Step Out,Continue,Clear Breakpoints in All Files,Stop if Errors/Warnings,Exit Debug Mode,Desktop,菜单,在,Desktop,菜单中共有,13,个命令,Undock Command Window,Desktop Layout,Save Layout,Organize Layouts,6,个可选的命令:,Command Window,、,Command History,、,Current Directory,、,Workspace,、,Help,和,ProfilerToolbar,Shortcuts Toolbar,Titles,Help,菜单,在,Help,菜单中共有,8,个命令,Full Product Family Help,MATLAB Help,Using the Desktop,Using the Command Window,Web Resources,Check for Updates,Demos,About MATLAB,1.5.2,工具栏,从左至右的命令按钮的功能为:,New M-File,按钮:新建一个,MATLAB,文件。,Open File,按钮:打开一个,MATLAB,文件。,Cut,按钮:剪切已选中的对象到剪贴板中。,Copy,按钮:复制已选中的对象到剪贴板中。,Paste,按钮:把剪贴板中的内容粘贴到光标所在处。,Undo,按钮:撤销上一次的操作。,Redo,按钮:恢复上一次的操作。,Simulink,按钮:打开,Simulink,主窗口。,GUI,按钮:打开,GUI,窗口。,Help,按钮:打开,MATLAB,帮助文件。,Current Directory,下拉列表框:设置当前工作路径。,Browse for Folder,按钮:显示当前工作路径的上一级地址。,1.5.3,命令窗口,MATLAB 7.0,的命令窗口中“,”,为命令提示符,表示,MATLAB,处于就绪状态。,命令行的规则为:,一个命令行输入一条命令,命令行以回车符结束。,一个命令行也可以输入若干条命令,各命令之间以逗号分隔,若前一命令后带有分号,则逗号可以省略。,如果一个命令行很长,要加续行符(,3,个小黑点,)。,1.5.4,历史记录窗口,历史记录(,Command History,)窗口在,MATLAB,早期的版本中曾经有过相应内容,在,MATLAB 7.0,中再次出现,并且加强了该功能。,历史记录窗口中会自动保留自安装起所有用过的命令的历史记录,并且还标明了使用时间,从而方便用户查询或再次使用。,在历史记录中的命令可以通过单击来执行,这样就避免了重复输入命令的麻烦。,1.5.5,当前目录窗口,在当前目录(,Current Directory,)窗口中可以显示或改变当前目录,还可以显示当前目录下的文件并提供搜索功能。,1.5.6,查询便捷簿窗口,查询便捷簿(,Launch Pad,)窗口用以随时向用户说明软件中包含的内容及功能。,用户可以通过该窗口查看已经安装的各种工具箱,双击选中的工具箱或单击前面的号,就可以看到工具箱的各项功能。,1.5.7,工作空间窗口,工作空间(,Workspace,)窗口中将显示所有目前内存中存放的变量名、变量存储数据的维数、变量存储的字节数和变量类型等说明。,1.6,MATLAB 7.0,的辅助部分,引入了全方位的帮助功能,M,文件编辑、调试的集成环境,M,文件的性能剖析,Notebook,新的安装方式,MATLAB,环境可运行文件的多样化,1.7,MATLAB,的数学函数库,MATLAB,的数学函数库十分丰富,几乎包括了现今各个工程领域中需要使用的数学函数,函数库中函数的编写都是采用现今国际公认最先进和最可靠的算法,MATLAB,数值计算函数库的另一个特点是其内容的基础性和通用性。它正是由于这一特点,而适应了诸如自动控制、信号处理、动力工程、电力系统等应用学科的需要,并进而开发出一系列应用工具包,1.7.2 MATLAB 7.0,新增功能简介,1,环境界面变化,2,程序控制及数学运算功能,3,图形和,3D,可视化的增强,4,MATLAB 7.0,版的符号计算工具包,1.8,MATLAB,应用实例,【,例,1.1】,求线性方程组的解。,【,例,1.1】,求线性方程组的解。,解 在命令窗口输入如下内容:,T,X,Y,Z=solve(x+3*y+2*z+4*t-5,2*x+3*y+4*z+7*t-6,3*x+4*y+8*z+9*t-5,x+y+2*,z+t,),结果如下:,T=1,X=0,Y=1,Z=-1,【,例,1.2】,绘制函数,x,=sin(3,t,)cos(,t,),的图形。,解 在命令窗口输入如下内容:,t=0:0.5:360*pi/180;,plot(t,sin(t,.*3).*,cos(t,),小 结,本章主要介绍了,MATLAB,的主要功能;,MATLAB,系统的运行环境及如何正确的安装,MATLAB,系统;,MATLAB,系统的启动与退出的方法;,MATLAB,的工作界面及各菜单的简单操作方式;,MATLAB,的文件管理系统的使用方式;,如何使用,MATLAB,的帮助系统;,最后举例说明,MATLAB,的简单应用。,第,2,章,MATLAB,矩阵和数组运算,第,2,章,MATLAB,矩阵和数组运算,学习目标,了解稀疏矩阵的相关内容;,理解矩阵和数组运算的命令;,掌握使用,MATLAB,命令建立矩阵及矩阵的算术运算、线性运算、矩阵的分解。,2.1,矩阵的建立,矩阵的建立共有两种方法,可以通过,MATLAB,命令直接建立矩阵,也可以通过,MATLAB,提供的函数建立相应的矩阵。,在,MATLAB,中创建矩阵有以下规则:,矩阵元素必须在“,”,内。,矩阵的同行元素之间用空格(或“,”,)隔开,矩阵的行与行之间用“,;”,(或回车符)隔开,矩阵的元素可以是数值、变量、表达式或函数,矩阵的尺寸不必预先定义,2.1.1,直接建立矩阵,直接建立矩阵的方法就是把矩阵的各元素用中括号括起来,括号内同一行的元素之间用空格或逗号分开,行与行之间用分号或回车符分开。,在,MATLAB,环境下,分号具有三个作用:,在“,”,方括号内,它是矩阵行间的分隔符,它可作为指令与指令见得分隔符,当它放在赋值指令后时,该指令执行后的赋值结果将不显示在屏幕上,【,例,2.1】,直接建立一个矩阵,解 在,MATLAB,命令提示符下输入:,clear,X=1 2 3;4 5 6;7 8 9,X=1 2 3,4 5 6,7 8 9,Y=1.5 2.5 3,4 7 6,7 8 9,Y=1.5000 2.5000 3.0000,4.0000 7.0000 6.0000,7.0000 8.0000 9.0000,2.1.2,利用函数建立矩阵,MATLAB,提供了很多函数,可以通过这些函数方便地建立矩阵。,1,单位矩阵函数,eye(),2,随机矩阵函数,rand(),3,魔方矩阵函数,magic(),4,范得蒙(,Vandermonde,)矩阵函数,vander,(),5,托普利兹(,Toeplitz,)矩阵函数,toeplitz,(),1,单位矩阵函数,eye(),单位矩阵的特点是主对角线上元素为,1,,其他位置上的元素全为,0,。通过调用函数,eye(),可以建立单位矩阵,调用方法是:,Y=,eye(n,),用于生成,nn,阶单位阵。,Y=,eye(m,n,),用于生成,mn,阶单位阵。,【,例,2.2】,创建一个,55,阶单位阵,解 在,MATLAB,命令提示符下输入:,clear,X=eye(5),X=1 0 0 0 0,0 1 0 0 0,0 0 1 0 0,0 0 0 1 0,0 0 0 0 1,Y=eye(2,3),Y=1 0 0,0 1 0,2,随机矩阵函数,rand(),随机矩阵的特点是由计算机随机产生数据而生成的矩阵。通过运行,rand(),函数可以生成随机矩阵,调用方法为:,Y=,rand(n,),生成,nn,阶随机矩阵,其元素在,(0,1),内。,Y=,rand(m,n,),生成,mn,阶随机矩阵。,【,例,2.3】,产生一个,56,阶的随机矩阵,解 在,MATLAB,命令提示符下输入:,clear,Y=rand(5,6),Y=0.9501 0.7621 0.6154 0.4057 0.0579 0.2028,0.2311 0.4565 0.7919 0.9355 0.3529 0.1987,0.6068 0.0185 0.9218 0.9169 0.8132 0.6038,0.4860 0.8214 0.7382 0.4103 0.0099 0.2722,0.8913 0.4447 0.1763 0.8936 0.1389 0.1988,3,魔方矩阵函数,magic(),魔方矩阵的特点是每行、每列及两条对角线上的元素和都相等。对于,n,阶魔方阵,其元素由,1,,,2,,,3,,,,,n,n,共,n,n,个整数组成。函数为,magic(),,调用方法为:,Y=,magic(n,),生成,nn,阶魔方矩阵。,【,例,2.5】,建立一个魔方矩阵,解 在,MATLAB,命令提示符下输入:,clear,Y=magic(4),Y=16 2 3 13,5 11 10 8,9 7 6 12,4 14 15 1,4,范得蒙(,Vandermonde,)矩阵函数,vander,(),范得蒙(,Vandermonde,)矩阵的特点是最后一列全为,1,,倒数第二列为一个指定的向量,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点积。生成范得蒙矩阵的函数为,vander,(),,调用方法为:,vander(x,),其中,x,为一给定向量,可以用此向量生成一个范得蒙矩阵。,【,例,2.6】,利用向量,m,建立一个范得蒙矩阵,解 在,MATLAB,命令提示符下输入:,m=2 3 4 5;,vander(m,),ans,=8 4 2 1,27 9 3 1,64 16 4 1,125 25 5 1,5,托普利兹(,Toeplitz,)矩阵函数,toeplitz,(),托普利兹(,Toeplitz,)矩阵的特点是除第一行、第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数为,toeplitz,(),。调用方法为:,A=,toeplitz(b,c,),生成一个把,b,作为第,1,列、把,c,作为第一行、其他元素与左上角相邻元素相等的矩阵。,【,例,2.7】,建立一个托普利兹矩阵,解 在,MATLAB,命令提示符下输入:,clear,b=8 9 4 5 7;,c=8 2 3 12 15 10;,A=,toeplitz(b,c,),A=8 2 3 12 15 10,9 8 2 3 12 15,4 9 8 2 3 12,5 4 9 8 2 3,7 5 4 9 8 2,2.1.3,用冒号表达式建立矩阵,利用冒号表达式建立矩阵时,只需要把冒号表达式加中括号就可以了。需要注意的是:用冒号表达式建立矩阵一定要每行的元素个数相等。冒号表达式格式为:,a1:a2:a3,其中,,a1,是起始数据,,a2,是步长,,a3,是终止数据。若,a2,省略不写,则默认步长为,1,。,【,例,2.8】,用冒号表达式建立矩阵,解 在,MATLAB,命令提示符下输入:,clear,Y=1:1:6Y=1 2 3 4 5 6,Y=1:4;5:8 Y=1 2 3 4,5 6 7 8,Y=1:4;5:9,这里无法建立矩阵,因为,1,4,是,4,个元素,,5,9,是,5,个元素。这里的“,%”,后面的文字表示对,MATLAB,命令的注释,以后不再一一说明。,2.1.4,创建复合矩阵,复合矩阵可由中括号中的小矩阵建立。,【,例,2.9】,生成一个复合矩阵,Y,,它由小矩阵,X,建立。,解 在,MATLAB,命令提示符下输入:,clear,X=1 2 3;4 5 6;7 8 9,X=1 2 3,4 5 6,7 8 9,size(X,),ans,=3 3,eye(size(X,),ans,=1 0 0,0 1 0,0 0 1,ones(size(X,),ans,=1 1 1,1 1 1,1 1 1,Y=,X,eye(size(X);ones(size(X),X,Y=1 2 3 1 0 0,4 5 6 0 1 0,7 8 9 0 0 1,1 1 1 1 2 3,1 1 1 4 5 6,1 1 1 7 8 9,Z=X X+1,Z=1 2 3 2 3 4,4 5 6 5 6 7,7 8 9 8 9 10,2.2,矩阵的算术运算,矩阵的算术运算包括:(加)、(减)、*(乘)、,/,(右除)、,(左除)、及其,(乘方)运算。使用,MATLAB,可以方便地实现矩阵的算术运算。,2.2.1,加、减运算,两个矩阵进行加、减运算时,两个矩阵必须具有相同的行数和列数。,【,例,2.10】,两个矩阵相加减。,解 在,MATLAB,命令提示符下输入:,A=1,2,3;4,5,3;9,5,6;,B=12,11,10;8,7,5;1,5,2;,A+B,ans,=13,13,13,12,12,8,10,10,8,A-B,ans,=-11 -9 -7,-4 -2,-2,8 0 4,2.2.2,乘法,两个矩阵,A,、,B,进行乘法运算(,A,B,)时,矩阵,A,(,n,m,)的列数必须和矩阵,B,(,m,k,)的行数相等,乘法运算后生成一个,n,k,阶矩阵。,1,两个矩阵相乘,【,例,2.11】,求两个矩阵,X,、,Y,相乘后得到的矩阵,Z,。,解 在,MATLAB,命令提示符下输入:,X=1 3 5 7;,2 4 6 8;,Y=1 2 3;,4 5 6;,7 8 9;,5 4 0;,Z=X*Y,Z=83 85 66,100 104 84,2,矩阵的数乘,【,例,2.12】,求数乘矩阵,Y,=4,X,。,解 在,MATLAB,命令提示符下输入:,clear,X=1 2 3 4;5 6 7 8,X=1 2 3 4,5 6 7 8,Y=4*X,Y=4 8 12 16,20 24 28 32,3,矩阵的乘方,【,例,2.13】,求矩阵的乘方,Y,=,X,2,、,Y,=,X,3,。,解 在,MATLAB,命令提示符下输入:,clear,X=1 2 3;4 5 6;7 8 9,X=1 2 3,4 5 6,7 8 9,Y=X2,Y=30 36 42,66 81 96,102 126 150,Y=X3,Y=468 576 684,1062 1305 1548,1656 2034 2412,2.2.3,矩阵相除,在,MATLAB,中,矩阵相除分为左除(,)和右除(,/,)。,X,=,A,B,是方程,AX,B,的解;而,X,=,A,/,B,是方程,XA,=,B,的解。注意左除和右除里面的,A,、,B,必须就有相应的行和列。,【,例,2.14】,已知矩阵,A,、,B,,求矩阵,X,解 在,MATLAB,命令提示符下输入:,clear,A=eye(3),A=1 0 0,0 1 0,0 0 1,B=1 2 3;4 5 6;7 8 9,B=1 2 3,4 5 6,7 8 9,X=AB,X=1 2 3,4 5 6,7 8 9,X=B/A%,矩阵右除,求,X*A=B,的解,X=1 2 3,4 5 6,7 8 9,2.3,矩阵线性运算,矩阵的线性运算包括矩阵的特征值与特征向量的求法、正交基、二次型、秩和线性相关性等运算。,MATLAB,为矩阵的线性运算提供了大量的运算函数,通过调用这些函数,可以进行相应的矩阵线性运算。,2.3.1,矩阵的特征值,1,矩阵特征值与特征向量的求法,如果,A,是,n,n,矩阵,若存在实数,和向量,x,满足式子,Ax,x,,则,为,A,的特征值,,x,为,A,的特征向量。,计算矩阵,A,的特征值和特征向量的函数是,eig(A,),,有以下,3,种常用的调用格式:,(,1,),E=,eig(A,),:,(,2,),V,D=,eig(A,),:,(,3,),V,D=,eig(A,nobalance,),:,2.3.1,矩阵的特征值,2,复对角矩阵转化为实对角矩阵,cdf2rdf(),通过调用函数,cdf2rdf(),可以将复对角矩阵转化为实对角矩阵。调用格式为:,V,D=cdf2rdf(v,d),将复对角阵,d,变为实对角阵,D,,在对角线上,用,22,实数块代替共轭复数对。,2.3.2,矩阵的正交基,通过调用函数,orth,(),可以求矩阵正交基。调用格式为:,B=,orth(A,),将矩阵,A,正交规范化,,B,的列与,A,的列具有相同的空间,,B,的列向量是正交向量,且满足,B*B=,eye(rank(A,),。,这里,rank(A,),表示矩阵的秩。,【,例,2.19】,将矩阵 正交规范化,解 在,MATLAB,命令提示符下输入:,clear,Y=8 0 0;0 4 2;0 5 9;,B=,orth(Y,),B=0 1.0000 0,-0.3540 0 -0.9352,-0.9352 0 0.3540,Q=B*B,Q=1.0000 0 -0.0000,0 1.0000 0,-0.0000 0 1.0000,2.3.3,矩阵的二次型,n,个变量的二次齐次函数 ,其中,,(,i,j,=1,2,n,),称为,n,元二次型,简称二次型。,若令,,则二次型,f,可改写为矩阵向量形式,f,=,x,T,A,x,。其中,A,称为二次型矩阵。任一实二次型,f,都可合同变换为规范型,【,例,2.20】,求一个正交变换,X,=,PY,,把二次型,f,(,x,1,x,2,x,3),化成标准形。,解 在,MATLAB,命令提示符下输入:,clear,A=0 2-2;2 4 4;-2 4-3;,A=0 2-2;2 4 4;-2 4-3,A=0 2 -2,2 4 4,-2 4 -3,P,D=,eig(A,),P=0.4082 0.8944 -0.1826,-0.4082 -0.0000 -0.9129,0.8165 -0.4472 -0.3651,D=-6.0000 0 0,0 1.0000 0,0 0 6.0000,syms,y1 y2 y3%,声明变量,y=y1;y2;y3,y=y1,y2,y3,X=vpa(P,2)*y,X=.43*y1+.88*y2-.18*y3,-.43*y1-.66e-16*y2-.94*y3,.83*y1-.44*y2-.37*y3,f=y1 y2 y3*D*y,f=-6*y12+y22+6*y32,2.3.4,秩,1,矩阵和向量组的秩,矩阵,A,的秩指的是矩阵,A,中非零子式最高阶的阶数,记为,r,(,A,),;向量组的秩通常通过该向量组构成的矩阵来计算。通过调用函数,rank(),可以求矩阵的秩。调用格式为:,k=,rank(A,),返回矩阵,A,的行(或列)向量中线性无关个数。,k=,rank(A,tol,),tol,为给定误差。,【,例,2.22】,求向量组,a,1=(1 2 1 3),,,a,2=(4 -1 -5 -6),,,a,3=(-1 -3 -4 -7),,,a,4=(2 1 2 0),的秩,并判断其线性相关性。,解 在,MATLAB,命令提示符下输入:,clear,Z=1 2 1 3;4-1-5-6;-1-3-4-7;2 1 2 0;,k=,rank(Z,),k=4,2.4,矩 阵 分 析,矩阵分析主要包括矩阵结构的变换,如矩阵的转置、矩阵的旋转、矩阵的左右翻转、矩阵的上下翻转;矩阵的逆与伪逆的运算;方阵的行列式的运算。,利用,MATLAB,可以方便快捷地进行上述运算。,2.4.1,矩阵结构变换,1,矩阵的转置,矩阵转置的运算符是(,)。,【,例,2.23】,求矩阵,A,的转置。,解 在,MATLAB,命令提示符下输入:,clear,A=1 2 3;4 5 6,A=1 2 3,4 5 6,A=1 2 3;4 5 6,A=1 4,2 5,3 6,2,矩阵的旋转,矩阵的旋转是利用函数,rot90(A,k),,功能是将矩阵,A,旋转,90,的,k,倍,当,k,为,1,时可省略。,【,例,2.24】,求矩阵,B,的旋转。,解 在,MATLAB,命令提示符下输入:,clear,A=1 2 3;4 5 6,A=1 4,2 5,3 6,B=rot90(A,1),B=4 5 6,1 2 3,B=rot90(A,2),B=6 3,5 2,4 1,3,矩阵的左右翻转,通过调用函数,fliplr(A,),可以实现矩阵的左右翻转。,【,例,2.25】,求矩阵,A,的左右翻转。,解 在,MATLAB,命令提示符下输入:,clear,A=1 2 3;4 5 6,A=1 4,2 5,3 6,fliplr(A,),ans,=4 1,5 2,6 3,4,矩阵的上下翻转,通过调用函数,flipud(A,),可以实现矩阵的上下翻转。,【,例,2.26】,求矩阵,A,的上下翻转。,解 在,MATLAB,命令提示符下输入:,clear,A=1 2 3;4 5 6,flipud(A,),ans,=3 6,2 5,1 4,2.4.2,矩阵的逆与伪逆,1,矩阵的逆,通过调用函数,inv(A,),可以求矩阵,A,的逆。,【,例,2.27】,用求逆矩阵的方法解线性方程组,解 在,MATLAB,命令提示符下输入:,clear,A=1,2,3;1,4,9;1,8,27;b=5,2,6;%A*X=B,x=,inv(A,)*b,x=23.0000,-14.5000,3.6667,2,矩阵的伪逆,伪逆矩阵又称为广义逆矩阵。当矩阵,A,的行数,m,与列数,n,不等或,det|,A,|=0,时,则不存在逆矩阵。但存在广义逆矩阵,P,,它满足,APA,=,A,,,PAP,=,P,。在,MATLAB,中,调用函数,pinv(A,),可以求一个矩阵的伪逆矩阵。,【,例,2.28】,求,A,的伪逆,并将结果存储到,B,中。,解 在,MATLAB,命令提示符下输入:,clear,A=3,1,1,1;1,3,1,1;1,1,3,1;,B=,pinv(A,),B=0.3929 -0.1071,-0.1071,-0.1071 0.3929 -0.1071,-0.1071,-0.1071,0.3929,0.0357,0.0357,0.0357,2.4.3,方阵的行列式,求方阵,A,所对应的行列式的值的函数是,det(A,),。,【,例,2.30】,求方阵,A,的行列式的值。,解 在,MATLAB,命令提示符下输入:,clear,A=ones(4),A=1 1 1 1,1 1 1 1,1 1 1 1,1 1 1 1,det(A,),ans,=0,A=magic(4),A=16 2 3 13,5 11 10 8,9 7 6 12,4 14 15 1,det(A,),ans,=0,A=3 2-4 6;8 7 6 5;4 9 7-6;-3 4 6 8,A=3 2 -4 6,8 7 6 5,4 9 7 -6,-3 4 6 8,det(A,),ans,=-5606,2.5,矩 阵 分 解,矩阵的分解主要包括矩阵的三角分解、矩阵的正交分解、矩阵的根分解。,MATLAB,为矩阵的分解提供了简单好用的命令函数,可以快速实现矩阵的分解,大大提高运算速度。,2.5.1,矩阵的三角分解,三角分解又称,LU,分解、,Gauss,消去分解,可以将任何方阵表示为一个下三角阵,L,和一个上三角阵,U,的乘积,即,A=LU,。,LU,分解的命令为,L,U=,lu(A,),。具体为:,L,U=,lu(A,),。即将方阵,A,分解为交换下三角矩阵,L,和上三角矩阵,U,,使,A=LU,。,L,U,P=,lu(A,),。即将方阵,A,分解为变换形式下的三角矩阵,L,和上三角矩阵,U,,使,PA=LU,。例如:,A,*,X,=,b,变成,L,*,U,*,X,=,b,,所以,X,=,U,(,L,b,),,这样可以大大提高运算速度。,【,例,2.32】LU,分解,3,阶幻方矩阵。,解 在,MATLAB,命令提示符下输入:,clear,A=magic(3);,L,U=,lu(A,);,L=1.0000 0 0,0.3750 0.5441 1.0000,0.5000 1.0000 0,U=8.0000 1.0000 6.0000,0 8.5000,1.0000,0 0 5.294,2.5.2,矩阵的正交分解,正交分解,即,QR,分解,就是将矩阵分解为一个正交阵或者酉矩阵和一个上三角阵的乘积。其中,R,为上三角阵,,Q,为酉矩阵。,E,为置换矩阵,使得,A*E=Q*R,。对矩阵,A,进行,QR,分解的函数是,Q,R=,qr(A,),,根据方阵,A,,求一个正交矩阵,Q,和一个上三角矩阵,R,,使,A=Q*R,。命令为:,Q,R=,qr(A,),Q,R,E=,qr(A,),Q,R=qr(A,0),Q,R,E=qr(A,0),2.5.3,矩阵的平方根分解,应用,MATLAB,函数,C=,chol(A,),可以实现矩阵,A,的平方根分解。,如果矩阵,A,是正定矩阵,那么存在唯一的对角线元素为正数的下三角矩阵,L,,让,A,=,L,L,。,平方根分解的目的就是找出这个矩阵,L,。,【,例,2.35】,用平方根分解法分解矩阵,A,和,a,。,解 在,MATLAB,命令提示符下输入:,a=6 3 1;6 4 2;2 2 2,a=6 3 1,6 4 2,2 2 2,c=,chol(a,),c=2.4495 1.2247 0.4082,0 1.5811 0.9487,0 0 0.9661,c*c,ans,=6.0000 3.0000 1.0000,3.0000 4.0000 2.0000,1.0000 2.0000,2.0000,A=1 1 1;1 2 3;1 3 6,A=1 1 1,1 2 3,1 3 6,c=,chol(A,),c=1 1 1,0 1 2,0 0 1,c*c,ans,=1 1 1,1 2 3,1 3 6,2.6,稀 疏 矩 阵,稀疏矩阵指的是矩阵中只包含个别非零元素,非零元素仅占总元素的,1%,甚至更少。,对于那些非零元素很少的大矩阵来说,按照行列进行存储,会造成计算机资源的很大浪费。,因此,MATLAB,对稀疏矩阵采取了特殊的处理,但运算规则和满阵一样。,2.6.1,稀疏矩阵的创建,1,调用函数创建稀疏矩阵,sparse(),调用函数,sparse(),可以创建稀疏矩阵。调用格式:,S=,sparse(A,),将矩阵,A,转化为稀疏矩阵形式,即由,A,的非零元素和下标构成稀疏矩阵,S,,若,A,本身为稀疏矩阵,则返回,A,本身;,S=,sparse(m,n,),生成一个,mn,的所有元素都是,0,的稀疏矩阵。,2,将满矩阵转化为稀疏矩阵,full(),将满矩阵转化为稀疏矩阵的函数为,full(),。调用格式为:,A=,full(S,),其中,,S,为稀疏矩阵,,A,为满矩阵。,2.6.2,查看稀疏矩阵,1,使用,find(),函数查看稀疏矩阵,find(),函数可以用来查看所有矩阵,调用格式为:,i,j,s,=,find(A,),其中,,i,、,j,、,s,为返回值,,i,为非零元素的行下标向量,,j,为非零元素的列下标向量,,s,为非零元素值向量。,2,查看稀疏矩阵非零元素的分布图形,调用函数,spy(),可以查看稀疏矩阵中非零元素的分布图形。调用格式为:,spy(S,),画出稀疏矩阵,S,中非零元素的分布图形。,S,也可以是满矩阵。,spy(S,markersize,),markersize,为整数,指定点阵大小。,spy(S,LineSpec,),LineSpec,指定绘图标记和颜色。,spy(S,LineSpec,markersize,),参数含义与上面相同。,2.6.3,稀疏矩阵的运算,1,稀疏矩阵的基本运算,计算稀疏矩阵中非零元素的个数:计算稀疏矩阵中非零元素个数的函数为,nnz,(),。调用格式为:,n=,nnz(X,),返回矩阵,X,中非零元素的个数。,2,稀疏矩阵的排序,(,1,)列最小度排序:对矩阵排序常用的方法是列最小度排序法。列最小度排序函数为:,B=,colmmd(A,),返回一个稀疏矩阵,S,的列最小度排序向量,B,。按,B,排列后的矩阵为,S(:,B),。,(,2,)稀疏矩阵逆,Cuthill,-McKee,排序:稀疏矩阵逆,Cuthill,-McKee,排序函数为,symrcm,(),。调用格式为:,r=,symrcm(S,),返回,S,的对称逆,Cuthill,-McKee,排序,r,,使,S,的非,0,元素集中在主对角线附近。,3,稀疏矩阵的置换,对稀疏矩
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服