matlab的一些考点2.4矩阵函数(内容比较多具体定位目录)

2.4.1 对角阵与三角阵

对角线函数

  • 对角阵只有对角线上有非0元素的矩阵称为对角矩阵。
  • 对角线上的元素相等的对角矩阵称为数量矩阵。
  • 对角线上的元素都为1的对角矩阵称为单位矩阵。
对角线函数diag:

既可以用来生成矩阵,又可以来提取矩阵的对角线元素,其调用格式如下。

  • 1.A=diag(v,k)
    (1)当v是有n个元素的向量,返回矩阵A是行列数为n+|k|的方阵。
    (2)向量v的元素位于A的第k条对角线上。
    (3)K=0 对应主对角线,k>0对应主对角线以上,k<0对应主对角线以下。

  • 2.A=diag(v):
    将向量v的元素放在方阵A的主对角线上,等同于A=diag(v,k)中k=0的情况。

A =
     1     0     2     0     5
     5     1     0     5     2
     0     4     5     0     5
     1     2     5     0     4
     5     0     5     3     0

>> diag(A)
ans =
     1 1  5 0 0
>> diag(A,-2)
ans =
     0 2 5
>>> diag(A,1)
ans =
     0  0  0  4
下三角阵的提取tril

(1)L=tril(A): 提取矩阵A的下三角部分
(2)L=tril(A,k):提取矩阵A的第k条对角线以下部分。k=0对应主对角线,k>0对应主对角线以上,k<0对应主对角线以下

>> tril(A)
ans =
     1     0     0     0     0
     5     1     0     0     0
     0     4     5     0     0
     1     2     5     0     0
     5     0     5     3     0
>> tril(A,2)
ans =
     1     0     2     0     0
     5     1     0     5     0
     0     4     5     0     5
     1     2     5     0     4
     5     0     5     3     0
上三角阵的提取函数triu

(1)U=triu(A): 提取矩阵A的上三角部分元素
(2)U=triu(A,k): 提取矩阵A的第k条对角线以上的元素。k=0对应主对角线,k>0对应主对角线以上,k<0对应主对角线以下。

>> triu(A)
ans =
     1     0     2     0     5
     0     1     0     5     2
     0     0     5     0     5
     0     0     0     0     4
     0     0     0     0     0
>> triu(A,3)
ans =
     0     0     0     0     5
     0     0     0     0     2
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0

2.4.2 矩阵的转置与旋转

1.矩阵的转置

  • 它实际上完成的是矩阵的共扼转置,一般意义上的转置运算符为 .’
  • 当A 是复数矩阵是,A’是共轭转置,如果实现非共轭转置,需要采用A.’。

2.矩阵的翻转和旋转

(1)矩阵的左右翻转

调用格式:B = fliplr(A) 将矩阵A左右翻转成矩阵B。

(2)矩阵上下翻转函数

调用格式:B=flipud(A) 把矩阵A上下翻转成矩阵B。

(3)多维数组翻转函数

调用格式:B=flipdim(A,dim) 把矩阵或多维数组A沿指定维数翻转成B。

(4)矩阵的旋转函数

调用格式为:
B=rot90(A):矩阵B是矩阵A沿逆时针方向旋转90度得到的。
B=rot90(A,k):矩阵B是矩阵A沿逆时针方向旋转k*90度得到的(要想顺时针旋转,k取-1)。

>> b=fliplr(A)
b =
     5     0     2     0     1
     2     5     0     1     5
     5     0     5     4     0
     4     0     5     2     1
     0     3     5     0     5
>> c=flipud(A)
c =
     5     0     5     3     0
     1     2     5     0     4
     0     4     5     0     5
     5     1     0     5     2
     1     0     2     0     5
>> d=flipdim(A,3)
d =
     1     0     2     0     5
     5     1     0     5     2
     0     4     5     0     5
     1     2     5     0     4
     5     0     5     3     0
>> e=rot90(A)
e =
     5     2     5     4     0
     0     5     0     0     3
     2     0     5     5     5
     0     1     4     2     0
     1     5     0     1     5

2.4.3 矩阵的逆与伪逆

  • 对于可逆矩阵来说,伪逆和逆结果一样。
  • 对于不可能逆矩阵,是采用最小二乘的方法求一个近似的逆。

(1)矩阵的逆

  • 理论:对于一个方阵A,如果存在一个与其同阶的方阵B,使得:AB=BA=I (I为单位矩阵) 则称B为A的逆矩阵,当然,A也是B的逆矩阵。
  • 函数调用:求方阵A的逆矩阵可调用函数inv(A)

(2)矩阵的伪逆

  • 如果矩阵A是一个非满秩的方阵时(行列式为零的矩阵不可逆),矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A’同型的矩阵B,使得:ABA=A,BAB=B 此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。
  • 函数调用:pinv(A)。当一个矩阵不是满秩的时候,如果要求逆,只能用伪逆函数来求。
>>     A = [1 2 3; 1 2 3; 4 5 6]
    B = inv(A)
    C = pinv(A)
A =
     1     2     3
     1     2     3
     4     5     6
B =
   Inf   Inf   Inf
   Inf   Inf   Inf
   Inf   Inf   Inf
C =
     -0.47222     -0.47222      0.44444
    -0.055556    -0.055556      0.11111
      0.36111      0.36111     -0.22222

