Matlab矩陣處理之一


一、特殊矩陣
1.一些通用的特殊矩陣
 zeros函數:產生全0矩陣,即零矩陣;

 ones函數:產生全1矩陣,即幺矩陣;

 eye函數:產生對角線為1的矩陣。當矩陣是方陣時,得到一個單位矩陣;

 rand函數:產生(0,1)區間均勻分布的隨機矩陣;

 randn函數:產生均值為0,方差為1的標准正態分布隨機矩陣。

1.1zeros函數的調用格式:
 zeros(m):產生m×m零矩陣;

 zeros(m,n):產生m×n零矩陣;

 zeros(size(A)):產生與矩陣A同樣大小的零矩陣。

A=zeros(2,3)

A =

 0     0     0
 0     0     0

zeros(size(reshape(A,3,2)))

ans =

 0     0
 0     0
 0     0

注:reshape重組數組;將23的數組重塑為32的數組,size求矩陣的大小。

例1 首先產生5階兩位隨機整數矩陣A,再產生均值為0.6、方差為0.1的5階正態分布隨機矩陣B,最后驗證(A+B)I=IA+BI(I為單位矩陣)。
 rand函數:產生(0,1)開區間均勻分布的隨機數x;

 fix(a+(b-a+1)*x):產生[a,b]區間上均勻分布的隨機整數;

 randn函數:產生均值為0、方差為1的標准正態分布隨機數x;

 μ+σx:得到均值為μ、方差為σ^2的隨機數。

A=fix(10+(99-10+1)*rand(5)) %%生成10-99隨機整數矩陣

B=0.6+sqrt(0.1)*randn(5) %%產生均值為0.6、方差為0.1的5階正態分布隨機矩陣

C=eye(5) %%單位矩陣

(A+B)C==CA+B*C
A =

24    64    50    84    19
81    33    17    58    96
38    68    30    99    10
57    72    92    17    79
24    77    23    49    83

B =

1.0361    0.5121    0.1013    0.9565    0.0465
0.2654    0.8218    0.7606    0.7107    0.5097
0.4518   -0.0488    0.6892    0.5054    0.3371
0.5138    0.4881    0.6106    0.6072    0.2903
0.9474    0.3396    0.1783    0.5171    0.2343

C =

 1     0     0     0     0
 0     1     0     0     0
 0     0     1     0     0
 0     0     0     1     0
 0     0     0     0     1

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

2、魔方矩陣(Magic square)
 n階魔方陣由1,2,3,…,n2共n2個整數組成,且每行、每列以及主、副對角線上各n個元素之和都相等;

 n階魔方陣每行每列元素的和為(1+2+3+…+ n2)/n=(n+n3)/2;

 n>2時有很多不同的n階魔方陣,MATLAB函數magic(n)產生一個特定的魔方陣。
例2 產生8階魔方陣,求其每行每列元素的和

M=magic(6)

sum(M(1,:))%%第一行的和

sum(M(:,1))%%第一列的和

(6+6^3)/2
M =

35     1     6    26    19    24
 3    32     7    21    23    25
31     9     2    22    27    20
 8    28    33    17    10    15
30     5    34    12    14    16
 4    36    29    13    18    11

ans =

111

ans =

111

ans =

111

3.范德蒙矩陣
范德蒙矩陣的最后一列全為1,即向量v各元素的零次方,倒數第二列為指定的向量v,即向量v各元素的一次方, 其他各列是其后列與倒數第二列的點乘積;

在MATLAB中,函數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       

注:范德蒙矩陣常用在各種通信系統的糾錯編碼中,例如,常用的Reed-Solomon編碼即以范德蒙矩陣為基礎。感興趣的同學可自行查閱相關資料

4.希爾伯特矩陣
希爾伯特矩陣的元素為H(i,j)=1/(i+j-1);

在MATLAB中,生成n階希爾伯特矩陣的函數是hilb(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    

注:format rat :使用分數來表示數值。
希爾伯特矩陣是著名的病態矩陣,即任何一個元素發生較小的變動,整個矩陣的值和逆矩陣都會發生很大變化。病態程度和矩陣的階數相關,隨着階數的增加病態越嚴重。

5.伴隨矩陣
設多項式p(x)為a(n)x^n+a(n-1)x(n-1)+…+a1x+a0,則多項式可轉為伴隨矩陣
p(x)稱為A的特征多項式,方程p(x)=0的根稱為A的特征值。
MATLAB生成伴隨矩陣的函數是compan(p),其中p是一個多項式的系數向量,高次冪系數排在前,低次冪排在后。例如,生成多項式x3-2*x2-5
x+6的伴隨矩陣。

p=[1,-2,-5,6];
A=compan(p)

A =

   2              5             -6       
   1              0              0       
   0              1              0       

可以求出伴隨矩陣的特征值,該特征值等於多項式方程的根。

6.帕斯卡矩陣
根據二項式定理,(x+y)^n展開后的系數隨着n的增大組成一個三角形表,這個三角形稱為楊輝三角形;

把二項式系數依次填寫在矩陣的左側對角線上,然后提取左側的n行n列元素即為n階帕斯卡(Pascal)矩陣;

帕斯卡矩陣的第一行元素和第一列元素都為1,其余位置的元素是該元素的左邊元素與上面元素相加,即P(i,j)=P(i,j-1)+P(i-1,j),且P(i,1)=1,P(1,j)=1;

函數pascal(n)生成一個n階帕斯卡矩陣。
例3.生成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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM