シルベスターの慣性法則の意味と証明

更新日時 2022/05/08

シルベスターの慣性法則(シルベスターの慣性律,Sylvester’s law of inertia)を紹介します。平方完成に関連するおもしろい定理です。

まずは定理の主張です。3つ紹介します。

シルベスターの慣性法則

1(大雑把な言い方)
多変数の二次関数を平方完成したとき,二乗の係数のプラス・0・マイナスの数は平方完成のやり方によらない。

2(数式で正確に):
対称行列 AA に対して,正の固有値の数,00 の固有値の数,負の固有値の数を p(A),z(A),n(A)p(A),z(A),n(A) とおく。正則行列 SS を用いて B=SASB=S^{\top}AS という関係が成立するなら,p(A)=p(B),z(A)=z(B),n(A)=n(B)p(A)=p(B),z(A)=z(B),n(A)=n(B)

3(簡潔な言い方):
互いに合同な行列の固有値の各符号の数は同じ。

  • まずは,具体例を使って1の意味を説明します。
  • 次に,1~3が同じ主張であることを説明します。
  • 最後に,2を証明します。
目次
  • 簡単な例で主張1を理解する

  • 行列の合同

  • 平方完成と行列の合同

  • 1と2が同じ意味であることの証明

  • シルベスターの慣性法則の証明

簡単な例で主張1を理解する

f(x,y)=2x2+4xy+y2f(x,y)=2x^2+4xy+y^2 をいくつかの方法で平方完成せよ。

  • xx についての二次式と見て平方完成すると,
    f(x,y)=2(x+y)2y2f(x,y)=2(x+y)^2-y^2
    二乗の係数は 221-1 であり,プラスが1つ,マイナスが1つ
  • yy についての二次式と見て平方完成すると,
    f(x,y)=(y+2x)22x2f(x,y)=(y+2x)^2-2x^2
    二乗の係数は 112-2 であり,プラスが1つ,マイナスが1つ

このように,平方完成のやり方は複数ありますが,どのように平方完成しても「各符号の数」は変わりません。これがシルベスターの慣性法則です。

行列の合同

次は,冒頭の主張1~3が同じ意味であることを説明します。2と3については「行列の合同」の意味がわかれば簡単です。

2と3が同じ意味であることの説明

2つの対称行列 A,BA,B の間に,(ある正則行列 SS が存在して)B=SASB=S^{\top}AS という関係があるとき,A,BA,B は互いに合同であると言います。つまり,以下の2つは同じ主張です。

  1. 対称行列 AA に対して,正の固有値の数,00 の固有値の数,負の固有値の数を p(A),z(A),n(A)p(A),z(A),n(A) とおく。正則行列 SS を用いて B=SASB=S^{\top}AS が成立するなら,p(A)=p(B),z(A)=z(B),n(A)=n(B)p(A)=p(B),z(A)=z(B),n(A)=n(B)
  2. 互いに合同な対称行列の固有値の各符号の数は同じ。

平方完成と行列の合同

主張1が同じ意味であることの確認はけっこう大変です。まずは,前提知識(二次形式・平方完成と行列の合同の関係)を説明してから,主張1と主張2が同値であることを証明します。

二次形式

二次形式(二次の項のみからなる多変数の二次関数)を考えます。このような関数は,変数を表すベクトル xundefined\overrightarrow{x} と,係数を表す対称行列 AA を使って xundefinedAxundefined\overrightarrow{x}^{\top}A\overrightarrow{x} と表せます。

例えば,さきほどの例 f(x,y)=2x2+4xy+y2f(x,y)=2x^2+4xy+y^2(xy)(2221)(xy)\begin{pmatrix}x&y\end{pmatrix}\begin{pmatrix}2&2\\2&1\end{pmatrix}\begin{pmatrix}x\\y\end{pmatrix} のように表せます。

詳細は→二次形式の意味,微分,標準形など

