矩阵分析与多元统计12 0-1矩阵 交换矩阵简介

矩阵分析与多元统计12 0-1矩阵 交换矩阵简介


顾名思义,0-1矩阵就是所有元素取值均为0和1的矩阵,这类矩阵在矩阵分析、多元统计乃至组合学和图论中都有很重要的应用。在这个主题中我打算介绍选择矩阵、排列矩阵、交换矩阵、消元矩阵、复制矩阵和移位矩阵。(其实排列矩阵就是行列互换的初等变换矩阵。。。)

选择矩阵

选择矩阵selection matrix的作用是通过与某个矩阵相乘,使得结果等于这个矩阵中我们希望选择的那些元素构成的矩阵。最简单的selection matrix是列选择矩阵。假设 A F m × n A \in F^{m \times n} a i a_i 表示它的第 i i 个列向量, e i e_i 表示 I n I_n 的第 i i 列,定义 S = [ e i 1 , , e i k ] , 1 i 1 < i 2 < < i k n S = [e_{i_1},\cdots,e_{i_k}],1 \le i_1 < i_2 < \cdots < i_k \le n ,它是一个列选择矩阵,作用是选出 A A 的第 i 1 , , i k i_1,\cdots,i_k 列,
A S = [ a i 1 , a i 2 , , a i k ] F m × k AS = [a_{i_1},a_{i_2},\cdots,a_{i_k}] \in F^{m \times k}
类似地可以定义行选择矩阵, a i a^i 表示 A A 的第 i i 个行向量, e i e^i 表示 I m I_m 的第 i i 行,定义 S = [ e i 1 ; ; e i k ] , 1 i 1 < i 2 < < i k n S = [e^{i_1};\cdots;e^{i_k}],1 \le i_1 < i_2 < \cdots < i_k \le n ,那分号表示换行:
[ e i 1 ; ; e i k ] = [ ( e i 1 ) , , ( e i k ) ] [e^{i_1};\cdots;e^{i_k}] = [(e^{i_1})',\cdots,(e^{i_k})']'
它是一个列选择矩阵,可以选出 A A 的第 i 1 , , i k i_1,\cdots,i_k 行,
S A = [ a i 1 ; a i 2 ; ; a i k ] F k × n SA = [a^{i_1};a^{i_2};\cdots;a^{i_k}] \in F^{k \times n}

要选择 A A 的第 i , j i,j 个元素是比较容易的,
e i A e j = a j i e^iAe_j = a^i_j
根据这个性质也可以定义选择 A A 的某个子矩阵的方法。

交换矩阵

对于矩阵 A F m × n A \in F^{m \times n}
v e c ( A ) = [ a 1 ; ; a n ] F m n × 1 ,   v e c ( A ) = [ a 1 , , a m ] F m n × 1 vec(A) = [a_1;\cdots;a_n] \in F^{mn\times 1},\ vec(A') = [a^1,\cdots,a^m]' \in F^{mn \times 1}

如果 K m n F m n × m n , K m n v e c ( A ) = v e c ( A ) \exists K_{mn} \in F^{mn \times mn},K_{mn}vec(A) = vec(A') ,则称 K m n K_{mn} 是交换矩阵。根据定义我们会发现交换矩阵有如下简单性质:

  1. K n m K m n v e c ( A ) = v e c ( A ) K_{nm}K_{mn}vec(A) = vec(A)
  2. K n m = K m n = K m n 1 K_{nm} = K_{mn}' = K_{mn}^{-1}
  3. K 1 n = K n 1 = I n K_{1n} = K_{n1} = I_n

证明 想必大家对交换矩阵会感觉很陌生,但它在矩阵求导的时候会发挥很强大的功能,性质3非常直观,这里就不谈了,我把性质1和2都简单证明评述一下:
性质1:根据定义计算左边的式子
K n m K m n v e c ( A ) = K n m v e c ( A ) = v e c ( ( A ) ) = v e c ( A ) K_{nm}K_{mn}vec(A) = K_{nm}vec(A') = vec((A')') = vec(A)
性质2:事实上交换矩阵的指标对应的是矩阵 A A 的维数, K m n K_{mn} 表示它交换的是 F m × n F^{m\times n} 上的矩阵, K n m K_{nm} 表示它交换的是 F n × m F^{n \times m} 上的矩阵,性质2给出了这两个交换矩阵的是互为转置的关系,并指出交换矩阵是正交矩阵,先证明互为转置的关系,根据定义,
K m n v e c ( A ) = v e c ( A ) = [ d e v e c ( A ) ] K_{mn}vec(A) = vec(A') = [devec(A)]'

再根据性质1,
K n m K m n v e c ( A ) = K n m [ d e v e c ( A ) ] = v e c ( A ) d e v e c ( A ) K n m = [ v e c ( A ) ] = d e v e c ( A ) K_{nm}K_{mn}vec(A) = K_{nm}[devec(A)]'=vec(A) \\ \Rightarrow devec(A)K_{nm}' = [vec(A)]' = devec(A')

再对定义的两边求转置,
[ v e c ( A ) ] K m n = [ v e c ( A ) ] d e v e c ( A ) K m n = d e v e c ( A ) [vec(A)]'K_{mn}' = [vec(A')]' \Rightarrow devec(A')K_{mn}' = devec(A)

比较这两个式子就可以得到 K m n = K n m K_{mn}' = K_{nm} ;接下来证明交换矩阵是正交矩阵,根据性质1和互为转置的关系,
K n m K m n v e c ( A ) = K m n K m n v e c ( A ) = v e c ( A ) , A K m n = K m n 1 K_{nm}K_{mn}vec(A) = K_{mn}'K_{mn}vec(A) = vec(A),\forall A \Rightarrow K_{mn}' = K^{-1}_{mn}

证毕

尽管有了交换的一个定义,但我们对交换矩阵是什么还是没有很直观的概念,下面我先举一个数值例子,先看看交换矩阵有什么用:

交换矩阵的作用
A = [ 1 2 3 4 5 6 7 8 9 ] ,    A = [ 1 4 7 2 5 8 3 6 9 ] 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]
v e c ( A ) = [ 1 4 7 2 5 8 3 6 9 ] ,   v e c ( A ) = [ 1 2 3 4 5 6 7 8 9 ] 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]
交换矩阵 K 33 K_{33} 的作用是把 v e c ( A ) vec(A) 变成 v e c ( A ) vec(A')

下一个问题是:我们能不能写出 K 33 K_{33} 这个矩阵长什么样子呢?或者说更一般地,我们怎么写出 K m n K_{mn} 这个矩阵?记 e i ( n ) e_i(n) 表示单位矩阵 I n I_n 的第 i i 列, e i ( n ) e^i(n) 表示单位矩阵 I n I_n 的第 i i 行,则
K m n = [ I n e 1 ( m ) I n e 2 ( m ) I n e m ( m ) ] = [ I m e 1 ( n ) I m e 2 ( n ) I m e n ( 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]
比如在上面的例子中,我们可以写出:
K 33 = [ 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 ] 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]
按行来看,每一行不为0的元素正好是第1、4、7、2、5、8、3、6、9个,因此 K 33 K_{33} 乘以 v e c ( A ) vec(A) 时,会按顺序将 v e c ( A ) vec(A) 的第1、4、7、2、5、8、3、6、9个元素取出来排成一列。

猜你喜欢

转载自blog.csdn.net/weixin_44207974/article/details/106611711