2次形式と定値性#

2次形式#

変数の2次の項のみからなる式を 2次形式(quadratic form) と呼ぶ。\(n\)変数\(x_1,\dots,x_n\)の2次形式は次のように書ける

\[\begin{split} f = a_{11} x_1^2+a_{22} x_2^2+\cdots+a_{n n} x_n^2+2 a_{12} x_1 x_2+2 a_{13} x_1 x_3+\cdots+2 a_{n(n-1)} x_n x_{n-1}\\ \end{split}\]

2次形式の別表記#

これは次のように表すこともできる。

\[ f = \sum_{i=1}^n \sum_{j=1}^n a_{i j} x_i x_j \]

ただし、\(a_{ij} = a_{ji}\)とする。

例:\(n=2\)の場合
\[\begin{split} \begin{aligned} f &= a_{11} x_1^2 + a_{22} x_2^2 + 2 a_{12} x_1 x_2 \\ &= a_{11} x_1^2 + a_{12} x_1 x_2 + a_{21} x_1 x_2 + a_{22} x_2^2 \\ &= \sum_{i=1}^2 \sum_{j=1}^2 a_{i j} x_i x_j \end{aligned} \end{split}\]

2次形式の行列表記#

行列

\[\begin{split} \boldsymbol{A}=\left(\begin{array}{ccc} a_{11} & \cdots & a_{1 n} \\ \vdots & \ddots & \vdots \\ a_{n 1} & \cdots & a_{n n} \end{array}\right), \quad \boldsymbol{x}=\left(\begin{array}{c} x_1 \\ \vdots \\ x_n \end{array}\right) \end{split}\]

\(a_{ij} = a_{ji}\)のとき、すなわち\(A\)が対称行列のとき、2次形式は次のようなベクトルの内積として表せる

\[ f = ( \boldsymbol{x}, \boldsymbol{Ax} ) \]

このとき\(A\)を2次形式\(f\)係数行列 と呼ぶ。

\[\begin{split} f =\left(\binom{x}{y},\left(\begin{array}{ll} a & b \\ b & c \end{array}\right)\binom{x}{y}\right) = \left(\binom{x}{y},\binom{a x+b y}{b x+c y}\right)=x(a x+b y)+y(b x+c y)=a x^2+2 b x y+c y^2 \end{split}\]

2次形式の係数は対称行列で表せる#

2次形式の係数行列は対称行列で表すことができる。そのほうがシンプルになるし、対称行列で表せるという定理もある。

定義:反対称行列(交代行列)

\((i,j)\)要素が\((j,i)\)要素の符号を反転させた値になっていて対角要素が0の正方行列、すなわち \(A^\top = -A\) となる行列を 反対称行列 (antisymmetric matrix) あるいは 交代行列 (alternating matrix) という。

例えば

\[\begin{split} A = \begin{pmatrix} 0 & a\\ -a & 0 \end{pmatrix} ,\quad B = \begin{pmatrix} 0 & 2 & -1\\ -2 & 0 & 4\\ 1 & -4 & 0 \end{pmatrix} \end{split}\]

は反対称行列である。

定理:対称部分と反対称行列への分解

任意の\(n\)次正方行列\(A\)は次のように書くことができる

\[\begin{split} \begin{aligned} A &= \frac{1}{2} (A + A^\top) + \frac{1}{2} (A - A^\top)\\ &= A_s + A_a \end{aligned} \end{split}\]

ただし、

\[ A_s = \frac{1}{2} (A + A^\top), \quad A_a = \frac{1}{2} (A - A^\top) \]

である。\(A_s\)\(A\)の対称部分\(A_a\)\(A\)の反対称部分 と呼ぶ。

ここで \(A_s = \frac{1}{2} (A + A^\top)\) は対称行列、\(A_a = \frac{1}{2} (A - A^\top)\) は反対称行列となっている。

