矩阵分析与多元统计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,Kmnvec(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)KnmKmnvec(A)=Knmvec(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)]'Kmnvec(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')KnmKmnvec(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}KnmKmnvec(A)=Kmn′Kmnvec(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=⎣⎡147258369⎦⎤, A′=⎣⎡123456789⎦⎤
则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=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡100000000000100000000000100010000000000010000000000010001000000000001000000000001⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
按行来看,每一行不为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 数理统