線形代数I/連立一次方程式 のバックアップ差分(No.2)

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[線形代数I]]
#contents

* 連立一次方程式 [#vdbf36fb]
** 連立一次方程式とは [#t281aa54]
* 連立一次方程式 [#q942c267]
** 連立一次方程式とは [#i953febc]

- 一次方程式:最大で一次の項からなる方程式
- 連立:複数ある
どういう意味か?

一次の項?
:連立|複数ある
:一次方程式|項の次数が最大で一次の方程式

-0次:&math(0, 3, \sqrt{5}, a, b, \cdots);
-一次:&math(x, y, z, w, \cdots );
-二次:&math(x^2, y^2, xy, \cdots);
-三次:&math(x^3, xy^2, xyz, \cdots);
-・・・
「項」とは?

そして

-項:+やーで繋がれたもの~
:項|+やーで繋がれたもの~
&math(x+a+(c+d)); なら &math(x); や &math(a); の他、&math((c+d)); を項と呼ぶことも
-因子:積や商で繋がれたもの~
:因子|積や商で繋がれたもの~
&math(ax); なら &math(a); や &math(x);

「最大で一次の項からなる方程式が複数ある」
「次数」とは?

** 一次方程式の例 [#xb29f4b3]
   項を構成する因子に「変数が」何個含まれているか

「一次」とは?

:0次| &math(0,\ 3,\ \sqrt{5},\ a,\ 3b,\ \cdots);
:一次| &math(x,\ -2y, 5z,\ w/\sqrt{2},\ \cdots ); ← これ
:二次| &math(-2x^2,\ ay^2,\ 5xy\, \cdots);
:三次| &math(2x^3,\ xy^2,\ \pi xyz,\ \cdots);
:……|

∴「項の次数が0次か一次の方程式が複数ある」=「連立一次方程式」

** 連立一次方程式の例 [#qa2db057]

たとえば、
&math(\left\{\begin{array}{l} x+2y=-1 \\ 3x+y=2 \end{array}\right .); 
を解くと、
&math(\left\{\begin{array}{l} x=1 \\ y=-1 \end{array}\right .);

** 必ずしも解けるわけではない [#i7ba83b0]
** うまく解けない場合もある [#q01d398b]

- 解がたくさん出てくる
- 解が1つもない

*** 解がたくさん出てくる [#q5322b43]
の場合もある。

*** 解がたくさん出てくる [#oa5d8bb5]

&math(\left\{\begin{array}{l} x+2y=-1 \\ 2x+4y=-2 \end{array}\right .); 
を解くと、
&math(\left\{\begin{array}{l} x=-2k-1 \\ y=k \end{array}\right .);~
任意の &math(k); について解になる。

*** 解が1つもない [#pd098cf0]
(下の式が上の式のちょうど2倍になっているため、
実効的には式が1つしかないのと同じ事になっている)

*** 解が1つもない [#xb5593b1]

&math(\left\{\begin{array}{l} x+2y=-1 \\ 2x+4y=-3 \end{array}\right .); 

下の式から上の式の2倍を引くと、

&math(0=-1);~

どんな &math(x,y); を持ってきてもこの式を満たすことはできない。
どんな &math(x,y); を持ってきてもこの式(0=-1)を満たすことはできない。

したがって、「解無し」

** 連立方程式の一般系 [#f80b9588]
** 連立一次方程式の一般形 [#nb322acb]

変数の数も、式の数も、いくつでも良い。

&math(\left\{\begin{array}{c@{}c@{}c@{}c@{}c@{}c@{}c} a_{11}x_1&+&a_{12}x_2&+\cdots+&a_{1n}x_n&=&b_1 \\ a_{21}x_1&+&a_{22}x_2&+\cdots+&a_{2n}x_n&=&b_2 \\ \vdots&&\vdots&&\vdots&&\vdots\\ a_{m1}x_1&+&a_{m2}x_2&+\cdots+&a_{mn}x_n&=&b_m \\ \end{array}\right .);

&maht(x_1,x_2,\cdots,x_n); が変数~
&maht(a_{11},\cdots,a_{mn}); が定数(係数)~
&maht(b_1,b_2,\cdots,b_m); も定数
&math(x_1,x_2,\cdots,x_n); が変数~
&math(a_{11},\cdots,a_{mn}); が定数(係数)~
&math(b_1,b_2,\cdots,b_m); も定数

変数に使う文字:~
変数が3つまでであれば、&math(x,y,z); が使われるし、~
変数が3つまでであれば、&math(x,y,z); が使われ、~
変数が4つまでであれば、&math(x,y,z,w); が使われる事が多い。

それ以上の時は、&math(x_i); の形で表すとよい。

** 連立方程式とベクトル方程式 [#x6e4aead]
** ベクトル方程式として表す [#n192d560]

係数行列、変数ベクトル、定数ベクトル、をそれぞれ

&math(A=\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1n}\\a_{21}&a_{22}&\cdots&a_{2n}\\\vdots&\vdots&\ddots&\vdots\\a_{m1}&a_{m2}&\cdots&a_{mn}\end{bmatrix});、
&math(\bm x = \begin{bmatrix}x_1\\x_2\\\vdots\\x_n\end{bmatrix});、
&maty(\bm b = \begin{bmatrix}b_1\\b_2\\\vdots\\b_m\end{bmatrix});~
係数行列、変数ベクトル、定数ベクトル
&math(\bm b = \begin{bmatrix}b_1\\b_2\\\vdots\\b_m\end{bmatrix});~

と置くと、連立一次方程式は次の形のベクトル方程式に書ける。
と置くと、連立一次方程式は次のベクトル方程式の形に書ける。

&math(A\bm x=\bm b);

** 方程式の解 [#b237ac88]
** 方程式の分類 [#f5014358]

先の例と同様に、

- 1つだけに決まる
- たくさんある
- 1つもない

のいずれにもなりうる。
のいずれかに分類できる。

&math(A\bm x=\bm b); なら &math(\bm x=A^{-1}\bm b); 
だから、かならず解は1つだけ求まるんじゃないの?~
というのはちょっと甘い。

- &math(A); が正則でない場合もあるし
- そもそも &math(A); が正方行列にならない場合も考えないと

** 実際の問題では [#a586c4b6]
** 本章で何をしたいのか [#x0a1ce96]

物理学やその他のシミュレーションでは、
何万、何十万の変数を持つ連立一次方程式を
計算機を使って解かなければならない問題がたくさんある。
何万、何十万の変数を持つ連立一次方程式を解かなければならない。

- 大きな次数の計算では「行き当たりばったり」の計算方法では困る
- 方程式の性質自体を行列を使って理解したい
- 大きな次数の計算は「行き当たりばったり」では困るので、
「必ず解ける解法」を知りたい
- 方程式の性質を行列を使って理解したい

というのが、以降で行う内容。
というのが、以降で扱う内容。

** 連立一次方程式の例 [#r5b2dfab]
** 連立一次方程式を解く(普通に) [#l59c1a6b]

&math(\left\{\!\begin{array}{r@{\,}c@{\,}r@{\,}c@{\,}r@{\,}c@{\,}r@{\ \ \ \ \ \ \ }c}x&-&2y&+&3z&=&1&\MARU{1}\\3x&+&y&-&5z&=&-4&\MARU{2} \\-2x&+&6y&-&9z&=&-2&\MARU{3}\end{array}\right .);

を解こう。

&math(\begin{array}{r@{\,}c@{\,}r@{\,}c@{\,}r@{\,}c@{\,}r@{\ \ \ \ \ \ \ }ll}\phantom{-2x}&\phantom{-}&7y&-&14z&=&-7&\MARU{2}-3\times\MARU{1}&=\MARU{4}\\&&2y&-&3z&=&0&\MARU{3}+2\times\MARU{1}&=\MARU{5} \\&&y&-&2z&=&-1&\MARU{4}/7&=\MARU{6}\\x&&&-&z&=&-1&\MARU{1}+2\times\MARU{6}&=\MARU{7}\\&&&&z&=&2&\MARU{5}-2\times\MARU{6}&=\MARU{8}\\x&&&&&=&1&\MARU{7}+\MARU{8}&=\MARU{9}\\&&y&&&=&3&\MARU{6}+2\times\MARU{8}&=\MARU{10}\\\end{array});

∴&math(\MARU{9}\MARU{10}\MARU{8});より &math(x=1,\ y=3,\ z=2);

あるいは、

&math(\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}1\\3\\2\end{bmatrix});

** どうやったか? [#k3cc2a39]
** どうやったか? [#e099220e]

連立方程式の解を変化させずに以下の式変形が可能:
- ある式を定数倍(&math(\neq 0);)する
- ある式を定数倍して別の式に加える
- (ある式を別の式を入れ替える) ←必要なら

与えられた式に上記の操作を繰り返して、最終的に

&math(\left\{\begin{array}{c@{\ }c@{\ }c@{\ }c@{\ }c}x&&&=&?\\&y&&=&?\\&&z&=&?\end{array}\right .);

の形にした。
の形にできれば、解けたことになる。

** 係数だけ取り出して考える [#ca5d7a2b]
** 係数だけ取り出して考える [#gd31968b]

&math(\left\{\!\begin{array}{r@{\,}c@{\,}r@{\,}c@{\,}r@{\,}c@{\,}r@{\ \ \ \ \ \ \ }c}x&-&2y&+&3z&=&1&\MARU{1}\\3x&+&y&-&5z&=&-4&\MARU{2} \\-2x&+&6y&-&9z&=&-2&\MARU{3}\end{array}\right .);

のような連立一次方程式に対して、係数行列と定数ベクトルを並べてできる次のような行列を「拡大係数行列」と呼ぶ。

&math(A^*=[\,A\ \bm b\,]=\begin{bmatrix}1&-2&3&1\\3&1&-5&-4\\-2&6&-9&-2\end{bmatrix});

この行列に対して、
この行列に対して、「(行に対する)基本変形」と呼ばれる3つの変形
- ある行を定数倍(&math(\neq 0);)する
- ある行を定数倍して別の行に加える
- ある行を別の式を入れ替える

を行っても、対応する方程式の解は変わらない。

これら3つの変形は「(行に対する)基本変形」と呼ばれる。
したがって、拡大係数行列に基本変形を繰り返すことで、

行列が解けて、解が1つだけ定まる場合には、上記の拡大係数行列に変形を繰り返すことで、
&math(\left[\begin{array}{ccccl}1&0&\cdots&0&b_1^\prime\\0&1&&\vdots&\vdots\\\vdots&&\ddots&0&b_{m-1}^\prime\\0&\cdots&0&1&b_m^\prime\end{array}\right]=[\,I\ \bm b^\prime\,]);

&maht(\left[\begin{array}{ccccl}1&0&\cdots&0&b_1^\prime\\
0&1&&\vdots&\vdots\\\vdots&&\ddots&0&b_{m-1}^\prime\\0&\cdots&0&1&b_m^\prime\end{array}\right]=[\,I\ \bm b^\prime\,]);
のように 「単位行列の右側に(始めと異なる)定数ベクトルが並ぶ形」 にできれば、
これは、

のように、単位行列の右側に(はじめとは異なる)定数ベクトルが並ぶ形にできる。

この式は、

&math(\left\{\begin{array}{c@{\ }c@{\ }c@{\ }c@{\ }c}x&&&=&b_1^\prime\\&y&&=&b_2^\prime\\&&z&=&b_3^\prime\end{array}\right .);

のような式に対応していることから、
のような式に対応し、

&math(\bm x=\bm b^\prime);

が解となる。

** ガウスの消去法(掃出し法) [#ua199d37]
** やってみる → ガウスの消去法(掃出し法) [#i2e196a4]

先の問題を、拡大係数行列を変形する方法で解いてみる。

ここで採用する方法は「ガウスの消去法」あるいは「掃出し法」と呼ばれる。

&math([\,A\ \bm b\,]=\begin{bmatrix}1&-2&3&1\\3&1&-5&-4\\-2&6&-9&-2\end{bmatrix});

まず、1列目を目的の形と一致させたい。

そこで、(1, 1) 要素を軸にして1列目を掃き出す(「軸にする」「掃き出す」は専門用語)。

具体的には、(1, 1) 要素が1なので、2行目から1行目の3倍を引き、3行目に1行目の2倍を足せばよい。

&math(\sim \begin{bmatrix}1&-2&3&1\\0&7&-14&-7\\0&2&-3&0\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_2-3\bm r_1\\\bm r_3+2\bm r_1\\\end{array});

行列の右側に出てくる &math(\bm r_1); などは、教科書と同じ書き方で、直前の行列の &math(i); 行目の行ベクトルを &math(\bm r_i); と書いている。あくまでメモ代わりだが、書いておくと計算間違いなどを防ぎやすい。

これで1列目を目的の形にできた。次は2列目。

(2, 2) 要素を軸に掃き出したいが、他の行が7で割り切れないので、まずは2行目に 1/7 を掛けて (2, 2) 要素を1にしておく。

&math(\sim \begin{bmatrix}1&-2&3&1\\0&1&-2&-1\\0&2&-3&0\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_2/7\\\bm r_3\\\end{array});

そして、(2, 2) 要素を軸に2列目を掃き出す。ここでは1行目に2行目の2倍を、3行目に2行目の−2倍を加えればよい。

&math(\sim \begin{bmatrix}1&0&-1&-1\\0&1&-2&-1\\0&0&1&2\end{bmatrix}\begin{array}{l}\bm r_1+2\bm r_2\\\bm r_2\\\bm r_3-2\bm r_2\\\end{array});

(3, 3) 要素は1なので、そのまま軸にして3列目を掃き出す。1行目に3行目をそのまま、2行目には2倍して加えればよい。

&math(\sim \begin{bmatrix}1&0&0&1\\0&1&0&3\\0&0&1&2\end{bmatrix}\begin{array}{l}\bm r_1+\bm r_3\\\bm r_2+2\bm r_3\\\bm r_3\\\end{array});

この形が求める物であり、

&math(\left\{\begin{array}{c@{\ }c@{\ }c@{\ }c@{\ }c}x&&&=&1^\prime\\&y&&=&3\\&&z&=&2\end{array}\right .);

という方程式に対応する。

「式の解を変えない変形」でこの結果を得たのであるから、これは元の式の解でもある。

すなわち、&math(x=1,\ y=3,\ z=2); あるいは、
&math(\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}1\\3\\2\end{bmatrix}); が与式の解となる。

*** 解答の書き方 [#r3f50ad8]

問:

&math(\left\{\!\begin{array}{r@{\,}c@{\,}r@{\,}c@{\,}r@{\,}c@{\,}r@{\ \ \ \ \ \ \ }c}x&-&2y&+&3z&=&1&\MARU{1}\\3x&+&y&-&5z&=&-4&\MARU{2} \\-2x&+&6y&-&9z&=&-2&\MARU{3}\end{array}\right .);

を解け。

解答:

拡大係数行列を求め基本変形する。

&math([\,A\ \bm b\,]=\begin{bmatrix}1&-2&3&1\\3&1&-5&-4\\-2&6&-9&-2\end{bmatrix});

&math(\sim \begin{bmatrix}1&-2&3&1\\0&7&-14&-7\\0&2&-3&0\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_2-3\bm r_1\\\bm r_3+2\bm r_1\\\end{array});

&math(\sim \begin{bmatrix}1&-2&3&1\\0&1&-2&-1\\0&2&-3&0\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_2/7\\\bm r_3\\\end{array});

&math(\sim \begin{bmatrix}1&0&-1&-1\\0&1&-2&-1\\0&0&1&2\end{bmatrix}\begin{array}{l}\bm r_1+2\bm r_2\\\bm r_2\\\bm r_3-2\bm r_2\\\end{array});

&math(\sim \begin{bmatrix}1&0&0&1\\0&1&0&3\\0&0&1&2\end{bmatrix}\begin{array}{l}\bm r_1+\bm r_3\\\bm r_2+2\bm r_3\\\bm r_3\\\end{array});

したがって、

&math(\left\{\begin{array}{c@{\ }c@{\ }c@{\ }c@{\ }c}x&&&=&1^\prime\\&y&&=&3\\&&z&=&2\end{array}\right .);

より、解は

&math(\begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}1\\3\\2\end{bmatrix});

*** 注意点 [#p7584dcf]

上記では基本変形を表すのに "〜" を使っている。

ここでの "〜" は、連立方程式の解を変えずに行列を変形したことを表す「同値関係」(これは専門用語なので余力があれば各自調べること)

基本変形の前後で行列同士が等しいわけではないため "=" で繋いではならない。

** ガウスの消去法:復習 [#h0fcb226]

上で使った方針は、

- 左側の列から順に、対角成分を軸にして掃き出す
- 最後が &math([\,I\ \bm b^\prime\,]); の形になれば解けたことになる

この方法は、任意の大きさの連立一次方程式に適用可能。

しかし、これだけではうまく行かないケースがある。

** うまく行かないケース(1)行の入れ替えが必要 [#kef3e707]

基本変形による計算途中で、以下のように軸に取るべき要素がゼロになってしまう場合がある。

&math([\,A\ \bm b\,] = \begin{bmatrix}2&1&1&2\\4&2&3&1\\-2&-2&0&-1\end{bmatrix});

&math(\sim \begin{bmatrix}2&1&1&2\\0&0&1&-3\\0&-1&1&1\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_2+2\bm r_1\\\bm r_3+\bm r_1\\\end{array});

次に (2, 2) を軸に掃出しをしたいが、(2, 2) がゼロなので掃出しができない。

ここでは、他の行と入れ替えることで掃出しが行える。(2行目と3行目を入れ替える)

&math(\sim \begin{bmatrix}2&1&1&2\\0&-1&1&1\\0&0&1&-3\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_3\\\bm r_2\\\end{array});

&math(\sim \begin{bmatrix}2&1&1&2\\0&1&-1&-1\\0&0&1&-3\end{bmatrix}\begin{array}{l}\bm r_1\\-\bm r_2\\\bm r_3\\\end{array});

&math(\sim \begin{bmatrix}2&0&2&3\\0&1&-1&-1\\0&0&1&-3\end{bmatrix}\begin{array}{l}\bm r_1-\bm r_2\\\bm r_2\\\bm r_3\\\end{array});

&math(\sim \begin{bmatrix}2&0&0&9\\0&1&0&-4\\0&0&1&-3\end{bmatrix}\begin{array}{l}\bm r_1-2\bm r_3\\\bm r_2+\bm r_3\\\bm r_3\\\end{array});

&math(\sim \begin{bmatrix}1&0&0&9/2\\0&1&0&-4\\0&0&1&-3\end{bmatrix}\begin{array}{l}\bm r_1/2\\\bm r_2\\\bm r_3\\\end{array});

&math(\therefore \begin{bmatrix}x\\y\\z\end{bmatrix}=\begin{bmatrix}9/2\\-4\\-3\end{bmatrix});

** うまく行かないケース(2)軸に取るべき要素がない [#rce7a4e0]

入れ替えようとしてもできない場合がある。~
→ 軸とすべき要素よりしたが全てゼロになっている

たとえば、計算途中で次のようになった場合、2列目を掃き出せない
→ (2, 2) 要素がゼロだし、それより下にもゼロでない要素がない

&math(\begin{bmatrix}1&2&-2&-3\\0&0&2&2\\0&0&3&3\end{bmatrix});

その場合には、仕方がないのでその列は飛ばして、次列以降の掃き出しを続ける。

&math(\sim \begin{bmatrix}1&2&-2&-3\\0&0&1&1\\0&0&3&3\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_2/2\\\bm r_3\\\end{array});

&math(\sim \begin{bmatrix}1&2&0&-1\\0&0&1&1\\0&0&0&0\end{bmatrix}\begin{array}{l}\bm r_1+2\bm r_2\\\bm r_2\\\bm r_3-3\bm r_2\\\end{array});

&math(\sim \begin{bmatrix}1&2&0&-1\\0&0&1&1\\0&0&0&0\end{bmatrix}\begin{array}{l}\bm r_1+2\bm r_2\\\bm r_2\\\bm r_3-3\bm r_2\\\end{array});

4列目も掃き出せないのでこれで終了。対応する方程式は、

&math(\left\{ \begin{array}{l}x+2y\phantom{+z}=-1\\\phantom{x+2y+}z=\phantom{-}1\\\phantom{x+2y+}0=\phantom{-}0\end{array} \right .);

「掃出しのできなかった列に対応する変数をパラメータに置く」~
→ ここでは2列目 = &math(y);

&math(y=a); ただし &math(a); は任意の実数とすると、

&math(\left\{ \begin{array}{l}x=-2a-1\\y=a\\z=1\end{array} \right .);

すなわち、

&math(\begin{bmatrix}x\\y\\z\end{bmatrix}=a\begin{bmatrix}-2\\1\\0\end{bmatrix}+\begin{bmatrix}-1\\0\\1\end{bmatrix});

が一般解となる。

「一般解」とは?
:一般解|すべての解がこの形に表せることを保証できる形
:特殊解|その値自体は解になるが、他にも解があることを否定しない形

*** 行数が足りない場合も同様 [#s9f2a158]

1列目、2列目を掃き出した結果が次のようになったとする。

&math(\sim \begin{bmatrix}1&0&3&-1&5\\0&1&-2&2&-4\end{bmatrix});

3列目、4列目はこれ以上掃き出せない。対応する方程式は、

&math(\left\{ \begin{array}{l}x\phantom{+y}+3z-\phantom{2}w=\phantom{-}5\\\phantom{x+}y-2z+2w=-4\end{array}\right .);

掃出しのできなかった列に対応する変数を &math(z=a,\ w=b); と置けば、

&math(\left\{ \begin{array}{l}x=-3a+b+5\\y+2a-2b-4\\z=a\\w=b\end{array} \right .);

すなわち、

&math(\begin{bmatrix}x\\y\\z\\w\end{bmatrix}=a\begin{bmatrix}-3\\2\\1\\0\end{bmatrix}+b\begin{bmatrix}1\\-2\\0\\1\end{bmatrix}+\begin{bmatrix}5\\-4\\0\\0\end{bmatrix});

が一般解となる。

** うまく行かないケース(3)定数項まで掃き出せてしまう [#rce7a4e0]

&math(\begin{bmatrix}1&2&-2&-3\\0&0&2&2\\0&0&3&4\end{bmatrix});

について掃出しを進めると、

&math(\sim \begin{bmatrix}1&2&-2&-3\\0&0&1&1\\0&0&3&4\end{bmatrix}\begin{array}{l}\bm r_1\\\bm r_2/2\\\bm r_3\end{array});

&math(\sim \begin{bmatrix}1&2&0&-1\\0&0&1&1\\0&0&0&1\end{bmatrix}\begin{array}{l}\bm r_1+2\bm r_2\\\bm r_2\\\bm r_3-3\bm r_2\end{array});

ここまででおかしな事になっているのだけれど、形式的には4列目も掃き出せてしまう。

&math(\sim \begin{bmatrix}1&2&0&0\\0&0&1&0\\0&0&0&1\end{bmatrix}\begin{array}{l}\bm r_1+\bm r_3\\\bm r_2-\bm r_3\\\bm r_3\end{array});

対応する方程式は、

&math(\left\{\begin{array}{l}x+2y\phantom{+z}=0\\\phantom{x+2y+}z=0\\\phantom{x+2y+}0=1\end{array} \right .);

この連立方程式(特に3番目の式)は、どんな &math(x,\ y,\ z); に対しても成り立たないため、
「解無し」が結論になる。

** 連立一次方程式の解法 [#h5f54f81]

(以上の手順)+(うまく行かない場合の対処)

により、どんな連立一次方程式も解ける(任意の次数でOK)

注)「解ける」=「一般解が求まる」 or 「解無しを結論する」


Counter: 367196 (from 2010/06/03), today: 6, yesterday: 0