連立一次方程式†
連立一次方程式とは†
どういう意味か?
- 連立
- 複数ある
- 一次方程式
- 全ての項の次数が最大でも一次である方程式
「項」とは?
- 項
- +やーで繋がれたもの
なら
や
の他、
を項と呼ぶことも
- 因子
- 積や商で繋がれたもの
なら
や
「次数」とは?
項を構成する因子に「変数が」何個含まれているか
変数
, 定数
「一次」とは?
- 0次
- 一次
-
← 変数が1つ含まれたこういうやつ
- 二次
- 三次
- ……
∴「項の次数が0次か一次の方程式が複数ある」=「連立一次方程式」
連立一次方程式の例†
たとえば、
を解くと、
うまく解けない場合もある†
解がたくさん出てくる†
を解くと、
任意の
について解になる。
(下の式が上の式のちょうど2倍になっているため、
実効的には式が1つしかないのと同じ事になっている)
解が1つもない†
下の式から上の式の2倍を引くと次式を得る。
どんな
を持ってきてもこの式を満たすことはできない。
したがって「解無し」
連立一次方程式の一般形†
変数の数も、式の数も、いくつでも良い。
が変数
が定数(係数)
も定数
変数に使う文字:
変数が3つまでであれば、
が使われ、
変数が4つまでであれば、
が使われる事が多い。
それ以上の時は、
の形で表すとよい。
ベクトル方程式として表す†
係数行列、変数ベクトル、定数ベクトル、をそれぞれ
、
、
と置くと、連立一次方程式は次のベクトル方程式の形に書ける。
方程式の分類†
先の例と同様に、
のいずれかに分類できる。
なら
だから、解は必ず1つだけ求まるんじゃないの?
というのはちょっと甘い。
-
が正則でない場合もあるし
- そもそも
が正方行列にならない場合も考えないと
本章の目的†
物理学やその他のシミュレーションでは、
何万、何十万の変数を持つ連立一次方程式を解かなければならない。
- 大きな次数の計算は「行き当たりばったり」では困るので、
「必ず解ける解法」を知りたい
- 方程式の性質を行列を使って理解したい
というのが、以降で扱う内容。
(計算機で必要になる「本当に効率の良い計算方法」はやらないけど)
必ずしも「計算を楽にするため」に勉強しているのではなく、
その後に続くものなので、ここで学ぶ解法をしっかりマスターして欲しい。
連立一次方程式を解く(普通に)†
を解こう。
∴
より
あるいは、
が解となる。
どうやったか?†
連立方程式の解を変化させずに以下の式変形が可能:
- ある式を定数倍(
)する
- ある式を定数倍して別の式に加える
- (ある式を別の式を入れ替える) ←必要なら
与えられた式に上記の操作を繰り返して、最終的に
の形にできれば、解けたことになる。
係数だけ取り出して考える†
のような連立一次方程式に対して、係数行列と定数ベクトルを並べて
を「拡大係数行列」と呼ぶ。
これに、
- ある行を定数倍(
)する
- ある行を定数倍して別の行に加える
- ある行を別の式を入れ替える
を行っても、対応する方程式の解は変わらない。
→ これら3つは「(行に対する)基本変形」と呼ばれる
したがって、拡大係数行列に基本変形を繰り返すことで、
のように 「単位行列と(始めと異なる)定数ベクトルが並ぶ形」 にできれば、
これは、
のような式に対応し、
が解となる。
(必ずこううまく行くとは限らないけど、うまく行った=解けた、である)
実際にやってみる → ガウスの消去法(掃出し法)†
先の問題を、拡大係数行列を変形する方法で解いてみる。
ここで採用する方法は「ガウスの消去法」あるいは「掃出し法」と呼ばれる。
より、拡大係数行列は
まず、1列目を目的の形(単位行列)と一致させたい。
そこで、(1, 1) 要素を軸にして1列目を掃き出す
(この「軸にする」「掃き出す」は専門用語)。
具体的には、(1, 1) 要素が1なので、3倍を2行目から引き、2倍を3行目に足せば、(2, 1)要素と(3, 1)要素をゼロにできる。
行列の右側に出てくる
などは、教科書と同じ書き方で、直前の行列の
行目の行ベクトルを
と書いている。あくまでメモ代わりだが、書いておくと計算間違いなどを防ぎやすい。
これで1列目を目的の形にできた。次は2列目。
(2, 2) 要素を軸に掃き出したいが、他の行が7で割り切れないので、まずは2行目に 1/7 を掛けて (2, 2) 要素を1にしておく。
そして、(2, 2) 要素を軸に2列目を掃き出す。ここでは1行目に2行目の2倍を、3行目に2行目の−2倍を加えればよい。
(3, 3) 要素は1なので、そのまま軸にして3列目を掃き出す。1行目に3行目をそのまま、2行目には2倍して加えればよい。
この形が求める物であり、
という方程式に対応する。
「式の解を変えない変形」でこの結果を得たのであるから、これは元の式の解でもある。
すなわち、
あるいは、
が与式の解となる。
解答の書き方†
問:
を解け。
解答:
拡大係数行列を求め基本変形する。
したがって、
より、解は
注意点†
上記では基本変形を表すのに "〜" を使っている。
ここでの "〜" は、同じ解を持つ連立方程式を表す行列であることを表す「同値関係」(これは専門用語なので余力があれば各自調べること)
基本変形の前後で行列同士が等しいわけではないため "=" で繋いではならない。
ガウスの消去法:復習†
上で使った方針は、
- 左側の列から順に、対角成分を軸にして掃き出す
- 最後が
の形になれば解けたことになる
この方法は、任意の大きさの連立一次方程式に適用可能。
しかし、これだけではうまく行かないケースがある。
うまく行かないケース(1):行の入れ替えが必要†
基本変形による計算途中で、以下のように軸に取るべき要素がゼロになってしまう場合がある。
次に (2, 2) を軸に掃出しをしたいが、(2, 2) がゼロなので掃出しができない。
ここでは、他の行と入れ替えることで掃出しが行える。(2行目と3行目を入れ替える)
うまく行かないケース(2):軸に取るべき要素がない†
入れ替えようとしてもできない場合がある。
たとえば、計算途中で次のようになった場合、2列目を掃き出せない
→ (2, 2) 要素がゼロだし、それより下にも要素がない
その場合には、仕方がないのでその列は飛ばして、次列以降の掃き出しを続ける。
4列目も掃き出せないのでこれで終了。
- 1,3列目:掃き出せた = ある行に1を残して残りは全て0になっている
- 2,4列目:掃き出せなかった = ごちゃごちゃなまま
これに対応する方程式は、
このような場合、「掃出しのできなかった列に対応する変数をパラメータに置く」のが良い
→ ここでは2列目 =
ただし
は任意の実数とすると、
とすれば全ての式を満たす。すなわち、
が一般解となる。
「一般解」とは?
- 一般解
- すべての解がこの形に表せることを保証できる形
- 特殊解
- その値自体は解になるが、他にも解があることを否定しない形
行数が足りない場合も同様†
[Math Conversion Error]
に対して、1列目、2列目を掃き出した結果は次のようになる。
→ 掃き出せた列は軸とした列に1があり、残りは0になっている
3列目、4列目はこれ以上掃き出せない。対応する方程式は、
掃出しのできなかった列に対応する変数を
と置けば、
すなわち、
が一般解となる。
うまく行かないケース(3):定数項まで掃き出せてしまう†
について掃出しを進めると、
ここまででおかしな事になっているのだけれど、形式的には4列目も掃き出せてしまう。
対応する方程式は、
この連立方程式(特に3番目の式)は、どんな
に対しても成り立たないため、
「解無し」が結論になる。
本来なら、係数部分がすべてゼロで、定数部分が非ゼロの行ベクトルが現れた時点で「解無し」を結論できる。
連立一次方程式の解法†
- 掃出しにより
とできれば、解は
- 掃き出せない列があれば、飛ばして計算を続け、最後にその列をパラメータに置く
- 定数項(
)を残して他がゼロの行が現れたら「解無し」
により、どんな連立一次方程式も解ける(任意の次数でOK)
注)「解ける」=「一般解が求まる」 or 「解無しを結論する」