中学社会670081 views
MathPython501700 views
小学算数1203731 views
数学講師2913151 views
中学理科1633649 views
高校化学2933198 views
高校倫理1444503 views
ヒストリア294981 views
教育150077 views
雑学1474218 views
Help
Tools

English

二次形式と標準形|合同変換・平方完成・シルヴェスターの慣性法則

二次の項だけでできた多項式が二次形式です。対称行列 を使えば、どれも同じ 1 行で書けます。

変数を取り替えると は へ移ります。うまく取り替えて交差項を消し、平方の和だけにしたものが標準形です。

標準形の係数そのものは取り替え方で変わります。それでも符号の個数だけは動かない、というのがこの話の中心になります。

二次形式の定義

変数の実数係数の多項式で、どの項も次数がちょうど 2 のものを二次形式といいます。

対称行列を持ってくれば、行列の積として書けます。対角成分に平方の係数を、非対角成分に交差項の係数の半分を置きます。

半分にするのは、 の項が と の 2 か所から出てくるためです。両方を足すと交差項の係数に戻ります。

対称行列はただ 1 つに決まる

の は、対称でなくてもかまいません。ところが対称なものに限れば、 を決める行列は 1 つに定まります。

理由は 2 つあります。まず は 行列、つまり数なので、転置しても値が変わりません。

そこで とその転置の平均を取れば、値を変えずに対称な行列へ差し替えられます。 の交代部分は二次形式に何も残しません。

次に一意性です。対称行列 がすべての で を満たすとします。

に基本ベクトル を入れると 、 を入れると が出ます。つまり は零行列です。

2 つの対称行列が同じ二次形式を与えるなら、差を取ってこの議論に持ち込めます。したがって対称な表し方は 1 通りしかありません。

例:多項式と行列を行き来する

3 変数で書き下します。

対角には平方の係数 が並びます。交差項は が 、 が 、 が です。

半分にして対称な位置へ置きます。

逆向きに読むときは、対角成分をそのまま、非対角成分を 2 倍して交差項にします。行き来のたびに半分と 2 倍を取り違えないよう気をつけます。

変数を取り替えると合同変換になる

新しい変数 を、正則行列 で と結びます。二次形式に代入します。

新しい座標での行列は です。この形の移り変わりを合同変換といい、 と は合同であるといいます。

が対称であることも確かめられます。転置を取ると順序が逆転しますが、 が対称なので元の式に戻ります。

対称性は合同変換で壊れません。座標を取り替えても、相手はやはり二次形式です。

合同と相似は別物

似た形をした は相似で、こちらは線形写像の話でした。2 つは目的も保たれる量も違います。

相似

の形。同じ線形写像を別の基底で見た関係で、固有値・行列式・トレースが保たれます

合同

の形。同じ二次形式を別の座標で見た関係で、保たれるのは階数と符号の個数です

固有値は合同では保たれません。あとで見るように、係数の値は取り替え方で自由に動きます。

両者が一致するのは が直交行列のときです。 なので、相似変換と合同変換が同じ計算になります。

標準形とは

交差項が 1 つも残らない形、つまり平方の和だけになった形を標準形といいます。

行列の言葉でいえば、 を対角行列にすることです。実対称行列に対しては、この が必ず取れます。

作り方は 2 通りあります。直交行列を使う道と、平方完成で押していく道です。

HTML
CSS
JavaScript
<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 つの個数をまとめて符号数といいます。二次形式を分類するときの基準になる不変量です。

HTML
CSS
JavaScript
<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 つは同じ標準形とみなしてよい
__RESULT__

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

他の話題とのつながり

すべての係数が正になる場合が正定値です。判定の仕方は正定値行列の記事で扱い、主小行列式による方法はシルヴェスターの判定法の記事にあります。

主軸変換の土台になるのは、実対称行列が直交行列で対角化できるという定理です。スペクトル分解の記事がその主題になります。

交代行列では が恒等的に でした。二次形式が対称行列だけを相手にするのは、交代部分が何も残さないからです。

複素数まで広げると、共役転置を使ったエルミート形式が対応物になります。値が実数になる点が実の二次形式と同じで、慣性法則も同じ形で成り立ちます。

よくある誤り

交差項の係数をそのまま非対角成分に書くと、二次形式が別物になります。置くのは半分の値です
標準形の係数が固有値に決まっていると考えると外します。固有値になるのは直交行列で取り替えたときだけです
合同 と相似 を混ぜると、保たれる量を取り違えます。固有値が残るのは相似のほうです
平方完成の途中で置き換えが正則かどうかを確かめないと、標準形と呼べません。正則でなければ座標の取り替えになっていません
平方の項がないからといって標準形が作れない、ということはありません。和と差に置き換えれば平方が現れます
符号数が一致すれば係数まで一致する、と読むのは行き過ぎです。一致するのは個数だけです
階数が に届かない二次形式を非退化と呼ぶのは誤りです。零の係数が残っている時点で退化しています

参考文献

Quadratic form - Wikipedia
Sylvester's law of inertia - Wikipedia
Quadratische Form - Wikipedia(ドイツ語)
Forme quadratique - Wikipédia(フランス語)
Forma quadratica - Wikipedia(イタリア語)
Forma cuadrática - Wikipedia(スペイン語)
交差項を消して平方の和にするのが標準形です。作り方は直交行列で回す道と、平方完成で押していく道の二つ。前者は係数が固有値になり、後者は固有多項式を解かずに済みます。どちらを選んでも符号の個数は変わらない、というのがシルヴェスターの慣性法則で、証明では部分空間の次元の勘定を使います。