\[\begin{split} A = \begin{pmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{pmatrix} \end{split}\]

とすると、その転置行列は

\[\begin{split} A^\top = \begin{pmatrix} a_{11} & a_{21}\\ a_{12} & a_{22} \end{pmatrix} \end{split}\]

なので

\[\begin{split} \begin{aligned} A + A^\top &= \begin{pmatrix} 2 a_{11} & a_{12} + a_{21}\\ a_{21} + a_{12} & 2 a_{22} \end{pmatrix} \\ A - A^\top &= \begin{pmatrix} 0 & a_{12} - a_{21}\\ a_{21} - a_{12} & 0 \end{pmatrix} = \begin{pmatrix} 0 & a_{12} - a_{21}\\ - (a_{12} - a_{21}) & 0 \end{pmatrix} \end{aligned} \end{split}\]

よって

\[\begin{split} (A + A^\top) + (A - A^\top) = \begin{pmatrix} 2 a_{11} & a_{12} + a_{21}\\ a_{21} + a_{12} & 2 a_{22} \end{pmatrix} + \begin{pmatrix} 0 & a_{12} - a_{21}\\ a_{21} - a_{12} & 0 \end{pmatrix} = \begin{pmatrix} 2 a_{11} & 2 a_{12}\\ 2 a_{21} & 2 a_{22} \end{pmatrix} \end{split}\]

定理

\((x, A x) = 0\)となる\(O\)でない行列\(A\)は反対称行列である

証明

1. \((x, A x) = 0\)ならば\(A\)は反対称行列

\(x\)を第\(i\)要素が1で残りが0のベクトルとし、\((x, Ax) = 0\)に代入すると、\(a_{ii}=0\)となる。そのため\(A\)の対角要素は\(0\)となることがわかる。

\(x\)を第\(i\)要素と第\(j ~ (j \neq i)\)要素が1で残りが0のベクトルを代入すると、\(a_{ii} + a_{ij} + a_{ji} + a_{jj} = 0\)となるが、対角要素は0なので\(a_{ij}+a_{ji}=0\)すなわち\(a_{ij} = -a_{ji}\)となり、\(A\)は反対称行列となる。

2. \(A\)が反対称行列なら\((x, A x) = 0\)

\(A\)が反対称行列なら対角要素はゼロ(\(a_{ii} = 0\))であるため、2次形式\((x, Ax)\)のうち\(x_{i}^2\)の項は\(a_{ii} x_{i}^2 = 0\)となる。

また非対角要素は\(a_{ij} = -a_{ji}\)より、2次形式のうち\(x_i x_j\)の項は\(a_{ij} x_i x_j + a_{ji} x_j x_i = 0\) と打ち消し合って0になる。

以上から次の定理が導かれる

定理

行列\(A\)を係数とする2次形式は、その対称部分\(A_s\)のみで表すことができる

証明

反対称行列\(A_a\)を係数とする2次形式は0なので、

\[\begin{split} \begin{aligned} (x, Ax) &= (x, (A_s + A_a) x)\\ &= (x, A_s x) + (x, A_a x)\\ &= (x, A_s x) \\ \end{aligned} \end{split}\]

関連する定理#

転置と内積についての定理

定理

任意の \(n \times n\) 行列 \(\boldsymbol{A}\) と任意の \(n\) 次元ベクトル \(\boldsymbol{x}, \boldsymbol{y}\) に対して、次の関係が成り立つ

\[ (\boldsymbol{A} \boldsymbol{x}, \boldsymbol{y})=\left(\boldsymbol{x}, \boldsymbol{A}^{\top} \boldsymbol{y}\right) \]
証明
\[ \left(\boldsymbol{x}, \boldsymbol{A}^{\top} \boldsymbol{y}\right)=\sum_{i, j=1}^n a_{j i} x_i y_j=\sum_{j=1}^n\left(\sum_{i=1}^n a_{j i} x_i\right) y_j=(\boldsymbol{A} \boldsymbol{x}, \boldsymbol{y}) \]

2次形式の標準形#

対称行列の対角化#

定理

\(n \times n\) 対称行列 \(\boldsymbol{A}\) の固有値を \(\lambda_1, \ldots, \lambda_n\) とおき、対応する固有ベクトルの正規直交系を \(\boldsymbol{u}_1, \ldots, \boldsymbol{u}_n\) とし、 \(\boldsymbol{u}_1, \ldots, \boldsymbol{u}_n\) を列とする行列を \(\boldsymbol{U}=\left(\boldsymbol{u}_1 \cdots \boldsymbol{u}_n\right)\) とすると、次式が成り立つ。

\[\begin{split} \boldsymbol{U}^{\top} \boldsymbol{A} \boldsymbol{U}=\left(\begin{array}{llll} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{array}\right) \end{split}\]
証明
\[\begin{split} \begin{aligned} \boldsymbol{A} \boldsymbol{U} &= \boldsymbol{A} \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{A} \boldsymbol{u}_1 & \boldsymbol{A} \boldsymbol{u}_2 & \cdots & \boldsymbol{A} \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \lambda_1 \boldsymbol{u}_1 & \lambda_2 \boldsymbol{u}_2 & \cdots & \lambda_n \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \\ &= \boldsymbol{U} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \end{aligned} \end{split}\]

に左から\(U^\top\)をかけると得られる

対称行列のスペクトル分解(固有値分解)#

定理

\(n \times n\) 対称行列 \(\boldsymbol{A}\) の固有値を \(\lambda_1, \ldots, \lambda_n\) 、対応する固有ベクトルの正規直交系を \(\boldsymbol{u}_1, \ldots, \boldsymbol{u}_n\) とし、 \(\boldsymbol{u}_1, \ldots, \boldsymbol{u}_n\) を列とする行列を \(\boldsymbol{U}=(\boldsymbol{u}_1 \cdots \boldsymbol{u}_n)\) とすると、次式が成り立つ。

\[\begin{split} \boldsymbol{A}= \boldsymbol{U} \left(\begin{array}{llll} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{array}\right) \boldsymbol{U}^{\top} \end{split}\]
証明
\[\begin{split} \begin{aligned} \boldsymbol{A} \boldsymbol{U} &= \boldsymbol{A} \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{A} \boldsymbol{u}_1 & \boldsymbol{A} \boldsymbol{u}_2 & \cdots & \boldsymbol{A} \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \lambda_1 \boldsymbol{u}_1 & \lambda_2 \boldsymbol{u}_2 & \cdots & \lambda_n \boldsymbol{u}_n \end{pmatrix} \\ &= \begin{pmatrix} \boldsymbol{u}_1 & \boldsymbol{u}_2 & \cdots & \boldsymbol{u}_n \end{pmatrix} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \\ &= \boldsymbol{U} \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} \end{aligned} \end{split}\]

