矩阵的基本运算
更新时间:2024-06-12 15:56:01 阅读量: 综合文库 文档下载
矩阵的基本运算
(摘自:华东师范大学数学系;http://math.ecnu.edu.cn/)
§3.1 加和减 §3.2矩阵乘法
§3.2.1 矩阵的普通乘法 §3.2.2 矩阵的Kronecker乘法 §3.3 矩阵除法 §3.4矩阵乘方 §3.5 矩阵的超越函数 §3.6数组运算
§3.6.1数组的加和减 §3.6.2数组的乘和除 §3.6.3 数组乘方 §3.7 矩阵函数 §3.7.1三角分解 §3.7.2正交变换 §3.7.3奇异值分解 §3.7.4 特征值分解 §3.7.5秩
§3.1 加和减
如矩阵A和B的维数相同,则A+B与A-B表示矩阵A与B的和与差.如果矩阵A和B的维数不匹配,Matlab会给出相应的错误提示信息.如: A= B=
1 2 3 1 4 7 4 5 6 2 5 8 7 8 0 3 6 0 C =A+B返回:
C =
2 6 10 6 10 14 10 14 0
如果运算对象是个标量(即1×1矩阵),可和其它矩阵进行加减运算.例如: x= -1 y=x-1= -2
0 -1
2 1
§3.2矩阵乘法
Matlab中的矩阵乘法有通常意义上的矩阵乘法,也有Kronecker乘法,以下分别介绍.
§3.2.1 矩阵的普通乘法
矩阵乘法用“ * ”符号表示,当A矩阵列数与B矩阵的行数相等时,二者可以进行乘法运算,否则是错误的.计算方法和线性代数中所介绍的完全相同. 如:A=[1 2 ; 3 4]; B=[5 6 ; 7 8]; C=A*B, 结果为
C=×==
即Matlab返回: C =
19 22 43 50
如果A或B是标量,则A*B返回标量A(或B)乘上矩阵B(或A)的每一个元素所得的矩阵.
§3.2.2 矩阵的Kronecker乘法
对n×m阶矩阵A和p×q阶矩阵B,A和B的Kronecher乘法运算可定义为:
由上面的式子可以看出,Kronecker乘积AB之间的乘积组合而成的较大的矩阵,B×mq矩阵,但一般情况下A
BB
B表示矩阵A的所有元素与
B和B
A均为np
A则完全类似.A
A.和普通矩阵的乘法不同,Kronecker乘
法并不要求两个被乘矩阵满足任何维数匹配方面的要求.Kronecker乘法的Matlab命令为C=kron(A,B),例如给定两个矩阵A和B:
A= B=
则由以下命令可以求出A和B的Kronecker乘积C:
A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; C=kron(A,B) C =
1 3 2 2 6 4 2 4 6 4 8 12 3 9 6 4 12 8
6 12 18 8 16 24
作为比较,可以计算B和A的Kronecker乘积D,可以看出C、D是不同的: A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; D=kron(B,A) D =
1 2 3 6 2 4 3 4 9 12 6 8 2 4 4 8 6 12
6 8 12 16 18 24 §3.3 矩阵除法
在Matlab中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A矩阵是非奇异方阵,则A\\B是A的逆矩阵乘B,即inv(A)*B;而B/A是B乘A的逆矩阵,即B*inv(A).具体计算时可不用逆矩阵而直接计算. 通常:
x=A\\B就是A*x=B的解; x=B/A就是x*A=B的解.
当B与A矩阵行数相等可进行左除.如果A是方阵,用高斯消元法分解因数.解方程:A*x(:, j)=B(:, j),式中的(:, j)表示B矩阵的第j列,返回的结果x具有与B矩阵相同的阶数,如果A是奇异矩阵将给出警告信息.
如果A矩阵不是方阵,可由以列为基准的Householder正交分解法分解,这种分解法可以解决在最小二乘法中的欠定方程或超定方程,结果是m×n的x矩阵.m是A矩阵的列数,n是B矩阵的列数.每个矩阵的列向量最多有k个非零元素,k 是A的有效秩.
右除B/A可由B/A=(A'\\B')'左除来实现. §3.4矩阵乘方
A^P意思是A的P次方.如果A是一个方阵,P是一个大于1的整数,则A^P表示A的P次幂,即A自乘P次.如果P不是整数,计算涉及到特征值和特征向量的问题,如已经求得:[V,D]=eig(A),则:
A^P=V*D.^P/V(注:这里的.^表示数组乘方,或点乘方,参见后面的有关介绍)
如果B是方阵, a是标量,a^B就是一个按特征值与特征向量的升幂排列的B次方程阵. 如果a和B都是矩阵,则a^B是错误的. §3.5 矩阵的超越函数
在Matlab中解释exp(A)和sqrt(A)时曾涉及到级数运算,此运算定义在A的单个元素上. Matlab可以计算矩阵的超越函数,如矩阵指数、矩阵对数等. 一个超越函数可以作为矩阵函数来解释,例如将“m”加在函数名的后边而成expm(A)和sqrtm(A),当Matlab运行时,有下列三种函数定义:
expm 矩阵指数 logm 矩阵对数 sqrtm 矩阵开方
所列各项可以加在多种m文件中或使用funm.请见应用库中sqrtm.m,1ogm.m,funm.m文件和命令手册. §3.6数组运算
数组运算由线性代数的矩阵运算符“*”、“/”、“\\”、“^”前加一点来表示,即为“.*”、“./”、“.\\”、“.^”.注意没有“.+”、“.-”运算. §3.6.1数组的加和减
对于数组的加和减运算与矩阵运算相同,所以“+”、“-”既可被矩阵接受又可被数组接受. §3.6.2数组的乘和除
数组的乘用符号.*表示,如果A与B矩阵具有相同阶数,则A.*B表示A和B单个元素之间的对应相乘.例如 x=[1 2 3]; y=[ 4 5 6]; 计算z=x.*y 结果z=4 10 18
数组的左除(.\\)与数组的右除(./),由读者自行举例加以体会.
§3.6.3 数组乘方
数组乘方用符号.^表示. 例如:键入:
x=[ 1 2 3] y=[ 4 5 6]
则z=x.^y=[1^4 2^5 3^6]=[1 32 729] (1) 如指数是个标量,例如x.^2,x同上,则:
z=x.^2=[1^2 2^2 3^2]=[ 1 4 9]
(2) 如底是标量,例如2 .^[x y] ,x、y同上,则:
z=2 .^[x
y]=[2^1 2^2 2^3 2^4 2^5 2^6]=[2 4 8 16 32 64]
从此例可以看出Matlab算法的微妙特性,虽然看上去与其它乘方没什么不同,但在2和“.”之间的空格很重要,如果不这样做,解释程序会把“.”看成是2的小数点. Matlab看到符号“^”时,就会当做矩阵的幂来运算,这种情况就会出错,因为指数矩阵不是方阵. §3.7 矩阵函数
Matlab的数学能力大部分是从它的矩阵函数派生出来的,其中一部分装入Matlab本身处理中,它从外部的Matlab建立的M文件库中得到,还有一些由个别的用户为其自己的特殊的用途加进去的.其它功能函数在求助程序或命令手册中都可找到.手册中备有为Matlab提供数学基础的LINPACK和EISPACK软件包,提供了下面四种情况的分解函数或变换函数:
(1)三角分解;(2)正交变换;(3) 特征值变换;(4)奇异值分解. §3.7.1三角分解
最基本的分解为“LU”分解,矩阵分解为两个基本三角矩阵形成的方阵,三角矩阵有上三角矩阵和下三角矩阵.计算算法用高斯变量消去法.
从lu函数中可以得到分解出的上三角与下三角矩阵,函数inv得到矩阵的逆矩阵,det得到矩阵的行列式.解线性方程组的结果由方阵的“\\”和“/”矩阵除法来得到.
例如:
A=[ 1 2 3
4 5 6 7 8 0]
LU分解,用Matlab的多重赋值语句
[L,U]=lu(A) 得出
L =
0.1429 1.0000 0 0.5714 0.5000 1.0000 1.0000 0 0 U =
7.0000 8.0000 0 0 0.8571 3.0000 0 0 4.5000 注:L是下三角矩阵的置换,U是上三角矩阵的正交变换,分解作如下运算,
检测计算结果只需计算L*U即可. 求逆由下式给出: x=inv(A)
x =
-1.7778 0.8889 -0.1111 1.5556 -0.7778 0.2222 -0.1111 0.2222 -0.1111 从LU分解得到的行列式的值是精确的,d=det(U)*det(L)的值可由下式给出:
d=det(A) d =
27
直接由三角分解计算行列式:d=det(L)*det(U)
d =
27.0000
为什么两种d的显示格式不一样呢? 当Matlab做det(A)运算时,所有A的元素都是整数,所以结果为整数.但是用LU分解计算d时,L、U的元素是实数,所以Matlab产生的d也是实数. 例如:线性联立方程取 b=[ 1
3 5] 解Ax=b方程,用Matlab矩阵除得到
x=A\\b 结果x=
0.3333 0.3333 0.0000
由于A=L*U,所以x也可以有以下两个式子计算:y=L\\b,x=U\\y.得到相同的x值,中间值y为:
y =
5.0000 0.2857 0.0000
Matlab中与此相关的函数还有rcond、chol和rref.其基本算法与LU分解密切相关.chol函数对正定矩阵进行Cholesky分解,产生一个上三角矩阵,以使R'*R=X.rref用具有部分主元的高斯-约当消去法产生矩阵A的化简梯形形式.虽然计算量很少,但它是很有趣的理论线性代数.为了教学的要求,也包括在Matlab中.
§3.7.2正交变换
“QR”分解用于矩阵的正交-三角分解.它将矩阵分解为实正交矩阵或复酉矩阵与上三角矩阵的积,对方阵和长方阵都很有用. 例如A=[ 1 2 3
4 5 6 7 8 9 10 11 12]
是一个降秩矩阵,中间列是其它二列的平均,我们对它进行QR分解:
[Q,R]=qr(A) Q = -0.0776 -0.3105 -0.5433 -0.7762 R =
-12.8841 -14.5916 -16.2992 0 -1.0413 -2.0826 0 0 0.0000 0 0 0 可以验证Q*R就是原来的A矩阵.由R的下三角都给出0,并且R(3,3)=0.0000,
说明矩阵R与原来矩阵A都不是满秩的.
下面尝试利用QR分解来求超定和降秩的线性方程组的解. 例如:
b=[ 1
3 5 7]
-0.8331 -0.4512 -0.0694 0.3124 0.5444 -0.7709 -0.0913 0.3178 0.0605 0.3251 -0.8317 0.4461 讨论线性方程组Ax=b,我们可以知道方程组是超定的,采用最小二乘法的最好结果是计算x=A\\b. 结果为:
Warning: Rank deficient, rank = 2 tol = 1.4594e-014 x = 0.5000 0 0.1667
我们得到了缺秩的警告.用QR分解法计算此方程组分二个步骤:
y=Q'*b x=R\\y 求出的y值为
y =
-9.1586 -0.3471 0.0000 0.0000 x的结果为
Warning: Rank deficient, rank = 2 tol = 1.4594e-014 x = 0.5000 0 0.1667
用A*x来验证计算结果,我们会发现在允许的误差范围内结果等于b.这告诉我们虽然联立方程Ax=b是超定和降秩的,但两种求解方法的结果是一致的.显然x向量的解有无穷多个,而“QR”分解仅仅找出了其中之一.
§3.7.3奇异值分解
在Matlab中三重赋值语句
[U,S,V]=svd(A)
在奇异值分解中产生三个因数:
A=U*S*V '
U矩阵和V矩阵是正交矩阵,S矩阵是对角矩阵,svd(A)函数恰好返回S的对角元素,而且就是A的奇异值(其定义为:矩阵A'*A的特征值的算术平方根).注意到A矩阵可以不是方的矩阵.
奇异值分解可被其它几种函数使用,包括广义逆矩阵pinv(A)、秩rank(A)、欧几里德矩阵范数norm(A,2)和条件数cond(A). §3.7.4 特征值分解
如果A是n×n矩阵,若?满足Ax=?x,则称?为A的特征值,x为相应的特征向量.
函数eig(A)返回特征值列向量,如果A是实对称的,特征值为实数.特征值也可能为复数,例如: A=[ 0 1
-1 0] eig(A) 产生结果 ans =
0 + 1.0000i 0 - 1.0000i
如果还要求求出特征向量,则可以用eig(A)函数的第二个返回值得到:
[x,D]=eig(A)
D的对角元素是特征值.x的列是相应的特征向量,以使A*x=x*D. 计算特征值的中间结果有两种形式:
Hessenberg形式为hess(A),Schur形式为schur(A).
schur形式用来计算矩阵的超越函数,诸如sqrtm(A)和logm(A).
如果A和B是方阵,函数eig(A,B)返回一个包含一般特征值的向量来解方程
Ax=?Bx
双赋值获得特征向量
[X,D]=eig(A,B)
产生特征值为对角矩阵D.满秩矩阵X的列相应于特征向量,使A*X=B*X*D,中间结果由qz(A,B)提供. §3.7.5秩
Matlab计算矩阵A的秩的函数为rank(A),与秩的计算相关的函数还有:rref(A)、orth(A)、null(A)和广义逆矩阵pinv(A)等.
利用rref(A),A的秩为非0行的个数.rref方法是几个定秩算法中最快的一个,但结果上并不可靠和完善.pinv(A)是基于奇异值的算法.该算法消耗时间多,但比较可靠.其它函数的详细用法可利用Help求助.
正在阅读:
矩阵的基本运算06-12
高鸿业第五版西方经济学宏观部分期末必看练习题及答案12-21
医院门诊一卡通系统流程设计05-23
区司法局关于最新工作总结和工作规划范文04-28
初一一班学生家庭经济情况调差分析报告05-01
2011 April Event Guest Comments Summary会议顾客满意度统计分析表06-04
研发人员通用素质能力定义07-08
专题十计数原理第三十一讲二项式定理答案05-03
《虫图腾2·危机虫重》读后感精选10篇12-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 矩阵
- 运算
- 基本
- 2013秋三(2)小学语文三年级下册全册教案
- 2011同方专转本计算机冲刺(内部资料)
- 化学教学中教师如何做好后进生的转化工作
- 教师招聘考试 小学数学教师 专业知识大全
- Unit 1解析与练习答案
- 2015年度江苏嘉禄嘉锋制冷设备有限公司销售收入与资产数据报告 -
- 第4.5节 三维图形的几何变换2
- 平度市第三人民医院评审奖惩办法
- 大学语文课后练习题
- 2018年度现场专业人员(八大员)继续教育
- 采用多种教学方法来培养幼儿语言能力论文
- 高职院校高技能人才培养模式的研究
- 2004年《中国旅游年鉴》福建省旅游情况
- 同条件砼试块见证取样见证
- 2018年高考政治主观题解题思路和方法(高考考前突破)
- 云南省现代教育示范学校建设工程学校手册
- 材料物理性能及测试-作业
- 不以分数作为评价学生的唯一标准
- 2016年下半年浙江省公路工程试验检测员《公路》考试试卷
- 任务分析与交互设计