平方完成と行列の合同

  • Stundefined=xundefinedS\overrightarrow{t}=\overrightarrow{x} のように,正則行列 SS を使って変数を xundefined\overrightarrow{x} から tundefined\overrightarrow{t} に変換してみます。

  • この変換で,二次形式は,
    xundefinedAxundefined=(Stundefined)A(Stundefined)=tundefinedSAStundefined\overrightarrow{x}^{\top}A\overrightarrow{x}\\=(S\overrightarrow{t})^{\top}A(S\overrightarrow{t})\\ =\overrightarrow{t}^{\top}S^{\top}AS\overrightarrow{t}
    となります。

  • SASS^{\top}AS が対角行列 D=(d1000d2000dn)D=\begin{pmatrix}d_1&0&\cdots&0\\0&d_2&\dots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\dots&d_n\end{pmatrix} になるように SS を選べば,二次形式は i=1nditi2\displaystyle\sum_{i=1}^n d_it_i^2 というきれいな形になります。

さきほどの例で,f(x,y)=2x2+4xy+y2f(x,y)=2x^2+4xy+y^2 は,2(x+y)2y22(x+y)^2-y^2 と変形できた。これは,X=x+y,Y=yX=x+y,Y=y と置くと 2X2Y22X^2-Y^2 と書ける。逆に解くと y=Y,x=XYy=Y,x=X-Y となる。つまり S=(1101)S=\begin{pmatrix}1&-1\\0&1\end{pmatrix} の例。実際,

SAS=(1011)(2221)(1101)=(2001)S^{\top}AS=\begin{pmatrix}1&0\\-1&1\end{pmatrix}\begin{pmatrix}2&2\\2&1\end{pmatrix}\begin{pmatrix}1&-1\\0&1\end{pmatrix}\\ =\begin{pmatrix}2&0\\0&-1\end{pmatrix}

と対角行列になっている。

つまり,平方完成は SASS^{\top}AS が対角行列になるような変換 SS を探すことと言えます。

1と2が同じ意味であることの証明

冒頭の主張1と2が同値であること(以下の定理)を証明します。なお,この証明を理解できなくても,後述するシルベスターの慣性法則(主張2)の証明は理解できます。

定理

以下は同値。

  1. 多変数の二次関数を平方完成したとき,二乗の係数のプラス・0・マイナスの数は平方完成のやり方によらない。
  2. 対称行列 AA に対して,正の固有値の数,00 の固有値の数,負の固有値の数を p(A),z(A),n(A)p(A),z(A),n(A) とおく。正則行列 SS を用いて B=SASB=S^{\top}AS という関係が成立するなら,p(A)=p(B),z(A)=z(B),n(A)=n(B)p(A)=p(B),z(A)=z(B),n(A)=n(B)
2ならば1の証明

二次形式 xundefinedAxundefined\overrightarrow{x}^{\top}A\overrightarrow{x} を平方完成して yundefinedSASyundefined\overrightarrow{y}^{\top}S^{\top}AS\overrightarrow{y}

になったとする。SAS=DS^{\top}AS=D は対角行列である。

「平方完成したときの二乗の係数の各符号の数」
=「DD の対角成分の各符号の数」
=「DD の固有値の各符号の数」
=「AA の固有値の各符号の数」

である。最後の等号で主張2を使った。よって,最右辺である「AA の固有値の各符号の数」は AA だけで決まるので平方完成のやり方 SS によらない。

1ならば2の証明

B=SASB=S^{\top}AS のとき,

  • BB の固有値は U1BU=DBU^{-1}BU=D_B と対角化したときの DBD_B の対角成分
  • AA の固有値は V1AV=DAV^{-1}AV=D_A と対角化したときの DAD_A の対角成分

A,BA,B は対称行列なので,直交行列 U,VU,V で対角化できる)

