快使用Ctrl+D收藏本站!本站早已不再维护,择期将关闭本站!!本站资源已全部失效,请勿打赏!!PLC培训创业官网 苏州实操派科技-点击访问-

MATLAB自学笔记(八):矩阵元素运算与矩阵运算

matlab仿真 파충충好气气 13541℃ 0评论

一、矩阵元素运算

1.矩阵的加减运算

前提是参与运算的两个或多个矩阵均为m*n矩阵;或者其中一个或多个矩阵为标量

  • C = A±B:C(m,n) = A(m,n) + B(m,n)
  • C = A±x:C(m,n) = A(m,n) + x

矩阵运算满足加法法则,交换律、结合律

2.矩阵的乘法运算

数与矩阵的乘法:

由于MATLAB中单个数据都是以标量的形式存在,因此数与矩阵的乘法也可以从称为标量与矩阵的乘法

  • C = x*A:C(m,n) = x*A(m,n)、
  • l*A = A
  • x(A+B) = xA+xB
  • (x+y)A = xA+yA
  • (xy)A = x(yA) = y(xA)

矩阵与矩阵的乘法:

两个矩阵的乘法必须满足被乘矩阵的列数与乘矩阵的行数相等,即C’m,n’ = A’m,k’ * B’k,n’,这满足我们所选的线性代数的要求。

矩阵之间的乘法不满足交换律,即AB ≠ BA

  • (A*B)*C = A*(B*C)
  • A*(B+C) = A*B + A*C
  • (B+C)*A = B*A + C*A
  • E*A = A*E = A                         %E为单位阵

3.矩阵的除法运算

矩阵的除法是乘法的逆运算,在MATLAB中共分为左除‘\’与右除‘/’两种。

  • A\B表示A的逆乘以B,要求A与B的行数相等
  • A/B表示A乘以B的逆,要求A与B的列数相等
  • 除非A与B等价,否则A\B ≠ A/B

4.矩阵的幂运算

当矩阵A为方阵时,可进行矩阵的幂运算。其运算符号为‘^’

其中,A^2 = A*A

5.矩阵元素的查找

find()函数被用来查找矩阵中的信息,其返回值是要查找值的下标。(注意MATLAB中矩阵元素的下标排列定义方式)

6.矩阵元素的排序

sort()函数的作用设计按照升序排列,排列后的矩阵与元矩阵的维数相同

  • B = sort(A):对矩阵A进行升序排列,A可以是矩阵或向量
  • B = sort(A,dim):对A进行升序排列,并将结果返回到给定的维数dim上按照升序排列。    dim = 1时,按照列升序排序;dim = 2时,按照行进行排序
  • B = sort(…,mode):对矩阵A进行排序,mode可指定排序方式。    ascend:指定按升序排列;           descend:指定按降序排列

7.矩阵的求和

sum()函数与cumsum()函数的作用都是对矩阵的元素求和,不同的是cumsum函数返回值是矩阵

  • B = sum(A):对矩阵A的元素求和,返回由矩阵A各列元素的和所组成的向量
  • B = sum(A,dim):返回矩阵A在给定维度dim上的元素和。   dim = 1时,计算各列元素的和;dim = 2时,计算各行元素的和
  • B = cumsum(A)
  • B = cumsum(A,dim)

8.矩阵元素的求积

prod()与cumprod()的作用是对矩阵的元素求积。

  • B = prod(A):对矩阵A的元素求积,返回由矩阵A各列元素的积所组成的向量
  • B = prod(A,dim):返回矩阵A在给定维度dim上的元素积。    dim = 1时,计算各列元素的积;dim = 2时,计算各行元素的积
  • B = cumprod(A)
  • B = cumprod(A,dim)

9.矩阵元素的差分

diff()函数的作用是计算矩阵的差分

  • Y = diff(X):计算矩阵X各列元素的差分
  • Y = diff(X,n):计算矩阵X各列元素的n阶差分
  • Y = diff(X,n,dim):计算矩阵X在给定维度dim上的n阶差分。  dim = 1时,计算各列元素的差分;dim = 2时,计算各行元素的差分

二、矩阵运算

1.矩阵分析

求向量范数(norm):

  • N = norm(x,p):对任意大于1的p值,返回向量x的p阶范数
  • N = norm(x):返回向量的2阶范数,相当于N = norm(x,2)
  • N = norm(x,inf):返回向量的正无穷阶范数
  • N = norm(x,-inf):返回向量的负无穷阶范数

求矩阵范数(norm):

  • N = norm(A):计算矩阵的2阶范数,也就是最大奇异值
  • N = norm(A,p):根据参数p的值不同,求不同阶数的范数值

当矩阵维度比较大时,会导致计算矩阵范数的时间比较长,并且当一个近似的范数值满足要求时,可以考虑用normest()来估计2阶范数值

  • N = normest(S):估计矩阵S的二阶范数值
  • N = normest(S,tol):使用tol作为允许的相对误差

矩阵的秩(rank):

矩阵A中线性无关的列向量的个数成为矩阵的列秩,线性无关的行向量成为行秩。利用rank()函数计算矩阵的秩

  • rank(A):用默认允许误差计算矩阵的秩
  • rank(A,tol):给定允许误差计算矩阵的秩

矩阵的行列式(det):

矩阵的迹(trace):

矩阵的迹定义为矩阵的对角元素之和

矩阵的化零矩阵(null):

  • Z = null(A):返回矩阵A的一个化零矩阵。若化零矩阵不存在则返回空矩阵
  • Z = null(A,’r’):返回有理数形式的化零矩阵

