PR
行列で連立1次方程式を解く!「掃き出し法」について
行列は色々な場面で使えますが、その中の一つに「連立1次方程式を解く」というものがあります。
これを「掃き出し法」というのですが、正直最初高校で習ったとき(当時は行列が教育課程にあった)、
普通に連立方程式解けばよくね?
と思いました。
確かに、連立1次方程式を解くだけだったら普通に解いてもいいかな、と思いますが、後々三次以上の正方行列の逆行列を求める際にも使うので、テクニックとして知っておいた方がいいです。
この記事では、掃き出し法を使った連立方程式の解き方を丁寧に説明していきます。
掃き出し法とは
冒頭で説明した通り、連立方程式の解を行列で求める方法です。
変数の消去を、行列の「行の入れ替え」や「行を実数倍して足し引き」する操作で表現していきます。
どちらかというと行列におけるテクニックですね。連立方程式と行列の関係を押さえながら、やり方と具体例を押さえていきましょう!
連立方程式の解と行列の関係
まずは簡単な連立方程式を一つ例にあげてみましょう。
例.\( \left\{ \begin{array}{l} x+y=4 \\ x+2y=10 \end{array} \right.\)
これを行列の積で表現していきます。
\(x\)、\(y\)それぞれの係数と「行列の積はそれぞれの要素を掛けて足す」という操作を踏まえると、上記の連立方程式は、
\(\begin{pmatrix} 1 & 1 \\ 1 & 2 \end{pmatrix}\begin{pmatrix} x \\ y \end{pmatrix}=\begin{pmatrix} 4 \\ 10 \end{pmatrix}\)
と表現できます。試しに行列の積を計算してみてください。先ほどの2つの式が出てくるはずです。
この\(\begin{pmatrix} 1 & 1 \\ 1 & 2 \end{pmatrix}\)を係数行列といいます。また、\(A=\begin{pmatrix} 1 & 1 \\ 1 & 2 \end{pmatrix}\)、\(\boldsymbol{x}=\begin{pmatrix} x \\ y \end{pmatrix}\)、\(\boldsymbol{b}=\begin{pmatrix} 4 \\ 10 \end{pmatrix}\)とおくと、この式は、
\(A \boldsymbol{x}=\boldsymbol{b}\)
となります。
実は、この状態で左から係数行列\(\begin{pmatrix} 1 & 1 \\ 1 & 2 \end{pmatrix}\)の逆行列を掛けてしまえば\(\boldsymbol{x}=\begin{pmatrix} x \\ y \end{pmatrix}=\cdots\)の形になるので、解くことができます。
逆行列って便利。
逆行列を使った解き方はコチラ
(解答)
\(\begin{pmatrix} 1 & 1 \\ 1 & 2 \end{pmatrix}\begin{pmatrix} x \\ y \end{pmatrix}=\begin{pmatrix} 4 \\ 10 \end{pmatrix}\) …①
\(\begin{pmatrix} 1 & 1 \\ 1 & 2 \end{pmatrix}\)の逆行列は、
\(\displaystyle \frac{1}{1\cdot 2-1\cdot 1}\begin{pmatrix} 2 & -1 \\ -1 & 1 \end{pmatrix}=\begin{pmatrix} 2 & -1 \\ -1 & 1 \end{pmatrix}\)
なので、①の左から逆行列を掛けると、
\( \begin{pmatrix} x \\ y \end{pmatrix}=\begin{pmatrix} 2 & -1 \\ -1 & 1 \end{pmatrix}\begin{pmatrix} 4 \\ 10 \end{pmatrix}=\begin{pmatrix} 8-10 \\ -4+10 \end{pmatrix}=\begin{pmatrix} -2 \\ 6 \end{pmatrix}\)
よって、\(x=-2\)、\(y=6\)…(答)
ですが、ここは掃き出し法で計算してみたいと思います。
まず、係数行列に右辺の定数項の列ベクトルを加えた拡大係数行列\([A|\boldsymbol{b}]\)というものを準備します。
\([A|\boldsymbol{b}]=\left(\begin{array}{cc|c} 1 & 1 & 4 \\1 & 2 & 10 \end{array}\right)\)
この拡大係数行列\([A|\boldsymbol{b}]\)の行を入れ替えたり、実数倍して足し引きすることで、連立方程式の文字消去を行列で表現します。
最終的に、拡大係数行列\([A|\boldsymbol{b}]\)を\([E|\boldsymbol{u}]\)の形に持っていけば、\(\boldsymbol{u}\)が解を表す列行列になります。
なんでこの形に持っていけばいいのか?は計算しながら説明していきます。
行列の変形と連立方程式の変形を並べて比較してみましょう。
①\(\left(\begin{array}{cc|c} 1 & 1 & 4 \\1 & 2 & 10 \end{array}\right)\)
②(2行目)-(1行目)
\(\left(\begin{array}{cc|c} 1 & 1 & 4 \\0 & 1 & 6 \end{array}\right)\)
③(1行目)-(2行目)
\(\left(\begin{array}{cc|c} 1 & 0 & -2 \\0 & 1 & 6 \end{array}\right)\)
①\( \left\{ \begin{array}{l} x+y=4 \\ x+2y=10 \end{array} \right.\)
②(下)-(上)
\( \left\{ \begin{array}{l} x+y=4 \\ 0+y=6 \end{array} \right.\)
③(上)-(下)
\( \left\{ \begin{array}{l} 1\cdot x+0=-2 \\ 0+1 \cdot y=6 \end{array} \right.\)
ということで、答えは\(x=-2,y=6\)ですね。
連立方程式の最後の式③は、あえて消えた変数部分に0を残して、係数の1を書いています。
これを見ればわかりやすいと思いますが、この「対角成分に1が並んでその他が0」という単位行列の形にしたとき、|(拡大行列の縦線)の右側がそのまま各変数の答えになるんですね。
行列でこんなに勝手に、行を入れ替えたり、実数倍して足し引きしていいの?
と思ってしまいますが「連立方程式の変形に対応している」と思えば大丈夫だということがわかります。
変形のコツは、まず左上の\(a_{11}\)を入れ替えたり足し引きしたりして「1」にします。そのあと、その下の成分\(a_{21}\)を「1」を実数倍して足し引きすることで0にします。
そして、順に対角成分を「1」にして、縦のその他の成分を0にしていきます。
この操作が「1」を使って掃き出す感じなので、「掃き出し法」なんですね。
三元連立1次方程式で掃き出し法を練習!
先ほどの例がちょっと簡単だったので、三元連立1次方程式で掃き出し法を練習してみましょう。
ひたすら計算します!
皆さんもぜひ手と頭を動かしてみてください!
例.\( \left\{ \begin{array}{l} x-y+2z=8 \\ 2x+3y+z=5 \\ -x+4y+4z = 1 \end{array} \right.\)を解きます。
拡大係数行列は\(\left(\begin{array}{ccc|c} 1 & -1 & 2 & 8 \\2 & 3 & 1 & 5 \\ -1 & 4 & 4 & 1 \end{array}\right)\)
①\(a_{11}=1\)なので、その列の他の成分を0にする。(中)-2×(上)、(下)+(上)。
\(\left(\begin{array}{ccc|c} 1 & -1 & 2 & 8 \\0 & 5 & -3 & -11 \\ 0 & 3 & 6 & 9 \end{array}\right)\)
②上手いこと(下)が3の倍数で揃ったので、3で割った上で(中)と入れ替える。(元は方程式の係数なので1つの行に何か掛けたり割ったりしてもOK。)
\(\left(\begin{array}{ccc|c} 1 & -1 & 2 & 8 \\0 & 1 & 2 & 3 \\ 0 & 5 & -3 & -11 \end{array}\right)\)
③真ん中の列の対角成分\(a_{22}\)以外を0にする。(上)+(中)、(下)-5×(中)。
\(\left(\begin{array}{ccc|c} 1 & 0 & 4 & 11 \\0 & 1 & 2 & 3 \\ 0 & 0 & -13 & -26 \end{array}\right)\)
(下)が-13で割れるので割っとく。
\(\left(\begin{array}{ccc|c} 1 & 0 & 4 & 11 \\0 & 1 & 2 & 3 \\ 0 & 0 & 1 & 2 \end{array}\right)\)
④右の列の対角成分\(a_{33}\)以外を0にする。(上)-4×(下)、(中)-2×(下)。
\(\left(\begin{array}{ccc|c} 1 & 0 & 0 & 3 \\0 & 1 & 0 & -1 \\ 0 & 0 & 1 & 2 \end{array}\right)\)
\( \left\{ \begin{array}{l} x-y+2z=8 \\ 2x+3y+z=5 \\ -x+4y+4z = 1 \end{array} \right.\)
①(中)-2×(上)、(下)+(上)。
\( \left\{ \begin{array}{l} x-y+2z=8 \\ 0+5y-3z=-11 \\ 0+3y+6z = 9 \end{array} \right.\)
②(下)の係数を3で割って(中)と入れ替え。
\( \left\{ \begin{array}{l} x-y+2z=8 \\ 0+y+2z = 3 \\ 0+5y-3z=-11 \end{array} \right.\)
③(上)+(中)、(下)-5×(中)。(下)の係数を整えておく。
\( \left\{ \begin{array}{l} x+0+4z=11 \\ 0+y+2z = 3 \\ 0+0-13z=-26 \end{array} \right.\)
\(\rightarrow\)
\( \left\{ \begin{array}{l} x+0+4z=11 \\ 0+y+2z = 3 \\ 0+0+z=2 \end{array} \right.\)
④(上)-4×(下)、(中)-2×(下)。
\( \left\{ \begin{array}{l} x+0+0=3 \\ 0+y+0 = -1 \\ 0+0+z=2 \end{array} \right.\)
よって、\(x=3,y=-1,z=2\)となります。
まとめ
連立方程式を解く、というだけならこの掃き出し法を使って計算するまでもないと思います。
が、「行の操作で単位行列を作る」という方法は実質3次以上の逆行列を求める際に必要な計算方法になります。(ギリ3次までは定義を使ってもいけます。詳しくはこちら。)
掃き出し法みたいな計算方法をやっていると、数学の考え方は工夫次第だな…と思わされます。
行列の考え方を知ることで、ぜひ数学の楽しさを感じてください!
おまけ
ここからは本文に関係ない宣伝です。
このブログはアフィリエイト(宣伝)に参加しているのですが、アフィリエイトの広告って、結構面白いものがあるんですよね。
中には「なにコレ!欲しい!」と思うようなものもあります。結構アフィリエイトの広告って眺めているだけでも面白いです。
私は結構多趣味でパソコン関係からスポーツ、アウトドア、料理…色々やります。そんな私が、有名なASPサイトである「A8.net」と「もしもアフィリエイト」の広告を全て見て「これは面白いな」と思ったものや、実際に利用しているサービスを紹介していきたいと思います!
ちょっと息抜きに見てみてください!
LINEスタンプ
新着スタンプなど、情報発信していきます。他にも「クマ」に関する情報が共有できたら、と思います!
インスタは結構更新頻度高いです!ちょっとしたマンガも描いてますのでぜひフォローお願いします。
ポイ活
ポイ活は地味にお得なのでコツコツとやってます。買い物したりミニゲームしたりでポイントを稼ぐのが好きな人にはオススメです!
ネットショッピングをよくする、という人にオススメ!いろんなネットショッピングがポイントがつつ対象になってます。結構貯まりますよ。