の両辺に右から\(\boldsymbol{U}^{\top}\)をかけると得られる。

対称行列の分解の応用例:リッジ推定量が正則となる証明

\(X\)\(n\)次の実行列とする。実対称行列\(X^\top X\)は非負値定符号行列であるため、

\[ X^\top X = P \Gamma P^\top \]

と分解可能。ここで\(P\)は直交行列であり、\(\Gamma = \mathrm{diag}(\gamma_1, \cdots, \gamma_n)\)\(X^\top X\)の固有値(\(\gamma_1 \geq \cdots \geq \gamma_n \geq 0\))を対角成分にもつ対角行列。

もし\(\gamma_n = 0\)なら\(X^\top X\)の逆行列は存在せず、\(\gamma_n > 0\)なら逆行列は存在し、

\[\begin{split} \begin{aligned} (X^\top X)^{-1} &= (P \Gamma P^\top)^{-1}\\ &= P \Gamma^{-1} P^\top \quad (\because (ABC)^{-1} = (C^{-1} B^{-1} A^{-1}) であり、 Pは直交行列なのでP^\top = P^{-1})\\ &= P \operatorname{diag}(1 / \gamma_1, \ldots, 1 / \gamma_n) P^\top \end{aligned} \end{split}\]

となる。\(X^\top X\)の最小固有値が\(\gamma_n \to 0\)の場合、\(1/\gamma_n \to \infty\)になり逆行列が計算できない。

一方、リッジ推定量のように\(X^\top X + \lambda I\)とする(\(\lambda \in\mathbb{R}\))と、その逆行列は

\[\begin{split} \begin{aligned} (X^\top X + \lambda I)^{-1} &= (P \Gamma P^\top + \lambda I)^{-1}\\ &= \{ P (\Gamma + \lambda I) P^\top \}^{-1}\\ &= P (\Gamma + \lambda I)^{-1} P^\top\\ &= P \operatorname{diag}[1 / (\gamma_1 + \lambda I), \ldots, 1 / (\gamma_n + \lambda I)] P^\top \end{aligned} \end{split}\]

となる。こちらは\(\gamma_n \to 0\)の場合であっても\(1 / (\gamma_p + \lambda I)\)は無限大に発散することがないため、\(X^\top X + \lambda I\)は正則となる。

2次形式の標準形#