矩阵的正交空间(orth):

矩阵A的正交空间Q具有Q’*Q = I的性质,并且Q的列矢量构成的线性空间和矩阵A的列矢量构成的线性空间相同,且正交空间Q与矩阵A具有相同的秩

矩阵的约化行阶梯形式(rref):

矩阵的约化行阶梯形式是高斯-约旦消去法解法性方程组的结果

  • R = rref(A):返回矩阵A的约化行阶梯形式R
  • [R,jb] = rref(A):返回矩阵A的约化行阶梯形式R,并返回1*r的向量jb,r为A的秩;     A(:,jb)是矩阵A的列矢量构成的线性空间;R(1:r,jb)是r*r的单位矩阵
  • [R,jb] = rref(A,tol):以tol为允许的相对误差计算矩阵A的秩

矩阵空间之间的夹角(snbspace):

矩阵空间之间的夹角代表两个矩阵线性相关的程度。

若夹角小,则相关度高;反之相关度就低

  • theta = subspace(A,B):返回矩阵A与B之间的夹角

2.矩阵分解

矩阵分解就是把一个矩阵分解成几个‘较简单’的矩阵连乘的形式

对称正定矩阵的Cholesky分解

Cholesky分解在MATLAB中用函数chol()实现

  • R = chol(X):X为对称正定矩阵,R是上三角阵,使得X = R’ * R。若R不是正定矩阵,则返回错误信息
  • [R,p] = chol(X):返回两个参数,且不会返回错误信息。  当X是正定矩阵时,返回的上三角函数R满足X = R’ * R,且p = 0;    当X是非正定矩阵时,返回值p是正整数,R是上三角矩阵,其阶数为p-1,且满足X(1 : p-1, 1 : p-1) = R’ * R

若线性方程组Ax = B,其中A可以做Cholesky分解,使得A = R’ * R,这样线性方程组就可以改写成R’ * R * x  = B,再根据左除运算符‘\‘可以快速处理三角矩阵,因此可得出

x = R\(R’\B)

若A为n*n的方阵,则chol(A)的计算复杂程度是O(n^3);而使用左除运算的计算复杂程度只有O(n^2)

一般方程的高斯消去法分解

高斯消去法分解又称LU分解,他可以将任意一个方阵A分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A = L·U。

  • [L,U] = lu(X);X为一个方阵,L为’心理‘的下三角阵,U为上三角阵,满足关系X = L·U
  • [L,U,P] = lu(X):P为置换矩阵,满足关系P·X = L·U
  • Y = lu(X):把上三角阵与下三角阵合并在矩阵Y中给出,即Y = L+U-I,置换矩阵P的信息丢失

若线性方程组Ax = b,若矩阵A可以做LU分解,使得A = L·U,则线性方程组可以改写成L·U·x = b,则可以解出

x = U\(L\b)

利用LU分解来计算行列式的值和矩阵的逆,其命令形式如下:

  • det(A) = det(L) * det(U)
  • inv(A) = inv(U) * inv(L)

矩形矩阵的正交分解

矩形矩阵的正交分解又称为QR分解。QR分解把一个m*n的矩阵A分解成一个正交矩阵Q和一个上三角矩阵R的乘积,即A = Q · R

  • [Q,R] = qr(A):其中矩阵R与矩阵A具有相同大小的上三角矩阵,Q为正交矩阵,他们满足A = Q · R。该调用方式适用于满矩阵和稀疏矩阵
  • [Q,R] = qr(A,0):为‘经济’方式的QR分解。设矩阵A是一个m×n的矩阵,若m>n,则只计算前n列元素,R为n×n的矩阵;若m≤n,则与[Q,R] = qr(A)效果一致。该调用方式适用于满矩阵和稀疏矩阵
  • [Q,R,E] = qr(A):R是上三角矩阵,Q为正交矩阵,E为置换矩阵。满足A · E = Q · R,程序选择一个合适的矩阵E使得abs(diag(R))降序排列。该调用方式适合于满矩阵
  • [Q,R,E] = qr(A,0):‘经济’方式的QR分解,其中E是一个置换矩阵。他们满足A(:,E) = Q · R。该调用方式适合于满矩阵
  • R = qr(A,0):以‘经济’方式返回上三角矩阵R
  • [C,R] = qr(A,B):矩阵B必须与矩阵A具有相同的行数,矩阵R是上三角矩阵,C = Q’ · B

舒尔分解

舒尔分解的定义式为

A = U · S · U’

其中A必须是方阵,U是一个酉矩阵,S是一个块对角化矩阵,有对角线上的1×1和2×2块组成。特征值可以由矩阵S的对角块给出,二矩阵U给出比特征向量更多的数值特征。此外,对缺陷矩阵也可以进行舒尔分解。MATLAB中用函数schur()来进行舒尔分解

[U,S] = schur(A):返回酉矩阵U和块对角矩阵S

  • S = schur(A):仅返回块对角矩阵S
  • schur(A,’real’):返回的实特征值放在对角线上,而把复特征值放在对角线上的2×2块中
  • schur(A,’complex’):返回的矩阵S是上三角矩阵,并且如果矩阵A有复特征值,则矩阵S是复矩阵

另外,函数rsf2csf()可以把实数形式的舒尔矩阵转换成复数形成的舒尔矩阵。

转载请注明:燕骏博客 » MATLAB自学笔记(八):矩阵元素运算与矩阵运算

赞赏作者

微信赞赏支付宝赞赏

喜欢 (4)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址