次に,AA の平方完成を考える

  • DA=V1AV=VAVD_A=V^{-1}AV=V^{\top}AV は平方完成の1つ
  • DB=U1SASU=(SU)A(SU)D_B=U^{-1}S^{\top}ASU=(SU)^{\top}A(SU) も平方完成の1つ

よって,主張1が真ならば DAD_ADBD_B の対角成分の各符号の数は等しい。

シルベスターの慣性法則の証明

主張2の証明を紹介します。シルベスターの慣性則 基礎数理(素晴らしいPDF)に記載されている証明そのものです。

証明

任意の正則行列 SS は,基本行列の積で表せる。(→補足1)

よって,任意の基本行列 PP による変換 B=PAPB=P^{\top}AP で固有値の各符号の数が不変であることを示せば良い。以下, 3種類の基本行列それぞれについて確認する。

  1. 行の交換に対応する基本行列:
    例えば,P=(010100001)P=\begin{pmatrix}0&1&0\\1&0&0\\0&0&1\end{pmatrix} など。この場合 PP は直交行列なので,固有値自体が変わらない。なぜなら,det(AλI)=det(PAPλPIP)=det(BλI)\det(A-\lambda I)=\det(P^{\top}AP-\lambda P^{\top}IP)=\det(B-\lambda I) であり固有方程式が不変であるから。

  2. 定数倍を他の行に加える操作に対応する基本行列:
    例えば,P(c)=(100010c01)P(c)=\begin{pmatrix}1&0&0\\0&1&0\\c&0&1\end{pmatrix} など。c=0c=0 の場合単位行列であり,P(0)AP(0)P(0)^{\top}AP(0) の固有値は AA の固有値と同じ。パラメータを連続的に 0c0\to c まで変化させるとき,P(c)AP(c)P(c)^{\top}AP(c) の固有値も連続的に変化する(→補足2)。その過程で,P(c)P(c) は常に正則なので,P(c)AP(c)P(c)^{\top}AP(c) のゼロでない固有値が 00 になることはない。よって,変化の間,固有値の各符号の数は不変である。つまり,任意の cc に対して P(c)AP(c)P(c)^{\top}AP(c)P(0)AP(0)=AP(0)^{\top}AP(0)=A の固有値の各符号の数は同じ。

  3. 定数倍に対応する基本行列:
    例えば,P=(c00010001)P=\begin{pmatrix}c&0&0\\0&1&0\\0&0&1\end{pmatrix} など。c=±1c=\pm 1 の場合は直交行列であり PAPP^{\top}AP の固有値と AA の固有値は同じ。そうでないときも,cc を連続的に変化させることで(2と同様の議論から)固有値の各符号の数は不変。

補足1:

  • 正則行列 SS は,行基本変形で必ず単位行列にできる。具体的には,
    • まず,一列目を単位行列と同じ形にする(正則行列なので一列目に非ゼロ成分があるので,それを1行目に持ってきて1にして残りの成分を0にすればよい)
    • 同じように,2列目以降も順番に単位行列と同じ形にしていく。
  • よって,P1P2PnS=IP_1P_2\dots P_nS=I となる基本行列 P1,,PnP_1,\cdots,P_n が存在する。よって,S=Pn1P21P11S=P_n^{-1}\cdots P_2^{-1} P_1^{-1} となる。基本行列の逆行列は基本行列なので SS は基本行列の積で表せる。

補足2:

  • cc を連続的に変化させたとき,固有方程式 det(P(c)AP(c)λI)\det(P(c)^{\top}AP(c)-\lambda I) の各係数 αi\alpha_i も連続的に変化する。なぜなら,αi\alpha_icc の多項式であるから。
  • αi\alpha_i を連続的に変化させたとき,固有方程式の解も連続的に変化する。なぜなら,係数の変化に対して代数方程式の解は連続であるから(詳細は外部サイトのPDF)。

証明で紹介したPDFは「基礎数理」という講義の資料です。この講義は私も受講したことがありますが,最高でした。