線型方程式系

数学において**線型方程式系**（せんけいほうていしきけい）とは、同時に成立する複数の線型方程式（一次方程式）の組のことである。**線形**等の用字・表記の揺れについては線型性を参照。

複数の方程式の組み合わせを**[[方程式系]]**あるいは**[[方程式系|連立方程式]]**と呼ぶことから、線型方程式系のことを**一次方程式系**、**連立線型方程式**、**連立一次方程式**などとも呼ぶこともある。

## 初等的説明
以下の式は、2 変数の線型方程式系の例である。
: \begin{cases}
 x + 2y = 5\\
 2x + 3y = 8
\end{cases}
左側の記号（中括弧）は、特に必要というわけではないが、方程式系であることを明示するためによく用いられる。
この式において、2 つの線型方程式を同時に満たす (**', **') = (1, 2) が解である。

与えられた線型方程式系に属するすべての方程式を同時に満たすような変数の値のことを**線型方程式系の解**といい、線型方程式系の解を求めることを**線型方程式系を解く**という。

線型方程式系が与えられたとき、変数の数と方程式の本数を比べれば、その解は大まかに言って
# 変数の数の方が多いならば、（変数の数） &minus; （方程式の本数）の分だけ変数を自由に定めることができ、解が一つに定まらない。
# 変数の数と方程式の本数が一致するならば、解が存在し、一つに定まる。
# 方程式の本数の方が多いならば、制約が過剰なので、解が存在しない。
のようになっていると考えることができる。また、変数の数が多いときには、いくつかの変数を勝手な値をとることができる定数と思ってやることで、変数の数と方程式の本数が同じであると考えることができる。したがって、普段は方程式の数と変数の数が一致する方程式系を考えることが多い。

解法でよく知られたものとして以下の方法がある。いずれの方法も変数を減らしていき、一変数の方程式に帰着させることによって解く方法である。

; 代入法
: いずれかの方程式を一つの変数について解き、他の方程式に代入することによって、変数を減らし、方程式を簡単にしてから解く方法。
; 等値法（等置法）
: それぞれの方程式を、特定の変数について解いたときの値を等しいとして、変数を消去する方法。代入法の一種とも言える。
; 加減法
: 方程式の両辺を定数倍したり、足し引きすることによって、変数を消去する方法。

