Next: 2.3 余因子行列
Up: 2 余因子,行列式,逆行列
Previous: 2.1 余因子(cofactor)
行列の余因子展開を利用して行列の行列式を求めることができる.
余因子展開とは,行列Aの行列式は,i行,または,j行の各要素と
その要素における余因子の積の和として求めることができるという
ものである.
i行に関する余因子展開は,
となり,
j列に関する余因子展開は,
となる.
以上から,行列Aの行列式をもとめる場合に,
0列で展開を行う形で,関数m-detを定義する.
m-cofactorを用いると,
(defun m-det (m)
(let ((sum 0.0) (row (length m))
(vec (mapcar #'car m)))
(if (= row 1) (car vec)
(dotimes (i row)
(setq sum
(+ sum (* (elt vec i)
(m-cofactor m i 0)))))
sum)))
という具合にできる.
第0列に関する余因子を求める際に,minor-mは
より簡単化できるため,m-cofactor0を
定義して,
(defun m-cofactor0 (m i)
(if (oddp i)
(- (m-det (drop-row (mapcar #'cdr m) i)))
(m-det (drop-row (mapcar #'cdr m) i)))
)
(defun m-det (m)
(let ((sum 0.0) (row (length m))
(vec (mapcar #'car m)))
(if (= row 1) (car vec)
(dotimes (i row)
(setq sum
(+
(* (elt vec i)
(m-cofactor0 m i))
sum)))
sum)))
というように定義することも有効である.
Next: 2.3 余因子行列
Up: 2 余因子,行列式,逆行列
Previous: 2.1 余因子(cofactor)
generated through LaTeX2HTML. M.Inaba 平成18年5月7日