小学社会311570 views
中学英語813624 views
英語617403 views
高校化学2933198 views
りんご220229 views
高校日本史191026 views
小学算数1203731 views
数学講師2913151 views
いろは3025218 views
高校生物553211 views
Help
Tools

English

正定値行列と半正定値行列|定義・固有値による判定・平方根

対称行列に「正の数」にあたるものを考えたい。実数の正負は の符号で決まるが、行列では二次形式 の符号がその役をする。

これが常に成り立つ行列を正定値という。正の数と同じように、逆数が取れて平方根も取れる、扱いやすい行列の一群である。

正定値の定義

実対称行列 が正定値であるとは、零でないどのベクトル に対しても が成り立つことをいう。

複素数の範囲では、エルミート行列に対して と書く。 は共役転置で、エルミート行列なら は必ず実数になるので、大小を比べられる。

が動く範囲は空間全体である。1 本でも となるベクトルが見つかれば、その行列は正定値ではない。

半正定値・負定値・不定

等号を許した が常に成り立つとき、 を半正定値という。零でない で値が 0 になることを認める点だけが違う。

不等号の向きを変えれば負定値と半負定値になる。 が正定値なら は負定値である、と読み替えてもよい。

正の値も負の値も取るときは不定という。この 4 つの型で、対称行列は残らず分類される。

例:正定値になる行列

二次形式は である。中央の項が負になっても、両側の平方の項が上回るので全体は正のままになる。

トレースが 7、行列式が 8 なので、固有値は で 2 つとも正である。

例:半正定値になる行列

二次形式は 、つまり である。負にはならないが、 の方向では 0 になる。

固有値は 0 と 2 で、0 が混ざっている。この行列は正則ではなく、逆行列を持たない。

例:不定になる行列

二次形式は である。第 1 象限では正、第 2 象限では負になるので、符号が定まらない。

固有値は 1 と で、正と負が同居している。不定であることは、この符号の混在として現れる。

対称性を前提にする理由

正定値性は対称行列に対して定義する。対称でない行列に を当てても、非対称な部分は打ち消し合って見えなくなるからである。

どんな正方行列も、対称な部分と交代的な部分に分けられる。交代的な部分 は を満たすので、二次形式には寄与しない。

したがって、非対称な行列を持ち出しても、判定しているのは対称な部分だけになる。はじめから対称な行列に限って話を進めるのが筋である。

固有値がすべて正であることと同じ

対称行列が正定値であることと、固有値がすべて正であることは同じ意味になる。判定の場面では、こちらを使うことが多い。

半正定値なら固有値は 0 以上、負定値ならすべて負、不定なら正と負が混ざる。二次形式の型と固有値の符号が、そのまま対応している。

証明:直交行列で座標を取り替える

対称行列は直交行列 で対角化できる。 が固有値を並べた対角行列になる、という事実を使う。

と座標を取り替えると、二次形式は平方の重み付き和になる。

は正則なので、 が空間全体を動けば も空間全体を動く。固有値がすべて正なら、右辺は で必ず正になる。

逆に となる固有値があれば、 を第 成分だけ 1 のベクトルに取ればよい。そのとき値は 以下となり、正定値ではなくなる。

例:固有値で判定する

トレースが 10、行列式が 9 なので、固有多項式は である。固有値は 9 と 1 で、どちらも正になる。

したがってこの行列は正定値である。成分に 4 という大きめの値があっても、対角の 5 が上回っていれば符号は崩れない。

対角成分・行列式・トレースは正になる

正定値なら対角成分はすべて正である。 を第 成分だけ 1 のベクトルに取れば、 がそのまま になるからである。

行列式は固有値の積、トレースは固有値の和なので、どちらも正になる。とくに行列式が 0 でないので、正定値行列は必ず正則である。

対角成分との間には上からの評価もある。行列式は対角成分の積を超えない、というアダマールの不等式が成り立つ。

例:対角成分が正でも正定値とは限らない

対角成分はどちらも正だが、行列式は で負である。行列式が負なら固有値の積が負なので、符号の違う固有値が混ざっている。

実際に固有値は 4 と で、この行列は不定である。対角成分だけを見て判断できないことが分かる。

平方完成で符号を読む

二次形式を平方の和に直せば、符号は係数を見るだけで決まる。1 変数の を平方完成するのと手順は同じである。

先ほどの で試す。 について平方完成すると、残りは だけの項になる。

