last_modified: 2026-01-10
生成AIによる自動生成記事に関する免責事項 :
本記事は、Petersen & Pedersen著 The Matrix Cookbook (Nov 15, 2012 edition) のPage 10の内容(公式60〜75)を骨子とし、数理的な証明と応用例を大幅に加筆して再構成した解説記事です。筆者の学習目的で生成したものです。正確な内容は必ず一次情報で確認してください。
1. 序論:微細構造への視点と基本への回帰#
『The Matrix Cookbook』のPage 10は、これまで扱ってきた「逆行列」や「行列式」といった大域的な演算子の微分を、より微細な成分レベル で記述する公式群から始まります。これは、感度解析や数値計算の実装において、「特定の成分 X i j X_{ij} X ij が変化したとき、逆行列の成分 ( X − 1 ) k l (X^{-1})_{kl} ( X − 1 ) k l はどう動くか?」といった問いに答えるための強力なツールです。
また、本ページの中核をなすのが、固有値と固有ベクトルの微分 です。これは量子力学や振動工学において「摂動論(Perturbation Theory)」として知られる分野の線形代数的な基礎であり、主成分分析(PCA)のロバスト性解析など、現代のデータサイエンスとも密接に関わります。
後半では、行列微分の「九九」とも呼べる、ベクトルやスカラーの一次形式の微分公式が整理されており、これらは複雑な機械学習モデルの勾配計算を構成する原子(atom)となります。
2. 逆行列の微分の深化 (Eq. 60–65)#
Page 8-9 で学んだ逆行列の微分公式 d ( X − 1 ) = − X − 1 ( d X ) X − 1 d(X^{-1}) = -X^{-1} (dX) X^{-1} d ( X − 1 ) = − X − 1 ( d X ) X − 1 を、より具体的な形式や成分表示に応用します。
2.1 逆行列の成分ごとの微分 (Eq. 60)#
行列 X X X の特定の成分 X i j X_{ij} X ij が変化した際の、逆行列の成分 ( X − 1 ) k l (X^{-1})_{kl} ( X − 1 ) k l の変化率です。
【公式】
∂ ( X − 1 ) k l ∂ X i j = − ( X − 1 ) k i ( X − 1 ) j l (60) \frac{\partial (X^{-1})_{kl}}{\partial X_{ij}} = -(X^{-1})_{ki} (X^{-1})_{jl} \tag{60} ∂ X ij ∂ ( X − 1 ) k l = − ( X − 1 ) ki ( X − 1 ) j l ( 60 )
【証明】
基本公式 d ( X − 1 ) = − X − 1 ( d X ) X − 1 d(X^{-1}) = -X^{-1} (dX) X^{-1} d ( X − 1 ) = − X − 1 ( d X ) X − 1 を成分で考えます。
X i j X_{ij} X ij のみが変化する場合、d X dX d X は ( i , j ) (i, j) ( i , j ) 成分のみが 1 で他は 0 の行列(シングルエントリ行列 J i j J^{ij} J ij )となります。
d X = e i e j T dX = e_i e_j^T d X = e i e j T
これを代入すると、
∂ X − 1 ∂ X i j = − X − 1 ( e i e j T ) X − 1 = − ( X − 1 e i ) ( e j T X − 1 ) \frac{\partial X^{-1}}{\partial X_{ij}} = -X^{-1} (e_i e_j^T) X^{-1} = -(X^{-1} e_i) (e_j^T X^{-1}) ∂ X ij ∂ X − 1 = − X − 1 ( e i e j T ) X − 1 = − ( X − 1 e i ) ( e j T X − 1 )
( k , l ) (k, l) ( k , l ) 成分を取り出すために、左から e k T e_k^T e k T 、右から e l e_l e l を掛けます。
[ ∂ X − 1 ∂ X i j ] k l = − ( e k T X − 1 e i ) ( e j T X − 1 e l ) = − ( X − 1 ) k i ( X − 1 ) j l \left[ \frac{\partial X^{-1}}{\partial X_{ij}} \right]_{kl} = - (e_k^T X^{-1} e_i) (e_j^T X^{-1} e_l) = - (X^{-1})_{ki} (X^{-1})_{jl} [ ∂ X ij ∂ X − 1 ] k l = − ( e k T X − 1 e i ) ( e j T X − 1 e l ) = − ( X − 1 ) ki ( X − 1 ) j l
これで証明完了です。
【意義】
この公式は、行列の特定の要素の誤差が逆行列全体にどのように伝播するか(条件数や誤差解析)を評価する際に直接使用されます。
2.2 逆行列を含む二次形式・トレースの微分 (Eq. 61–64)#
これらは統計学や最適化で頻出する形式です。
【公式一覧】
∂ a T X − 1 b ∂ X = − X − T a b T X − T (61) \frac{\partial \mathbf{a}^T X^{-1} \mathbf{b}}{\partial X}
= -X^{-T} \mathbf{a} \mathbf{b}^T X^{-T}
\tag{61} ∂ X ∂ a T X − 1 b = − X − T a b T X − T ( 61 )
∂ det ( X − 1 ) ∂ X = − det ( X − 1 ) ( X − 1 ) T (62) \frac{\partial \det(X^{-1})}{\partial X}
= -\det(X^{-1}) (X^{-1})^T
\tag{62} ∂ X ∂ det ( X − 1 ) = − det ( X − 1 ) ( X − 1 ) T ( 62 )
∂ Tr ( A X − 1 B ) ∂ X = − ( X − 1 B A X − 1 ) T (63) \frac{\partial \operatorname{Tr}(A X^{-1} B)}{\partial X}
= -(X^{-1} B A X^{-1})^T
\tag{63} ∂ X ∂ Tr ( A X − 1 B ) = − ( X − 1 B A X − 1 ) T ( 63 )
∂ Tr ( ( X + A ) − 1 ) ∂ X = − ( X + A ) − T ( X + A ) − T (64) \frac{\partial \operatorname{Tr}\!\left((X+A)^{-1}\right)}{\partial X}
=
-(X+A)^{-T}(X+A)^{-T}
\tag{64} ∂ X ∂ Tr ( ( X + A ) − 1 ) = − ( X + A ) − T ( X + A ) − T ( 64 )
【Eq. 61 の導出】
スカラー関数 f = a T X − 1 b = Tr ( a T X − 1 b ) f = \mathbf{a}^T X^{-1} \mathbf{b} = \text{Tr}(\mathbf{a}^T X^{-1} \mathbf{b}) f = a T X − 1 b = Tr ( a T X − 1 b ) とみなします(スカラーのトレースは自身)。
d f = Tr ( a T d ( X − 1 ) b ) = Tr ( a T ( − X − 1 d X X − 1 ) b ) = − Tr ( X − 1 b a T X − 1 d X ) ( トレースの巡回性 ) \begin{aligned}
df &= \text{Tr}(\mathbf{a}^T d(X^{-1}) \mathbf{b}) \\
&= \text{Tr}(\mathbf{a}^T (-X^{-1} dX X^{-1}) \mathbf{b}) \\
&= -\text{Tr}(X^{-1} \mathbf{b} \mathbf{a}^T X^{-1} dX) \quad (\text{トレースの巡回性})
\end{aligned} df = Tr ( a T d ( X − 1 ) b ) = Tr ( a T ( − X − 1 d X X − 1 ) b ) = − Tr ( X − 1 b a T X − 1 d X ) ( トレースの巡回性 )
勾配は d X dX d X の係数行列の転置なので、
∂ f ∂ X = − ( X − 1 b a T X − 1 ) T = − X − T a b T X − T \frac{\partial f}{\partial X} = -(X^{-1} \mathbf{b} \mathbf{a}^T X^{-1})^T = -X^{-T} \mathbf{a} \mathbf{b}^T X^{-T} ∂ X ∂ f = − ( X − 1 b a T X − 1 ) T = − X − T a b T X − T
これは原典の − ( X − 1 ) T a b T ( X − 1 ) T -(X^{-1})^T \mathbf{a} \mathbf{b}^T (X^{-1})^T − ( X − 1 ) T a b T ( X − 1 ) T と一致します(( A B ) T = B T A T (A B)^T = B^T A^T ( A B ) T = B T A T に注意)。
【Eq. 62 の導出】
det ( X − 1 ) = 1 / det ( X ) \det(X^{-1}) = 1/\det(X) det ( X − 1 ) = 1/ det ( X ) です。商の微分則より、
∂ ( 1 / det X ) ∂ X = − 1 ( det X ) 2 ∂ det X ∂ X \frac{\partial (1/\det X)}{\partial X} = -\frac{1}{(\det X)^2} \frac{\partial \det X}{\partial X} ∂ X ∂ ( 1/ det X ) = − ( det X ) 2 1 ∂ X ∂ det X
ヤコビの公式 ∂ det X ∂ X = det X ( X − T ) \frac{\partial \det X}{\partial X} = \det X (X^{-T}) ∂ X ∂ d e t X = det X ( X − T ) を代入すれば、直ちに得られます。
2.3 変数変換の連鎖律 (Eq. 65)#
関数 J J J が行列 A A A の関数であり、かつ A A A の逆行列 W = A − 1 W = A^{-1} W = A − 1 の関数として表現されている場合の連鎖律です。
【公式】
∂ J ∂ A = − A − T ∂ J ∂ W A − T (65) \frac{\partial J}{\partial A} = -A^{-T} \frac{\partial J}{\partial W} A^{-T} \tag{65} ∂ A ∂ J = − A − T ∂ W ∂ J A − T ( 65 )
【導出】
成分ごとの連鎖律 ∂ J ∂ A i j = ∑ k , l ∂ J ∂ W k l ∂ W k l ∂ A i j \frac{\partial J}{\partial A_{ij}} = \sum_{k,l} \frac{\partial J}{\partial W_{kl}} \frac{\partial W_{kl}}{\partial A_{ij}} ∂ A ij ∂ J = ∑ k , l ∂ W k l ∂ J ∂ A ij ∂ W k l を考えます。
Eq. 60 より ∂ W k l ∂ A i j = − W k i W j l \frac{\partial W_{kl}}{\partial A_{ij}} = -W_{ki} W_{jl} ∂ A ij ∂ W k l = − W ki W j l です。これを代入すると、
∂ J ∂ A i j = ∑ k , l ∂ J ∂ W k l ( − W k i W j l ) = − ∑ k , l ( W T ) i k [ ∂ J ∂ W ] k l ( W T ) l j \frac{\partial J}{\partial A_{ij}} = \sum_{k,l} \frac{\partial J}{\partial W_{kl}} (-W_{ki} W_{jl}) = - \sum_{k,l} (W^T)_{ik} \left[ \frac{\partial J}{\partial W} \right]_{kl} (W^T)_{lj} ∂ A ij ∂ J = k , l ∑ ∂ W k l ∂ J ( − W ki W j l ) = − k , l ∑ ( W T ) ik [ ∂ W ∂ J ] k l ( W T ) l j
これを行列積の形で書けば、
∂ J ∂ A = − W T ∂ J ∂ W W T = − A − T ∂ J ∂ W A − T \frac{\partial J}{\partial A} = - W^T \frac{\partial J}{\partial W} W^T = - A^{-T} \frac{\partial J}{\partial W} A^{-T} ∂ A ∂ J = − W T ∂ W ∂ J W T = − A − T ∂ W ∂ J A − T
となります。これは、パラメータを「行列そのもの」から「その逆行列(精度行列など)」に変換した際の勾配の変化則を与えます。
3. 固有値の微分 (Derivatives of Eigenvalues)#
行列 X X X が微小変化したとき、その固有値や固有ベクトルはどう変化するか? これに答えるのが Eq. 66–68 です。
3.1 固有値の総和と積 (Eq. 66)#
【公式】
∂ ∂ X ∑ eig ( X ) = ∂ Tr ( X ) ∂ X = I ∂ ∂ X ∏ eig ( X ) = ∂ det ( X ) ∂ X = det ( X ) X − T (66) \begin{aligned}
\frac{\partial}{\partial X} \sum \text{eig}(X) &= \frac{\partial \text{Tr}(X)}{\partial X} = I \\
\frac{\partial}{\partial X} \prod \text{eig}(X) &= \frac{\partial \det(X)}{\partial X} = \det(X) X^{-T}
\end{aligned} \tag{66} ∂ X ∂ ∑ eig ( X ) ∂ X ∂ ∏ eig ( X ) = ∂ X ∂ Tr ( X ) = I = ∂ X ∂ det ( X ) = det ( X ) X − T ( 66 )
【解説】
これらは固有値の基本性質 ∑ λ i = Tr ( X ) \sum \lambda_i = \text{Tr}(X) ∑ λ i = Tr ( X ) および ∏ λ i = det ( X ) \prod \lambda_i = \det(X) ∏ λ i = det ( X ) から自明に導かれます。個々の固有値の挙動を知る必要がない場合(全体の統計量のみ必要な場合)は、これらを用います。
3.2 対称行列の固有値・固有ベクトルの微分 (Eq. 67, 68)#
行列 A A A が実対称行列であり、固有値 λ i \lambda_i λ i が重複を持たない(distinct)場合、個々の固有値・固有ベクトルの微分は以下の美しい形で与えられます。
【公式】
d λ i = v i T ( d A ) v i (67) d\lambda_i
= \mathbf{v}_i^T (dA) \mathbf{v}_i
\tag{67} d λ i = v i T ( d A ) v i ( 67 )
∂ v i = ∑ j ≠ i v j v j T ( ∂ A ) v i λ i − λ j (68) \partial \mathbf{v}_i
=
\sum_{j \ne i}
\frac{\mathbf{v}_j \mathbf{v}_j^{T} (\partial A)\,\mathbf{v}_i}
{\lambda_i - \lambda_j}
\tag{68} ∂ v i = j = i ∑ λ i − λ j v j v j T ( ∂ A ) v i ( 68 )
ここで v i \mathbf{v}_i v i は正規化された固有ベクトル (v i T v i = 1 \mathbf{v}_i^T \mathbf{v}_i = 1 v i T v i = 1 )、( ⋅ ) + (\cdot)^+ ( ⋅ ) + はムーア・ペンローズ擬似逆行列です。
【Eq. 67(固有値)の証明:ヘルマン-ファインマンの定理】
固有値方程式 A v i = λ i v i A \mathbf{v}_i = \lambda_i \mathbf{v}_i A v i = λ i v i の全微分をとります。
( d A ) v i + A ( d v i ) = ( d λ i ) v i + λ i ( d v i ) (dA) \mathbf{v}_i + A (d\mathbf{v}_i) = (d\lambda_i) \mathbf{v}_i + \lambda_i (d\mathbf{v}_i) ( d A ) v i + A ( d v i ) = ( d λ i ) v i + λ i ( d v i )
左から v i T \mathbf{v}_i^T v i T を掛けます。
v i T ( d A ) v i + v i T A ( d v i ) = d λ i v i T v i + λ i v i T ( d v i ) \mathbf{v}_i^T (dA) \mathbf{v}_i + \mathbf{v}_i^T A (d\mathbf{v}_i) = d\lambda_i \mathbf{v}_i^T \mathbf{v}_i + \lambda_i \mathbf{v}_i^T (d\mathbf{v}_i) v i T ( d A ) v i + v i T A ( d v i ) = d λ i v i T v i + λ i v i T ( d v i )
ここで以下の性質を使います。
正規化条件 v i T v i = 1 \mathbf{v}_i^T \mathbf{v}_i = 1 v i T v i = 1 より、その微分は 2 v i T d v i = 0 2 \mathbf{v}_i^T d\mathbf{v}_i = 0 2 v i T d v i = 0 、つまり v i T d v i = 0 \mathbf{v}_i^T d\mathbf{v}_i = 0 v i T d v i = 0 。
対称性より v i T A = ( A v i ) T = ( λ i v i ) T = λ i v i T \mathbf{v}_i^T A = (A \mathbf{v}_i)^T = (\lambda_i \mathbf{v}_i)^T = \lambda_i \mathbf{v}_i^T v i T A = ( A v i ) T = ( λ i v i ) T = λ i v i T 。
これらを代入すると、第2項と第4項(右辺第2項)が相殺されます(λ i v i T d v i \lambda_i \mathbf{v}_i^T d\mathbf{v}_i λ i v i T d v i )。
残るのは
v i T ( d A ) v i = d λ i \mathbf{v}_i^T (dA) \mathbf{v}_i = d\lambda_i v i T ( d A ) v i = d λ i
のみです。
【Eq. 68(固有ベクトル)の直感的理解】
固有ベクトルの変化 d v i d\mathbf{v}_i d v i は、他の固有ベクトル v j ( j ≠ i ) \mathbf{v}_j (j \neq i) v j ( j = i ) の線形結合で表されます。微分の式を変形すると
( λ i I − A ) d v i = ( d A − d λ i I ) v i (\lambda_i I - A) d\mathbf{v}_i = (dA - d\lambda_i I) \mathbf{v}_i ( λ i I − A ) d v i = ( d A − d λ i I ) v i
となります。( λ i I − A ) (\lambda_i I - A) ( λ i I − A ) はランク落ちしており逆行列を持ちませんが、v i \mathbf{v}_i v i と直交する部分空間では可逆です。その一般化逆行列が ( λ i I − A ) + (\lambda_i I - A)^+ ( λ i I − A ) + であり、これを掛けることで Eq. 68 が得られます。
【応用:レイリー商と振動解析】
レイリー商 R ( x ) = x T A x x T x R(x) = \frac{x^T A x}{x^T x} R ( x ) = x T x x T A x の停留値は固有値に一致します。Eq. 67 は、構造物が損傷して剛性行列 A A A が微小変化したとき、固有振動数(固有値の平方根)がどう変化するかを予測する式そのものであり、構造ヘルスモニタリングの基礎理論となっています。
4. 行列・ベクトル・スカラーの基本一次微分 (Eq. 69–75)#
最後に、行列微分の基本構成要素となる一次形式(First Order Forms)の微分です。これらは定義そのものですが、レイアウト(転置の有無)に注意が必要です。
4.1 基本線形形式 (Eq. 69–72)#
【公式一覧】
∂ x T a ∂ x = a (69) \frac{\partial \mathbf{x}^T \mathbf{a}}{\partial \mathbf{x}}
= \mathbf{a}
\tag{69} ∂ x ∂ x T a = a ( 69 )
∂ a T X b ∂ X = a b T (70) \frac{\partial \mathbf{a}^T X \mathbf{b}}{\partial X}
= \mathbf{a} \mathbf{b}^T
\tag{70} ∂ X ∂ a T X b = a b T ( 70 )
∂ a T X T b ∂ X = b a T (71) \frac{\partial \mathbf{a}^T X^T \mathbf{b}}{\partial X}
= \mathbf{b} \mathbf{a}^T
\tag{71} ∂ X ∂ a T X T b = b a T ( 71 )
∂ a T X a ∂ X = a a T (72) \frac{\partial \mathbf{a}^T X \mathbf{a}}{\partial X}
= \mathbf{a} \mathbf{a}^T
\tag{72} ∂ X ∂ a T X a = a a T ( 72 )
【解説】
これらは「係数が残る」というスカラー微分の直感(∂ a x / ∂ x = a \partial ax/\partial x = a ∂ a x / ∂ x = a )を行列・ベクトルに拡張したものです。
Eq. 70: a T X b = ∑ i j a i X i j b j \mathbf{a}^T X \mathbf{b} = \sum_{ij} a_i X_{ij} b_j a T X b = ∑ ij a i X ij b j を X i j X_{ij} X ij で微分すると a i b j a_i b_j a i b j が残ります。これを並べた行列は直積 a b T \mathbf{a} \mathbf{b}^T a b T です。
Eq. 71: X T X^T X T がある場合、a T X T b = b T X a \mathbf{a}^T X^T \mathbf{b} = \mathbf{b}^T X \mathbf{a} a T X T b = b T X a と転置してから Eq. 70 を適用すれば b a T \mathbf{b} \mathbf{a}^T b a T が得られます。
4.2 成分微分とシングルエントリ行列 (Eq. 73–75)#
成分ごとの微分を形式的に扱うための記法です。
【公式】
∂ X ∂ X i j = J i j (73) \frac{\partial X}{\partial X_{ij}}
= J^{ij}
\tag{73} ∂ X ij ∂ X = J ij ( 73 )
∂ ( X A ) i j ∂ X m n = δ i m A n j = ( J m n A ) i j (74) \frac{\partial (XA)_{ij}}{\partial X_{mn}}
= \delta_{im} A_{nj}
= (J^{mn} A)_{ij}
\tag{74} ∂ X mn ∂ ( X A ) ij = δ im A nj = ( J mn A ) ij ( 74 )
∂ ( X T A ) i j ∂ X m n = δ i n A m j = ( J n m A ) i j (75) \frac{\partial (X^T A)_{ij}}{\partial X_{mn}}
= \delta_{in} A_{mj}
= (J^{nm} A)_{ij}
\tag{75} ∂ X mn ∂ ( X T A ) ij = δ in A mj = ( J nm A ) ij ( 75 )
【解説:シングルエントリ行列 J i j J^{ij} J ij 】
ここで J i j J^{ij} J ij は、( i , j ) (i, j) ( i , j ) 成分のみが 1 で他が 0 の行列(標準基底行列 E i j E_{ij} E ij とも書かれる)を指します。
Eq. 73: 行列 X X X 全体をその成分 X i j X_{ij} X ij で偏微分すると、その成分の場所だけ 1 が立ちます。
Eq. 74: 積 X A XA X A の ( i , j ) (i, j) ( i , j ) 成分 ( X A ) i j = ∑ k X i k A k j (XA)_{ij} = \sum_k X_{ik} A_{kj} ( X A ) ij = ∑ k X ik A kj を X m n X_{mn} X mn で微分します。k = n k=n k = n かつ i = m i=m i = m のときのみ値 A n j A_{nj} A nj が残ります。これをクロネッカーのデルタ δ i m \delta_{im} δ im で表現しています。
これらの微視的な微分則は、ニューラルネットワークのバックプロパゲーションや、テンソル計算ライブラリの自動微分(Autograd)の基礎ロジックを構成しています。
5. 結論#
『The Matrix Cookbook』Page 10 は、一見すると地味な成分計算や基本的な恒等式に見えますが、その応用範囲は広大です。
逆行列の成分微分 (Eq. 60) : 数値計算の安定性解析や条件数の評価。
固有値摂動 (Eq. 67) : 物理系の振動解析、主成分分析のロバスト性評価。
基本線形形式 (Eq. 69-72) : 最小二乗法からディープラーニングまで、あらゆる最適化問題の勾配計算の第一歩。
これらの公式を「手足のように」使えるようになることで、複雑な行列関数の微分も、要素還元的に分解して解くことが可能になります。
6. 実践的応用例:数式から現実世界へ#
Page 10 で扱った公式群は、単なる微分の計算練習ではありません。これらは、橋梁の健全性診断からAIの学習アルゴリズムに至るまで、現代技術の根幹を支える数理モデルの一部となっています。ここでは3つの具体的な応用シナリオを紹介します。
応用例1:構造ヘルスモニタリング(固有値摂動論の応用)#
土木工学や機械工学において、橋やビルの「固有振動数」の変化を検知することで、構造物の損傷(クラックや腐食)を発見する技術があります。これには Eq. 67(固有値の微分) が直接的に応用されています。
【問題設定】
構造物の振動は、剛性行列 K K K と質量行列 M M M を用いた一般化固有値問題 K v = λ M v K \mathbf{v} = \lambda M \mathbf{v} K v = λ M v で記述されます(ここでは簡単のため M = I M=I M = I とし、標準固有値問題 K v = λ v K \mathbf{v} = \lambda \mathbf{v} K v = λ v を考えます)。
λ \lambda λ は固有振動数の二乗に比例します。構造物が損傷を受けると、剛性がわずかに低下します(K → K + δ K K \to K + \delta K K → K + δK )。このとき、計測可能な固有値 λ \lambda λ はどう変化するでしょうか?
【解析】
Eq. 67 ∂ λ i = v i T ( ∂ A ) v i \partial \lambda_i = \mathbf{v}_i^T (\partial A) \mathbf{v}_i ∂ λ i = v i T ( ∂ A ) v i を適用します。ここで A = K A=K A = K です。
δ λ i ≈ v i T ( δ K ) v i \delta \lambda_i \approx \mathbf{v}_i^T (\delta K) \mathbf{v}_i δ λ i ≈ v i T ( δK ) v i
この式は極めて重要な示唆を含んでいます。
損傷の検知 : δ K \delta K δK (剛性低下)は通常負定値であるため、δ λ i \delta \lambda_i δ λ i も負になります。つまり、固有振動数が下がれば損傷の疑いがあります。
損傷箇所の特定 : ベクトル v i \mathbf{v}_i v i は「モードシェイプ(揺れ方)」を表します。もし損傷箇所(δ K \delta K δK が大きい場所)が、あるモード v i \mathbf{v}_i v i の節(揺れない点)付近であれば、v i T ( δ K ) v i \mathbf{v}_i^T (\delta K) \mathbf{v}_i v i T ( δK ) v i はほぼゼロになり、その固有値 λ i \lambda_i λ i は変化しません。逆に、腹(大きく揺れる点)付近であれば感度は最大になります。
したがって、複数のモードの固有値変化 δ λ 1 , δ λ 2 , … \delta \lambda_1, \delta \lambda_2, \dots δ λ 1 , δ λ 2 , … を観測し、この式を逆解析することで、「どこが壊れているか(δ K \delta K δK の分布)」を推定できるのです。
応用例2:数値計算の精度保証(逆行列成分微分の応用)#
連立一次方程式 A x = b Ax = b A x = b をコンピュータで解く際、係数行列 A A A に含まれる誤差(測定誤差や丸め誤差)が、解 x x x にどれほど影響を与えるかを知る必要があります。これには Eq. 60(逆行列の成分微分) が使われます。
【問題設定】
解は x = A − 1 b x = A^{-1} b x = A − 1 b で与えられます。A A A のある成分 A i j A_{ij} A ij が微小に δ A i j \delta A_{ij} δ A ij だけずれたとき、解の第 k k k 成分 x k x_k x k の誤差 δ x k \delta x_k δ x k を評価します。
【解析】
x k = ∑ l ( A − 1 ) k l b l x_k = \sum_l (A^{-1})_{kl} b_l x k = ∑ l ( A − 1 ) k l b l です。連鎖律と Eq. 60 を用います。
∂ x k ∂ A i j = ∑ l ∂ ( A − 1 ) k l ∂ A i j b l = ∑ l ( − ( A − 1 ) k i ( A − 1 ) j l ) b l = − ( A − 1 ) k i ∑ l ( A − 1 ) j l b l \begin{aligned}
\frac{\partial x_k}{\partial A_{ij}} &= \sum_l \frac{\partial (A^{-1})_{kl}}{\partial A_{ij}} b_l \\
&= \sum_l \left( -(A^{-1})_{ki} (A^{-1})_{jl} \right) b_l \\
&= -(A^{-1})_{ki} \sum_l (A^{-1})_{jl} b_l
\end{aligned} ∂ A ij ∂ x k = l ∑ ∂ A ij ∂ ( A − 1 ) k l b l = l ∑ ( − ( A − 1 ) ki ( A − 1 ) j l ) b l = − ( A − 1 ) ki l ∑ ( A − 1 ) j l b l
ここで、∑ l ( A − 1 ) j l b l \sum_l (A^{-1})_{jl} b_l ∑ l ( A − 1 ) j l b l は、元の解の第 j j j 成分 x j x_j x j そのものです。したがって、
δ x k ≈ − ( A − 1 ) k i x j ⋅ δ A i j \delta x_k \approx -(A^{-1})_{ki} x_j \cdot \delta A_{ij} δ x k ≈ − ( A − 1 ) ki x j ⋅ δ A ij
という極めてシンプルな関係式が得られます。
この式は、「逆行列の要素 ( A − 1 ) k i (A^{-1})_{ki} ( A − 1 ) ki が大きい場合」、あるいは「解の成分 x j x_j x j が大きい場合」に、誤差が増幅されることを示しています。これが「条件数(Condition Number)」による誤差解析の、成分レベルでの詳細な内訳となります。
応用例3:ディープラーニングのバックプロパゲーション(基本線形形式の応用)#
ニューラルネットワークの学習において、勾配計算(誤差逆伝播法)は行列微分の連続です。ここでは、最も基本的な全結合層(Affine層)の勾配導出に、Eq. 70, 71(一次形式の微分) がどう使われているかを確認します。
【問題設定】
ある層の入力ベクトルを h \mathbf{h} h 、重み行列を W W W 、バイアスを b \mathbf{b} b とし、出力 z = W h + b \mathbf{z} = W \mathbf{h} + \mathbf{b} z = W h + b を計算します。
最終的な損失関数 L L L に対する出力の勾配 δ = ∂ L ∂ z \boldsymbol{\delta} = \frac{\partial L}{\partial \mathbf{z}} δ = ∂ z ∂ L (誤差信号)が上層から伝わってきたとき、重み W W W に対する勾配 ∂ L ∂ W \frac{\partial L}{\partial W} ∂ W ∂ L を求めたいとします。
【解析】
連鎖律により、∂ L ∂ W = ∂ L ∂ z ∂ z ∂ W \frac{\partial L}{\partial W} = \frac{\partial L}{\partial \mathbf{z}} \frac{\partial \mathbf{z}}{\partial W} ∂ W ∂ L = ∂ z ∂ L ∂ W ∂ z となりますが、これはテンソル計算になるため、スカラー形式の微分(変分)で考えます。
損失の変化分 d L dL d L は、
d L = δ T d z dL = \boldsymbol{\delta}^T d\mathbf{z} d L = δ T d z
ここで z = W h + b \mathbf{z} = W \mathbf{h} + \mathbf{b} z = W h + b なので、d z = ( d W ) h d\mathbf{z} = (dW) \mathbf{h} d z = ( d W ) h です(h , b \mathbf{h}, \mathbf{b} h , b は固定)。
d L = δ T ( d W ) h = Tr ( δ T ( d W ) h ) = Tr ( h δ T d W ) dL = \boldsymbol{\delta}^T (dW) \mathbf{h} = \text{Tr}(\boldsymbol{\delta}^T (dW) \mathbf{h}) = \text{Tr}(\mathbf{h} \boldsymbol{\delta}^T dW) d L = δ T ( d W ) h = Tr ( δ T ( d W ) h ) = Tr ( h δ T d W )
行列微分の定義 d f = Tr ( G T d X ) df = \text{Tr}(G^T dX) df = Tr ( G T d X ) と比較すると、勾配 G = ∂ L ∂ W G = \frac{\partial L}{\partial W} G = ∂ W ∂ L は ( h δ T ) T (\mathbf{h} \boldsymbol{\delta}^T)^T ( h δ T ) T すなわち δ h T \boldsymbol{\delta} \mathbf{h}^T δ h T となります。
これを Page 10 の公式 Eq. 70 ∂ a T X b ∂ X = a b T \frac{\partial \mathbf{a}^T X \mathbf{b}}{\partial X} = \mathbf{a} \mathbf{b}^T ∂ X ∂ a T X b = a b T を使って直接導いてみましょう。
損失関数 L L L を W W W の関数として局所的に線形近似すると、L ≈ δ T ( W h ) + const L \approx \boldsymbol{\delta}^T (W \mathbf{h}) + \text{const} L ≈ δ T ( W h ) + const とみなせます(z \mathbf{z} z への依存性を通じて)。
ここで a = δ , X = W , b = h \mathbf{a} = \boldsymbol{\delta}, X = W, \mathbf{b} = \mathbf{h} a = δ , X = W , b = h と置けば、Eq. 70 より直ちに
∂ ( δ T W h ) ∂ W = δ h T \frac{\partial (\boldsymbol{\delta}^T W \mathbf{h})}{\partial W} = \boldsymbol{\delta} \mathbf{h}^T ∂ W ∂ ( δ T W h ) = δ h T
が得られます。
教科書でよく見る「誤差 δ \delta δ と入力 h h h の直積」という更新則は、実は Page 10 の最も基本的な一次形式の微分公式そのものなのです。
参考文献#
Petersen, K. B., & Pedersen, M. S. (2012). The Matrix Cookbook . Technical University of Denmark. (Page 10, Eqs 60-75)
Magnus, J. R., & Neudecker, H. (2019). Matrix Differential Calculus with Applications in Statistics and Econometrics . John Wiley & Sons. (Eigenvalue derivatives)
Golub, G. H., & Van Loan, C. F. (2013). Matrix Computations . Johns Hopkins University Press. (Perturbation theory)
補足:行列微分を「スカラーの微分」として直感的に理解する#
Eq. 61–64 に登場する複雑な数式(det \det det や Tr \text{Tr} Tr 、逆行列の微分)は、一見すると直感的に捉えにくいものです。しかし、これらはすべて高校数学で学ぶ 「1 / x 1/x 1/ x の微分」のアナロジー として理解することが可能です。
以下に、行列演算をスカラー演算に「翻訳」して解釈するための視点を提供します。
1. 記号の「翻訳」ルール#
行列の世界の記号を、単純な数値(スカラー)に置き換えて考えます。
行列の世界 数字(スカラー)の世界 対応する概念 X X X x x x 変数 X − 1 X^{-1} X − 1 1 / x 1/x 1/ x 逆数 det ( X ) \det(X) det ( X ) x x x (あるいは x n x^n x n )体積・大きさ Tr ( X ) \text{Tr}(X) Tr ( X ) x x x (あるいは ∑ x \sum x ∑ x )線形和 A , B , a , b A, B, \mathbf{a}, \mathbf{b} A , B , a , b a , b a, b a , b 定数
基本となるスカラーの微分公式は以下の通りです。
( 1 x ) ′ = − 1 x 2 \left( \frac{1}{x} \right)' = -\frac{1}{x^2} ( x 1 ) ′ = − x 2 1
行列微分の公式も、この「マイナスがつきて、逆数が2回掛かる」という構造を共有しています。
2. 各公式の直感的解釈#
Eq. 61: a T X − 1 b \mathbf{a}^T X^{-1} \mathbf{b} a T X − 1 b の微分
スカラー翻訳 : a b x \frac{ab}{x} x ab の微分
( a b x ) ′ = − a b x 2 = − 1 x ⋅ a ⋅ b ⋅ 1 x \left( \frac{ab}{x} \right)' = -\frac{ab}{x^2} = - \frac{1}{x} \cdot a \cdot b \cdot \frac{1}{x} ( x ab ) ′ = − x 2 ab = − x 1 ⋅ a ⋅ b ⋅ x 1
行列の式 : − X − T a b T X − T -X^{-T} \mathbf{a} \mathbf{b}^T X^{-T} − X − T a b T X − T
定数ベクトル a , b \mathbf{a}, \mathbf{b} a , b が真ん中に残り、その両側を X − 1 X^{-1} X − 1 (の転置)が挟み込む形になります。
Eq. 62: det ( X − 1 ) \det(X^{-1}) det ( X − 1 ) の微分
スカラー翻訳 : 1 / x 1/x 1/ x の微分
( 1 x ) ′ = − 1 x 2 = − ( 1 x ) ⋅ 1 x \left( \frac{1}{x} \right)' = -\frac{1}{x^2} = - \left(\frac{1}{x}\right) \cdot \frac{1}{x} ( x 1 ) ′ = − x 2 1 = − ( x 1 ) ⋅ x 1
行列の式 : − det ( X − 1 ) ( X − 1 ) T -\det(X^{-1}) (X^{-1})^T − det ( X − 1 ) ( X − 1 ) T
det ( X − 1 ) \det(X^{-1}) det ( X − 1 ) が最初の 1 / x 1/x 1/ x に、( X − 1 ) T (X^{-1})^T ( X − 1 ) T が2つ目の 1 / x 1/x 1/ x に相当します。
Eq. 63: Tr ( A X − 1 B ) \text{Tr}(A X^{-1} B) Tr ( A X − 1 B ) の微分
スカラー翻訳 : a b x \frac{ab}{x} x ab の微分
( a b x ) ′ = − a b x 2 \left( \frac{ab}{x} \right)' = -\frac{ab}{x^2} ( x ab ) ′ = − x 2 ab
行列の式 : − ( X − 1 B A X − 1 ) T -(X^{-1} B A X^{-1})^T − ( X − 1 B A X − 1 ) T
式の中に X − 1 … X − 1 X^{-1} \dots X^{-1} X − 1 … X − 1 という形で、逆行列が2回登場している点に注目してください。これが 1 / x 2 1/x^2 1/ x 2 の構造です。
Eq. 64: Tr ( ( X + A ) − 1 ) \text{Tr}((X+A)^{-1}) Tr (( X + A ) − 1 ) の微分
スカラー翻訳 : 1 x + a \frac{1}{x+a} x + a 1 の微分
( 1 x + a ) ′ = − 1 ( x + a ) 2 \left( \frac{1}{x+a} \right)' = -\frac{1}{(x+a)^2} ( x + a 1 ) ′ = − ( x + a ) 2 1
行列の式 : − ( X + A ) − T ( X + A ) − T -(X+A)^{-T}(X+A)^{-T} − ( X + A ) − T ( X + A ) − T
まさに ( X + A ) − 1 (X+A)^{-1} ( X + A ) − 1 の2乗(積)そのものです。
3. まとめ#
逆行列を含む行列微分の公式は、以下の3つのルールに集約されます。
符号 : 必ずマイナス(− - − )がつく。
次数 : 逆行列 X − 1 X^{-1} X − 1 が必ず2回作用する(1 / x 2 1/x^2 1/ x 2 の構造)。
定数 : 定数行列やベクトルはそのまま残る。
この視点を持つことで、数式の誤りを検算したり、新しい公式を推測したりすることが容易になります。
補足:Eq.69〜75 一次形式のスカラー翻訳リスト#
行列微分で最もつまずきやすいのが、「いつ転置 T ^T T がつくのか?」という点です。
Eq. 69〜75 は、スカラーで言うところの y = a x y = ax y = a x の微分ですが、行列の世界では 「変数の位置」 と 「結果の形(次元)」 によって転置の有無が変わります。
【ベクトル×ベクトル】内積の微分 (Eq. 69, 70)#
公式 :
∂ ( x T a ) ∂ x = a , ∂ ( a T x ) ∂ x = a \frac{\partial ( \mathbf{x}^T \mathbf{a} )}{\partial \mathbf{x}} = \mathbf{a}, \quad \frac{\partial ( \mathbf{a}^T \mathbf{x} )}{\partial \mathbf{x}} = \mathbf{a} ∂ x ∂ ( x T a ) = a , ∂ x ∂ ( a T x ) = a
スカラー翻訳 : x a xa x a (または a x ax a x )の微分
思考 : y = a x y = ax y = a x です。
微分 : a a a
行列の事情 :
内積 x T a \mathbf{x}^T \mathbf{a} x T a はスカラーなので、順序を入れ替えても値は同じ(x T a = a T x \mathbf{x}^T \mathbf{a} = \mathbf{a}^T \mathbf{x} x T a = a T x )です。
そのため、どちらを微分しても結果は同じベクトル a \mathbf{a} a になります。
注意 : 分母レイアウト(The Matrix Cookbookの標準)では、列ベクトル x \mathbf{x} x での微分結果は列ベクトル a \mathbf{a} a になります。
【行列×ベクトル】線形変換の微分 (Eq. 71, 72)#
公式 :
∂ ( A x ) ∂ x = A T , ∂ ( x T A ) ∂ x = A \frac{\partial ( A \mathbf{x} )}{\partial \mathbf{x}} = A^T, \quad \frac{\partial ( \mathbf{x}^T A )}{\partial \mathbf{x}} = A ∂ x ∂ ( A x ) = A T , ∂ x ∂ ( x T A ) = A
スカラー翻訳 : a x ax a x の微分
思考 : y = a x y = ax y = a x です。微分したら係数 a a a が残ります。
行列の事情 :
ここが最大の難所です。
Eq. 71 (A x A\mathbf{x} A x ) : 変数 x \mathbf{x} x が右側 にあります。微分結果は転置 されて A T A^T A T になります。
Eq. 72 (x T A \mathbf{x}^T A x T A ) : 変数 x \mathbf{x} x が左側 にあります。微分結果はそのまま A A A になります。
覚え方 : 「行列微分の世界では、係数が変数の反対側にあるとき(A x Ax A x の A A A は左、微分は右から作用するイメージ)、ねじれて転置する」と覚えるか、単に 「A x Ax A x の微分は A T A^T A T 」 と丸暗記するのが実用的です。
【ベクトル×行列×ベクトル】双一次形式の行列微分 (Eq. 73, 74)#
今度は変数が行列 X X X の場合です。
公式 :
∂ ( a T X b ) ∂ X = a b T \frac{\partial ( \mathbf{a}^T X \mathbf{b} )}{\partial X} = \mathbf{a} \mathbf{b}^T ∂ X ∂ ( a T X b ) = a b T
∂ ( a T X T b ) ∂ X = b a T \frac{\partial ( \mathbf{a}^T X^T \mathbf{b} )}{\partial X} = \mathbf{b} \mathbf{a}^T ∂ X ∂ ( a T X T b ) = b a T
スカラー翻訳 : a x b axb a x b の x x x による微分
思考 : y = a b ⋅ x y = ab \cdot x y = ab ⋅ x です。
微分 : 係数 a b ab ab
行列の事情 :
スカラー係数 a b ab ab に相当するものが、ベクトル a \mathbf{a} a と b \mathbf{b} b です。
行列 X X X と同じサイズ (n × m n \times m n × m ) に復元するため、直積(Outer Product) a b T \mathbf{a}\mathbf{b}^T a b T の形になります。
Eq. 74 : X T X^T X T が入っている場合、転置の関係で b a T \mathbf{b}\mathbf{a}^T b a T (順序逆転)になります。これもスカラーなら a b = b a ab=ba ab = ba なので同じことです。
【基本則】まとめ#
スカラーと同じ : 基本的に「係数が残る」という点では a x → a ax \to a a x → a と同じです。
A x Ax A x の罠 : A x Ax A x を x x x で微分すると A T A^T A T になる(係数が転置する)。
X X X の復元 : a T X b \mathbf{a}^T X \mathbf{b} a T X b を微分すると、左右のベクトルが合体して行列 a b T \mathbf{a}\mathbf{b}^T a b T になる。
この「一次微分の型」をマスターしておけば、より複雑な二次形式(x T A x x^T A x x T A x )の微分も、「積の微分=一次微分の足し算」として理解できるようになります。
補足:固有値・固有ベクトルの微分 (Eq. 67, 68) の実例解説#
『The Matrix Cookbook』Eq. 67, 68 は、対称行列 A A A が微小に変化したとき、その固有値 λ \lambda λ と固有ベクトル v \mathbf{v} v がどう変化するかを記述する公式です。
1. 公式の直感的理解#
Eq. 67: 固有値の微分
∂ λ i ∂ A = v i v i T ( つまり d λ i = v i T d A v i ) \frac{\partial \lambda_i}{\partial A} = \mathbf{v}_i \mathbf{v}_i^T \quad (\text{つまり } d\lambda_i = \mathbf{v}_i^T dA \mathbf{v}_i) ∂ A ∂ λ i = v i v i T ( つまり d λ i = v i T d A v i )
意味 : 固有値 λ i \lambda_i λ i の変化量は、行列の変化 d A dA d A を、対応する固有ベクトル v i \mathbf{v}_i v i で「サンドイッチ」して射影した成分に等しい。
物理的直感 : 量子力学における「摂動論(1次)」そのものです。エネルギーの変化は、摂動ハミルトニアンの期待値 ⟨ ψ ∣ H ′ ∣ ψ ⟩ \langle \psi | H' | \psi \rangle ⟨ ψ ∣ H ′ ∣ ψ ⟩ で与えられます。
Eq. 68: 固有ベクトルの微分
d v i = ∑ j ≠ i v j T d A v i λ i − λ j v j d\mathbf{v}_i = \sum_{j \neq i} \frac{\mathbf{v}_j^T dA \mathbf{v}_i}{\lambda_i - \lambda_j} \mathbf{v}_j d v i = j = i ∑ λ i − λ j v j T d A v i v j
意味 : 固有ベクトル v i \mathbf{v}_i v i の変化は、**他のすべての固有ベクトル v j \mathbf{v}_j v j との「混ざり合い」**によって生じます。
係数 : 「固有値の差(エネルギーギャップ) λ i − λ j \lambda_i - \lambda_j λ i − λ j 」が分母にあるため、固有値が近いモード同士ほど激しく混ざり合います。
注意 : λ i = λ j \lambda_i = \lambda_j λ i = λ j (縮退)の場合は分母がゼロになり、この式は発散します(縮退摂動論が必要)。
2. 具体的な数値例 (2 × 2 2 \times 2 2 × 2 対称行列)#
具体的な数字を使って、この公式が正しいことを確認してみましょう。
【設定】
元の行列 A A A と、微小変化した行列 A n e w A_{new} A n e w を考えます。
A = [ 1 0 0 3 ] , d A = [ 0 0.1 0.1 0 ] ( ϵ = 0.1 の非対角摂動 ) A = \begin{bmatrix} 1 & 0 \\ 0 & 3 \end{bmatrix}, \quad dA = \begin{bmatrix} 0 & 0.1 \\ 0.1 & 0 \end{bmatrix} \quad (\epsilon = 0.1 \text{ の非対角摂動}) A = [ 1 0 0 3 ] , d A = [ 0 0.1 0.1 0 ] ( ϵ = 0.1 の非対角摂動 )
【Step 1: 元の固有値・固有ベクトル】
行列 A A A は対角行列なので、即座に求まります。
固有値 : λ 1 = 1 , λ 2 = 3 \lambda_1 = 1, \quad \lambda_2 = 3 λ 1 = 1 , λ 2 = 3
固有ベクトル : v 1 = [ 1 0 ] , v 2 = [ 0 1 ] \mathbf{v}_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \quad \mathbf{v}_2 = \begin{bmatrix} 0 \\ 1 \end{bmatrix} v 1 = [ 1 0 ] , v 2 = [ 0 1 ]
【Step 2: 公式による予測 (微分)】
固有値の変化 (d λ d\lambda d λ )
d λ 1 = v 1 T d A v 1 = [ 1 0 ] [ 0 0.1 0.1 0 ] [ 1 0 ] = 0 d\lambda_1 = \mathbf{v}_1^T dA \mathbf{v}_1 = \begin{bmatrix} 1 & 0 \end{bmatrix} \begin{bmatrix} 0 & 0.1 \\ 0.1 & 0 \end{bmatrix} \begin{bmatrix} 1 \\ 0 \end{bmatrix} = 0 d λ 1 = v 1 T d A v 1 = [ 1 0 ] [ 0 0.1 0.1 0 ] [ 1 0 ] = 0
d λ 2 = v 2 T d A v 2 = [ 0 1 ] [ 0 0.1 0.1 0 ] [ 0 1 ] = 0 d\lambda_2 = \mathbf{v}_2^T dA \mathbf{v}_2 = \begin{bmatrix} 0 & 1 \end{bmatrix} \begin{bmatrix} 0 & 0.1 \\ 0.1 & 0 \end{bmatrix} \begin{bmatrix} 0 \\ 1 \end{bmatrix} = 0 d λ 2 = v 2 T d A v 2 = [ 0 1 ] [ 0 0.1 0.1 0 ] [ 0 1 ] = 0
予測 : 1次の範囲では、固有値は変化しない(1 1 1 と 3 3 3 のまま)。
固有ベクトルの変化 (d v d\mathbf{v} d v )
v 1 \mathbf{v}_1 v 1 の変化(v 2 \mathbf{v}_2 v 2 が混ざる):
d v 1 = v 2 T d A v 1 λ 1 − λ 2 v 2 = 0.1 1 − 3 v 2 = − 0.05 [ 0 1 ] = [ 0 − 0.05 ] d\mathbf{v}_1 = \frac{\mathbf{v}_2^T dA \mathbf{v}_1}{\lambda_1 - \lambda_2} \mathbf{v}_2 = \frac{0.1}{1 - 3} \mathbf{v}_2 = -0.05 \begin{bmatrix} 0 \\ 1 \end{bmatrix} = \begin{bmatrix} 0 \\ -0.05 \end{bmatrix} d v 1 = λ 1 − λ 2 v 2 T d A v 1 v 2 = 1 − 3 0.1 v 2 = − 0.05 [ 0 1 ] = [ 0 − 0.05 ]
よって、新しいベクトルは v 1 ′ ≈ [ 1 − 0.05 ] \mathbf{v}_1' \approx \begin{bmatrix} 1 \\ -0.05 \end{bmatrix} v 1 ′ ≈ [ 1 − 0.05 ] 。
v 2 \mathbf{v}_2 v 2 の変化(v 1 \mathbf{v}_1 v 1 が混ざる):
d v 2 = v 1 T d A v 2 λ 2 − λ 1 v 1 = 0.1 3 − 1 v 1 = 0.05 [ 1 0 ] = [ 0.05 0 ] d\mathbf{v}_2 = \frac{\mathbf{v}_1^T dA \mathbf{v}_2}{\lambda_2 - \lambda_1} \mathbf{v}_1 = \frac{0.1}{3 - 1} \mathbf{v}_1 = 0.05 \begin{bmatrix} 1 \\ 0 \end{bmatrix} = \begin{bmatrix} 0.05 \\ 0 \end{bmatrix} d v 2 = λ 2 − λ 1 v 1 T d A v 2 v 1 = 3 − 1 0.1 v 1 = 0.05 [ 1 0 ] = [ 0.05 0 ]
よって、新しいベクトルは v 2 ′ ≈ [ 0.05 1 ] \mathbf{v}_2' \approx \begin{bmatrix} 0.05 \\ 1 \end{bmatrix} v 2 ′ ≈ [ 0.05 1 ] 。
【Step 3: 実際の値との比較】
A + d A = [ 1 0.1 0.1 3 ] A + dA = \begin{bmatrix} 1 & 0.1 \\ 0.1 & 3 \end{bmatrix} A + d A = [ 1 0.1 0.1 3 ] を実際に解いてみます。
特性方程式 ( 1 − λ ) ( 3 − λ ) − 0.01 = 0 ⟹ λ 2 − 4 λ + 2.99 = 0 (1-\lambda)(3-\lambda) - 0.01 = 0 \implies \lambda^2 - 4\lambda + 2.99 = 0 ( 1 − λ ) ( 3 − λ ) − 0.01 = 0 ⟹ λ 2 − 4 λ + 2.99 = 0 。
真の固有値 : λ = 4 ± 16 − 11.96 2 = 2 ± 1.01 ≈ 2 ± 1.005 \lambda = \frac{4 \pm \sqrt{16 - 11.96}}{2} = 2 \pm \sqrt{1.01} \approx 2 \pm 1.005 λ = 2 4 ± 16 − 11.96 = 2 ± 1.01 ≈ 2 ± 1.005
λ 1 ≈ 0.995 \lambda_1 \approx 0.995 λ 1 ≈ 0.995 (変化量 − 0.005 -0.005 − 0.005 )
λ 2 ≈ 3.005 \lambda_2 \approx 3.005 λ 2 ≈ 3.005 (変化量 + 0.005 +0.005 + 0.005 )
公式の予測(変化なし)は1次近似としては正しかった(実際には2次の変化 ∼ ϵ 2 \sim \epsilon^2 ∼ ϵ 2 が起きている)。
真の固有ベクトル (v 1 \mathbf{v}_1 v 1 のみ):
( A + d A − λ 1 I ) x = [ 0.005 0.1 0.1 2.005 ] [ x y ] = 0 (A+dA - \lambda_1 I) \mathbf{x} = \begin{bmatrix} 0.005 & 0.1 \\ 0.1 & 2.005 \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix} = \mathbf{0} ( A + d A − λ 1 I ) x = [ 0.005 0.1 0.1 2.005 ] [ x y ] = 0
0.1 x + 2.005 y = 0 ⟹ x ≈ − 20 y 0.1 x + 2.005 y = 0 \implies x \approx -20 y 0.1 x + 2.005 y = 0 ⟹ x ≈ − 20 y 。正規化を無視すれば [ 1 − 0.05 ] \begin{bmatrix} 1 \\ -0.05 \end{bmatrix} [ 1 − 0.05 ] 。
公式の予測 [ 1 − 0.05 ] \begin{bmatrix} 1 \\ -0.05 \end{bmatrix} [ 1 − 0.05 ] と完全に一致!
3. 結論:何が嬉しいのか?#
この 2 × 2 2 \times 2 2 × 2 の例から分かる通り、行列微分の公式 (Eq. 67, 68) を使うと、「わざわざ固有値問題を解き直さなくても」 、微小変化後の結果を瞬時に予測できます。
λ \lambda λ の感度 : 対角成分の変化には敏感だが、非対角成分の変化には鈍感(1次では変化しない)。
v \mathbf{v} v の感度 : 非対角成分の変化によって、相手のベクトルが「固有値の差に反比例して」混ざってくる。
これが、分子軌道法(MO)で「エネルギー準位が近い軌道ほど混ざりやすい(軌道相互作用の原理)」と言われる数学的な理由です。