二次形式と標準形|合同変換・平方完成・シルヴェスターの慣性法則
二次の項だけでできた多項式が二次形式です。対称行列 を使えば、どれも同じ 1 行で書けます。
変数を取り替えると は へ移ります。うまく取り替えて交差項を消し、平方の和だけにしたものが標準形です。
標準形の係数そのものは取り替え方で変わります。それでも符号の個数だけは動かない、というのがこの話の中心になります。
二次形式の定義
変数の実数係数の多項式で、どの項も次数がちょうど 2 のものを二次形式といいます。
対称行列を持ってくれば、行列の積として書けます。対角成分に平方の係数を、非対角成分に交差項の係数の半分を置きます。
半分にするのは、 の項が と の 2 か所から出てくるためです。両方を足すと交差項の係数に戻ります。
対称行列はただ 1 つに決まる
の は、対称でなくてもかまいません。ところが対称なものに限れば、 を決める行列は 1 つに定まります。
理由は 2 つあります。まず は 行列、つまり数なので、転置しても値が変わりません。
そこで とその転置の平均を取れば、値を変えずに対称な行列へ差し替えられます。 の交代部分は二次形式に何も残しません。
次に一意性です。対称行列 がすべての で を満たすとします。
に基本ベクトル を入れると 、 を入れると が出ます。つまり は零行列です。
2 つの対称行列が同じ二次形式を与えるなら、差を取ってこの議論に持ち込めます。したがって対称な表し方は 1 通りしかありません。
例:多項式と行列を行き来する
3 変数で書き下します。
対角には平方の係数 が並びます。交差項は が 、 が 、 が です。
半分にして対称な位置へ置きます。
逆向きに読むときは、対角成分をそのまま、非対角成分を 2 倍して交差項にします。行き来のたびに半分と 2 倍を取り違えないよう気をつけます。
変数を取り替えると合同変換になる
新しい変数 を、正則行列 で と結びます。二次形式に代入します。
新しい座標での行列は です。この形の移り変わりを合同変換といい、 と は合同であるといいます。
が対称であることも確かめられます。転置を取ると順序が逆転しますが、 が対称なので元の式に戻ります。
対称性は合同変換で壊れません。座標を取り替えても、相手はやはり二次形式です。
合同と相似は別物
似た形をした は相似で、こちらは線形写像の話でした。2 つは目的も保たれる量も違います。
の形。同じ線形写像を別の基底で見た関係で、固有値・行列式・トレースが保たれます
の形。同じ二次形式を別の座標で見た関係で、保たれるのは階数と符号の個数です
固有値は合同では保たれません。あとで見るように、係数の値は取り替え方で自由に動きます。
両者が一致するのは が直交行列のときです。 なので、相似変換と合同変換が同じ計算になります。
標準形とは
交差項が 1 つも残らない形、つまり平方の和だけになった形を標準形といいます。
行列の言葉でいえば、 を対角行列にすることです。実対称行列に対しては、この が必ず取れます。
作り方は 2 通りあります。直交行列を使う道と、平方完成で押していく道です。
<svg viewBox="0 0 460 200" width="100%" style="max-width:460px;display:block;margin:0 auto">
<text x="230" y="24" font-size="11" fill="#9a9a9a" text-anchor="middle">座標を回すと、傾いた楕円が軸に揃います</text>
<line x1="45" y1="115" x2="175" y2="115" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="110" y1="55" x2="110" y2="175" stroke="#c8c8c8" stroke-width="1"></line>
<ellipse cx="110" cy="115" rx="52" ry="28" fill="#1b81e0" fill-opacity="0.12" stroke="#1b81e0" stroke-width="1" transform="rotate(-40 110 115)"></ellipse>
<text x="110" y="196" font-size="11" fill="#1f1f1f" text-anchor="middle">交差項がある</text>
<line x1="200" y1="115" x2="252" y2="115" stroke="#1b81e0" stroke-width="1"></line>
<polygon points="252,111 260,115 252,119" fill="#1b81e0"></polygon>
<text x="228" y="106" font-size="11" fill="#1b81e0" text-anchor="middle">回す</text>
<line x1="265" y1="115" x2="395" y2="115" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="330" y1="55" x2="330" y2="175" stroke="#c8c8c8" stroke-width="1"></line>
<ellipse cx="330" cy="115" rx="52" ry="28" fill="#1b81e0" fill-opacity="0.12" stroke="#1b81e0" stroke-width="1"></ellipse>
<text x="330" y="196" font-size="11" fill="#1f1f1f" text-anchor="middle">平方の和だけになる</text>
</svg>直交行列で標準形にする
実対称行列は直交行列で対角化できました。その をそのまま座標変換に使います。
標準形の係数は の固有値そのものです。この取り替えを主軸変換といいます。
直交行列は長さと角度を保つので、図形を回したり裏返したりするだけです。楕円が楕円のまま、軸に揃うところまで動きます。
例:主軸変換で標準形にする
最初の二次形式に戻ります。 の固有値を求めます。
固有多項式は なので、固有値は と です。固有ベクトルはそれぞれ と になります。
長さを にそろえて列に並べれば直交行列です。標準形は固有値を係数にした形になります。
実際に確かめます。、 を代入すると 、 です。
これを に入れると となり、 に一致します。
平方完成で標準形にする
固有値を求めなくても標準形は作れます。中学以来の平方完成を、変数の個数だけ繰り返すだけです。
ある変数について平方をひとつくくり出し、余りを次の変数へ送る。それを順に続けます。この手順をラグランジュの方法といいます。
固有多項式を解かずに済むので、手計算では速いことが多いのが利点です。そのかわり係数は固有値になりません。
例:平方完成で標準形にする
3 変数で試します。
を含む項をまとめます。 です。
次は です。 なので、 の係数が に変わります。
、、 と置けば標準形です。この置き換えは上三角で対角成分が なので、行列式が となり正則です。
係数はすべて で、固有値とは何の関係もありません。それでも平方の和である以上、これも立派な標準形です。
例:平方の項がない場合
平方完成には出発点が要ります。平方の項が 1 つもないときは、先に作ります。
、 と置けば、差と和の積の公式で平方が現れます。
対応する行列は非対角成分が の行列で、固有値は と です。符号が 1 つずつという結果は、標準形から読んだものと一致しています。
この置き換えも正則なので、合同変換として正しく働いています。
標準形は 1 通りではない
同じ二次形式でも、取り替え方を変えれば違う係数が出ます。 を平方完成で処理してみます。
でくくると となり、平方完成すると次の形になります。
係数は と です。主軸変換で出た と とはまるで違う値になりました。
どちらも正しい標準形です。標準形の係数は、二次形式だけでは決まりません。
シルヴェスターの慣性法則
それでも動かない量があります。正の係数の個数、負の係数の個数、零の係数の個数の 3 つです。
先ほどの例では、係数が でも でも、正が 2 個で負が 0 個という点は共通していました。これが偶然ではないという主張が、シルヴェスターの慣性法則です。
3 つの個数をまとめて符号数といいます。二次形式を分類するときの基準になる不変量です。
<svg viewBox="0 0 460 175" width="100%" style="max-width:460px;display:block;margin:0 auto">
<text x="230" y="24" font-size="11" fill="#9a9a9a" text-anchor="middle">係数の値は変わっても、この 3 つの個数は動きません</text>
<rect x="50" y="60" width="150" height="42" fill="#1b81e0" fill-opacity="0.15" stroke="#1b81e0" stroke-width="1"></rect>
<rect x="200" y="60" width="110" height="42" fill="#d0562a" fill-opacity="0.15" stroke="#d0562a" stroke-width="1"></rect>
<rect x="310" y="60" width="100" height="42" fill="#f5f5f5" stroke="#c8c8c8" stroke-width="1"></rect>
<text x="125" y="86" font-size="12" fill="#1b81e0" text-anchor="middle">正の係数</text>
<text x="255" y="86" font-size="12" fill="#d0562a" text-anchor="middle">負の係数</text>
<text x="360" y="86" font-size="12" fill="#9a9a9a" text-anchor="middle">零の係数</text>
<line x1="50" y1="116" x2="310" y2="116" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="50" y1="112" x2="50" y2="120" stroke="#c8c8c8" stroke-width="1"></line>
<line x1="310" y1="112" x2="310" y2="120" stroke="#c8c8c8" stroke-width="1"></line>
<text x="180" y="136" font-size="11" fill="#1f1f1f" text-anchor="middle">この幅が階数</text>
<text x="230" y="164" font-size="11" fill="#9a9a9a" text-anchor="middle">正と負の個数が符号数、零でない係数の個数が階数です</text>
</svg>慣性法則の証明
標準形の係数を正のもので割れば、係数を 、、 だけにできます。そのうえで正の個数を比べます。
同じ二次形式が 2 通りに書けたとします。第 1 の座標では正が 個、第 2 の座標では正が 個だったとしましょう。
第 1 の座標のうち、正の係数がつく変数だけを動かして得られる部分空間を と置きます。 の零でない元では です。
第 2 の座標では、正でない係数がつく変数だけを動かした部分空間を とします。こちらの元では になります。
両方に入る零でないベクトルはありません。 が正でも正でないでもある、という状況になってしまうからです。
共通部分が原点だけなら、次元の和は全体を超えられません。、 を入れます。
から が出ます。第 1 と第 2 の役を入れ替えれば逆向きも出るので、 です。
負の個数も同じように決まります。階数が合同変換で変わらないことを使えば、零の個数も自動的に決まります。
符号数と階数
正の個数を 、負の個数を と書きます。零でない係数の総数 が、行列 の階数です。
階数が に届いているとき、二次形式は非退化であるといいます。届かなければ退化で、 が恒等的に になる方向が残ります。
を符号と呼ぶこともあります。どの呼び方でも、決まっているのは個数であって係数の値ではありません。
固有値の符号を数えても同じ結果になります。主軸変換では係数が固有値そのものなので、慣性法則から符号の個数が一致するためです。
例:2 通りの標準形で符号数を確かめる
先ほどの で照合します。主軸変換では係数が と でした。
平方完成では と です。値は違いますが、どちらも正が 2 個、負が 0 個、零が 0 個です。
符号数は一致しました。階数はどちらも で、非退化です。
係数の積が でそろっているのは別の事情によります。合同変換では行列式が 倍になり、今回はどちらの変換も行列式が だったためです。
二次曲線の形が決まる
が表す図形は、符号数だけで決まります。標準形にしてしまえば見慣れた方程式になるからです。
| 符号数 | q = 1 が表す図形 |
|---|---|
| 正 2 個 | 楕円 |
| 正 1 個・負 1 個 | 双曲線 |
| 正 1 個・零 1 個 | 平行な 2 直線 |
| 正 0 個 | 図形なし |
は正が 2 個なので楕円です。主軸変換で となり、傾きが取れた形が出ます。
は正と負が 1 個ずつなので双曲線です。標準形の が、まさに双曲線の方程式でした。
回転させても図形の種類は変わりません。慣性法則は、その当たり前を式の側から保証しています。
理解の確認
ある二次形式を 2 通りの方法で標準形にしたところ、係数が と になりました。矛盾していないのはなぜでしょうか。
- どちらかの計算が誤っている。標準形の係数は 1 通りに決まる
- 標準形の係数は取り替え方で変わり、決まっているのは符号の個数だけである
- 係数の積が等しいので、2 つは同じ標準形とみなしてよい
他の話題とのつながり
すべての係数が正になる場合が正定値です。判定の仕方は正定値行列の記事で扱い、主小行列式による方法はシルヴェスターの判定法の記事にあります。
主軸変換の土台になるのは、実対称行列が直交行列で対角化できるという定理です。スペクトル分解の記事がその主題になります。
交代行列では が恒等的に でした。二次形式が対称行列だけを相手にするのは、交代部分が何も残さないからです。
複素数まで広げると、共役転置を使ったエルミート形式が対応物になります。値が実数になる点が実の二次形式と同じで、慣性法則も同じ形で成り立ちます。












慣性法則が保証するのは、正の係数の個数と負の係数の個数と零の個数であって、係数の値ではありません。どちらも正が 2 個・負が 0 個なので符号数は一致しており、矛盾はありません。係数の積がそろったのは、合同変換で行列式が det(P)2 倍になるという別の事情によるもので、標準形が同じであることを意味しません。