## 行列と線型方程式系
**' 変数 **' 本の線型方程式系は一般に **' 個の係数 **'**',**' (**' = 1, 2, ..., **', **' = 1, 2, ..., **') および **' 個の定数 **'1, **'<sub>2</sub>, ..., **'**'</sub> を用いて
: <math>\left\{\begin{matrix}
 a_{1,1}x_1 + a_{1,2}x_2 +\cdots + a_{1,n}x_n &=& b_1\\
 a_{2,1}x_1 + a_{2,2}x_2 +\cdots + a_{2,n}x_n &=& b_2\\
 \vdots &\vdots &\vdots \\
 a_{m,1}x_1 + a_{m,2}x_2 +\cdots + a_{m,n}x_n &=& b_m
\end{matrix}\right.</math>
の形に表される。これを、記法を改めて
: <math>\begin{bmatrix}
 a_{1,1} & a_{1,2} &\cdots & a_{1,n}\\
 a_{2,1} & a_{2,2} &\cdots & a_{2,n}\\
 \vdots & \vdots &\ddots & \vdots \\
 a_{m,1} & a_{m,2} &\cdots & a_{m,n}
\end{bmatrix}\begin{bmatrix}
 x_1 \\ x_2 \\ \vdots \\ x_n
\end{bmatrix} = \begin{bmatrix}
 b_1 \\ b_2 \\ \vdots \\ b_m
\end{bmatrix}</math>
と表示したり、あるいはさらに[[行列 (数学)|行列]]や[[ベクトル空間|ベクトル]]を用いて、**' = [**'<sub>**'], ***' = [''''<sub>''''</sub>], ***' = [**'<sub>**'] などと置いてやれば
: Ax = b
と記述することができる（歴史的には、このような表記法を考えることで行列の概念が作り出されたのである）。ここで **' をこの方程式系の**係数行列**、**** を変数ベクトルという。また特に **** が零ベクトル **0**（すべての成分が 0）である場合に、この線型方程式は**斉次**（あるいは**同次**、<em lang="en">homogeneous</em>）であるといい、そうでないとき**非斉次**（あるいは**非同次**、<em lang="en">inhomogeneous</em>）であるという。非斉次の方程式 *****'' = ***' が与えられたとき、***' = '''0''' と置いて得られる斉次方程式 ****** = '''0''' はもとの非斉次方程式に'''随伴'''する斉次方程式であるという（随伴という代わりに、'''同伴'''する、'''付随'''する、'''対応'''する、伴うなどともいう）。

== 線型方程式系の解空間 ==
'''' と '''' を有限次元[[ベクトル空間]]とし、変数ベクトル ***' は **' の中を動くものとし、**' の元 ***' と係数行列 '''' によって定まる線型方程式系
: <math> Ax = b</math>
を考える。また、行列 '''' の定める[[線型写像]]を ''''<sub>''''</sub>: '''' &rarr; '''' と記すことにすると、この線型方程式系を解くという問題は、一点集合 {***'} の **'<sub>**' による逆像 **'<sub>**'&minus;1(***') の状態（ここで ''''<sub>''''</sub><sup>&minus;1</sup> は一般には写像にはならず、[[対応 (数学)|逆対応]]の意味である）を記述する問題であると捉えることができる。
: <small>本項目は線型方程式の有限系を考察対象とするため、'''' と '''' は有限次元であると仮定するが、基本的に以下の議論はベクトル空間 '''' と '''' が無限次元であってもほとんどの場合は、適当な読み替えのもとに成立する。一般の場合は[[線型方程式]]の項を参照されたい。</small>

方程式系が斉次形 (***' = **0**) ならば、この方程式は常に零ベクトル ***' = '''0''' を解に持つ。これを斉次方程式の'''自明な解'''とよぶ。また斉次形ならば方程式の'''解の重ね合わせ'''が可能である。つまり、 ***' と ***' が斉次線型方程式系の解であるとき、任意のスカラー &alpha; と &beta; に対して、 &alpha;***' + &beta;***' も同じ方程式系の解となる。したがって斉次方程式系の解全体の集合 ''''<sub>''''</sub><sup>&minus;1</sup>('''0''') は '''' の[[線型部分空間]]をなし、方程式系の'''解ベクトル空間'''あるいは省略して'''解空間'''と呼ばれる。斉次方程式の解空間 ''''<sub>''''</sub><sup>&minus;1</sup>('''0''') は ''''<sub>''''</sub> の（あるいは '''' の）[[零空間|核]]と呼ばれるもので、斉次方程式系の解空間が部分空間をなすという事実は核
: <math> \ker A = \ker f_A := x \in V \mid Ax=\mathbf{0} \} </math>
が '''' の部分空間を成すということに同じである。特に、解空間の次元は ''''<sub>''''</sub> の[[行列の階数|退化次数]] nul ''''<sub>''''</sub> に等しい。このことはさらに、'''' = nul ''''<sub>''''</sub> とおくと、方程式の一般解が '''' 個の一次独立な解（'''基本解'''） ***'1, ***'<sub>2</sub>, ..., ***'**'</sub> と **' 個の任意定数（パラメータ）**'<sub>1</sub>, **'2, ..., **'<sub>**' によって
: c_1x_1 + c_2x_2 + \cdots + c_nx_n
の形に表されると言い換えることができる。

方程式系が非斉次 (***' &ne; '''0''') であるとき、***' が線型写像 **'<sub>**' の像に含まれていなければ方程式系の解は存在せず、***' が '''' の像に属すならば少なくとも一つの解が存在する。さらに線型写像 ''''<sub>''''</sub> が[[全射]]ならば、任意の ***' &isin; **' に対して方程式系は解を持つ。列ベクトル ****<sub>1</sub>, ****<sub>2</sub>, ..., ****<sub>**' によって **' = (****<sub>1</sub>, ****<sub>2</sub>, ..., ****<sub>**') と表すと、***' が線型写像 ''''<sub>''''</sub> の像に含まれるということは、***'1, ***'<sub>2</sub>, ..., ***'**'</sub> の線型結合として **** が表されるということであり、またこれは[[行列の階数|階数]]を用いれば、行列 **' と行列 **' = (****<sub>1</sub>, ****<sub>2</sub>, ..., ****<sub>**', ***') の間に等式  '''' =  '''' が成立することと述べることもできる。

