matlab基础教程(4)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MATLABR2007基础教程清华大学出版社2020年1月10日第1页第4章MATLAB的数学运算MATLABR2007基础教程清华大学出版社教学目标教学重点教学内容MATLABR2007基础教程清华大学出版社2020年1月10日第2页教学目标掌握向量和矩阵的运算掌握线性代数的基本函数和使用掌握稀疏矩阵的操作MATLABR2007基础教程清华大学出版社2020年1月10日第3页教学内容向量、矩阵及其运算矩阵和线性代数稀疏型矩阵MATLABR2007基础教程清华大学出版社2020年1月10日第4页向量、矩阵及其运算向量的点乘、叉乘和混合积矩阵的基本运算特殊矩阵生成向量和矩阵的范数矩阵的条件数MATLABR2007基础教程清华大学出版社2020年1月10日第5页向量的点乘、叉乘和混合积向量的点乘向量的点乘又称为内积,是两个向量的模和两个向量之间的夹角余弦三者的乘积。MATLAB中,实现点乘的函数是dot。dot函数的用法为dot(x1,x2),其中x1和x2的维数必须相同。向量的叉乘向量乘法除点乘之外还有叉乘。两个向量叉积的几何意义是指以两个向量模的乘积为模,方向和两个向量构成右手坐标系的向量。向量的叉乘不可交换。在MATLAB中函数cross用于实现向量的叉乘。向量的混合积向量的混合积的几何意义是:它的绝对值表示以三个向量为楞的平行六面体的体积,符号由右手法则确定。上面介绍了向量的点乘和叉乘,向量的混合积由点乘和叉乘逐步实现。MATLABR2007基础教程清华大学出版社2020年1月10日第6页矩阵的基本运算矩阵与常数之间的四则运算矩阵与常数的运算与数组运算相同矩阵和矩阵之间的四则运算–矩阵和矩阵之间的加减运算与数组运算相同–设A是一个m×n矩阵,B是一个p×q矩阵,当n=p时,两个矩阵可以相乘,乘积为m×q矩阵。矩阵乘法不可逆。在MATLAB中,矩阵乘法由“*”实现。–矩阵除法在实际中主要用于求解线性方程组矩阵转置符号“’”实现矩阵的转置操作。对于实数矩阵,“’”表示矩阵转置,对于复数矩阵,“’”实现共轭转置。对于复数矩阵,如果想要实现非共轭转置,可以使用符号“.’”。矩阵乘方MATLABR2007基础教程清华大学出版社2020年1月10日第7页特殊矩阵生成(1/2)函数功能[]生成空白矩阵zeros生成全0矩阵eye生成单位矩阵ones生成全1矩阵triltriu生成上三角或下三角矩阵diag生成对角矩阵gallery生成一些小的测试矩阵hadamard生成hadamard矩阵hankel生成hankel矩阵hilb生成Hilbert矩阵invhilb生成反Hilbert矩阵magic生成魔术矩阵pascal生成n阶Pascal矩阵rand生成服从均匀分布的随机矩阵randn生成服从正态分布的随机矩阵rosser典型的对称矩阵特征值的问题测试toeplitz生成Toeplitz矩阵vander生成范德蒙矩阵wilkinson生成Wilkinson矩阵compan生成多项式的伴随矩阵MATLABR2007基础教程清华大学出版社2020年1月10日第8页特殊矩阵生成(2/2)1.对角矩阵的生成对角矩阵指除对角线以外其他元素为0的矩阵。函数diag可以生成对角矩阵。该函数的用法为:–A=diag(V,K),其中V是一个向量,K是一个整数。该函数返回一个矩阵,矩阵的第K个对角线为V。K在默认情况下为0,表示矩阵的主对角线,K大于0时表示主对角线的上方,小于0时为主对角线的下方。–V=diag(A,K),其中A时一个矩阵。K与上面的语句相同。该语句返回矩阵A第K个对角线上的元素组成的矩阵。2.魔术矩阵的生成魔术矩阵是一种经常遇到的矩阵,除了二阶方阵之外,魔术矩阵的每一行、每一列以及每条主对角线的元素之和都相同。在MATLAB中,magic函数用于生成魔术矩阵。其调用方法为magic(N),其中N为正整数,并且N≠2.MATLABR2007基础教程清华大学出版社2020年1月10日第9页向量和矩阵的范数向量的范数定义为,其中,最常用的值为1、2和无穷大。矩阵的范数定义为,其中,最常用的值为1、2和无穷大。向量和矩阵的范数可以通过函数norm求解。该函数的调用格式为n=norm(A,p),其中p用于指定范数的类型。p可以为所有大于1的常数,最常用的为1、2、inf和'fro','fro'为求解矩阵A的Frobenius范数。当p省略时,默认值为2。MATLABR2007基础教程清华大学出版社2020年1月10日第10页矩阵的条件数矩阵的条件数是在矩阵的逆和矩阵范数的基础上定义的,是用于衡量矩阵病态程度的关键量。一个矩阵的条件数越大,表明该矩阵的病态程度越严重。MATLAB中求解矩阵条件数的函数是cond,在命令窗口输入cond(A)即可得到矩阵A的条件数。MATLABR2007基础教程清华大学出版社2020年1月10日第11页矩阵和线性代数线性方程组矩阵逆、秩及行列式矩阵分解矩阵指数函数和幂函数矩阵特征值、特征向量与特征行列式矩阵的标准正交基矩阵奇异值分解MATLABR2007基础教程清华大学出版社2020年1月10日第12页线性方程组(1/2)利用矩阵求逆的方法求解方程组我们首先求系数矩阵的逆,然后利用矩阵的逆求解方程组的解。利用矩阵的左除符号“\”或者右除符号“/”求解方程组MATLABR2007基础教程清华大学出版社2020年1月10日第13页线性方程组(2/2)利用左除符号和右除符号求解线性方程组,避免了矩阵求逆操作,因此系数矩阵不必为方阵。如果系数矩阵的维数为,则有三种情况:–,此时方程组为超定方程组,MATLAB将给出最小二乘解;–,此时方程组为方阵系统,MATLAB给出精确解;–,此时方程组为欠约束方程组,MATLAB将给出一组基解,该解中包含最多个非零元素。在采用除法符号(包括左除和右除)求解线性方程组时,MATLAB采用因式分解法求解方程组。尽管MATLAB提供了两种方法,一般更倾向于采用第二种方法,该方法用到较少的浮点数运算,执行速度较快,另外,由于采用分解法,得出的结果要精确的多。mnmnmnMATLABR2007基础教程清华大学出版社2020年1月10日第14页矩阵逆、秩及行列式矩阵求逆对于非奇异方阵,如果存在方阵,满足并且,则称为矩阵的逆,记为,在MATLAB中,用inv(A)来实现矩阵逆的求解。矩阵求秩MATLAB获得矩阵秩的函数为rank,rank(A)可得到矩阵A的秩。矩阵行列式在MATLAB中,矩阵的行列式用函数det求解。调用格式为det(A),其中A为方阵。MATLABR2007基础教程清华大学出版社2020年1月10日第15页矩阵分解Cholesky分解LU分解QR分解(正交分解)MATLABR2007基础教程清华大学出版社2020年1月10日第16页Cholesky分解Cholesky分解将对称矩阵表示为一个三角矩阵与其转置的乘积的形式,即,其中为对称矩阵,为上三角矩阵。并非所有的对称矩阵都能进行Cholesky分解,只有正定矩阵能够进行Cholesky分解,如Pascal矩阵。在MATLAB中Cholesky分解由函数chol实现,该函数对输入矩阵进行Cholesky分解,返回其对应的三角矩阵。Cholesky分解同样适用于复数矩阵。如果复数矩阵满足,其中表示矩阵的共轭转置。如果矩阵存在Cholesky分解则称其为Hermitian正定。MATLABR2007基础教程清华大学出版社2020年1月10日第17页LU分解矩阵的LU分解将一个方阵表示为一个下三角置换矩阵和一个上三角矩阵乘积的形式。如,其中为下三角置换矩阵,为上三角矩阵。MATLAB中LU分解可以通过函数lu实现。通过矩阵的LU分解,可以实现线性方程组的快速求解。另外矩阵的LU分解可用于矩阵快速求逆和求行列式,有det(A)=det(L)*det(U)和inv(A)=inv(U)*inv(L)。MATLABR2007基础教程清华大学出版社2020年1月10日第18页QR分解(正交分解)(1/2)如果矩阵满足,则为正交矩阵。正交矩阵为实矩阵,其每列为单位向量,并且各列互相正交。正交矩阵最简单的例子为二维旋转矩阵:对于复数矩阵,对应的概念为酉矩阵。在数值计算中正交矩阵有着重要的应用,因为正交矩阵具有长度不变性、角度不变性,并且不会扩大误差。矩阵的正交分解将矩阵表示为正交矩阵(或酉矩阵)和上三角矩阵的乘积。如或,其中为正交矩阵或酉矩阵,为上三角矩阵,为置换矩阵。正交分解有四种形式,包括完全分解、简化分解、带置换矩阵的分解和不带置换矩阵的分解。QQQIcossinsincosAQRAPQRQRPMATLABR2007基础教程清华大学出版社2020年1月10日第19页QR分解(正交分解)(2/2)完全分解过约束线性系统的系数矩阵函数超过列数,为一个矩阵并且,记为,则完全正交分解产生一个的正交矩阵和一个的上三角矩阵,满足。MATLAB中矩阵的完全分解由函数qr实现。简化分解矩阵的简化正交分解可以节省存储空间和运算时间。正交分解可以通过在qr函数中设置第二个参数为0实现。与LU分解不同,QR分解不需要对矩阵进行旋转或者置换,如上面的两个例子。但是如果对矩阵进行置换可以避免由于矩阵奇异造成的误差。选择置换后,在分解的每一步,选择剩下列中范数最大的一列作为分解的基。这样得到的结果中,R的对角线元素按照降序排列。包含置换的正交分解可以通过增加qr函数的输出参数得到。MATLABR2007基础教程清华大学出版社2020年1月10日第20页矩阵指数函数和幂函数矩阵的正整数幂如果A为方阵,p为正整数,则A^p表示p个A相乘。矩阵的负数幂与分数幂如果A为非奇异方阵,则A^(-p)等价于inv(A)^p。MATLAB中,允许对矩阵进行分数幂运算,运算结果依赖于矩阵特征值的分布情况。矩阵指数运算expm用于实现矩阵的指数运算。线性系统的解可以表示为,其中的矩阵指数运算可以通过expm完成。/dxdtAx0tAxtexMATLABR2007基础教程清华大学出版社2020年1月10日第21页矩阵特征值矩阵的特征值和特征值分解在线性代数中一直扮演着重要的角色。在MATLAB中,函数eig实现矩阵的特征值计算和特征值分解。例4-23利用函数eig实现矩阵的特征值计算利用例2-22中的矩阵A。在命令窗口中输入:A=[0,-6,-1;6,2,-16;-5,20,-10];A=0-6-162-16-520-10lambda=eig(A)lambda=-3.0710-2.4645+17.6008i-2.4645-17.6008i上例实现对矩阵特征值的计算,如果在调用eig函数时,设置输出参数的个数为2,则实现对矩阵的特征值分解。MATLABR2007基础教程清华大学出版社2020年1月10日第22页矩阵的特征向量和特征多项式通过[V,D]=eig(A)则可以返回矩阵A的特征向量为列的矩阵V和以矩阵A的特征值为对角元素的矩阵D。在MATLAB中,poly(A)可以生成矩阵A的特征多项式,特征多项式的根也就是矩阵A的特征值。MATLABR2007基础教程清华大学出版社2020年1月10日第23页矩阵的标准正交基将矩阵A的每一列向量取出并作线性运算,则可以生成一个向量空间,该空间称为矩阵A的线性空间。而实际上只需要通过一组基向量的线性运算就可以生成每一个矩阵线性空间下的所有向量。这样的个数最少的一组基向量被称为该空间的基,如果这些基向量正好长度为1,而且互相正交,则被称为标准正交基。MATLAB中可以通过orth函数获得矩阵A的一组标准正交基,其语法为:B=orth(A)MATLABR2007基础教程清华大学出版社2020年1月10日第24页矩阵奇异值分解对于矩阵,如果存

1 / 62
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功