固有ベクトルの行列\(U\) と変数\(x\)の線形結合を \(\boldsymbol{x}' = \boldsymbol{U}^\top \boldsymbol{x}\) と書く。 これは左から\(\boldsymbol{U}\)をかけて\(\boldsymbol{x} = \boldsymbol{U} \boldsymbol{x}'\)と書くこともできる。

このとき、2次形式\((\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x})\)は次のように変形できる

\[\begin{split} \begin{aligned} (\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x}) & =\left(\boldsymbol{U} \boldsymbol{x}^{\prime}, \boldsymbol{A} \boldsymbol{U} \boldsymbol{x}^{\prime}\right)=\left(\boldsymbol{x}^{\prime}, \boldsymbol{U}^{\top} \boldsymbol{A} \boldsymbol{U} \boldsymbol{x}^{\prime}\right)=\left(\boldsymbol{x}^{\prime},\left(\begin{array}{lll} \lambda_1 & & \\ & \ddots & \\ & & \lambda_n \end{array}\right) \boldsymbol{x}^{\prime}\right) \\ & =\lambda_1{x_1^{\prime}}^2+\lambda_2{x_2^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2} \end{aligned} \end{split}\]

このような変数の2乗の線形結合を2次形式の 標準形 と呼ぶ

\[ f = 6 x^2 + 4xy + 3y^2 \]

を標準形にしたいとする。\(f\)はベクトルと行列を用いると次のように書き直すことができる。

\[\begin{split} f=\left(\binom{x}{y},\left(\begin{array}{ll} 6 & 2 \\ 2 & 3 \end{array}\right)\binom{x}{y}\right) \end{split}\]

係数行列

\[\begin{split} A= \left(\begin{array}{ll} 6 & 2 \\ 2 & 3 \end{array}\right) \end{split}\]

の固有値は

\[\begin{split} \begin{aligned} & |\lambda I - A | = 0 \\ \iff & \left|\begin{array}{cc} \lambda - 6 & 2 \\ 2 & \lambda - 3 \end{array}\right| = 0 \\ \iff & (\lambda - 6)(\lambda - 3) - 4 = 0\\ \iff & \lambda^2 - 9 \lambda + 18 - 4 = 0\\ \iff & \lambda^2 - 9 \lambda + 14 = 0\\ \iff & (\lambda - 2)(\lambda - 7) = 0\\ \end{aligned} \end{split}\]

より、\(\lambda = 2, 7\)となる。

\[\begin{split} \begin{aligned} f = (\boldsymbol{x}, \boldsymbol{A} \boldsymbol{x}) & =\lambda_1 {x^{\prime}}^2 + \lambda_2{y^{\prime}}^2\\ \end{aligned} \end{split}\]

より、\(f\)の標準形は

\[ f = 2 {x^{\prime}}^2 + 7 {y^{\prime}}^2 \]

標準形にすると何が嬉しいのか? - 標準形による主軸変換の導出#

標準形は\(x'y'\)の項がなく2乗の項だけになっている。

例えば

\[ 2 {x^{\prime}}^2 + 7 {y^{\prime}}^2 = 1 \]

があるとする。これを書き換えると

\[ \frac{x^{\prime 2}}{(1 / \sqrt{2})^2}+\frac{y^{\prime 2}}{(1 / \sqrt{7})^2}=1 \]

となる。これは楕円の方程式と同じ形。ここから幾何学的な解釈が可能になる。

楕円の標準形方程式
\[ \frac{x^2}{a^2}+\frac{y^2}{b^2}=1 \]
  • \(a\) は 長軸半径(楕円の長い方の軸の半分)

  • \(b\) は 短軸半径(楕円の短い方の軸の半分)

Hide code cell source

import numpy as np
import matplotlib.pyplot as plt

# 楕円のパラメータ
a = 1 / np.sqrt(2)  # 長軸半径
b = 1 / np.sqrt(7)  # 短軸半径

# 楕円のプロット用データ生成
theta = np.linspace(0, 2 * np.pi, 300)
x = a * np.cos(theta)
y = b * np.sin(theta)

# 図の作成
fig, ax = plt.subplots(figsize=(4, 3))
ax.plot(x, y)

# 軸の設定
ax.axhline(0, color='black', linewidth=0.5)
ax.axvline(0, color='black', linewidth=0.5)
ax.set(
    xlabel="$x'$",
    ylabel="$y'$",
    title=r'Plot of $\frac{x^{\prime 2}}{(1 / \sqrt{2})^2}+\frac{y^{\prime 2}}{(1 / \sqrt{7})^2}=1$',
    aspect='equal'
)
ax.grid(True)

