連立1次方程式¶
Undefined control sequence: \DeclareMathOperator at position 57: …{#1}}
% 演算子の定義
\̲D̲e̲c̲l̲a̲r̲e̲M̲a̲t̲h̲O̲p̲e̲r̲a̲t̲o̲r̲{\im}{ \text{Im…
% 太字のalias
\newcommand{\b}[1]{\boldsymbol{#1}}
% 演算子の定義
\DeclareMathOperator{\im}{ \text{Im} }
\DeclareMathOperator{\rank}{ \text{rank} }
\DeclareMathOperator{\span}{ \text{Span} }
\DeclareMathOperator{\Ker}{ \text{Ker} }
%
\begin{cases}
\begin{align}
a_{11} x_1 + a_{12} x_2 + &\cdots + a_{1m} x_m = y_1\\
a_{21} x_1 + a_{22} x_2 + &\cdots + a_{2m} x_m = y_2\\
&\vdots\\
a_{n1} x_1 + a_{n2} x_2 + &\cdots + a_{nm} x_m = y_n\\
\end{align}
\end{cases}のような連立一次方程式は、
Undefined control sequence: \b at position 198: …, \hspace{1em}
\̲b̲{x} = \begin{pm…
A = \begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1m} \\
a_{21} & a_{22} & \cdots & a_{2m} \\
\vdots & \vdots & \ddots & \vdots \\
a_{n1} & a_{n2} & \cdots & a_{nm} \\
\end{pmatrix}
, \hspace{1em}
\b{x} = \begin{pmatrix}
x_1\\
x_2\\
\vdots\\
x_m
\end{pmatrix}
, \hspace{1em}
\b{y} = \begin{pmatrix}
y_1\\
y_2\\
\vdots\\
y_n
\end{pmatrix}を用いて
Undefined control sequence: \b at position 2: A\̲b̲{x} = \b{y}
A\b{x} = \b{y}と表すことができる。
もしに逆行列が存在するなら
Undefined control sequence: \b at position 1: \̲b̲{x} = A^{-1} \b…
\b{x} = A^{-1} \b{y}と解くことができる。
変数消去法は行列表記にすることもできる。
まとめると、ブロック行列
Undefined control sequence: \b at position 74: …egin{array}{c}
\̲b̲{x}\\ \hline -1…
\left(\begin{array}{c|c}
A & y
\end{array}\right)
\left(\begin{array}{c}
\b{x}\\ \hline -1
\end{array}\right)
= \b{0}を変形していって
Undefined control sequence: \b at position 74: …egin{array}{c}
\̲b̲{x}\\ \hline -1…
\left(\begin{array}{c|c}
I & z
\end{array}\right)
\left(\begin{array}{c}
\b{x}\\ \hline -1
\end{array}\right)
= \b{0}という形にする。 \b{x} - \b{z} = \b{0}となり、\b{z}のところに解が現れる。
変数消去法に限らず、行列で連立一次方程式を解くときはこのパターンになる。 また、変化があるのは(A|\b{y})の部分だけなので、この部分だけを扱うことも多い。
ガウスの消去法(掃き出し法)¶
ガウスの消去法(Gaussian elimination) あるいは 掃き出し法(row reduction) は正則行列による連立一次方程式を、ブロック行列表記にして解く方法。
変数消去法と同様に、
行のスカラー倍
行のスカラー倍を別の行に加算する
行の順番を入れ替える
といった操作を行うもので、
まずの対角線より下の要素たちを0にしていき、その後対角線より上の要素たちを0にしていってに到達する、という流れで計算していく
の対角線より下の要素たちを0にする操作を 前進消去 (Forward elimination)という
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)
Aarray([[ 1, 1, 5],
[ 0, 2, 12]])解の存在と一意性¶
連立一次方程式 の解は、次のように分類される:
一意解(unique solution):解がただ 1 つ存在する
不定解(infinite solutions):無限個の解が存在する
解なし(no solution):条件を満たす解が存在しない
係数行列 が正方行列()かつ 正則行列(逆行列が存在する)のとき、一意解が存在する。
過剰決定系と劣決定系¶
過剰決定系¶
方程式の数が未知数の数より多い場合()を 過剰決定系(overdetermined system) という
一般に厳密な解は存在しないが、最小二乗法で近似解を求められる。
これは線形回帰問題そのもの。
劣決定系¶
方程式の数が未知数の数より少ない場合()を 劣決定系(underdetermined system) という
解が無数に存在する。通常は、ノルムが最小の解を求める:
解を持つための条件¶
(※は拡大係数行列)
証明1
解をもつ について
が解をもつ,すなわちこの式をみたす が存在するとき、この式を書き直すと
となる。特に、 が の一次結合でかけている。ランクの定義は、一次独立な列ベクトルの最大個数であるから、 である。
解をもつについて
ランクの定義は,一次独立な列ベクトルの最大個数である。特に,rank とすると, から, 個の一次独立なベクトルが選べる。仮定より, は,選んだ 個の一次独立なベクトルの一次結合で表せる。特に
となる が存在する。これは、 を意味し、解をもつことが分かった。
証明2
出所:川久保勝夫. (2010). 線形代数学.
ただ1つの解を持つための条件¶
(※は拡大係数行列)
証明
解がただーつ について
仮定より、
をみたす がただ一つである。これは, が1次独立 であることを示している。実際,1次独立でない、すなわち
をみたす が存在すると仮定すると、(1),(2)の辺々足し合わせることで も連立方程式の解になり、解の一意性に反するからである。
ランクの定義は,一次独立な列ベクトルの最大個数であったから, である。
解がただ一つについて
2つの解を とおく。これが一致していることを示せばよい。 の辺々引くと,
となる。これを展開すると,
である。ランクの定義は,一次独立な列ベクトルの最大個数より, の仮定から, は一次独立である。すなわち,
となるから, を得る。
逆行列の推定への応用¶
逆行列の推定方法の一つに連立一次方程式を解く方法がある
次元正方行列の逆行列は
となるような正方行列であるため、組の連立一次方程式A\b{x}_i = \b{e}_i \hspace{0.5em} (i = 1,\dots, n)を解く問題として扱うことができる
が正則でない(特異な)場合¶
連立一次方程式の解の存在性と一意性の条件
結果から原因を一意に特定できる(写像は単射)⇔「\Ker Aが原点のみ」⇔「\Ker Aは0次元」⇔「\rank A = n(ランクが定義域の次元と同じ)」
どんな結果にも原因が存在する(写像は全射)⇔「が行き先の空間(値域)に一致する」⇔「は次元」⇔「\rank A = m(ランクが値域の次元と同じ)」
クラーメルの公式¶
証明
仮定よりであるから、という解がただひとつ存在する。
の列ベクトルをとすると
の第列をで置き換えた行列の行列式を考える。
\b{b} = x_1 \b{a}_1 + \cdots + x_n \b{a}_nなので
Undefined control sequence: \b at position 68: …nderbrace{ x_1 \̲b̲{a}_1 + \cdots …
\begin{array}{ccccc}
|\boldsymbol{a}_1 & \cdots & \underbrace{ x_1 \b{a}_1 + \cdots + x_n \b{a}_n }_{第j列} &\cdots & \boldsymbol{a}_n|
\end{array}「1つの列を倍すると行列式は倍になる」という定理より
番目以外は2つの列が等しいため、「2つの列が等しい行列の行列式は0になる」という定理により0になり、番目の項のみ残る
したがって、行列の第列をに入れ替えた行列の行列式はと等しくなる
この両辺をで割るとクラーメルの公式になる