係数の 4 と 2 がどちらも正なので、この二次形式は正定値である。平方完成の途中に現れる係数は、コレスキー分解や首座小行列式とも結びついている。

例:平方完成して確かめる

半正定値の例を平方完成してみる。 は次の形になる。

2 つ目の係数が 0 なので、 の方向では値が 0 になる。負の係数が出ないので、半正定値だと読める。

係数のどれかが負なら不定である。平方完成は、型を決めるいちばん素朴な方法だといえる。

グラム行列として書ける

正定値行列は、正則な行列 を使って の形に書ける。逆に、この形の行列は必ず正定値である。

長さの 2 乗なので 0 以上になる。 が正則なら のとき なので、値は正になる。

が正則でなければ半正定値になる。ベクトルの内積を並べたグラム行列がいつも半正定値なのは、この計算のためである。

例:B から作った行列で確かめる

は正則である。 を計算すると次の行列になる。

対角成分が正で行列式が 1 なので、固有値は 2 つとも正である。 から作った時点で、正定値になることは保証されていた。

逆行列も和も正定値

正定値行列の逆行列は、また正定値である。固有値が に変わるだけで、正であることは崩れない。

正定値行列どうしの和も正定値になる。 が 2 つの正の数の和になるので、これも符号が変わらない。

正の数を掛けても保たれる。正定値行列の集まりは、和と正のスカラー倍について閉じた形をしている。

積は正定値とは限らない

正定値行列どうしの積は、そもそも対称になるとは限らない。

右辺は対称でないので、正定値かどうかを問う土俵に乗らない。正の数の積が正になる、という感覚をそのまま持ち込むと外す。

ただし固有値はすべて正のままである。積が対称になるのは 2 つの行列が可換なときで、そのときは正定値になる。

合同変換では符号が保たれる

正則な を取って と変換しても、正定値性は変わらない。 と置けば、 が になるからである。

が正則なので、 が零でなければ も零ではない。したがって符号の型はそのまま引き継がれる。

この変換を合同変換という。相似変換とは別物で、保たれるのは固有値そのものではなく、正負の個数のほうである。

平方根がただ一つ取れる

正定値行列 には、 を満たす正定値行列 がただ一つ存在する。実数の正の平方根と同じ性質である。

作り方は固有値を経由する。直交行列で対角化し、対角成分を正の平方根に置き換えて、もとの基底に戻せばよい。

半正定値でも同じことができる。0 の固有値は 0 のままにしておけば、半正定値な平方根が得られる。

例:整数で書ける平方根

固有値は 9 と 1 だった。平方根を取れば 3 と 1 になり、同じ固有ベクトルで組み直すと次の行列が得られる。

実際に 2 乗すると となり、 に戻る。 の固有値は 3 と 1 で、こちらも正定値である。

内積を定める

正定値行列があると、新しい内積を作れる。 と定めればよい。

内積に必要な条件のうち、対称性は の対称性から、線形性は積の形から出る。残る正値性がちょうど正定値性にあたる。

が単位行列なら、ふつうの内積に戻る。正定値行列は、空間に別の長さと角度を入れる道具だと見ることもできる。

等高線は楕円になる

を満たす点の集まりを描くと、型ごとに形が変わる。正定値なら閉じた楕円、不定なら双曲線、半正定値なら平行な 2 直線になる。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 190" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<line x1="25" y1="110" x2="145" y2="110" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="85" y1="50" x2="85" y2="170" stroke="#c8c8c8" stroke-width="1"></line>
	<ellipse cx="85" cy="110" rx="48" ry="30" fill="#1b81e0" fill-opacity="0.08" stroke="#1b81e0" stroke-width="1.5"></ellipse>
	<text x="85" y="36" font-size="11" fill="#1f1f1f" text-anchor="middle">正定値</text>
	<line x1="170" y1="110" x2="290" y2="110" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="230" y1="50" x2="230" y2="170" stroke="#c8c8c8" stroke-width="1"></line>
	<path d="M 272 62 Q 240 110 272 158" fill="none" stroke="#1b81e0" stroke-width="1.5"></path>
	<path d="M 188 62 Q 220 110 188 158" fill="none" stroke="#1b81e0" stroke-width="1.5"></path>
	<text x="230" y="36" font-size="11" fill="#1f1f1f" text-anchor="middle">不定</text>
	<line x1="315" y1="110" x2="435" y2="110" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="375" y1="50" x2="375" y2="170" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="333" y1="70" x2="405" y2="70" stroke="#1b81e0" stroke-width="1.5"></line>
	<line x1="345" y1="150" x2="417" y2="150" stroke="#1b81e0" stroke-width="1.5"></line>
	<text x="375" y="36" font-size="11" fill="#1f1f1f" text-anchor="middle">半正定値</text>
	<text x="230" y="185" font-size="11" fill="#9a9a9a" text-anchor="middle">閉じた曲線になるのは正定値のときだけ</text>
