目次

<< 1011121314151617

行列の積で表す2 二次形式


今日のテーマは、「2次式」を行列を使って表すことです。2次式というと、例えば x^2 -3x+2 のような式を思い浮かべますが、今日扱うのは、1次の項や定数項を含まない、純粋な2次式です。そのような純粋な2次式を「二次形式 (quadratic form)」と言います。例えば


1変数 x の二次形式:

    \begin{eqnarray*} 5x^2 \end{eqnarray*}


2変数 (x, y) の二次形式:

    \begin{eqnarray*} x^2 - 100xy - 150y^2 \end{eqnarray*}


ここで、x^2-150y^2 は「2乗の項」、-100xy は (xy の)「交差項」と呼びます。x^3x^2y など、3次以上の項が無いことがポイントです。


二次形式は、行列で表すことができます。例えば

    \begin{eqnarray*} && x^2 - 100xy - 150y^2 \\ \\&=&  \left( \begin{array}{cc}x & y \end{array} \right) \left( \begin{array}{cc}  1& -50 \\  -50 & -150 \end{array} \right) \left( \begin{array}{c}  x \\  y \end{array} \right) \end{eqnarray*}


というふうに、3つの行列の積で表せるのです。


やり方は簡単です。2変数の場合、まずは 2 \times 2 の正方行列を作ります。2乗の項の係数(x^2 の係数1と、y^2 の係数 -150)を対角成分に並べてください。


次に、xy の係数 -100 を、半分にして(1,2)成分と(2,1)成分の両方に書き込みます。


そうして出来上がった行列を、\left( \begin{array}{cc}x & y \end{array} \right)\left( \begin{array}{c}  x \\  y \end{array} \right) でサンドイッチして完了です。正式ではありませんが、この形で表した二次形式を、サンドイッチ型 (sandwich form)と呼ぶこともあります。


サンドイッチ型を展開して、元に戻ることを確認しておきましょう。展開すると

    \begin{eqnarray*} && \left( \begin{array}{cc}x & y \end{array} \right) \left( \begin{array}{cc}  1& -50 \\  -50 & -150 \end{array} \right) \left( \begin{array}{c}  x \\  y \end{array} \right)\\ \\&=&  \left( \begin{array}{cc}x & y \end{array} \right) \left( \begin{array}{c}  x -50y \\  -50x -150y \end{array} \right)\\ \\&=& x(x - 50y) + y (-50x - 150y)\\ \\&=& x^2 - 100xy - 150y^2 \end{eqnarray*}


ですから、最初の二次形式に戻ります。


3変数の場合も同様です。3変数 (x_1, x_2, x_3) の二次形式とは、例えば

    \begin{eqnarray*} 131(x_1)^2 + 58(x_2)^2 + 24 (x_3)^2 + 92 x_1 x_2 + 54 x_1 x_3 + 30 x_2 x_3 \end{eqnarray*}


です。2乗の項が3つ、交差項が3つありますね。これも、正方行列を (x_1, x_2, x_3)(x_1, x_2, x_3)' でサンドイッチした積で表すことができます。


    \begin{eqnarray*} && 131(x_1)^2 + 58(x_2)^2 + 24 (x_3)^2 + 92 x_1 x_2 + 54 x_1 x_3 + 30 x_2 x_3\\ \\&=&  \left( \begin{array}{ccc}x_1 & x_2 & x_3 \end{array} \right) \left( \begin{array}{ccc}  131& 46 & 27 \\  46 & 58  & 15 \\ 27 & 15 & 24 \end{array} \right) \left( \begin{array}{c}  x_1 \\  x_2 \\ x_3 \end{array} \right) \end{eqnarray*}



です。真ん中の行列では、2乗の項の係数 131, 58, 24 は対角成分に並べます。一方、交差項の係数は、2分の1して非対角成分に並べます。並べ方は (1,2)成分と(2,1)成分には x_1x_2 の係数の半分(つまり92/2=46)、(1,3)成分と(3,1)成分には x_1x_3 の係数の半分(つまり 54/2=27)を配置する、といった具合です。


二次形式で表される関数は、このように行列表記しておくと、関数の値を求めたいときに、エクセルの MMULT 関数を使って素早く計算することができます。


さて、これで行列の基本の勉強は終わりです。次回はここまでの理解度チェックをしてみましょう。

>> 行列の基本(17)理解度チェック正誤問題