目次

<< 1011121314151617

行列の積で表す1 連立一次方程式


中学校の数学では、「式の展開」の反対の操作として、「因数分解」を教わりました。「行列の積の計算」の反対の操作は、「行列の積で表す」ことです。


例えば

    \begin{eqnarray*} x + 2y\\ 3x + 4y \end{eqnarray*}


という2つの式は

    \begin{eqnarray*} \left( \begin{array}{cc}  1& 2 \\  3 & 4 \end{array} \right) \left( \begin{array}{c}  x \\  y \end{array} \right)  \end{eqnarray*}



と表せます。ということは、

    \begin{eqnarray*} \left\{ \begin{array}{rcc}  x  +  2y & = & 3  \\  3x  +  4y & = & 7 \end{array} \right. \end{eqnarray*}


という連立方程式は

    \begin{eqnarray*} \left( \begin{array}{cc}  1& 2 \\  3 & 4 \end{array} \right) \left( \begin{array}{c}  x \\  y \end{array} \right) = \left( \begin{array}{c}  3 \\  7 \end{array} \right)  \end{eqnarray*}


と書き表せます。これが、「行列の積で表す」ということです。


今度は、3変数 (x_1, x_2, x_3) の方程式を考えましょう。

    \begin{eqnarray*} \left\{ \begin{array}{ccc}  a_{1,1}\; x_1 + a_{1,2} \; x_2 + a_{1,3} \; x_3  & = & b_1  \\ a_{2,1}\; x_1 + a_{2,2} \; x_2 + a_{2,3}\; x_3  & = & b_2 \\ a_{3,1} \; x_1 + a_{3,2} \; x_2 + a_{3,3} \; x_3  & = & b_3   \end{array} \right. \end{eqnarray*}


という連立方程式はどうでしょうか。これは

    \begin{eqnarray*}\left( \begin{array}{ccc}  a_{1,1}& a_{1,2} & a_{1,3}\\  a_{2,1} & a_{2,2} & a_{2,3}\\  a_{3,1} & a_{3,2} & a_{3,3}  \end{array} \right)\left( \begin{array}{c}  x_1 \\  x_2 \\ x_3 \end{array} \right)=\left( \begin{array}{c}  b_1 \\  b_2 \\ b_3 \end{array} \right)\end{eqnarray*}


と書けるので

    \begin{eqnarray*} A = \left( \begin{array}{ccc}  a_{1,1}& a_{1,2} & a_{1,3}\\  a_{2,1} & a_{2,2} & a_{2,3}\\  a_{3,1} & a_{3,2} & a_{3,3}  \end{array} \right), \hspace{5mm}  x = \left( \begin{array}{c}  x_1 \\  x_2 \\ x_3 \end{array} \right), \hspace{5mm} b = \left( \begin{array}{c}  b_1 \\  b_2 \\ b_3 \end{array} \right) \end{eqnarray*}


とおけば、

    \begin{eqnarray*} Ax = b \end{eqnarray*}


と書けます。A は連立方程式の「係数行列」と呼ばれます。


連立一次方程式をこのように表したあと、大学の先生は「両辺の左から逆行列をかけると‥‥

    \begin{eqnarray*} x = A^{-1} b \end{eqnarray*}


‥‥はい、これで連立方程式が解けました」と言います。「いやいや、ちょっと待ってください、解けてないでしょ。A^{-1} を計算してないでしょ」とツッコミたくなるものですが、実際には、逆行列はエクセルなどの計算機ソフトで瞬時に求められるので、連立方程式は解けたとみなされます。(x^2 = 13x = \pm \sqrt{13} としただけで、方程式を解いたことになるのと同じです。)


次の連立一次方程式を、エクセルで解いてみましょう。

    \begin{eqnarray*} \left\{  \begin{array}{lcc}  x_1 +  x_2 + x_3  & = & 200  \\ x_1 + 2 x_2 + 3x_3  & = & 335 \\ 2x_1 -x_2   & = & 135   \end{array} \right. \end{eqnarray*}


まず係数行列 A と、右辺の数字を集めたベクトル b を、エクセル上に作ります。




そのうえで、x=A^{-1}b を計算します。A の逆行列には MINVERSE 関数を、これと b との積には MMULT 関数を使います。




確定はいつもどおり、Ctrl + Shift + Enter です。




答えは (x_1, x_2, x_3) = (100, 65, 35) です。この方法で、たとえ変数が100個あっても、連立一次方程式は一瞬にして解くことが可能です。


今回は連立1次式を行列の積で表しました。次回は2次式を行列で表してみたいと思います。

>> 行列の基本(16)行列の積で表す2 二次形式