平方完成
中学校で習う二次方程式の解法. 因数分解が思いつかなかった場合は解の公式を適用すればあとは地道に計算するだけである. 大人になってもその結果だけは覚えている人はそれなりの人数になると思われるが, これを導出できる人数となると少ないのではないだろうか.
xについての二次方程式 ax2+bx+c=0 の解は次のように求められる.
- ax2+bx+c=0
- a(x+b/(2a))2-b2/(4a)+c=0 (これが平方完成)
- a(x+b/(2a))2=b2/(4a)-c (移項処理)
- (x+b/(2a))2=(b2-4ac)/(4a2) (右辺を通分して両辺を a で割る)
- x+b/(2a)=±√(b2-4ac)/(2a) (両辺の平方根をとる. 平方根には正のものと負のものが存在することに留意する.)
- x=(-b±√(b2-4ac))/(2a) (左辺の定数部分を移項する)
これが二次方程式の解の公式の導出である. x の一次の項をうまく消去して処理する平方完成により解くことができたのである.
ここまでは 1 つの変数について考えてきたが, ここからは 2 つ以上の変数について考えてみよう. ただし、2 次式を考えるものとする.
例えば, 2 変数の場合は次のような二次曲線が得られることが知られている.
- 楕円 (例: x2–xy+y2=1)
- 双曲線 (例: x2–xy–y2=1)
- 放物線 (例: 2x2-4xy+2y2–x–y=1)
3 変数であれば二次曲面が得られる. 以下はその一例である.
- 錐面 (例: X^2 + Z^2 + 2 X Y + 2 Y Z – 2 Z X = 0)
- 楕円面 (例: 5 X^2 – 2 sqrt(2) Y (X + Z) + 2 X Z + 6 Y^2 + 5 Z^2 = 1)
- 一葉双曲面 (例: X^2 + 2 sqrt(2) X Y – 2 X Z + 2 sqrt(2) Y Z + Z^2 = 1)
- 二葉双曲面 (例: X^2 + 2 Y Z = -1)
- 楕円放物面 (例: (5 X^2 – 2 sqrt(2) Y (X + Z) + 2 X Z + 6 Y^2 + 5 Z^2) = 1)
- 双曲放物面 (例: (3 X^2 – 6 sqrt(2) Y (X + Z) – 2 X Z + 2 Y^2 + 3 Z^2) = 1)
- 楕円放物面 (例: (-X^2 – 6 sqrt(2) Y (X + Z) + 6 X Z + 2 Y^2 – Z^2) = 1)
4 変数以上ともなると図形的な表現は困難であるが、平方完成の話題からは離れてしまうので言及はやめておこう.
さて、このような多変数を扱うツールとしてベクトルや行列がある. ここまで扱った曲線はすべて次のような形で表わすことができる.
xTAx+xTb+c=0 (x: 変数ベクトル, A: 行列, B: 定数ベクトル, c: 定数, T: 転置)
これを平行移動することにより xTb の項がない形に変形することを考える. その結果は (x-h)TA(x-h)+k=0 となるはずである. 係数比較により h, k を A, b, c で表してみよう. ただし, A は正則行列 (すべての固有値が 0 とは異なる) であるものとする.
- (x-h)TA(x-h)+k=0
- xTAx–xTAh-hTAx+hTAh+k=0 (第1項の展開)
- xTAx–xTAh-((hTAx)T)T+hTAh+k=0 (第3項に転置を2回作用させる)
- xTAx–xTAh-(xTATh)T+hTAh+k=0 (第3項の内側の転置を作用. 積の順が逆転することに注意.)
- xTAx–xTAh-xTATh+hTAh+k=0 (xTATh はスカラー(1次正方行列)なので転置しても同じ値である)
- xTAx–xT(A+AT)h+hTAh+k=0 (一部を結合法則でまとめる)
- b=-(A+AT)h, c=hTAh+k (係数比較から得た結果)
- h=-(A+AT)-1b, k=c-bT(A+AT)-1A(A+AT)-1b (A+AT は対称行列となるため (A+AT)T=A+AT)
- さらに, AT=A (A そのものが対称行列) ならば h=-(1/2)A-1b, k=c-(1/4)bTA-1b
- 以上をまとめると, xTAx+xTb+c=(x+(A+AT)-1b)TA(x+(A+AT)-1b)+c-bT(A+AT)-1A(A+AT)-1b となる.
- さらに, AT=A ならば xTAx+xTb+c=(x+(1/2)A-1b)TA(x+(1/2)A-1b)+c-(1/4)bTA-1b
以上が多変数の場合の平方完成となる.