# 図を表示
plt.show()
../../../_images/febdb35224e5d61e524071479b56a7e0a24cfaa478ba63093ea147d9c79462bb.png

標準形にする前の形

\[ 6 x^2 + 4xy + 3y^2 = 1 \]

も同様に楕円となっている。

Hide code cell source

import numpy as np
import matplotlib.pyplot as plt

# グリッド範囲を設定
x_vals = np.linspace(-1, 1, 400)
y_vals = np.linspace(-1, 1, 400)
X, Y = np.meshgrid(x_vals, y_vals)

# 方程式 6x^2 + 4xy + 3y^2 = 1 の左辺
Z = 6 * X**2 + 4 * X * Y + 3 * Y**2 - 1

# 図の作成
fig, ax = plt.subplots(figsize=(3, 3))
ax.contour(X, Y, Z, levels=[0], colors='steelblue')  # 楕円を描画(等高線プロット)
ax.axhline(0, color='black', linewidth=0.5)
ax.axvline(0, color='black', linewidth=0.5)

# 軸の設定
ax.set(
    xlabel="$x$",
    ylabel="$y$",
    title=r"Plot of $6x^2 + 4xy + 3y^2 = 1$",
    aspect='equal'
)
ax.grid(True)

# 図を表示
plt.show()
../../../_images/a19f5f9a65c2901530ef7e1aa4cf5009b23d5114e8b2936175a3142d6484fc87.png

\(x= Ux'\)\(x'\)\(U\)だけ回転させたもの。あるいは\(x\)\(U^{-1}\)だけ回転させたものが\(x'\)となっている。

\(U\)は直交行列なので、回転と鏡映をあわせた写像広義回転 )である。

合同変換

正方行列\(A\)を正則行列\(U\)によって

