ヤコビの公式

行列の微分積分学（英語版）において、ヤコビの公式（英語: Jacobi's formula）は行列 A の導函数および余因子を用いて行列式の導函数を表す方法である。 A を実数から n × n 行列への微分可能な写像とすると、tr(X) を行列 X の跡として d d t det A ( t ) = tr ⁡ ( adj ⁡ ( A ( t ) ) d A ( t ) d t ) = ( det A ( t ) ) ⋅ tr ⁡ ( A ( t ) − 1 ⋅ d A ( t ) d t ) {\displaystyle {\frac {d}{dt}}\det A(t)=\operatorname {tr} \left(\operatorname {adj} (A(t))\,{\frac {dA(t)}{dt}}\right)=\left(\det A(t)\right)\cdot \operatorname {tr} \left(A(t)^{-1}\cdot \,{\frac {dA(t)}{dt}}\right)} となる（右の等号は A(t) が正則な場合にのみ成立する）。 特殊例として、次の式が成り立つ。 ∂ det ( A ) ∂ A i j = adj ⁡ ( A ) j i {\displaystyle {\partial \det(A) \over \partial A_{ij}}=\operatorname {adj} (A)_{ji}} dA を A の導函数とすると、公式は次のようになる。 d det ( A ) = tr ⁡ ( adj ⁡ ( A ) d A ) {\displaystyle d\det(A)=\operatorname {tr} (\operatorname {adj} (A)\,dA)} 名称は数学者カール・グスタフ・ヤコブ・ヤコビにちなむ。 次の補題を先に証明する。 補題 A と B を同次元 n での正方行列の組とする。このとき、次の式が成り立つ。 ∑ i ∑ j A i j B i j = tr ⁡ ( A T B ) {\displaystyle \sum _{i}\sum _{j}A_{ij}B_{ij}=\operatorname {tr} (A^{\rm {T}}B)} 証明 行列の積 AB は次の成分を持つ。 ( A B ) j k = ∑ i A j i B i k {\displaystyle (AB)_{jk}=\sum _{i}A_{ji}B_{ik}} 行列 A を転置行列 AT で置き換えることは、成分の添字を並び替えることと等しい。 ( A T B ) j k = ∑ i A i j B i k {\displaystyle (A^{\rm {T}}B)_{jk}=\sum _{i}A_{ij}B_{ik}} 結果は両辺の跡を取ることで導かれる。 tr ⁡ ( A T B ) = ∑ j ( A T B ) j j = ∑ j ∑ i A i j B i j = ∑ i ∑ j A i j B i j   ◻ {\displaystyle \operatorname {tr} (A^{\rm {T}}B)=\sum _{j}(A^{\rm {T}}B)_{jj}=\sum _{j}\sum _{i}A_{ij}B_{ij}=\sum _{i}\sum _{j}A_{ij}B_{ij}\ \square } 定理（ヤコビの公式） 実数から n × n 行列への微分可能な任意の写像 A に対して d det ( A ) = tr ⁡ ( adj ⁡ ( A ) d A ) {\displaystyle d\det(A)=\operatorname {tr} (\operatorname {adj} (A)\,dA)} が成り立つ。 証明 A の行列式に対する余因子展開は次のように表せられる。 det ( A ) = ∑ j A i j adj T ⁡ ( A ) i j {\displaystyle \det(A)=\sum _{j}A_{ij}\operatorname {adj} ^{\rm {T}}(A)_{ij}} 和は行列の任意の行 i に対して実行されることに注意。 A の行列式は A の要素の函数と見なせる。 det ( A ) = F ( A 11 , A 12 , … , A 21 , A 22 , … , A n n ) {\displaystyle \det(A)=F\,(A_{11},A_{12},\ldots ,A_{21},A_{22},\ldots ,A_{nn})} それゆえ、連鎖律より、導函数は d det ( A ) = ∑ i ∑ j ∂ F ∂ A i j d A i j {\displaystyle d\det(A)=\sum _{i}\sum _{j}{\partial F \over \partial A_{ij}}\,dA_{ij}} となる。 この加算は行列の n × n 要素すべてで実行される。 余因子展開右辺の ∂F/∂Aij を得るために、添字 i は任意に定められる（計算を最適化するため。他の任意の選択からも同様の結果が得られるが、過程がより困難なものとなりうる）。特に、∂ / ∂Aij の最初の添字と一致するように選ぶことができる。 ∂ det ( A ) ∂ A i j = ∂ ∑ k A i k adj T ⁡ ( A ) i k ∂ A i j = ∑ k ∂ ( A i k adj T ⁡ ( A ) i k ) ∂ A i j {\displaystyle {\partial \det(A) \over \partial A_{ij}}={\partial \sum _{k}A_{ik}\operatorname {adj} ^{\rm {T}}(A)_{ik} \over \partial A_{ij}}=\sum _{k}{\partial (A_{ik}\operatorname {adj} ^{\rm {T}}(A)_{ik}) \over \partial A_{ij}}} 積の微分法則より ∂ det ( A ) ∂ A i j = ∑ k ∂ A i k ∂ A i j adj T ⁡ ( A ) i k + ∑ k A i k ∂ adj T ⁡ ( A ) i k ∂ A i j {\displaystyle {\partial \det(A) \over \partial A_{ij}}=\sum _{k}{\partial A_{ik} \over \partial A_{ij}}\operatorname {adj} ^{\rm {T}}(A)_{ik}+\sum _{k}A_{ik}{\partial \operatorname {adj} ^{\rm {T}}(A)_{ik} \over \partial A_{ij}}} となる。 ここで、もし行列 Aij の要素および要素 Aik の余因子 adjT(A)ik が同じ行（あるいは列）にある場合、Aik の余因子はその行（あるいは列）以外の要素で表されることから、余因子は Aij の函数とならない。それゆえ ∂ adj T ⁡ ( A ) i k ∂ A i j = 0 {\displaystyle {\partial \operatorname {adj} ^{\rm {T}}(A)_{ik} \over \partial A_{ij}}=0} であり、 ∂ det ( A ) ∂ A i j = ∑ k adj T ⁡ ( A ) i k ∂ A i k ∂ A i j {\displaystyle {\partial \det(A) \over \partial A_{ij}}=\sum _{k}\operatorname {adj} ^{\rm {T}}(A)_{ik}{\partial A_{ik} \over \partial A_{ij}}} A のすべての要素は互いに独立であるから、δ をクロネッカーのデルタとして ∂ A i k ∂ A i j = δ j k {\displaystyle {\partial A_{ik} \over \partial A_{ij}}=\delta _{jk}} それゆえ ∂ det ( A ) ∂ A i j = ∑ k adj T ⁡ ( A ) i k δ j k = adj T ⁡ ( A ) i j {\displaystyle {\partial \det(A) \over \partial A_{ij}}=\sum _{k}\operatorname {adj} ^{\rm {T}}(A)_{ik}\delta _{jk}=\operatorname {adj} ^{\rm {T}}(A)_{ij}} すなわち d ( det ( A ) ) = ∑ i ∑ j adj T ⁡ ( A ) i j d A i j {\displaystyle d(\det(A))=\sum _{i}\sum _{j}\operatorname {adj} ^{\rm {T}}(A)_{ij}\,dA_{ij}} となり、補題を用いることで次の結果が得られる。 d ( det ( A ) ) = tr ⁡ ( adj ⁡ ( A ) d A )   ◻ {\displaystyle d(\det(A))=\operatorname {tr} (\operatorname {adj} (A)\,dA)\ \square } 補題1 det' を det の導函数として、det'(I) = tr である。この等式は単位行列によって定まる det の導関数は跡と等しいことを意味している。導関数 det'(I) は n × n 行列を実数へ写す線形演算子である。 証明 方向微分の定義と微分可能な函数の基本的な性質を用いることで、次の式を得る。 det ′ ( I ) ( T ) = ∇ T det ( I ) = lim ε → 0 det ( I + ε T ) − det I ε {\displaystyle \det '(I)(T)=\nabla _{T}\det(I)=\lim _{\varepsilon \to 0}{\frac {\det(I+\varepsilon T)-\det I}{\varepsilon }}} det(I + εT) は n 次元での ε に関する多項式であり、T の固有多項式と密接にかかわる。定数項（ε = 0）は1であり、ε の一次項は trT となる。 補題2 正則行列 A に対して、det'(A)(T) = det A tr(A−1T) である。 証明 X の函数 det X = det ( A A − 1 X ) = det ( A )   det ( A − 1 X ) {\displaystyle \det X=\det(AA^{-1}X)=\det(A)\ \det(A^{-1}X)} を考える。 det X の導函数を計算し、上式の通り補題1を用いて X = A での値を求め、連鎖律を用いることで det ′ ( A ) ( T ) = det A   det ′ ( I ) ( A − 1 T ) = det A   t r ( A − 1 T ) {\displaystyle \det '(A)(T)=\det A\ \det '(I)(A^{-1}T)=\det A\ \mathrm {tr} (A^{-1}T)} を得る。 定理（ヤコビの公式） d d t det A = t r ( a d j   A d A d t ) {\displaystyle {\frac {d}{dt}}\det A=\mathrm {tr} \left(\mathrm {adj} \ A{\frac {dA}{dt}}\right)} 証明 A が正則な場合、補題2より、T = dA/dt を用いて d d t det A = det A t r ( A − 1 d A d t ) = t r ( a d j   A d A d t ) {\displaystyle {\frac {d}{dt}}\det A=\det A\;\mathrm {tr} \left(A^{-1}{\frac {dA}{dt}}\right)=\mathrm {tr} \left(\mathrm {adj} \ A\;{\frac {dA}{dt}}\right)} となる。 A から A−1 への余因子と関連する等式を用いる。正則線形行列は行列空間上で稠密であるから公式はすべての行列に対し成り立つ。 ヤコビ公式の両辺は A および A' の係数に関して多項式である。それゆえ A の固有値が相異なり、かつゼロでないような稠密な部分集合上で多項恒等式を示せば十分である。 A の因子が A = BC のように微分可能ならば、 t r ( A − 1 A ′ ) = t r ( ( B C ) − 1 ( B C ) ′ ) = t r ( B − 1 B ′ ) + t r ( C − 1 C ′ ) {\displaystyle \mathrm {tr} (A^{-1}A')=\mathrm {tr} ((BC)^{-1}(BC)')=\mathrm {tr} (B^{-1}B')+\mathrm {tr} (C^{-1}C')} である。 特に、L が正則ならば、I = L−1 L かつ 0 = t r ( I − 1 I ′ ) = t r ( L ( L − 1 ) ′ ) + t r ( L − 1 L ′ ) {\displaystyle 0=\mathrm {tr} (I^{-1}I')=\mathrm {tr} (L(L^{-1})')+\mathrm {tr} (L^{-1}L')} である。 A は相異なる固有値を持つから、A = L−1 DL（D は対角行列）を満たす微分可能な複素正則行列 L が存在する。 このとき t r ( A − 1 A ′ ) = t r ( L ( L − 1 ) ′ ) + t r ( D − 1 D ′ ) + t r ( L − 1 L ′ ) = t r ( D − 1 D ′ ) {\displaystyle \mathrm {tr} (A^{-1}A')=\mathrm {tr} (L(L^{-1})')+\mathrm {tr} (D^{-1}D')+\mathrm {tr} (L^{-1}L')=\mathrm {tr} (D^{-1}D')} である。 λi（i = 1, ... , n）を A の固有値とする。このとき det ( A ) ′ det ( A ) = ∑ i = 1 n λ i ′ / λ i = t r ( D − 1 D ′ ) = t r ( A − 1 A ′ ) {\displaystyle {\frac {\det(A)'}{\det(A)}}=\sum _{i=1}^{n}\lambda _{i}'/\lambda _{i}=\mathrm {tr} (D^{-1}D')=\mathrm {tr} (A^{-1}A')} すなわち相異なるゼロでない固有値を持つ行列 A に対するヤコビ公式となる。 次の式は行列指数函数の行列式と跡を結びつける有用な関係式である。 この事実は対角行列に対して明らかであり、以下に一般化された証明を述べる。 任意の正則行列 A(t) に対し、連鎖律の部分で次のことを示した。 d d t det A ( t ) = det A ( t ) tr ⁡ ( A ( t ) − 1 d d t A ( t ) ) {\displaystyle {\frac {d}{dt}}\det A(t)=\det A(t)\;\operatorname {tr} \left(A(t)^{-1}\,{\frac {d}{dt}}A(t)\right)} ここで A(t) = exp(tB) の場合を考えることで、次の式を得る。 d d t det e t B = tr ⁡ ( B ) det e t B {\displaystyle {\frac {d}{dt}}\det e^{tB}=\operatorname {tr} (B)\det e^{tB}} この微分方程式を解くことで、求める結果が得られる。 ヤコビの公式は固有多項式を解くためのファデーエフ＝ルヴェリエ法（英語版）や、ケイリー・ハミルトンの定理の応用で用いられる。例えば、上記で示された式 d d t det A ( t ) = det A ( t )   tr ⁡ ( A ( t ) − 1 d d t A ( t ) ) {\displaystyle {\frac {d}{dt}}\det A(t)=\det A(t)\ \operatorname {tr} \left(A(t)^{-1}\,{\frac {d}{dt}}A(t)\right)} に対して A(t) = tI − B を用いることで d d t det ( t I − B ) = det ( t I − B ) tr ⁡ [ ( t I − B ) − 1 ] = tr ⁡ [ adj ⁡ ( t I − B ) ] {\displaystyle {\frac {d}{dt}}\det(tI-B)=\det(tI-B)\operatorname {tr} [(tI-B)^{-1}]=\operatorname {tr} [\operatorname {adj} (tI-B)]} が得られる。ただし adj は余因子行列を表す。 ^ Magnus & Neudecker (1999, pp. 149–150), Part Three, Section 8.3 Magnus, Jan R.; Neudecker, Heinz (1999). Matrix Differential Calculus with Applications in Statistics and Econometrics (Revised ed.). Wiley. ISBN 0-471-98633-X. https://books.google.com/books?id=0CXXdKKiIpQC  Bellman, Richard (1997). Introduction to Matrix Analysis. SIAM. ISBN 0-89871-399-4. https://books.google.com/books?id=QVCflvTPYE8C