矩阵分析与多元统计12 0-1矩阵 交换矩阵简介
矩陣分析與多元統計12 0-1矩陣 交換矩陣簡介
- 選擇矩陣
- 交換矩陣
顧名思義,0-1矩陣就是所有元素取值均為0和1的矩陣,這類矩陣在矩陣分析、多元統計乃至組合學和圖論中都有很重要的應用。在這個主題中我打算介紹選擇矩陣、排列矩陣、交換矩陣、消元矩陣、復制矩陣和移位矩陣。(其實排列矩陣就是行列互換的初等變換矩陣。。。)
選擇矩陣
選擇矩陣selection matrix的作用是通過與某個矩陣相乘,使得結果等于這個矩陣中我們希望選擇的那些元素構成的矩陣。最簡單的selection matrix是列選擇矩陣。假設A∈Fm×nA \in F^{m \times n}A∈Fm×n,aia_iai?表示它的第iii個列向量,eie_iei?表示InI_nIn?的第iii列,定義S=[ei1,?,eik],1≤i1<i2<?<ik≤nS = [e_{i_1},\cdots,e_{i_k}],1 \le i_1 < i_2 < \cdots < i_k \le nS=[ei1??,?,eik??],1≤i1?<i2?<?<ik?≤n,它是一個列選擇矩陣,作用是選出AAA的第i1,?,iki_1,\cdots,i_ki1?,?,ik?列,
AS=[ai1,ai2,?,aik]∈Fm×kAS = [a_{i_1},a_{i_2},\cdots,a_{i_k}] \in F^{m \times k}AS=[ai1??,ai2??,?,aik??]∈Fm×k
類似地可以定義行選擇矩陣,aia^iai表示AAA的第iii個行向量,eie^iei表示ImI_mIm?的第iii行,定義S=[ei1;?;eik],1≤i1<i2<?<ik≤nS = [e^{i_1};\cdots;e^{i_k}],1 \le i_1 < i_2 < \cdots < i_k \le nS=[ei1?;?;eik?],1≤i1?<i2?<?<ik?≤n,那分號表示換行:
[ei1;?;eik]=[(ei1)′,?,(eik)′]′[e^{i_1};\cdots;e^{i_k}] = [(e^{i_1})',\cdots,(e^{i_k})']'[ei1?;?;eik?]=[(ei1?)′,?,(eik?)′]′
它是一個列選擇矩陣,可以選出AAA的第i1,?,iki_1,\cdots,i_ki1?,?,ik?行,
SA=[ai1;ai2;?;aik]∈Fk×nSA = [a^{i_1};a^{i_2};\cdots;a^{i_k}] \in F^{k \times n}SA=[ai1?;ai2?;?;aik?]∈Fk×n
要選擇AAA的第i,ji,ji,j個元素是比較容易的,
eiAej=ajie^iAe_j = a^i_jeiAej?=aji?
根據這個性質也可以定義選擇AAA的某個子矩陣的方法。
交換矩陣
對于矩陣A∈Fm×nA \in F^{m \times n}A∈Fm×n,
vec(A)=[a1;?;an]∈Fmn×1,vec(A′)=[a1,?,am]′∈Fmn×1vec(A) = [a_1;\cdots;a_n] \in F^{mn\times 1},\ vec(A') = [a^1,\cdots,a^m]' \in F^{mn \times 1}vec(A)=[a1?;?;an?]∈Fmn×1,?vec(A′)=[a1,?,am]′∈Fmn×1
如果?Kmn∈Fmn×mn,Kmnvec(A)=vec(A′)\exists K_{mn} \in F^{mn \times mn},K_{mn}vec(A) = vec(A')?Kmn?∈Fmn×mn,Kmn?vec(A)=vec(A′),則稱KmnK_{mn}Kmn?是交換矩陣。根據定義我們會發現交換矩陣有如下簡單性質:
證明 想必大家對交換矩陣會感覺很陌生,但它在矩陣求導的時候會發揮很強大的功能,性質3非常直觀,這里就不談了,我把性質1和2都簡單證明評述一下:
性質1:根據定義計算左邊的式子
KnmKmnvec(A)=Knmvec(A′)=vec((A′)′)=vec(A)K_{nm}K_{mn}vec(A) = K_{nm}vec(A') = vec((A')') = vec(A)Knm?Kmn?vec(A)=Knm?vec(A′)=vec((A′)′)=vec(A)
性質2:事實上交換矩陣的指標對應的是矩陣AAA的維數,KmnK_{mn}Kmn?表示它交換的是Fm×nF^{m\times n}Fm×n上的矩陣,KnmK_{nm}Knm?表示它交換的是Fn×mF^{n \times m}Fn×m上的矩陣,性質2給出了這兩個交換矩陣的是互為轉置的關系,并指出交換矩陣是正交矩陣,先證明互為轉置的關系,根據定義,
Kmnvec(A)=vec(A′)=[devec(A)]′K_{mn}vec(A) = vec(A') = [devec(A)]'Kmn?vec(A)=vec(A′)=[devec(A)]′
再根據性質1,
KnmKmnvec(A)=Knm[devec(A)]′=vec(A)?devec(A)Knm′=[vec(A)]′=devec(A′)K_{nm}K_{mn}vec(A) = K_{nm}[devec(A)]'=vec(A) \\ \Rightarrow devec(A)K_{nm}' = [vec(A)]' = devec(A')Knm?Kmn?vec(A)=Knm?[devec(A)]′=vec(A)?devec(A)Knm′?=[vec(A)]′=devec(A′)
再對定義的兩邊求轉置,
[vec(A)]′Kmn′=[vec(A′)]′?devec(A′)Kmn′=devec(A)[vec(A)]'K_{mn}' = [vec(A')]' \Rightarrow devec(A')K_{mn}' = devec(A)[vec(A)]′Kmn′?=[vec(A′)]′?devec(A′)Kmn′?=devec(A)
比較這兩個式子就可以得到Kmn′=KnmK_{mn}' = K_{nm}Kmn′?=Knm?;接下來證明交換矩陣是正交矩陣,根據性質1和互為轉置的關系,
KnmKmnvec(A)=Kmn′Kmnvec(A)=vec(A),?A?Kmn′=Kmn?1K_{nm}K_{mn}vec(A) = K_{mn}'K_{mn}vec(A) = vec(A),\forall A \Rightarrow K_{mn}' = K^{-1}_{mn}Knm?Kmn?vec(A)=Kmn′?Kmn?vec(A)=vec(A),?A?Kmn′?=Kmn?1?
證畢
盡管有了交換的一個定義,但我們對交換矩陣是什么還是沒有很直觀的概念,下面我先舉一個數值例子,先看看交換矩陣有什么用:
例 交換矩陣的作用
A=[123456789],A′=[147258369]A = \left[ \begin{matrix} 1& 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{matrix} \right],\ \ A' = \left[ \begin{matrix} 1& 4 & 7 \\ 2 & 5 & 8 \\ 3 & 6 & 9 \end{matrix} \right]A=???147?258?369????,??A′=???123?456?789????
則vec(A)=[147258369],vec(A′)=[123456789]vec(A)= \left[ \begin{matrix} 1\\ 4 \\ 7 \\ 2 \\ 5 \\ 8 \\ 3 \\ 6 \\ 9 \end{matrix} \right],\ vec(A') = \left[ \begin{matrix} 1\\ 2 \\ 3 \\ 4 \\ 5 \\ 6 \\ 7 \\ 8 \\ 9 \end{matrix} \right]vec(A)=???????????????147258369????????????????,?vec(A′)=???????????????123456789????????????????
交換矩陣K33K_{33}K33?的作用是把vec(A)vec(A)vec(A)變成vec(A′)vec(A')vec(A′)。
下一個問題是:我們能不能寫出K33K_{33}K33?這個矩陣長什么樣子呢?或者說更一般地,我們怎么寫出KmnK_{mn}Kmn?這個矩陣?記ei(n)e_i(n)ei?(n)表示單位矩陣InI_nIn?的第iii列,ei(n)e^i(n)ei(n)表示單位矩陣InI_nIn?的第iii行,則
Kmn=[In?e1(m)In?e2(m)?In?em(m)]=[Im?e1(n)Im?e2(n)?Im?en(n)]K_{mn} = \left[ \begin{matrix} I_n \otimes e^1(m)\\ I_n \otimes e^2(m) \\ \cdots \\ I_n \otimes e^m(m) \end{matrix} \right] = \left[ \begin{matrix} I_m \otimes e_1(n)& I_m \otimes e_2(n) & \cdots & I_m \otimes e_n(n) \end{matrix} \right]Kmn?=?????In??e1(m)In??e2(m)?In??em(m)??????=[Im??e1?(n)?Im??e2?(n)???Im??en?(n)?]
比如在上面的例子中,我們可以寫出:
K33=[100000000000100000000000100010000000000010000000000010001000000000001000000000001]K_{33} = \left[ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right]K33?=???????????????100000000?000100000?000000100?010000000?000010000?000000010?001000000?000001000?000000001????????????????
按行來看,每一行不為0的元素正好是第1、4、7、2、5、8、3、6、9個,因此K33K_{33}K33?乘以vec(A)vec(A)vec(A)時,會按順序將vec(A)vec(A)vec(A)的第1、4、7、2、5、8、3、6、9個元素取出來排成一列。
總結
以上是生活随笔為你收集整理的矩阵分析与多元统计12 0-1矩阵 交换矩阵简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 睡眠周期的数学模型
- 下一篇: UA MATH564 概率论VI 数理统