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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章