『Python数値計算ノート』ではアフィリエイトプログラムを利用して商品を紹介しています。

行列式の交代性と転置不変性

【Pythonで学ぶ線形代数学講座(8)】行列式の交代性と転置不変性

行列式の性質

今回は行列式の基本性質(線形性・交代性・転置不変性)について解説します。

行列式の線形性

ベクトル $\boldsymbol{u}, \boldsymbol{v}$ を
 \[\boldsymbol{u}=\begin{bmatrix}u_1\\u_2\end{bmatrix},\quad \boldsymbol{v}=\begin{bmatrix}v_1\\v_2\end{bmatrix}\]
と表し、$k$ を任意の実数として行列式 $\mathrm{det}(k\boldsymbol{u},\boldsymbol{v})$ を計算すると
 \[\begin{align*}\det(k\boldsymbol{u},\boldsymbol{v})&=\begin{vmatrix}ku_1 & v_1 \\ ku_2 & v_2 \end{vmatrix}\\[6pt]&=ku_1v_2-kv_1u_2\\[6pt]&=k(u_1v_2-u_2v_1)\\[6pt]&=k\det(\boldsymbol{u},\boldsymbol{v})\end{align*}\]
となって係数 $k$ を前に出すことができます。$\boldsymbol{v}$ に係数が掛かっている場合も同様に
 \[\det(\boldsymbol{u},k\boldsymbol{v})=k\det(\boldsymbol{u},\boldsymbol{v})\]
が成り立ちます。2 次元行列式は 2 つのベクトルで作られる平行四辺形の面積を表すので、どちらかの辺を $k$ 倍したら面積も $k$ 倍になることを意味しています。また、3 つのベクトル
 \[\boldsymbol{u}=\begin{bmatrix}u_1\\u_2\end{bmatrix},\quad \boldsymbol{v}=\begin{bmatrix}v_1\\v_2\end{bmatrix},\quad \boldsymbol{w}=\begin{bmatrix}w_1\\w_2\end{bmatrix}\]
について、$\det(\boldsymbol{u}+\boldsymbol{v},\boldsymbol{w})$ を計算すると、
 \[\begin{align*}\det(\boldsymbol{u}+\boldsymbol{v},\boldsymbol{w})&=\begin{vmatrix}u_1+v_1 & w_1 \\ u_2+v_2 & w_2\end{vmatrix}\\[6pt]&=(u_1+v_1)w_2-(u_2+v_2)w_1\\[6pt]&=(u_1w_2-u_2w_1)-(v_1w_2-v_2w_1)\\[6pt]&=\det(\boldsymbol{u},\boldsymbol{v})+\det(\boldsymbol{v},\boldsymbol{w})\end{align*}\]
となります。同様に
 \[\det(\boldsymbol{u},\boldsymbol{v}+\boldsymbol{w})=\det(\boldsymbol{u},\boldsymbol{v})+\det(\boldsymbol{u},\boldsymbol{w})\]
も成り立ちます。上に述べたような性質
 \[\begin{align*}&\det(k\boldsymbol{u},\boldsymbol{v})=k\det(\boldsymbol{u},\boldsymbol{v})\tag{1}\\[6pt]&\det(\boldsymbol{u},k\boldsymbol{v})=k\det(\boldsymbol{u},\boldsymbol{v})\tag{2}\\[6pt]&\det(\boldsymbol{u}+\boldsymbol{v},\boldsymbol{w})=\det(\boldsymbol{u},\boldsymbol{v})+\det(\boldsymbol{v},\boldsymbol{w})\tag{3}\\[6pt]&\det(\boldsymbol{u},\boldsymbol{v}+\boldsymbol{w})=\det(\boldsymbol{u},\boldsymbol{v})+\det(\boldsymbol{u},\boldsymbol{w})\tag{4}\end{align*}\]
のことをまとめて、行列式の線形性とよびます。もう少し一般化すると、次のような演算が成り立ちます。
 \[\begin{align*}\det(\boldsymbol{u},a\boldsymbol{v}+b\boldsymbol{w})&=\det(\boldsymbol{u},a\boldsymbol{v})+\det(\boldsymbol{u},b\boldsymbol{w})\\[6pt]&=a\det(\boldsymbol{u},\boldsymbol{v})+b\det(\boldsymbol{u},\boldsymbol{w})\end{align*}\]
すなわち、ベクトルの線形結合 $a\boldsymbol{v}+b\boldsymbol{w}$ が行列式の線形結合として現れています。
行列式の線形性は一般の $n$ 次元行列式についても、そのまま成り立ちます。たとえば、3 次元行列式 $\det(\boldsymbol{u},a\boldsymbol{v},b\boldsymbol{w})$ において、$\boldsymbol{u},\ \boldsymbol{v},\ \boldsymbol{w}$ のうちいずれかのベクトルを $k$ 倍すると行列式の値も $k$ 倍されます。また、いずれかのベクトルが $\boldsymbol{p}$ と $\boldsymbol{q}$ の和の形に書ける場合、行列式も 2 つの行列式の和に分解されます。例として、$\det(\boldsymbol{u},\boldsymbol{v}_1+\boldsymbol{v}_2,c\boldsymbol{w})$ を計算してみると、
 \[\begin{align*}\det(\boldsymbol{u},\boldsymbol{v}_1+\boldsymbol{v}_2,c\boldsymbol{w})&=c\det(\boldsymbol{u},\boldsymbol{v}_1+\boldsymbol{v}_2,\boldsymbol{w})\\[6pt]&=c\{\det(\boldsymbol{u},\boldsymbol{v}_1,\boldsymbol{w})+\det(\boldsymbol{u},\boldsymbol{v}_2,\boldsymbol{w})\}\end{align*}\]