\[ A' = U^\top A U \]

とする変換を 合同変換(congruence transformation) という。

「合同」とは形が変わらないこと、つまり広義回転だけをすること。

Tip

行列の対角化とは、楕円を回転させてその主軸(長軸と短軸)を座標軸に揃えることに等しい

\(xy\)座標系を\(U\)だけ回転すると、長軸と短軸に一致する。

単位ベクトル\(e_1,e_2\)\(U = (u_1, u_2)\)で回転させると、\(Ue_1 = u_1, Ue_2 = u_2\)なので、固有ベクトル\(u_1,u_2\)は楕円の長軸と短軸(2つを合わせて 主軸 という)の方向ということ。

\(A\)の固有ベクトルは、 楕円\((x, Ax) = 1\)の主軸方向である ということ。

Hide code cell source

import matplotlib.pyplot as plt
import numpy as np

# 固有ベクトルの描画 --------------------------------------------
A = np.array([[6, 2],
              [2, 3]])
eigenvalues, eigenvectors = np.linalg.eig(A)

origin = np.array([0, 0]) # 原点
eigvec1 = eigenvectors[:, 0]  # 固有値 7 に対応する固有ベクトル
eigvec2 = eigenvectors[:, 1]  # 固有値 2 に対応する固有ベクトル

# 図の作成
fig, ax = plt.subplots(figsize=(4, 4))
ax.quiver(*origin, *eigvec1, color='r', angles='xy', scale_units='xy', scale=1, label="Eigenvector (λ=7)")
ax.quiver(*origin, *eigvec2, color='b', angles='xy', scale_units='xy', scale=1, label="Eigenvector (λ=2)")

# 楕円の描画 --------------------------------------------
# グリッド範囲を設定
x_vals = np.linspace(-1, 1, 400)
y_vals = np.linspace(-1, 1, 400)
X, Y = np.meshgrid(x_vals, y_vals)

# 方程式 6x^2 + 4xy + 3y^2 = 1 の左辺
Z = 6 * X**2 + 4 * X * Y + 3 * Y**2 - 1

# 図の作成
ax.contour(X, Y, Z, levels=[0], colors='steelblue')  # 楕円を描画(等高線プロット)

# plot全体の設定 --------------------------------------------------
ax.axhline(0, color='black', linewidth=0.5)
ax.axvline(0, color='black', linewidth=0.5)
ax.set(
    xlabel="$x$",
    ylabel="$y$",
    title="Eigenvectors of A",
    xlim=(-1, 1),
    ylim=(-1, 1),
    aspect='equal'
)
ax.legend()
ax.grid(True)

# 図を表示
plt.show()
../../../_images/ccab7973217cf7eeae185c33228c39ef3a6151f3d7013b80707713a3fdb0430d.png

まとめ

楕円\((x, Ax) = 1\)は、\(A\)の固有ベクトル\(u_1,u_2\)がその主軸方向であり、\(u_1,u_2\)の方向をそれぞれ\(x',y'\)軸にとると、その楕円が\(\lambda_1 {x'}^2 + \lambda_2 {y'}^2 = 1\)と書ける。

このように主軸を座標軸にとった座標系で表すことを 主軸変換 とよび、そのときの固有値を 主値 と呼ぶ。

正定値と半正定値#

定義

\(n\times n\)実対称行列\(A\)が、\(n\)次の零でない任意のベクトル\(x\)に対して、2次形式\((x, Ax)\)が必ず正になるとき、すなわち

\[ (x, Ax) > 0 \]

となるとき、\(A\)正定値 (または 正値 positive definite) であるという。

また、

\[ (x, Ax) \geq 0 \]

となるとき、\(A\)半正定値 (または 半正値 positive-semidefinite) であるという。

固有値との関係#

定理

正定値行列\(A\in\mathbb{R}^{n\times n}\)の固有値\(\lambda_i (i = 1,\dots,n)\)はすべて正である(\(\lambda_i > 0 \quad \forall i\)

証明

2次形式\((x, Ax)\)は標準形

\[ (x, Ax) = \lambda_1{x_1^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2} \]

で表すことができる。

1. 固有値がすべて正 ⇒ \((x, Ax)>0\)

固有値\(\lambda_1,\dots,\lambda_n\)がすべて正なら、任意の\(x' \neq \boldsymbol{0}\)に対しては\((x, Ax) = \lambda_1{x_1^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2}>0\)となる。 したがって任意の\(x = Ux' \neq 0\)に対して\((x, Ax)>0\)となる。

2. \((x, Ax)>0\) ⇒ 固有値がすべて正

逆に任意の\(x \neq 0\)に対して2次形式の標準形

\[ (x, Ax) = \lambda_1{x_1^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2} \]

が成り立つなら、任意の\(x' = U^\top x \neq 0\)に対して\((x, Ax)>0\)となる。

ベクトル\(x'\)のうち任意の\(i\)番目の要素が1なら、つまり

\[ x_1^{\prime}=x_2^{\prime}=\cdots=x_{i-1}^{\prime}=0, x_i^{\prime}=1, x_{i+1}^{\prime}=x_{i+2}^{\prime}=\cdots=x_n=0 \]

とすると \((x, Ax) = \lambda_i\) より \(\lambda_i>0\)である。

(「任意の\(x\neq 0\)に対して\((x, Ax)>0\)」という仮定により)任意の\(i\)に対してこれが成り立つため、 \(\lambda_1, \lambda_2, \ldots, \lambda_n\) はすべて正である。

定理

半正定値行列\(A\in\mathbb{R}^{n\times n}\)の固有値\(\lambda_i (i = 1,\dots,n)\)はすべて零以上である(\(\lambda_i \geq 0 \quad \forall i\)

証明

1. 固有値がすべて正 ⇒ \((x, Ax) \geq 0\)

固有値 \(\lambda_1, \lambda_2, \ldots, \lambda_n\) が正または0なら、任意の\(x' \neq \boldsymbol{0}\)に対して

\[ (x, Ax) = \lambda_1{x_1^{\prime}}^2+\cdots+\lambda_n x_n^{\prime 2} \geq 0 \]

となる。 したがって任意の\(x = Ux' \neq 0\)に対して\((x, Ax)\geq 0\)となる。

2. \((x, Ax)\geq 0\) ⇒ 固有値がすべて正

逆に任意の\(x \neq 0\)に対して\((x, Ax)\geq 0\)が成り立つ場合、

\[ x_1^{\prime}=x_2^{\prime}=\cdots=x_{i-1}^{\prime}=0, x_i^{\prime}=1, x_{i+1}^{\prime}=x_{i+2}^{\prime}=\cdots=x_n=0 \]

とすると \((x, Ax) = \lambda_i\) より \(\lambda_i \geq 0\)である。

任意の\(i\)に対してこれが成り立つため、 \(\lambda_1, \lambda_2, \ldots, \lambda_n\) はすべて正である。