</svg>

楕円になるということは、 を満たす範囲が有界だということである。どの向きへ進んでも値が増えるので、遠くまで行けない。

楕円の軸と固有値

固有ベクトルの向きが楕円の軸になり、半軸の長さは固有値から決まる。固有値 の方向では、半軸が になる。

HTML
CSS
JavaScript
<svg viewBox="0 0 460 220" width="100%" style="max-width:460px;display:block;margin:0 auto">
	<line x1="110" y1="120" x2="350" y2="120" stroke="#c8c8c8" stroke-width="1"></line>
	<line x1="230" y1="30" x2="230" y2="200" stroke="#c8c8c8" stroke-width="1"></line>
	<ellipse cx="230" cy="120" rx="45" ry="70" fill="#1b81e0" fill-opacity="0.08" stroke="#1b81e0" stroke-width="1.5"></ellipse>
	<line x1="230" y1="120" x2="275" y2="120" stroke="#d0562a" stroke-width="2"></line>
	<line x1="230" y1="120" x2="230" y2="50" stroke="#d0562a" stroke-width="2"></line>
	<text x="288" y="116" font-size="11" fill="#d0562a">1/2</text>
	<text x="238" y="46" font-size="11" fill="#d0562a">1</text>
	<text x="230" y="22" font-size="11" fill="#9a9a9a" text-anchor="middle">固有値が大きい向きほど、楕円は短くなる</text>
	<text x="230" y="214" font-size="11" fill="#9a9a9a" text-anchor="middle">固有値 4 の向きで半軸 1/2、固有値 1 の向きで半軸 1</text>
</svg>

対角行列で確かめると分かりやすい。対角成分が 4 と 1 なら二次形式は で、 方向の半軸は 、 方向は 1 になる。

固有値が大きいほど、その向きでは値が速く増える。楕円が短くなるのはそのためである。

判定のしかたの比較

手計算では、首座小行列式を左上から順に調べる方法が速い。3 次までなら行列式を 3 回計算するだけで済み、シルベスターの判定法と呼ばれる。

大きな行列ではコレスキー分解を試すほうがよい。途中で負の数の平方根が要求されたら、その時点で正定値ではないと分かる。

固有値を求める方法は確実だが、手数はいちばん多い。半正定値かどうかまで見たいときは、首座小行列式では足りず、すべての主小行列式が要る。

他の話題とのつながり

最小二乗法では という形の行列が現れる。列が一次独立なら正定値になり、正規方程式がただ一つの解を持つ。

統計では分散共分散行列が半正定値になる。分散が負にならないことが、そのまま二次形式の符号として書かれている。

多変数関数の極値判定にも使う。ヘッセ行列が正定値なら極小、負定値なら極大で、不定なら鞍点である。

よくある誤り

対角成分が正なら正定値だと判断してしまう。 が反例で、対角は正でも不定である
行列式が正であることを条件にすると、負定値の 2 次の行列を取りこぼす。固有値が 2 つとも負でも積は正になる
成分がすべて正の行列と混同する。正定値行列の非対角成分は負でもよく、 は正定値である
対称でない行列に判定法をそのまま当てる。二次形式が見ているのは対称な部分だけである
正定値行列どうしの積も正定値だと考える。積は対称にすらならないことがある
半正定値と正定値を同じ扱いにする。0 の固有値があると逆行列が作れず、平方根の一意性も崩れる
首座小行列式が 0 以上なら半正定値、と読み替える。半正定値の判定には、すべての主小行列式を見る必要がある

参考文献

Definite matrix - Wikipedia
Sylvester's criterion - Wikipedia
Definitheit - Wikipedia(ドイツ語)
Matrice définie positive - Wikipédia(フランス語)
正定矩阵 - 维基百科(中国語)
正定値行列は、二次形式がいつも正になる対称行列です。定義と半正定値・負定値・不定との違い、固有値がすべて正であることとの同値性の証明、対角成分や行列式との関係、グラム行列としての表し方、平方根がただ一つ取れること、等高線が楕円になることまでを、計算例をつけて解説します。