となります。

行列式の交代性

2 本のベクトル $\boldsymbol{u}, \boldsymbol{v}$ を
 \[\boldsymbol{u}=\begin{bmatrix}u_1\\u_2\end{bmatrix},\quad \boldsymbol{v}=\begin{bmatrix}v_1\\v_2\end{bmatrix}\]
について行列式を
 \[\det(\boldsymbol{u},\boldsymbol{v})=\begin{vmatrix}u_1 & v_1 \\ u_2 & v_2 \end{vmatrix}\]
で定めるとき、$\boldsymbol{u}$ と $\boldsymbol{v}$ を入れ替えると符号が逆転します。
 \[\begin{align*}\det(\boldsymbol{v},\boldsymbol{u})&=\begin{vmatrix}v_1 & u_1 \\ v_2 & u_2 \end{vmatrix}\\[6pt]&=v_1u_2-v_2u_1\\[6pt]&=-(u_1v_2-u_2v_2)\\[6pt]&=-\det(\boldsymbol{u},\boldsymbol{v})\end{align*}\]
行列式の行を入れ替えても符号が逆転します。
 \[\begin{align*}\begin{vmatrix}u_2 & v_2 \\ u_1 & v_1 \end{vmatrix}&=u_2v_1-u_1v_2\\[6pt]&=-(u_1v_2-u_2v_1)\\[6pt]&=-\det(\boldsymbol{u},\boldsymbol{v})\end{align*}\]
一般の $n$ 次元の行列式においても、行または列を 1 回入れ替えると符号が逆転するという法則があります。これを行列式の交代性といいます。

面積の符号

行列式の交代性から明らかなように、行列式によって定義された面積は負の値になることがあります。
 
例として、ベクトル $\boldsymbol{u}=\begin{bmatrix}1\\4\end{bmatrix}$ と $\boldsymbol{v}=\begin{bmatrix}3\\1\end{bmatrix}$ を考えます。
 
matplotlib vector u, v plot
行列式 $\mathrm{det}(\boldsymbol{u},\boldsymbol{v})$ を計算してみると、
 \[\mathrm{det}(\boldsymbol{u},\boldsymbol{v})=\begin{vmatrix}1 & 3\\4 & 1\end{vmatrix}=1\cdot 1-3\cdot 4=-11\]
となります。行列式の交代性により、$\boldsymbol{u}$ と $\boldsymbol{v}$ を入れ替えると符号が逆転して
 \[\mathrm{det}(\boldsymbol{v},\boldsymbol{u})=11\]
となります。一般にベクトル $\boldsymbol{a}$ がベクトル $\boldsymbol{b}$ に時計回りに回転させて一致するとき、$\mathrm{det}(\boldsymbol{a},\boldsymbol{b})$ は負の値となり、$\mathrm{det}(\boldsymbol{b},\boldsymbol{a})$ は正の値となります ($\boldsymbol{b}$ は $\boldsymbol{a}$ に反時計回りに回転させて一致します)。

行列式の転置不変性

ベクトル $\boldsymbol{u}, \boldsymbol{v}$ を
 \[\boldsymbol{u}=\begin{bmatrix}u_1\\u_2\end{bmatrix},\quad \boldsymbol{v}=\begin{bmatrix}v_1\\v_2\end{bmatrix}\]
について行列式を
 \[\det(\boldsymbol{u},\boldsymbol{v})=\begin{vmatrix}u_1 & v_1 \\ u_2 & v_2 \end{vmatrix}\]
と定めましたが、行と列を入れ替えて、
 \[\begin{vmatrix}u_1 & u_2 \\ v_1 & v_2 \end{vmatrix}\]
のように書いても行列式の値は変わりません。一般に $n$ 次元の行列式において、成分を対角線上で折り返しても値は保持されます。この性質を行列式の転置不変性といいます。4 次元の行列式
 \[\begin{vmatrix}5 & 9 & 2 & 7\\1 & 3 & 9 & 5\\6 & 2 & 0 & 4\\2 & 6 & 3 & 3\end{vmatrix}\]
について転置不変性を確認してみましょう。手計算では大変なので、SciPy の scipy.linalg.det()関数を使って計算します。

# python_determinant_transpose

# In[1]

import numpy as np
from scipy.linalg import det

# 4×4配列を定義
x = np.array([[5, 9, 2, 7],
              [1, 3, 9, 5],
              [6, 2, 0, 4],
              [2, 6, 3, 3]])

# xの行列式を計算
print("det(x) : {:.2f}".format(det(x)))

# xを転置して行列式を計算
print("det(tx) : {:.2f}".format(det(x.T)))

# det(x) : -568.00
# det(tx) : -568.00

コメント