2.4.4 方阵的行列式

  • 回顾一下:由n阶方阵A的元素所构成的行列式(各元素的位置不变),称为方阵A的行列式,记作|A|或detA。
  • 函数调用:d=det(A),该指令返回方阵A的行列式,并赋给d。若A仅包含整数项,则该结果d也是一个整数。

2.4.5 矩阵的秩与迹

关于矩阵秩的推到可以参照笔记:https://blog.csdn.net/qq_45562910/article/details/104175341

  • 设A=(aij)为n阶矩阵,称A的主对角线上所有元素的和为A的迹,记作trace(A)
  • rank(A) 函数用来求矩阵A的秩,表示矩阵A中不为零的子式的最大阶数。

2.4.6 向量和矩阵的范数

1.向量范数

在一维空间中,实轴上任意两点距离用两点差的绝对值表示。

绝对值是一种度量形式的定义。

范数 是对函数、向量和矩阵定义的一种度量形式。任何对象的范数值都是一个非负实数
使用范数可以测量两个函数、向量或矩阵之间的距离。
向量范数是度量向量长度的一种定义形式

p-范数。
  • 若x=[x1,x2,…,xn] T 那么║x║p=(|x1|p+|x2|p+…+|xn|p)^{1/p},可以验证p-范数确实满足范数的定义。

  • 当p取1,2,∞的时候分别是以下几种最简单的情形:

    • 1-范数:║x║1=│x1│+│x2│+…+│xn│ ;
    • 2-范数 :║x║2=(│x1│2+│x2│2+…+│xn│2)^1/2 ;
    • ∞-范数:║x║∞=max(│x1│,│x2│,…,│xn│) 。
      其中2-范数就是通常意义下的距离。
  • 函数调用:
    n = norm(X,inf):求向量X的无穷-范数;
    n = norm(X,1):求向量X的1-范数;
    n = norm(X,-inf):求向量X的绝对值的最小值;
    n = norm(X, p):求向量X的p-范数;
    n = norm(X,2):求向量X的2-范数。

2.矩阵范数

一个在m* n的矩阵上的矩阵范数(matrix norm)是一个从m* n 线性空间到实数域上的一个函数,记为||•||,它对于任意的m*n矩阵A和B及所有实数a。矩阵是四种,相比较向量,多一个F范数。
满足以下四条性质:
 ||A||>=0;
 ||A||=0 iff A=O (零矩阵); (1和2可统称为正定性);
 ||aA||=|a| ||A||; (齐次性);
 ||A+B||<= ||A|| + ||B||. (三角不等式)。

  • ps:在一些教科书上定义的矩阵范数是对于二阶矩阵的,这种定义往往要求矩阵满足相容性,即||AB||<=||A|| ||B||. (相容性)。
    对于矩阵范数的定义仅要求前4条性质,而满足第5个性质的矩阵范数称为服从乘法范数

  • 矩阵范数的函数调用:
    n = norm(A):求矩阵A欧几里德范数,等于A的最大奇异值;
    n = norm(A,1):求矩阵A的列范数,等于A的列向量的1-范数的最大值;
    n = norm(A,2):求A的欧几里德范数,和norm(A)相同;
    n = norm(A,inf):求矩阵A的行范数,等于A的行向量的1-范数的最大值即:max(sum(abs(A’)))。
    n = norm(A, ‘fro’ ):求矩阵A的Frobenius范数,矩阵元p阶范数估计需要自己编程。
    (范数这里因为没有遇到具体的应用,所以我自己也不太明白其中的曲折)

2.4.7 矩阵的条件数

  • 用矩阵及其逆矩阵的范数的乘积表示矩阵的条件数,由于矩阵范数的定义不同,因而其条件数也不同,但是由于矩阵范数的等价性,故在不同范数下的条件数也是等价的,一般取2-范数。矩阵条件数的大小是衡量矩阵“坏”或“好”的标志
  • cond(A)称作矩阵A的条件数,为矩阵A的范数与A的逆矩阵的范数的乘积。

调用:

cond(A,1) 计算A的1—范数下的条件数。
cond(A)或cond(A,2) 计算A的2—范数数下的条件数。
cond(A,inf) 计算A的 ∞—范数下的条件数。
(和范数一样我也不太明白)

2.4.8 矩阵的特征值与特征向量

  • 回顾一下:对于任意方阵A,首先求出方程|λE-A|=0的解,这些解就是A的特征值,再将其分别代入方程(λE-A)X=0中,求得它们所对应的基础解系,则对于某一个λ,以它所对应的基础解系为基形成的线性空间中的任意一个向量,均为λ所对应的特征向量。(如果这里有遗忘可以参照笔记:https://blog.csdn.net/qq_45562910/article/details/104178703
  • 函数调用:
    格式:[V,D] = eig(A)
    说明:其中D为特征值构成的对角阵,每个特征值对应于V矩阵中列向量(也正是其特征向量),如果只有一个返回变量,则得到该矩阵特征值构成的列向量。
    按上述说明,在MATLAB输入: [V,D] = eig(A) 即可求出结果。
A =
     1     2     3
     1     2     3
     4     5     6
>> [V,D]=eig(A)
V =
      0.37005      0.52007      0.40825
      0.37005      0.52007      -0.8165
      0.85213     -0.67753      0.40825
D =
       9.9083            0            0
            0     -0.90833            0
            0            0   2.0095e-17
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章