概要#
連立1次方程式#
のような連立一次方程式は、
を用いて
と表すことができる。
もし
と解くことができる。
例題#
を例に考えてみる。
中学数学的な素朴な解き方だと、式を定数倍したり、式同士を差し引いたりすることで変数を消していく。この方法は変数消去法と呼ばれる。
変数消去法
と番号をふる。
まず(1)を2倍して(2)から引き、(2)から
(2’)を1/2倍すれば
また
となる
変数消去法は行列表記にすることもできる。
変数消去法(行列表記)
を行列で表すと
となり、少し移項してブロック行列で表すと
となる。
は、まず1行目を2倍して2行目から引くと
となる。続いて、
2行目を1行目から引くと
もとの式に戻すと
より、
まとめると、ブロック行列
を変形していって
という形にする。
変数消去法に限らず、行列で連立一次方程式を解くときはこのパターンになる。
また、変化があるのは
ガウスの消去法(掃き出し法)#
ガウスの消去法(Gaussian elimination) あるいは 掃き出し法(row reduction) は正則行列による連立一次方程式を、ブロック行列表記にして解く方法。
変数消去法と同様に、
行のスカラー倍
行のスカラー倍を別の行に加算する
行の順番を入れ替える
といった操作を行うもので、
まず
前進消去により
の形にすると、解は次のように求まる
import numpy as np
# 拡大係数行列
A = np.array([
[1, 1, 5],
[2, 4, 14],
])
a = A[0, 0]
i = 1
j = 0
A[i, :] = A[i, :] - (A[i, j] / a)
A
array([[ 1, 1, 5],
[ 0, 2, 12]])
解の種類#
ただ1つの解 不定解 個の変数に対して手がかりが足りず、解が一意に定まらない
解なし
が正則の場合#
もし逆行列が存在するなら
と解くことができる
定理
連立一次方程式
もし
で与えられる。
証明
連立一次方程式の両辺に
行列の積は結合法則を満たすから、上式の左辺は
よって
逆行列の推定への応用#
逆行列の推定方法の一つに連立一次方程式を解く方法がある
となるような正方行列
が正則でない(特異な)場合#
連立一次方程式の解の存在性と一意性の条件
結果
から原因 を一意に特定できる(写像 は単射)⇔「 が原点 のみ」⇔「 は0次元」⇔「 (ランクが定義域の次元と同じ)」どんな結果
にも原因 が存在する(写像 は全射)⇔「 が行き先の空間(値域)に一致する」⇔「 は 次元」⇔「 (ランクが値域の次元と同じ)」
クラーメルの公式#
クラーメルの公式
はただ1組の解をもち、その解は次のように与えられる
ここで
証明
仮定より
「1つの列を
したがって、行列
この両辺を
例:
を解け。
係数行列を
それぞれの列を
よって解は
連立一次方程式の計算の高速化#
幅広い行列に使える方法#
掃き出し法
直接解法(LU分解して解く)
特定のタイプの行列に使える方法#
対称正定値行列(例えば回帰モデルの
)だと、コレスキー分解(LU分解の代わりに
に分解する)共役勾配法(
を最小化する を求める形で反復計算して解く)
参考: