next up previous
Next: 2.2 余因子展開 Up: 2 余因子,行列式,逆行列 Previous: 2 余因子,行列式,逆行列

2.1 余因子(cofactor)

n次元行列$A(a_{i,j})$の(i,j)余因子(cofactor)$C_{i,j}$とは, 行列Aのi行,j列を除いた(n-1)次元の 小行列$A_{i,j}$の行列式$\vert A_{i,j}\vert$に符号として$(-1)^{i+j}$をつけたものである.
$\displaystyle A_{i,j} =\left[
\begin{array}{cccccc}
a_{1,1} & \cdots & a_{1,j-1...
...n,1} & \cdots & a_{n,j-1} & a_{n,j+1} & \cdots & a_{n,n} \\
\end{array}\right]$      


$\displaystyle C_{i,j} = (-1)^{(i+j)}\vert A_{i,j}\vert$      

m-cofactorは,$C_{i,j}$を求める.これを求めるには, $A$の小行列$A_{i,j}$を求めるminor-mをまず定義し, 行列式を求めるm-detを用いて定義することとする.
(defun m-cofactor (m i j)
  (if (oddp (+ i j))
      (- (m-det (minor-m m i j)))
    (m-det (minor-m m i j)))
  )
ここで,oddpは,引数が奇数であればtを返す. minor-mは,行列Aのi行の行ベクトルを除いた行列を返す drop-rowをまず定義して次のように定義することとする.
(defun minor-m (m i j)
  (transpose (drop-row (transpose (drop-row m i)) j))
  )

(defun drop-row (m i)
  (let ((ret nil))
    (dotimes (j (length m))
      (if (not (= i j))
          (setq ret (cons (car m) ret)))
      (setq m (cdr m)))
    (reverse ret)))


generated through LaTeX2HTML. M.Inaba 平成18年5月7日