《MATLAB的线性代数运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB的线性代数运算.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、MATLAB的线性代数运算MATLAB语言概述语言概述vMATLAB(Matrix Laboratory)是MathWorks公司开发的科学与工程计算软件;v广泛应用于自动控制、数学运算、信号分析、计算机技术、图像信号处理、财务分析、航天工业、汽车工业、生物医学工程、语音处理和雷达工程等行业;v国内外高校和研究部门科学研究的重要工具;vMATLAB已成为数学计算工具方面事实上的标准。1.1 MATLAB简介简介1.1.1 MATLAB工具箱工具箱vMATLAB由基本部分和功能各异的工具箱组成。v基本部分是MATLAB的核心,工具箱是扩展部分。v工具箱是用MATLAB的基本语句编成的各种子程序集
2、,用于解决某一方面的专门问题或实现某一类的新算法。vMATLAB有以下主要的工具箱:MATLAB主要的工具箱:v通信工具箱(Communication Toolbox)v控制系统工具箱(Control System Toolbox)v系统辨识工具箱(System Identification Toolbox)v信号处理工具箱(Signal Processing Toolbox)v神经网络工具箱(Neural Network Toolbox)v模糊逻辑控制工具箱(Fuzzy Logic Toolbox)v小波工具箱(Wavelet Toolbox)v模 型 预 测 控 制 工 具 箱(Model
3、 Predictive Control Toolbox)v图像处理工具箱(Image Processing Toolbox)v频域系统辨识工具箱(Frequency System Identification Toolbox)v优化工具箱(Optimization Toolbox)v偏 微 分 方 程 工 具 箱(Partial Differential Equation Toolbox)v财政金融工具箱(Financial Toolbox)v统计工具箱(Statistics Toolbox)1.1.2 MATLAB功能和特点功能和特点1 功能强大功能强大运算功能强大功能丰富的工具箱文字处理功
4、能强大2人机界面友好,编程效率高人机界面友好,编程效率高3强大而智能化的作图功能强大而智能化的作图功能4可扩展性强可扩展性强5.Simulink动态仿真功能动态仿真功能1.2 MATLAB 环境设置环境设置vMATLAB的操作界面是一个高度集成的工作界面,它的通用操作界面包括八个常用的窗口。v“Start”开始按钮。MATLAB7.0版的界面更加方便,运行界面称为MATLAB操作界面(MATLABDesktop),默认的操作界面如图所示。图图1.1 MATLAB 的默认界面的默认界面菜单历史命令窗口工作空间窗口/当前目录浏览器开始按钮工具栏命令窗口1.2.1 菜单栏菜单栏1.2.2 工具栏工具
5、栏New M-FileCopyCutPasteOpen FileUndoRedoHelpSimulink当前路径图图1.2 工具栏工具栏GUIDEProfiler1.2.3 通用操作界面窗口通用操作界面窗口1.命令窗口命令窗口(Command Window)2.历史命令窗口历史命令窗口(Command History)3.当前目录浏览器窗口当前目录浏览器窗口(Current Directory Browser)4.工作空间浏览器窗口工作空间浏览器窗口(Workspace Browser)5.数组编辑器窗口数组编辑器窗口(Array Editor)6.M文件编辑调试器窗口文件编辑调试器窗口(Ed
6、itorDebugger)7.帮帮 助助 导导 航航 浏浏 览览 器器 窗窗 口口(Help NavigatorBrowser)8.程序性能剖析窗口程序性能剖析窗口(Profiler)命令窗口中行编辑的常用操作键命令窗口中行编辑的常用操作键MATLAB常用标点符号的功能常用标点符号的功能1.3 MATLAB帮助帮助v帮助导航浏览器窗口帮助导航浏览器窗口v通过命令实现帮助通过命令实现帮助vPDF帮助帮助v其他帮助其他帮助 Demos演示 通过Web查找帮助信息1.4 MATLAB 其他管理其他管理v程序文件程序文件 文件扩展名为.mv数据文件数据文件 文件扩展名为.matv可执行文件可执行文件
7、文件扩展名为.mexv图形文件图形文件 文件扩展名为.figv模型文件模型文件 文件扩展名为.mdlv仿真文件仿真文件 文件扩展名为.s1.4.1 MATLAB用户文件格式用户文件格式1.4.2 设置搜索路径设置搜索路径vXv在MATLAB内存中进行检查,检查X是否为工作空间的变量或特殊变量;v检查X是否为MATLAB的内部函数(Built-in Function);v在当前目录上,检查是否有名为“X.m”或“X.mex”的文件存在;v在MATLAB搜索路径的所有其他目录中,检查是否有名为“X.m”或“X.mex”的文件存在;v如果都不是,则MATLAB发出错误信息。1.MATLAB的基本搜索
8、过程的基本搜索过程2.MATLAB搜索路径的扩展和修改搜索路径的扩展和修改(1)利用设置路径对话框修改搜索路径在MATLAB界面选择菜单“File”“Set Path”命令。在命令窗口运行“pathtool”命令。(2)利用path命令设置搜索路径path(path,新新增增目目录录)%在MATLAB的搜索路径的末尾添加新目录 path(path,c:MyDir)1.4.3 文件管理命令文件管理命令vwhat:列出当前目录下的M、MAT、MEX文件清单vdir:列出指定目录下的文件和子目录清单vtype 文件名:文件名:显示指定M文件的内容vwhich 文文件件名名:指出M文件、MEX文件、工
9、作空间变量、内置函数或Simulink模型所在的目录vmatlabroot :返回安装MATLAB的根目录vdiary:把当前命令窗口中的所有内容(包括命令、计算结果等)保存到日志文件中vdiary(file)%使用指定文件名创建日志文件vclc;clf:命令窗口清屏及图形窗口清屏实验一实验一 矩阵的基本操作矩阵的基本操作1.矩阵的建立矩阵的建立2.1.1 手工输入法 矩阵的元素由方括号括起来,按矩阵行的顺序输入元素。同一行的元素之间用逗号或空格分隔,不同行的元素之间用分号分隔。例1-1:a=1,2,3;4 5 6 a=1 2 3 4 5 6 1.2 利用利用 MATLAB 函数建立特殊矩阵函
10、数建立特殊矩阵利用MATLAB函数建立特殊矩阵,下表是由函数表示的特殊矩阵:例1-2:a=eye(3,4)%生成3*4单位矩阵 a=1 0 0 0 0 1 0 0 0 0 1 0 例1-3:a=zeros(2)%生成 2 阶全部元素为0的矩阵 a=0 0 0 01.3 冒号生成法冒号生成法 通过设定“步长”,自动生成数组(向量),格式为:数组名=初值:步长:终值;若省略步长,则系统默认步长为1,格式为:数组名=初值:终值。例1-4:a=1:2:10 a=1 3 5 7 9 说明:1)初值是生成的第一个元素,步长是元素间隔。如果“终值-初值”是步长的整数倍,则生成的最后一个元素是终值,否则小于终
11、值。2)步长可以取负值,这时终值不能大于初值。步长取正数时,终值不能小于初值。例1-5:a=10:-2:1 a=10 8 6 4 2 例1-6:a=1.2:5 a=1.2000 2.2000 3.2000 4.2000 1.4 线性生成法线性生成法 给定生成数的个数,生成均匀数组,指令为x=linspace(a,b,n)。a,b分别为生成数组的第一个和最后一个元素,n是生成元素总数。例1-7:a=linspace(9,1,5)a=9 7 5 3 1 2.矩阵的访问和修改矩阵的访问和修改A(m,n):提取矩阵A的第m行,第n列元素。A(:,n):提取第n列元素。A(m,:):提取第m行元素 A(
12、m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。A=1 2 3 4;5 6 7 8;-1 0 9 7 A=1 2 3 4 5 6 7 8 -1 0 9 7 把A的第1行第2列对应的元素换成-9,命令和结果如下:A(1,2)=-9 A=1 -9 3 4 5 6 7 8 1 0 9 7实验二实验二 矩阵的基本运算矩阵的基本运算1.矩阵的转置矩阵的转置对于实矩阵用()符号求转置的结果是一样的。然而对于含复数的矩阵,则()将同时对复数进行共轭处理。例2-1:A=1 2 3;4 5 6 A=1 4 2 5 3 6 2.矩阵的行列式矩阵的行列式可用函数det求矩
13、阵的行列式大小。例2-2:a=1 2 0;2 5-1;4 10-1;b=det(a)b=13.矩阵的四则运算矩阵的四则运算数组和矩阵的加减运算使用加号和减号,即“+”和“-”。矩阵相乘使用“*”运算符。如果只是将两个矩阵中相同位置的元素相乘,使用“.*”运算符。矩阵除法有左除和右除的区别,分别使用“”和“/”运算符。与“”和“/”运算符相对应,也有“.”和“./”运算符,分别用于将两个矩阵中的对应元素相除。矩阵与常数的代数运算,可以直接使用上面的各种运算符。例2-3:请观察运算结果,体会算术运算 A=1 2;3 4;B=3 5;5 9;C=A+B D=A-B A*B A2 A/B=-0.50
14、0.50;3.50 1.50 AB=-1-1;2 3 4.矩阵的逆、秩、迹运算矩阵的逆、秩、迹运算用函数inv实现矩阵的逆运算。由函数pinv实现矩阵的伪逆运算用函数rank求矩阵的秩。矩阵的迹是指矩阵所有对角线元素的和。在MATLAB中,矩阵的迹可由函数trace计算得到。例2-4:求矩阵 的行列式,逆,秩,迹。A=1 2 3;4 5 6;2 3 5;A_det=det(A)A_det=-3 format rat%分数形式表示结果 A_inv=inv(A)A_inv=-7/3 1/3 8/3 1/3 -2/3 -1/3 A_rank=rank(A)A_rank=3 A_trace=trace
15、(A)A_trace=11 A_orth=orth(A)A_orth=-0.3276 0.4479 -0.8319 -0.7741 -0.6321 -0.0355 -0.5417 0.6323 0.5538 5.矩阵的范数矩阵的范数 矩阵的范数运算可由函数norm来实现,具有norm(A),norm(A,1),norm(A,2),norm(A,inf),norm(A,fro)等形式,分别代表矩阵的范数运算、1-范数运算、7-范数运算、无穷大范数运算和F-范数运算。6.矩阵的条件数矩阵的条件数 条件数的值代表矩阵“病态”程度的大小。在MATLAB中,矩阵的条件数可分别由函数cond(A),con
16、dest(A)或rcond(A)计算得到,它们分别计算矩阵的条件数值、1-范数矩阵条件数值和矩阵的逆条件数值。7.矩阵的幂和平方根矩阵的幂和平方根矩阵的幂运算使用运算符“”,幂运算具有类似Xp的形式。如果p是整数,则幂通过重复求平方来计算;如果该整数为负值,则首先计算X的逆;如果p取其他值,则计算需要用到特征值和特征矢量,即如果V,D=eig(X),则Xp=V*D.p/V。用sqrtm函数求矩阵的平方根。练习:已知 ,求(1)A,B的秩。(2)2A+B,A-2B的逆(3)A2 ,B的2-范数(4)A-1,B+2实验三实验三 向量组的线性相关性向量组的线性相关性 在MATLAB环境下使用命令rr
17、ef(A)可以求得矩阵A的行最简型矩阵,进而可以判断矩阵A的列向量组是否线性相关,并找出列向量组的最大无关组。例3-1:A=1 2 1 8;1 2 3 10;2 3 1 13;1 2 2 9A=1 2 1 8 1 2 3 10 2 3 1 13 1 2 2 9B=rref(A)B=1 0 0 3 0 1 0 2 0 0 1 1 0 0 0 0 例3-2 求以下向量组的一个最大无关组,并线性表示其余向量。解:所以 为一个最大无关组,且 A=1-2 1 3;0 6 3-1;3 2-1 3;1 1 1 1;0 4 5 6 A=1 0 3 1 0 -2 6 2 1 4 1 3 -1 1 5 3 -1
18、3 1 6 rref(A)ans=1 0 0 0 137/30 0 1 0 0 47/15 0 0 1 0 11/10 0 0 0 1 -118/15 实验四实验四 矩阵的分解矩阵的分解矩阵的LU分解矩阵的QR分解矩阵的QZ分解矩阵的乔累斯基分解矩阵的奇异值分解矩阵的Schur分解1.矩阵的矩阵的LU分解分解(i)、矩阵的LU分解就是将一个矩阵表示为一个交换下三角矩阵和一个上三角矩阵的乘积形式.线性代数中已经证明,只要方阵A是非奇异的,LU分解总是可以进行的.(ii)、MATLAB提供的lu函数用于对矩阵进行LU分解,其调用格式为:L,U=lu(X):产生一个上三角阵U和一个变换形式的下三角阵
19、L(行交换),使之满足X=LU.注意,这里的矩阵X必须是方阵.L,U,P=lu(X):产生一个上三角阵U和一个下三角阵L以及一个置换矩阵P,使之满足PX=LU.当然矩阵X同样必须是方阵.(iii)、实现LU分解后,线性方程组Ax=b的解x=U(Lb)或x=U(LPb),这样可以大大提高运算速度.例子2.矩阵的矩阵的QR分解分解 在MATLAB中,QR分解可由函数qr实现。常用的调用格式如下:B,C=qr(A)返回的矩阵C为上三角矩阵,矩阵B为满秩矩阵。Q,R,E=qr(A)返回的矩阵E是置换矩阵,矩阵R是上三角矩阵,矩阵Q是满秩矩阵。上述矩阵满足关系A*E=Q*R。3.矩阵的矩阵的QZ分解分解
20、 在MATLAB中,QZ分解可由函数qz来实现。qz函数常用的调用格式如下:a.AA,BB,Q,Z,V=qz(A,B)要求矩阵A,B是方阵。产生的矩阵AA,BB是上三角矩阵,Q,Z是正交矩阵,矩阵V是特征矢量矩阵。其中,满足Q*A*Z=AA与Q*B*Z=BB。b.AA,BB,Q,Z,V=qz(A,B,flag)对于方阵A,B的QZ分解取决于参数flag。参数flag可取complex与real。4.矩阵的乔累斯基分解矩阵的乔累斯基分解 设矩阵A为n阶对称正定矩阵,则A矩阵可分解为LL,即A=LL。其中,矩阵L是上三角矩阵。此时,这种分解就称为乔累斯基分解。在MATLAB中,乔累斯基分解由函数c
21、hol实现。5.矩阵的奇异值分解矩阵的奇异值分解在MATLAB中,矩阵的奇异值分解由函数svd来实现,其调用格式为 b,c,d=svd(A)6.矩阵的矩阵的Schur分解分解在MATLAB中,矩阵的Schur分解由Schur函数来实现,其调用格式为 b,c=schur(A)其中c矩阵为Schur矩阵。实验五 线性方程组AX=B求解1.当当A为满秩矩阵(方阵)时为满秩矩阵(方阵)时 在MATLAB中有两种方式计算上式:x=inv(A)*b和 x=Ab。推荐使用第二种形式,因为与第一种相比,其求解速度更快,数值更精确。例5-1:求方程组 的解。解:A=1 2 3;1 3 5;1 3 6;b=2 4
22、 5;x1=inv(A)*b x1=-1 0 1或者x2=Ab x2=-1 0 1 所以所求的方程组的解为2.齐次方程求解齐次方程求解若矩阵A不满秩时,则方程有非零解。null(A)可求得方程组的基础解系,null(A,r)求得标准基础解系。例5-2 求方程组 的基础解系和通解,已知矩阵解:A=1 2 3 3;2-3-1 2;-2 2 0 1;1 1 2 2;rref(A)ans=1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 0 null(A)ans=-0.5774 -0.5774 0.5774 0.0000null(A,rans=-1 -1 1 0 所以原方程组的基础解系为 ,
23、通解为 。3.一般情形一般情形(1)r(A)=r(A,b)=n,方程有唯一解,x=Ab或 x=inv(A)*b.(2)r(A)=r(A,b)A=2 1-1 1;4 2-2 1;2 1-1 1;b=1 2 1;B=A b;RA=rank(A);RB=rank(B);C=Ab C=0.5000 0 0 0.0000 D=null(A,r)D=-0.5000 0.5000 1.0000 0 0 1.0000 0 0 所以方程组的全部解为 。练习:求解方程组解:clear A=-1 2 4;2 1 1;1 1 1;rank(A)ans=2 rref(A)ans=1 0 2 0 1 3 0 0 0说明方
24、程有无穷多解,并且解为说明方程有无穷多解,并且解为实验六 矩阵的特征值和特征向量命令:E=eig(A),求出A的全部特征值,构成向量E。V,D=eig(A)(对A作相似变换)求出特征值构 成对角矩阵 D,并求出A的特征向量构成V 的列向量 V,D=eig(A,nobalance)直接求特征值及特征向量 例6-1 求矩阵 的特征值及特征向量。A=2,5,1;4,3,2;8,5,4 A=2 5 1 4 3 2 8 5 4 E=eig(A)E=10.1789 -1.1789 0.0000 V,D=eig(A)V=-0.3656 -0.6331 -0.4472 -0.4332 0.2564 -0.00
25、00 -0.8238 0.7304 0.8944 D=10.1789 0 0 0 -1.1789 0 0 0 0.0000 V,D=eig(A,nobalance)V=-0.4437 -0.8668 -0.5000 -0.5258 0.3511 -0.0000 -1.0000 1.0000 1.0000 D=10.1789 0 0 0 -1.1789 0 0 0 0.0000 例6-2 求二次型 的矩阵和二次型的秩。解:1 format ratA=1-3/2-1;-3/2 2 1;-1 1 3运行结果:A=1 -3/2 -1 -3/2 2 1 -1 1 3 rA=rank(A)运行结果:rA=3