行列式の計算(1)


Python多項式の行列の行列式が計算できるようにする。

行列式の定義

 A \equiv (a_{ij}) \equiv \begin{pmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{n1} & \cdots & a_{nn} \end{pmatrix}

とすると、

 |A| = \sum_{\sigma \in S_n}{\mbox{sgn}(\sigma)\prod_{k=1}^n{a_{k\sigma(k)}}}

対称群

Snはn次対称群で、σはその要素である置換。n次対称群というのは、n個の要素の置換全ての集合である。例えば、対称式

x+y+z

があったとき、(x y z) → (y z x)という変換を施しても式は変わらない。それで対称群と呼ぶ、たぶん。だから、(x y z) → (x z x)というような変換は置換と呼ばない。置換は順番を入れ替えるだけである。

互換

2つの要素のみを入れ替える置換を、特に互換と呼ぶ。

置換の符号

sgn(σ)は、置換の符号で、置換を互換のみの合成で表したとき、互換の数が偶数なら1、奇数なら-1となる。


ここで2つ疑問が湧いてくる。全ての置換は互換の合成であらわすことができるのだろうか。また、互換の数は必ず偶数か奇数に決まるのだろうか。