非斉次の線型方程式系が2つの解 ***' と ***' を持つとき、差 ***' &minus; ***' は 写像 ''''<sub>''''</sub> の線型性によって ''''(***' &minus; ***') = '''0''' をみたす。したがって、非斉次の線型方程式系の二つの解は随伴する斉次方程式系の解を加える分の違いしか持たない。ゆえに非斉次方程式系の解の一つ（特殊解）と随伴斉次方程式系の一般解により、非斉次方程式のすべての解を記述することができる。つまり、 ***'0 が ****** = ***' の特殊解であるならば、非斉次方程式の解の全体は
: <math> x_0 + \ker f_A := x_0 + v \in V \mid Av = \mathbf{0} \}</math>
で与えられる。これは ker '''' に随伴した[[アファイン空間]]であり、やはり方程式系の'''解空間'''と呼ばれる。随伴斉次方程式の基本解 ***'1, ***'<sub>2</sub>, ..., ***'**'</sub> を用いれば
: <math>x_0 + c_1x_1 + c_2x_2 + \cdots + c_nx_n</math>
の形にすべての解を書くことができる。

線型方程式 *****'' = ***' の解が一意であることは、線型写像 **'<sub>**' が単射であることを意味し、これは ker **' = {**0**} であることと同値である。する。またこれは、階数と退化次数の関係から、**'**'</sub> が非退化 <span lang="en">(full rank)</span> であるとも言い換えられる。またこのとき、さらに **', **' の次元が同じならば、行列式 |**'| は零でない。

## 解法
方程式の数と変数の数が一致する場合において、**' が[[正則行列]]ならば、**' の逆行列と呼ばれる行列 **'<sup>&minus;1</sup> を用いて、この線型方程式系の解を
: <math>x = A^{-1}b</math>
と求めることが（論理的には）可能である。しかし、逆行列を計算することは一般に困難であり、数値計算的には別の解法が各種提案されている。
以下の 2 つは、[[線型代数学]]に重要な[[解法]]である。
* [[ガウスの消去法]]
* [[行列の基本変形]]

実用上に出てくる[[問題]]は、問題の規模（方程式の本数や変数の数）が小さく、係数行列 **' が密なものか、問題の規模は大きいものの、行列 **' は[[疎]]でなおかつ性質があるものが多い([[疎行列]])。また行列 **' は変わらず、定数ベクトル **** をいくつも変えて計算する必要も生じる。従って、それぞれの状況に適した解法を選ぶ必要がある。
* LU分解
* 特異値分解
* 共役勾配法

## 具体例
** が2次正方行列のとき
:
\begin{bmatrix}
a_{1 1}&a_{1 2}\\
a_{2 1}&a_{2 2}
\end{bmatrix}
\begin{bmatrix}
x_1\\
x_2
\end{bmatrix}
=
\begin{bmatrix}
b_1\\
b_2
\end{bmatrix}

の解は次のようになる。

a_{11}a_{22}-a_{12}a_{21}\ne 0 のとき
:
\begin{bmatrix}
x_1\\
x_2
\end{bmatrix}
=\frac{1}{a_{11}a_{22}-a_{12}a_{21}}
\begin{bmatrix}
a_{22}b_1-a_{12}b_2\\
-a_{21}b_1+a_{11}b_2
\end{bmatrix}

である。
a_{11}a_{22}-a_{12}a_{21}= 0 のとき、|a_{11}|^2+|a_{12}|^2\ne 0のときは、方程式が
:
\begin{bmatrix}
a_{11}&a_{12}\\
ka_{11}&ka_{12}
\end{bmatrix}
\begin{bmatrix}
x_1\\
x_2
\end{bmatrix}
=
\begin{bmatrix}
b_1\\
b_2
\end{bmatrix},\quad
k=\frac{\overline{a_{11}}a_{21}+\overline{a_{12}}a_{22}}{|a_{11}|^2+|a_{12}|^2}

と書けて、b_2\ne kb_1のとき解なし。b_2= kb_1のとき
:
\begin{bmatrix}
x_1\\
x_2
\end{bmatrix}
=\frac{b_1}{|a_{11}|^2+|a_{12}|^2}
\begin{bmatrix}
\overline{a_{11}}\\
\overline{a_{12}}
\end{bmatrix}
+t
\begin{bmatrix}
-a_{12}\\
a_{11}
\end{bmatrix},\quad (t\in \mathbb{C})

となる。
|a_{11}|^2+|a_{12}|^2=0のときは、方程式は
:
\begin{bmatrix}
0&0\\
a_{21}&a_{22}
\end{bmatrix}
\begin{bmatrix}
x_1\\
x_2
\end{bmatrix}
=
\begin{bmatrix}
b_1\\
b_2
\end{bmatrix}

であり、
|a_{21}|^2+|a_{22}|^2\ne 0のとき、b_1\ne 0 のとき解なし。b_1= 0 のとき
:
\begin{bmatrix}
x_1\\
x_2
\end{bmatrix}
=\frac{b_2}{|a_{21}|^2+|a_{22}|^2}
\begin{bmatrix}
\overline{a_{21}}\\
\overline{a_{22}}
\end{bmatrix}
+t
\begin{bmatrix}
-a_{22}\\
a_{21}
\end{bmatrix},\quad (t\in \mathbb{C})

となる。
|a_{21}|^2+|a_{22}|^2= 0のとき、|b_1|^2+|b_2|^2\ne 0 のとき解なし。
b_1=b_2= 0 のとき
:
\begin{bmatrix}
x_1\\
x_2
\end{bmatrix}
=s
\begin{bmatrix}
1\\
0
\end{bmatrix}
+t
\begin{bmatrix}
0\\
1
\end{bmatrix},\quad (s,\,t\in \mathbb{C})

となる。

## 応用
線型方程式系は、数学において伝統的な問題である。またさまざまな応用がある。

* 信号処理
* 線型計画問題
* 線型近似（たとえばニュートン法、有限要素法等）

## 関連項目
* 線型方程式
* 線型代数学
* 行列
* クラメルの公式
* 疎行列
* 非線型方程式系

## 脚注