名称からすると随伴行列(adjoint matrix)を返しそうだが、この関数 adjoint は随伴行列ではなく余因子行列(cofactor matrix)を返す。
(%i1) M:matrix([5,-22,-11,21],[6,0,15,9],[-5,-14,-23,3],[20,1,40,25]);
[ 5 - 22 - 11 21 ]
[ ]
[ 6 0 15 9 ]
(%o1) [ ]
[ - 5 - 14 - 23 3 ]
[ ]
[ 20 1 40 25 ]
(%i2) adjoint(M);
[ 462 - 130 - 744 - 252 ]
[ ]
[ - 945 - 50 1515 630 ]
(%o2) [ ]
[ 357 60 - 579 - 252 ]
[ ]
[ - 903 10 1461 588 ]
この出力結果が正しいか、念のため確かめてみよう。行列 M とその余因子行列 M~との積が単位行列の行列式倍になっていればよい:
(%i3) M . %;
[ 210 0 0 0 ]
[ ]
[ 0 210 0 0 ]
(%o3) [ ]
[ 0 0 210 0 ]
[ ]
[ 0 0 0 210 ]
(%i4) determinant(M);
(%o4) 210
(当然ながら)正しいことが確認出来た。次に、我々が普段実行する(と思われる)手順で確認してみる。まず、M~ の (1,1) 成分 a11 を求める。そのためには、M の第 1 行と第 1 列を取り除いた小行列を作り、その行列式を求めればよい:
(%i5) submatrix(1, M, 1);
[ 0 15 9 ]
[ ]
(%o5) [ - 14 - 23 3 ]
[ ]
[ 1 40 25 ]
(%i6) determinant(%);
(%o6) 462
符号は (-1)1+1 = 1 であるから a11 = 462 が得られる。続いて、(1,2) 成分 a12 を求める。そのためには、M の第 2 行と第 1 列を取り除いた小行列を作り、その行列式を求めればよい:
(%i7) submatrix(2, M, 1);
[ - 22 - 11 21 ]
[ ]
(%o7) [ - 14 - 23 3 ]
[ ]
[ 1 40 25 ]
(%i8) determinant(%);
(%o8) 130
符号は (-1)1+2 = -1 であるから a12 = -130 が得られる。既に飽きてきたので最後に (1,3) 成分 a13 を求めて終わりにする。M の第 3 行と第 1 列を取り除いた小行列を作り、その行列式を求める:
(%i9) submatrix(3, M, 1);
[ - 22 - 11 21 ]
[ ]
(%o9) [ 0 15 9 ]
[ ]
[ 1 40 25 ]
(%i10) determinant(%);
(%o10) - 744
符号は (-1)1+3 = 1 であるから a13 = -744 が得られる。