余因子行列

数学の線形代数学において、n次正方行列 A の余因子行列（よいんしぎょうれつ、英: adjugate matrix）あるいは古典随伴行列（こてんずいはんぎょうれつ、英: classical adjoint matrix）とは、(i, j)成分が (i, j)余因子である行列の転置行列のことであり、記号で adj ⁡ ( A ) {\displaystyle \operatorname {adj} (A)} , Cof ⁡ ( A ) {\displaystyle \operatorname {Cof} (A)} , A ~ {\displaystyle {\widetilde {A}}} などで表す。これはn次正方行列になる。 単に (i, j)成分が (i, j)余因子である行列（転置をしない）を「余因子行列」と呼ぶ場合もある。随伴行列や随伴作用素とは異なる。 余因子行列により、正則行列の逆行列を具体的に成分表示することができる。 可換環 R 上の n次正方行列 A = (ai,j) の余因子行列とは、(i, j)成分が (j, i)余因子である n次正方行列のことであり、記号で adj ⁡ ( A ) {\displaystyle \operatorname {adj} (A)} , A ~ {\displaystyle {\widetilde {A}}} などで表す。 A の (i,j)小行列式を Mi,j で表すことにする。これは、A の第i行、第j列を除いてできる (n − 1)次小正方行列の行列式である： adj ⁡ ( A ) = ( b i , j ) , b i , j = ( − 1 ) i + j M j , i {\displaystyle \operatorname {adj} (A)=(b_{i,j}),\quad b_{i,j}=(-1)^{i+j}M_{j,i}} A の (i,j)余因子を ~ai,j で表すと、 a ~ i , j = ( − 1 ) i + j M i , j {\displaystyle {\widetilde {a}}_{i,j}=(-1)^{i+j}M_{i,j}} adj ⁡ ( A ) = ( b i , j ) , b i , j = ( a ~ j , i ) {\displaystyle \operatorname {adj} (A)=(b_{i,j}),\quad b_{i,j}=({\widetilde {a}}_{j,i})} A を余因子展開は、A の余因子行列 ~A により、次のように表せる： A A ~ = A ~ A = ( det ( A ) ) I {\displaystyle A{\widetilde {A}}={\widetilde {A}}A=(\det(A))I} ここで I は単位行列である。 A が特に正則行列のとき、A の逆行列は余因子行列 ~A で表せる： A − 1 = 1 det ( A ) A ~ {\displaystyle A^{-1}={\frac {1}{\det(A)}}{\widetilde {A}}} 1次正方行列 A = (a) の余因子行列は、A が零行列でないときは、1次単位行列 I = [ 1 ] {\displaystyle I={\begin{bmatrix}1\end{bmatrix}}} である。 adj ⁡ ( 0 ) {\displaystyle \operatorname {adj} (0)} は慣習上 0 とする。 2次正方行列 A = [ a b c d ] {\displaystyle A={\begin{bmatrix}a&b\\c&d\end{bmatrix}}} の余因子行列は adj ⁡ ( A ) = [ d − b − c a ] {\displaystyle \operatorname {adj} (A)={\begin{bmatrix}d&-b\\-c&a\end{bmatrix}}} なお、この 2次の場合は adj ⁡ adj ⁡ A = A {\displaystyle \operatorname {adj} \operatorname {adj} A=A} が成り立つ。 3次正方行列 A = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] {\displaystyle A={\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}}} の余因子行列を考える。(i, j)成分に (i, j)余因子を並べたものは、 C = [ + | a 22 a 23 a 32 a 33 | − | a 21 a 23 a 31 a 33 | + | a 21 a 22 a 31 a 32 | − | a 12 a 13 a 32 a 33 | + | a 11 a 13 a 31 a 33 | − | a 11 a 12 a 31 a 32 | + | a 12 a 13 a 22 a 23 | − | a 11 a 13 a 21 a 23 | + | a 11 a 12 a 21 a 22 | ] , {\displaystyle C={\begin{bmatrix}+{\begin{vmatrix}a_{22}&a_{23}\\a_{32}&a_{33}\end{vmatrix}}&-{\begin{vmatrix}a_{21}&a_{23}\\a_{31}&a_{33}\end{vmatrix}}&+{\begin{vmatrix}a_{21}&a_{22}\\a_{31}&a_{32}\end{vmatrix}}\\&&\\-{\begin{vmatrix}a_{12}&a_{13}\\a_{32}&a_{33}\end{vmatrix}}&+{\begin{vmatrix}a_{11}&a_{13}\\a_{31}&a_{33}\end{vmatrix}}&-{\begin{vmatrix}a_{11}&a_{12}\\a_{31}&a_{32}\end{vmatrix}}\\&&\\+{\begin{vmatrix}a_{12}&a_{13}\\a_{22}&a_{23}\end{vmatrix}}&-{\begin{vmatrix}a_{11}&a_{13}\\a_{21}&a_{23}\end{vmatrix}}&+{\begin{vmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{vmatrix}}\end{bmatrix}},} ここで | a i m a i n a j m a j n | = det [ a i m a i n a j m a j n ] = det | a i m a i n a j m a j n | {\displaystyle {\begin{vmatrix}a_{im}&a_{in}\\a_{jm}&a_{jn}\end{vmatrix}}=\det {\begin{bmatrix}a_{im}&a_{in}\\a_{jm}&a_{jn}\end{bmatrix}}=\det {\begin{vmatrix}a_{im}&a_{in}\\a_{jm}&a_{jn}\end{vmatrix}}} である。余因子行列はこれの転置行列であるから、 adj ⁡ ( A ) = C T = [ + | a 22 a 23 a 32 a 33 | − | a 12 a 13 a 32 a 33 | + | a 12 a 13 a 22 a 23 | − | a 21 a 23 a 31 a 33 | + | a 11 a 13 a 31 a 33 | − | a 11 a 13 a 21 a 23 | + | a 21 a 22 a 31 a 32 | − | a 11 a 12 a 31 a 32 | + | a 11 a 12 a 21 a 22 | ] {\displaystyle \operatorname {adj} (A)=C^{\mathsf {T}}={\begin{bmatrix}+{\begin{vmatrix}a_{22}&a_{23}\\a_{32}&a_{33}\end{vmatrix}}&-{\begin{vmatrix}a_{12}&a_{13}\\a_{32}&a_{33}\end{vmatrix}}&+{\begin{vmatrix}a_{12}&a_{13}\\a_{22}&a_{23}\end{vmatrix}}\\&&\\-{\begin{vmatrix}a_{21}&a_{23}\\a_{31}&a_{33}\end{vmatrix}}&+{\begin{vmatrix}a_{11}&a_{13}\\a_{31}&a_{33}\end{vmatrix}}&-{\begin{vmatrix}a_{11}&a_{13}\\a_{21}&a_{23}\end{vmatrix}}\\&&\\+{\begin{vmatrix}a_{21}&a_{22}\\a_{31}&a_{32}\end{vmatrix}}&-{\begin{vmatrix}a_{11}&a_{12}\\a_{31}&a_{32}\end{vmatrix}}&+{\begin{vmatrix}a_{11}&a_{12}\\a_{21}&a_{22}\end{vmatrix}}\end{bmatrix}}} 例えば、実3次正方行列 A = [ − 3 2 − 5 − 1 0 − 2 3 − 4 1 ] {\displaystyle A={\begin{bmatrix}-3&2&-5\\-1&0&-2\\3&-4&1\end{bmatrix}}} の余因子行列は、 adj ⁡ A = [ − 8 18 − 4 − 5 12 − 1 4 − 6 2 ] {\displaystyle \operatorname {adj} A={\begin{bmatrix}-8&18&-4\\-5&12&-1\\4&-6&2\end{bmatrix}}} となる。実際、余因子行列の (2,3)成分は (3,2)余因子であり、それは (3,2)小行列式（第3行、第2列を除いた小行列の行列式）に符号を掛けたものに等しい： ( − 1 ) 3 + 2 det ⁡ [ − 3 − 5 − 1 − 2 ] = − ( − 3 ⋅ − 2 − − 5 ⋅ − 1 ) = − 1 {\displaystyle (-1)^{3+2}\operatorname {det} {\begin{bmatrix}-3&-5\\-1&-2\end{bmatrix}}=-(-3\cdot -2--5\cdot -1)=-1} A を n次正方行列とする。 adj ⁡ ( O ) = O {\displaystyle \operatorname {adj} (O)=O} （O は零正方行列） adj ⁡ ( I ) = I {\displaystyle \operatorname {adj} (I)=I} （I は単位行列） adj ⁡ ( c A ) = c n − 1 adj ⁡ ( A ) {\displaystyle \operatorname {adj} (cA)=c^{n-1}\operatorname {adj} (A)} （c はスカラー） adj ⁡ ( A T ) = adj ⁡ ( A ) T {\displaystyle \operatorname {adj} (A^{\mathsf {T}})=\operatorname {adj} (A)^{\mathsf {T}}} （T は転置を表す） det ( adj ⁡ ( A ) ) = ( det A ) n − 1 {\displaystyle \det(\operatorname {adj} (A))=(\det A)^{n-1}} A が正則なら、 adj ⁡ ( A ) = ( det A ) A − 1 {\displaystyle \operatorname {adj} (A)=(\det A)A^{-1}} これから次が導かれる： adj(A) は正則で、その逆行列は(det A)−1A adj(A−1) = adj(A)−1. adj(A) の各成分は A の成分の多項式である。特に、実数体または複素数体上では、adj(A) の各成分は、A の成分の滑らかな関数である。 複素数体上では、 adj ⁡ ( A ¯ ) = adj ⁡ ( A ) ¯ {\displaystyle \operatorname {adj} ({\overline {A}})={\overline {\operatorname {adj} (A)}}} （  は複素共役を表す） adj ⁡ A ∗ = ( adj ⁡ A ) ∗ {\displaystyle \operatorname {adj} A^{*}=(\operatorname {adj} A)^{*}} （* は随伴行列を表す） B をもう1つの n次正方行列とする。 adj ⁡ ( A B ) = adj ⁡ ( B ) adj ⁡ ( A ) {\displaystyle \operatorname {adj} (AB)=\operatorname {adj} (B)\operatorname {adj} (A)} この証明には、2つの方法がある。1つは、コーシー・ビネの公式により直接計算する方法である。もう1つの方法は、正方行列 A, B に余因子展開の等式を利用する方法である： ( det A B ) A B ~ = ( det A ) I × ( det B ) I × A B ~ = ( det A ) I × B ~ B × A B ~ = B ~ × ( det A ) I × B × A B ~ = B ~ × A ~ A × B × A B ~ = B ~ A ~ × ( A B ) A B ~ = B ~ A ~ × det ( A B ) I = det ( A B ) B ~ A ~ {\displaystyle {\begin{aligned}(\det AB){\widetilde {AB}}&=(\det A)I\times (\det B)I\times {\widetilde {AB}}\\&=(\det A)I\times {\widetilde {B}}B\times {\widetilde {AB}}\\&={\widetilde {B}}\times (\det A)I\times B\times {\widetilde {AB}}\\&={\widetilde {B}}\times {\widetilde {A}}A\times B\times {\widetilde {AB}}\\&={\widetilde {B}}{\widetilde {A}}\times (AB){\widetilde {AB}}\\&={\widetilde {B}}{\widetilde {A}}\times \det(AB)I\\&=\det(AB){\widetilde {B}}{\widetilde {A}}\\\end{aligned}}} 両辺を多項式として　det AB で割ると ~AB = ~B~A を得る。（証明終） これより、行列の冪乗について次が成り立つ： adj ⁡ ( A k ) = ( adj ⁡ A ) k {\displaystyle \operatorname {adj} (A^{k})=(\operatorname {adj} A)^{k}} （k は 0 以上の整数） A が正則なら、この等式は k が負の整数の場合についても成り立つ。 A adj ⁡ ( A + B ) B = B adj ⁡ ( A + B ) A {\displaystyle A\operatorname {adj} (A+B)B=B\operatorname {adj} (A+B)A} 等式 ( A + B ) adj ⁡ ( A + B ) B = det ( A + B ) B = B { adj ⁡ ( A + B ) } ( A + B ) {\displaystyle (A+B)\operatorname {adj} (A+B)B=\det(A+B)B=B\{\operatorname {adj} (A+B)\}(A+B)} から導かれる。 rk(A) ≤ n − 2 のとき、adj(A) = O rk(A) = n − 1 のとき、rk(adj(A)) = 1 （A のある小行列式は 0 でない、故に adj(A) は 0 でなく、したがって、階数は 1 以上である。等式 adj(A) A = 0 は、adj(A) の核の次元は n − 1 以上であることを意味する。故に、adj(A) の階数は 1 以下である。） このとき、adj(A) は次のように表せる： adj(A) = xyT（x, y は A x = o {\displaystyle A{\boldsymbol {x}}={\boldsymbol {o}}} かつ t A y = o {\displaystyle {}^{t}A{\boldsymbol {y}}={\boldsymbol {o}}} を満たすベクトルである） A の列ベクトル表示を A = ( a 1   ⋯   a n ) {\displaystyle A=({\boldsymbol {a}}_{1}\ \cdots \ {\boldsymbol {a}}_{n})} とし、b を n次列ベクトルとする。固定された 1 ≤ j ≤ n に対し、A の第 j列を b で置き換えた行列を次の記号で定義する： ( A ← j b )   = def   ( a 1 ⋯ a j − 1 b a j + 1 ⋯ a n ) {\displaystyle (A{\stackrel {j}{\leftarrow }}{\boldsymbol {b}})\ {\stackrel {\text{def}}{=}}\ {\begin{pmatrix}{\boldsymbol {a}}_{1}&\cdots &{\boldsymbol {a}}_{j-1}&{\boldsymbol {b}}&{\boldsymbol {a}}_{j+1}&\cdots &{\boldsymbol {a}}_{n}\end{pmatrix}}} この行列の行列式を第j列に関して余因子展開し、それらを集めてできる列ベクトルは、積 adj(A)b に等しくなる： ( det ( A ← j b ) ) j = 1 n = adj ⁡ ( A ) b {\displaystyle \left(\det(A{\stackrel {j}{\leftarrow }}{\boldsymbol {b}})\right)_{j=1}^{n}=\operatorname {adj} (A){\boldsymbol {b}}} この等式は、具体的な結果を生む。線形方程式系 A x = b {\displaystyle A{\boldsymbol {x}}={\boldsymbol {b}}} を考える。A を正則と仮定する。この方程式に左から adj(A) を掛け、det(A) (≠ 0) で割ると x = 1 det A ( adj ⁡ A ) b {\displaystyle {\boldsymbol {x}}={\frac {1}{\det A}}(\operatorname {adj} A){\boldsymbol {b}}} ここでクラメルの公式を適用すると、 x i = det ( A ← i b ) det A {\displaystyle x_{i}={\frac {\det(A{\stackrel {i}{\leftarrow }}{\boldsymbol {b}})}{\det A}}} ここで xi は x の第i成分である。 A の固有多項式を p ( s ) = det ( s I − A ) = ∑ i = 0 n p i s i ∈ R [ s ] {\displaystyle p(s)=\det(sI-A)=\textstyle \sum \limits _{i=0}^{n}p_{i}s^{i}\in R[s]} とすると、 p の第一差商は、n − 1次対称式になる： Δ p ( s , t ) = p ( s ) − p ( t ) s − t = ∑ 0 ≤ j + k < n p j + k + 1 s j t k ∈ R [ s , t ] {\displaystyle \Delta p(s,t)={\frac {p(s)-p(t)}{s-t}}=\textstyle \sum \limits _{0\leq j+k<n}p_{j+k+1}s^{j}t^{k}\in R[s,t]} sI − A の余因子行列積は、ケイリー・ハミルトンの定理 p(A) = O より、 adj ⁡ ( s I − A ) = Δ p ( s I , A ) {\displaystyle \operatorname {adj} (sI-A)=\Delta p(sI,A)} 特に、A の レゾルベントは次の式で定義される： R ( z ; A ) = ( z I − A ) − 1 {\displaystyle R(z;A)=(zI-A)^{-1}} さらに上記の等式より、これは次の式に等しい： R ( z ; A ) = Δ p ( z I , A ) p ( z ) {\displaystyle R(z;A)={\frac {\Delta p(zI,A)}{p(z)}}} 行列式を微分すると、ヤコビの公式 (Jacobi's formula) により、余因子行列が現れる。A(t) は連続的微分可能なら、 d d t ( det A ( t ) ) = tr ⁡ ( adj ⁡ ( A ( t ) ) A ′ ( t ) ) {\displaystyle {\frac {d}{dt}}(\det A(t))=\operatorname {tr} \left(\operatorname {adj} (A(t))A'(t)\right)} これより、行列式の全微分は、余因子行列の転置になる： d ( det A ) A 0 = adj ⁡ ( A 0 ) T {\displaystyle d(\det A)_{A_{0}}=\operatorname {adj} (A_{0})^{\mathsf {T}}} pA(t) を線形変換 A の固有多項式とする。ケイリー・ハミルトンの定理とは、t を A に置き換えて得られる正方行列が零行列になることをいう： p A ( A ) = O {\displaystyle p_{A}(A)=O} 定数項を分離し両辺に adj(A) を掛けることで、余因子行列は A と pA(t) の係数だけで表される。完全指数関数的ベル多項式を使うと、これらの係数はA の冪の跡の項で具体的に表せ、次のようになる： adj ⁡ ( A ) = ∑ s = 0 n − 1 A s ∑ k 1 , ⋯ , k n − 1 ∏ ℓ = 1 n − 1 ( − 1 ) k ℓ + 1 ℓ k ℓ k ℓ ! tr ⁡ ( A ℓ ) k ℓ {\displaystyle \operatorname {adj} (A)=\textstyle \sum \limits _{s=0}^{n-1}A^{s}\sum \limits _{k_{1},\cdots ,k_{n-1}}\prod \limits _{\ell =1}^{n-1}{\dfrac {(-1)^{k_{\ell }+1}}{\ell ^{k_{\ell }}k_{\ell }!}}\operatorname {tr} (A^{\ell })^{k_{\ell }}} ここで n は A の次数、総和 ∑ の s, 数列 kl ≥ 0 は次の 1次ディオファントス方程式を満たしながら取るものとする： s + ∑ ℓ = 1 n − 1 ℓ k ℓ = n − 1 {\displaystyle s+\textstyle \sum \limits _{\ell =1}^{n-1}\ell k_{\ell }=n-1} 特に 2次の場合は、次のようになる： adj ⁡ ( A ) = I 2 ( tr ⁡ A ) − A {\displaystyle \operatorname {adj} (A)=I_{2}\left(\operatorname {tr} A\right)-A} 3次の場合は adj ⁡ ( A ) = 1 2 I 3 ( ( tr ⁡ A ) 2 − tr ⁡ A 2 ) − A ( tr ⁡ A ) + A 2 {\displaystyle \operatorname {adj} (A)={\frac {1}{2}}I_{3}\left((\operatorname {tr} A)^{2}-\operatorname {tr} A^{2}\right)-A\left(\operatorname {tr} A\right)+A^{2}} 4次の場合は adj ⁡ ( A ) = 1 6 I 4 ( ( tr ⁡ A ) 3 − 3 tr ⁡ A tr ⁡ A 2 + 2 tr ⁡ A 3 ) − 1 2 A ( ( tr ⁡ A ) 2 − tr ⁡ A 2 ) + A 2 ( tr ⁡ A ) − A 3 {\displaystyle \operatorname {adj} (A)={\frac {1}{6}}I_{4}\left((\operatorname {tr} A)^{3}-3\operatorname {tr} A\operatorname {tr} A^{2}+2\operatorname {tr} A^{3}\right)-{\frac {1}{2}}A\left((\operatorname {tr} A)^{2}-\operatorname {tr} A^{2}\right)+A^{2}\left(\operatorname {tr} A\right)-A^{3}} 上記の表示式は、A の固有多項式を効率良く求めることのできる、Faddeev–LeVerrier algorithmの最後の段階からも直接導出することができる。 余因子行列は、外積代数の抽象的な用語を使うことで表示することができる。V を n次元ベクトル空間とする。ベクトルの外積により双線形対が得られる： V × ∧ n − 1 V → ∧ n V {\displaystyle V\times \wedge ^{n-1}V\to \wedge ^{n}V} ベクトルの外積は完全対である。それ故、それは同型写像を引き起こす： ϕ : V   → ≅   Hom ⁡ ( ∧ n − 1 V , ∧ n V ) {\displaystyle \phi \colon V\ \xrightarrow {\cong } \ \operatorname {Hom} (\wedge ^{n-1}V,\wedge ^{n}V)} 明示すると、この対は、v ∈ V を ϕ v {\displaystyle \phi _{\boldsymbol {v}}} に写す： ϕ v ( α ) = v ∧ α ( α ∈ ∧ n − 1 V ) {\displaystyle \phi _{\boldsymbol {v}}(\alpha )={\boldsymbol {v}}\wedge \alpha \qquad (\alpha \in \wedge ^{n-1}V)} T : V → V を線形変換とする。T の(n − 1)次外冪による引き戻しは線形変換空間の射を作る。このとき T の余因子変換は次の合成で定義される： V   → ϕ   Hom ⁡ ( ∧ n − 1 V , ∧ n V )   → ( ∧ n − 1 T ) ∗   Hom ⁡ ( ∧ n − 1 V , ∧ n V )   → ϕ − 1   V {\displaystyle V\ \xrightarrow {\phi } \ \operatorname {Hom} (\wedge ^{n-1}V,\wedge ^{n}V)\ \xrightarrow {(\wedge ^{n-1}T)^{*}} \ \operatorname {Hom} (\wedge ^{n-1}V,\wedge ^{n}V)\ \xrightarrow {\phi ^{-1}} \ V} V = Rn に 基底 (e1, …, en) が与えられていて、T のこの基底に関する表現行列は A であるとき、T の余因子変換は A の余因子行列である。何故正しいのか考えてみるに、 ∧ n − 1 R n {\displaystyle \wedge ^{n-1}\mathbb {R} ^{n}} の基底を取る： { e 1 ∧ ⋯ ∧ e