MATLAB的数学运算.ppt
《MATLAB的数学运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB的数学运算.ppt(62页珍藏版)》请在三一办公上搜索。
1、2023/11/8,第1页,第4章 MATLAB 的数学运算,MATLAB R2007基础教程 清华大学出版社,教学目标教学重点教学内容,2023/11/8,第2页,教学目标,掌握向量和矩阵的运算掌握线性代数的基本函数和使用掌握稀疏矩阵的操作,2023/11/8,第3页,教学内容,向量、矩阵及其运算 矩阵和线性代数 稀疏型矩阵,2023/11/8,第4页,向量、矩阵及其运算,向量的点乘、叉乘和混合积矩阵的基本运算 特殊矩阵生成 向量和矩阵的范数 矩阵的条件数,2023/11/8,第5页,向量的点乘、叉乘和混合积,向量的点乘 向量的点乘又称为内积,是两个向量的模和两个向量之间的夹角余弦三者的乘积
2、。MATLAB 中,实现点乘的函数是dot。dot 函数的用法为 dot(x1,x2),其中 x1 和 x2 的维数必须相同。向量的叉乘 向量乘法除点乘之外还有叉乘。两个向量叉积的几何意义是指以两个向量模的乘积为模,方向和两个向量构成右手坐标系的向量。向量的叉乘不可交换。在 MATLAB 中函数 cross 用于实现向量的叉乘。向量的混合积 向量的混合积的几何意义是:它的绝对值表示以三个向量为楞的平行六面体的体积,符号由右手法则确定。上面介绍了向量的点乘和叉乘,向量的混合积由点乘和叉乘逐步实现。,2023/11/8,第6页,矩阵的基本运算,矩阵与常数之间的四则运算矩阵与常数的运算与数组运算相同
3、矩阵和矩阵之间的四则运算矩阵和矩阵之间的加减运算与数组运算相同设 A 是一个 mn 矩阵,B 是一个 pq 矩阵,当 np 时,两个矩阵可以相乘,乘积为 mq 矩阵。矩阵乘法不可逆。在 MATLAB 中,矩阵乘法由“*”实现。矩阵除法在实际中主要用于求解线性方程组矩阵转置符号“”实现矩阵的转置操作。对于实数矩阵,“”表示矩阵转置,对于复数矩阵,“”实现共轭转置。对于复数矩阵,如果想要实现非共轭转置,可以使用符号“.”。矩阵乘方,2023/11/8,第7页,特殊矩阵生成(1/2),2023/11/8,第8页,特殊矩阵生成(2/2),1对角矩阵的生成对角矩阵指除对角线以外其他元素为 0 的矩阵。函
4、数 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),
5、其中 N 为正整数,并且 N2.,2023/11/8,第9页,向量和矩阵的范数,向量的范数定义为,其中,最常用的值为 1、2 和无穷大。矩阵 的范数定义为,其中,最常用的值为 1、2 和无穷大。向量和矩阵的范数可以通过函数 norm 求解。该函数的调用格式为 n=norm(A,p),其中 p 用于指定范数的类型。p 可以为所有大于 1 的常数,最常用的为 1、2、inf 和 fro,fro 为求解矩阵 A 的 Frobenius 范数。当 p 省略时,默认值为 2。,2023/11/8,第10页,矩阵的条件数,矩阵的条件数是在矩阵的逆和矩阵范数的基础上定义的,是用于衡量矩阵病态程度的关键量。一
6、个矩阵的条件数越大,表明该矩阵的病态程度越严重。MATLAB中求解矩阵条件数的函数是cond,在命令窗口输入cond(A)即可得到矩阵A的条件数。,2023/11/8,第11页,矩阵和线性代数,线性方程组矩阵逆、秩及行列式 矩阵分解 矩阵指数函数和幂函数 矩阵特征值、特征向量与特征行列式矩阵的标准正交基矩阵奇异值分解,2023/11/8,第12页,线性方程组(1/2),利用矩阵求逆的方法求解方程组 我们首先求系数矩阵的逆,然后利用矩阵的逆求解方程组的解。利用矩阵的左除符号“”或者右除符号“/”求解方程组,2023/11/8,第13页,线性方程组(2/2),利用左除符号和右除符号求解线性方程组,
7、避免了矩阵求逆操作,因此系数矩阵 不必为方阵。如果系数矩阵 的维数为,则有三种情况:,此时方程组为超定方程组,MATLAB 将给出最小二乘解;,此时方程组为方阵系统,MATLAB 给出精确解;,此时方程组为欠约束方程组,MATLAB 将给出一组基解,该解中包含最多 个非零元素。在采用除法符号(包括左除和右除)求解线性方程组时,MATLAB 采用 因式分解法求解方程组。尽管 MATLAB 提供了两种方法,一般更倾向于采用第二种方法,该方法用到较少的浮点数运算,执行速度较快,另外,由于采用 分解法,得出的结果要精确的多。,2023/11/8,第14页,矩阵逆、秩及行列式,矩阵求逆 对于非奇异方阵,
8、如果存在方阵,满足 并且,则称为矩阵的逆,记为,在 MATLAB 中,用 inv(A)来实现矩阵逆的求解。矩阵求秩 MATLAB获得矩阵秩的函数为rank,rank(A)可得到矩阵A的秩。矩阵行列式 在 MATLAB 中,矩阵的行列式用函数 det 求解。调用格式为 det(A),其中 A 为方阵。,2023/11/8,第15页,矩阵分解,Cholesky 分解LU 分解 QR 分解(正交分解),2023/11/8,第16页,Cholesky 分解,Cholesky 分解将对称矩阵表示为一个三角矩阵与其转置的乘积的形式,即,其中为对称矩阵,为上三角矩阵。并非所有的对称矩阵都能进行 Choles
9、ky 分解,只有正定矩阵能够进行 Cholesky 分解,如 Pascal 矩阵。在 MATLAB 中 Cholesky 分解由函数 chol 实现,该函数对输入矩阵进行 Cholesky分解,返回其对应的三角矩阵。Cholesky 分解同样适用于复数矩阵。如果复数矩阵满足,其中表示矩阵的共轭转置。如果矩阵存在 Cholesky 分解则称其为 Hermitian 正定。,2023/11/8,第17页,LU 分解,矩阵的 LU 分解将一个方阵表示为一个下三角置换矩阵和一个上三角矩阵乘积的形式。如,其中为下三角置换矩阵,为上三角矩阵。MATLAB 中 LU 分解可以通过函数 lu 实现。通过矩阵的
10、 LU 分解,可以实现线性方程组的快速求解。另外矩阵的 LU 分解可用于矩阵快速求逆和求行列式,有 det(A)=det(L)*det(U)和 inv(A)=inv(U)*inv(L)。,2023/11/8,第18页,QR 分解(正交分解)(1/2),如果矩阵 满足,则为正交矩阵。正交矩阵为实矩阵,其每列为单位向量,并且各列互相正交。正交矩阵最简单的例子为二维旋转矩阵:对于复数矩阵,对应的概念为酉矩阵。在数值计算中正交矩阵有着重要的应用,因为正交矩阵具有长度不变性、角度不变性,并且不会扩大误差。矩阵的正交分解将矩阵表示为正交矩阵(或酉矩阵)和上三角矩阵的乘积。如 或,其中 为正交矩阵或酉矩阵,
11、为上三角矩阵,为置换矩阵。正交分解有四种形式,包括完全分解、简化分解、带置换矩阵的分解和不带置换矩阵的分解。,2023/11/8,第19页,QR 分解(正交分解)(2/2),完全分解过约束线性系统的系数矩阵函数超过列数,为一个矩阵并且,记为,则完全正交分解产生一个的正交矩阵和一个的上三角矩阵,满足。MATLAB 中矩阵的完全分解由函数 qr 实现。简化分解矩阵的简化正交分解可以节省存储空间和运算时间。正交分解可以通过在 qr 函数中设置第二个参数为 0 实现。与 LU 分解不同,QR 分解不需要对矩阵进行旋转或者置换,如上面的两个例子。但是如果对矩阵进行置换可以避免由于矩阵奇异造成的误差。选择
12、置换后,在分解的每一步,选择剩下列中范数最大的一列作为分解的基。这样得到的结果中,R 的对角线元素按照降序排列。包含置换的正交分解可以通过增加 qr 函数的输出参数得到。,2023/11/8,第20页,矩阵指数函数和幂函数,矩阵的正整数幂 如果 A 为方阵,p 为正整数,则 Ap 表示 p 个 A 相乘。矩阵的负数幂与分数幂如果 A 为非奇异方阵,则 A(-p)等价于 inv(A)p。MATLAB 中,允许对矩阵进行分数幂运算,运算结果依赖于矩阵特征值的分布情况。矩阵指数运算 expm 用于实现矩阵的指数运算。线性系统 的解可以表示为,其中的矩阵指数运算可以通过expm 完成。,2023/11
13、/8,第21页,矩阵特征值,矩阵的特征值和特征值分解在线性代数中一直扮演着重要的角色。在 MATLAB 中,函数eig 实现矩阵的特征值计算和特征值分解。例 4-23 利用函数 eig 实现矩阵的特征值计算利用例 2-22 中的矩阵 A。在命令窗口中输入:A=0,-6,-1;6,2,-16;-5,20,-10;A=0-6-1 6 2-16-5 20-10 lambda=eig(A)lambda=-3.0710-2.4645+17.6008i-2.4645-17.6008i上例实现对矩阵特征值的计算,如果在调用 eig 函数时,设置输出参数的个数为2,则实现对矩阵的特征值分解。,2023/11/
14、8,第22页,矩阵的特征向量和特征多项式,通过V,D=eig(A)则可以返回矩阵A的特征向量为列的矩阵V和以矩阵A的特征值为对角元素的矩阵D。在MATLAB中,poly(A)可以生成矩阵A的特征多项式,特征多项式的根也就是矩阵A的特征值。,2023/11/8,第23页,矩阵的标准正交基,将矩阵A的每一列向量取出并作线性运算,则可以生成一个向量空间,该空间称为矩阵A的线性空间。而实际上只需要通过一组基向量的线性运算就可以生成每一个矩阵线性空间下的所有向量。这样的个数最少的一组基向量被称为该空间的基,如果这些基向量正好长度为1,而且互相正交,则被称为标准正交基。MATLAB中可以通过orth函数获
15、得矩阵A的一组标准正交基,其语法为:B=orth(A),2023/11/8,第24页,矩阵奇异值分解,对于矩阵,如果存在数 和向量、,满足和,则称 为 的奇异值,、为 的奇异向量。如果将矩阵的奇异值写为对角矩阵的格式,记为(不足的部分记为0);以奇异向量为列并扩充为正交矩阵 和,则有 和。和 为正交矩阵,则得到,即为矩阵 的奇异值分解。在 MATLAB 中,函数svd 实现矩阵的奇异值分解。与矩阵的 QR 分解相似,奇异值分解也可以有简化分解。方法与 QR 分解相同,即在输入参数中以 0 标志。如在命令窗口中继续输入:,2023/11/8,第25页,稀疏型矩阵(1/2),在很多实际应用中,用户
16、往往会遇到只有少数非 0 元素的矩阵,我们称这些矩阵为稀疏矩阵。如果对稀疏矩阵中的全部元素进行存储和计算则会导致时间和空间上的极大浪费。因此,为了更有效的存储和处理稀疏矩阵,MATLAB 中采用了一些优化技术:MATLAB 中只存储稀疏矩阵中的非 0 元素,并用行索引和列索引表明每个非 0 元素在原矩阵中的位置;同样,MATLAB 中采用了一些专门的算法来处理稀疏矩阵,以避免对 0 元素的运算,并且最大限度地减少中间结果中的非 0 元素。,2023/11/8,第26页,稀疏型矩阵(2/2),稀疏型矩阵的生成 稀疏矩阵与满矩阵的相互转化 稀疏矩阵的操作,2023/11/8,第27页,稀疏型矩阵的
17、生成(1/3),MATLAB 不会自动生成稀疏矩阵,因此,当用户判定一个矩阵为稀疏矩阵时,利用相关函数生成稀疏矩阵。MATLAB 中用于生成稀疏矩阵的函数如表 4-2 所示。,2023/11/8,第28页,稀疏型矩阵的生成(2/3),speye 函数 speye 函数的调用格式为:S=speye(m,n);S=speye(n),分别用于生成 阶主对角线元素为一的稀疏矩阵和 阶单位稀疏矩阵。,2023/11/8,第29页,稀疏型矩阵的生成(3/3),sprand 和 sprandn 函数 这两个函数的调用格式完全相同。两个函数的唯一区别为 sprand 函数生成的稀疏矩阵元素服从均匀分布,而sp
18、randn 函数生成的稀疏矩阵元素服从正态分布。下面以 sprand 函数为例介绍这两个函数的应用。sprand 函数的调用格式有:R=sprand(S),生成与稀疏矩阵 S 结构完全相同的稀疏矩阵,矩阵元素服从均匀分布;R=sprand(m,n,density),生成 阶稀疏矩阵,矩阵非 0 元素个数大约为density*m*n。R=sprand(m,n,density,rc),与上面的命令类似。如果 rc 为数值,则生成的矩阵条件数的倒数接近 rc;如果 rc 为一个长度不大于 min(m,n)的一维向量,则生成的矩阵以 rc 的元素为奇异值,其他奇异值为 0。注意,不能用命令 spran
19、d(n)生成 n 阶稀疏矩阵。,2023/11/8,第30页,稀疏矩阵与满矩阵的相互转化,MATLAB 提供了一些函数用于在稀疏矩阵和满矩阵之间进行转换,这些函数如表 4-3 所示。,2023/11/8,第31页,sparse 函数,sparse 函数的调用格式如下:S=sparse(A),该命令将矩阵 转化为稀疏矩阵。S=sparse(i,j,s,m,n,nzmax),该命令生成一个阶稀疏矩阵,其中、分别为该矩阵非0元的横坐标向量、纵坐标向量和值,、有相同的长度。该矩阵的非0元数目不超过nzmax。S=sparse(i,j,s,m,n),该命令与上面一条命令功能类似,生成的稀疏矩阵的非0元个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 数学 运算
链接地址:https://www.31ppt.com/p-6512003.html