adjoint ..... 余因子行列

名称からすると随伴行列(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 が得られる。