MATLAB-2-1特殊矩陣

1. 通用的特殊矩陣

zeros( ):產生全0矩陣,即零矩陣
ones( ):產生全1矩陣,即幺矩陣
eye( ):產生對角線爲1的矩陣。當矩陣是方陣時,得到一個單位矩陣。
rand( ):產生(0,1)區間均勻分佈的隨機矩陣,不包括0和1。
randn( ):n表示normal,產生均值爲0,方差爲1的標準正態分佈隨機矩陣

2. 調用格式

zeros(m):產生m×m階零矩陣
zeros(m,n):產生m×n階零矩陣
zeros(size(A)):產生與矩陣A相同維數的零矩陣
rand( ):產生(0,1)開區間均勻分佈的隨機數
fix(a+(b-a+1)*x):產生[a,b]區間上均勻分佈的隨機整數
randn( ):產生均值爲0,方差爲1的標準正態分佈隨機數x
μ+σx:產生均值爲μ,方差爲σ^2的隨機數

>> A=rand(5);
>> A1=fix(10+90*A);
%產生兩位隨機整數矩陣
>> B=randn(5);
>>> B1=0.6+sqrt(0.1)*B;
%產生均值爲0.6,方差爲0.1的5階正態分佈隨機矩陣
>> (A1+B1)*eye(5)==eye(5)*A1+B1*eye(5)
ans =
  5×5 logical 數組
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1

可化簡爲:

>> A=fix(10+(99-10+1)*rand(5));
>> B=0.6+sqrt(0.1)*randn(5);
>> C=eye(5);
>> (A+B)*C==C*A+B*C
ans =
  5×5 logical 數組
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1
   1   1   1   1   1

3. 用於專門學科的特殊矩陣

a. 魔方陣(Magic Square)

語法:magic( )

  • 產生魔法矩陣,每行每列以及對角線元素之和相等。
  • MATLAB中,每次產生同樣階數的魔方陣相同。
  • n階魔方陣由1,2,3,…,n^2 共n^2 個整數組成,且每行每列及主、副對角線上各n個元素之和都相等。
  • n階魔方陣每行每列元素的和爲(1+2+3+...+n2)/n=(n+n3)/2(1+2+3+...+n^2)/n=(n+n^3 )/2.
%e.g.產生8階魔方陣,求每行每列元素之和。
>> M=magic(8);
>> sum(M(1,:))
ans =
   260
>> sum(M(:,1))
ans =
   260
%e.g.將3階魔方矩陣對角線元素加10
>> A=magic(3);
>> B=A+10*eye(size(A))
B =
      18              1              6       
       3             15              7       
       4              9             12    

b. 範德蒙矩陣(Vandermonde)

  • 最後一列全爲1,即各元素的0次方;
  • 倒數第二列爲指定的向量v,即各元素的一次方;
  • 其它列爲其後列與倒數第二列的點乘積;
    在這裏插入圖片描述
    語法:vander(V)
    生成以向量V爲基礎的範德蒙矩陣
>> A=vander(1:5)
A =
     1     1     1     1     1
    16     8     4     2     1
    81    27     9     3     1
   256    64    16     4     1
   625   125    25     5     1

範德蒙矩陣常用在各種通信系統的糾錯編碼中,例如,常用的Read-Solomon編碼即以範德蒙矩陣爲基礎。

c. 希爾伯特矩陣

語法:hilb(n)
生成n階希爾伯特矩陣
在這裏插入圖片描述

>> format rat
%爲便於觀察,設置輸出格式,以有理數(整數和分數的集合)格式輸出
>> H=hilb(4)
H =
       1              1/2            1/3            1/4     
       1/2            1/3            1/4            1/5     
       1/3            1/4            1/5            1/6     
       1/4            1/5            1/6            1/7  
%一種病態矩陣,即任何一個元素的值發生小小的變動,整個矩陣的值和逆矩陣都會發生很大的變化。病態程度和矩陣的階數相關,隨着階數的增加,病態更加嚴重

d. 伴隨矩陣

伴隨矩陣的特徵值爲多項式的根。
語法格式:compan( p)
p爲一個多項式的係數向量,高次冪係數排在前,低次冪係數排在後
在這裏插入圖片描述

%e.g.生成多項式x^3−2x^2−5x+6的伴隨矩陣。
>> p=[1,-2,-5,6];
>> A=compan(p)
A =
     2     5    -6
     1    0     0
     0     1     0
%e.g.多項式的伴隨矩陣的特徵值與多項式方程的根有何關係?請用命令驗證。
>> p=[1,2,1];
>> A=compan(p);
>> roots(p)==eig(A)
ans =
  2×1 logical 數組
   1
   1

e. 帕斯卡矩陣

在這裏插入圖片描述
在這裏插入圖片描述

%e.g.生成5階帕斯卡矩陣,驗證它的逆矩陣的所有元素也爲整數
>> format rat
>> P=pascal(5)
P =
       1              1              1              1              1       
       1              2              3              4              5       
       1              3              6             10             15       
       1              4             10             20             35       
       1              5             15             35             70       
>> inv(P)
ans =
       5            -10             10             -5              1       
     -10             30            -35             19             -4       
      10            -35             46            -27              6       
      -5             19            -27             17             -4       
       1             -4              6             -4              1      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章