行列の成分計算

基本演算

行列の積
\left( AB \right)_{ij} = \sum_k a_{ik} b_{kj}
行成分を揃えて和をとる。
\sum_k a_{ki} b_{kj} = \left( A^\mathrm{T}B \right)_{ij}
列成分を揃えて和をとる。
\sum_k a_{ik} b_{jk} = \left( AB^\mathrm{T} \right)_{ij}
全ての成分の和をとる。(行列A,BのFrobenius内積
\sum_{p,q} a_{pq} b_{pq} = \mathrm{Tr} A^\mathrm{T} B =:  \langle A,B \rangle
各成分の二乗和
\sum_{p,q} a_{pq}^2 = \mathrm{Tr} A^\mathrm{T} A

二次形式

(Frobenius内積の特殊形。特に,Aを固定すると数ベクトルの内積の拡張ともみなせる。)
\sum_{i,j} a_{ij} x_i x_j = \mathbf{x}^\mathrm{T} A \mathbf{x}

クロネッカーのデルタ

\left( \mathbb{I}^{ij} \right)_{kl} := \delta_{ik} \delta_{jl} = \left( \frac{\partial X}{\partial x_{ij}} \right)_{kl}
右から作用させて,第i列ベクトルを第j列に持ってくる。
 [\mathbf{x}_1 \, \cdots \, \mathbf{x}_N] \mathbb{I}^{ij} = [\mathbf{0} \, \cdots \, \mathbf{0} \, \mathbf{x}_i \, \mathbf{0} \, \cdots \, \mathbf{0}]
Trと使うと効果絶大。
\mathrm{Tr} X \mathbb{I}^{ij} = \sum_t \sum_k x_{tk}\delta_{ki}\delta_{tj}
  = \sum_t x_{ti}\delta_{tj} = x_{ji}
もう少しエレガントな証明
\mathrm{Tr} X^\mathrm{T} X = \sum_{k,l} x_{kl}^2
\therefore \frac{\partial}{\partial x_{ij}}\mathrm{Tr} X^\mathrm{T} X = \frac{\partial \sum_{k,l} x_{kl}^2}{\partial x_{ij}} = 2 x_{ij}
一方,
\frac{\partial}{\partial x_{ij}}\mathrm{Tr} X^\mathrm{T} X = \mathrm{Tr} \frac{\partial}{\partial x_{ij}} X^\mathrm{T} X = \mathrm{Tr} \left \{ \frac{\partial X^\mathrm{T}}{\partial x_{ij}} X + X^\mathrm{T} \frac{\partial}{\partial x_{ij}} X \right \}
 = \mathrm{Tr} \left \{ \mathbb{I}^{ji} X + X^\mathrm{T} \mathbb{I}^{ij} \right \}
 = \mathrm{Tr} \left \{  2 X^\mathrm{T} \mathbb{I}^{ij} \right \}
\therefore \mathrm{Tr} X^\mathrm{T} \mathbb{I}^{ij} = x_{ij}
最終更新:2009年07月21日 18:40
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。