線形代数7
連立1次方程式が解をもつ条件と解の自由度

例えば,連立1次方程式

\begin{align*} \begin{cases} 2x+3y=2\\ x-y=3\\ \end{cases} \end{align*}

は$A=\bmat{2&3\\1&-1}$, $\m{x}=\bmat{x\\y}$, $\m{c}=\bmat{2\\3}$とおくと$A\m{x}=\m{c}$と表せます.

このように,中学校以来よく扱ってきた$\m{x}$の連立1次方程式は,行列$A$とベクトル$\m{c}$を用いて$A\m{x}=\m{c}$と表すことができるのでした.

このことからも分かるように連立1次方程式は線形代数学と密接に関わっており,実際に線形代数学の基礎を理解する上で連立1次方程式を理解することは非常に重要です.

連立1次方程式$A\m{x}=\m{c}$は

  • 係数行列のランク$\rank{A}$
  • 拡大係数行列のランク$\rank{[A,\m{c}]}$

を比べることで,解をもつ条件を求めることができます.

この記事では,係数行列拡大係数行列,行列のランクを復習をしたのち

  • 連立1次方程式が解をもつ条件
  • 解の自由度

を説明します.

なお,この記事では特に断らない限り実行列・実ベクトルを扱うことにしますが,複素行列など一般のを成分とする行列・ベクトルに対しても同様です.

オススメの入門書

以下は初学者向けのオススメの教科書です.この記事の著者も数学教室の集団授業で使っています.

手を動かしてまなぶ 線形代数

[藤岡敦 著/裳華房]

線形代数の入門書で,説明も非常に丁寧なので初学者にも読み進めやすい教科書です.

数学で初めて出会った概念で詰まった時には,具体例を考えることで理解できるようになることはよくあります.

特に線形代数は高校数学で扱ってきた数学よりも抽象度がやや増すので,いきなり抽象的に理解するよりも「具体例を理解→抽象化」という学び方が効果的です.

本書は具体例と例題が豊富で,実際に手を動かしながらイメージを掴んで抽象的に理解することを目指しています.

また,続巻も発行されていますが,この第1巻だけでも正方行列の対角化(固有値・固有ベクトル)まで学ぶことができます.

いくつかの復習

本題に入る前に,

  • 連立1次方程式の係数行列拡大係数行列
  • 行列のランク

について復習をしておきましょう.

それぞれの詳しい説明は以下の記事を参照してください.

係数行列と拡大係数行列

連立1次方程式の係数行列と拡大係数行列は次のように定義されるのでした.

$m\times n$行列$A$と$m$次列ベクトル$\m{c}$に対し,連立1次方程式$A\m{x}=\m{c}$を考える.このとき$A$, $[A,\m{c}]$をそれぞれ係数行列 (coefficient matrix),拡大係数行列 (enlarged coefficient matrix)という.

例えば,$A=\bmat{1&2&3\\4&5&6}$, $\m{c}=\bmat{7\\8}$に対し,$\m{x}=\bmat{x\\y\\z}$の連立1次方程式$A\m{x}=\m{c}$は

\begin{align*} &\bmat{1&2&3\\4&5&6}\bmat{x\\y\\z}=\bmat{7\\8} \\\iff&\begin{cases} x+2y+3z=7\\ 4x+5y+6z=8 \end{cases} \end{align*}

で,この係数行列,拡大係数行列はそれぞれ

\begin{align*} A=\bmat{1&2&3\\4&5&6},\quad [A,\m{c}]=\bmat{1&2&3&7\\4&5&6&8} \end{align*}

ですね.

行列のランク

行列のランクを定義するためには,以下の事実が重要なのでした.

任意の行列$A$は行基本変形により簡約行列に変形できる.また,この簡約行列は一意である.

簡約行列とは

\begin{align*} &\bmat{\color{blue}{\m{1}}&0&3&0\\0&\color{blue}{\m{1}}&0&0\\0&0&0&\color{blue}{\m{1}}},\quad \bmat{0&\color{blue}{\m{1}}&0&4\\0&0&\color{blue}{\m{1}}&2\\0&0&0&0},\quad \bmat{\color{blue}{\m{1}}&0\\0&\color{blue}{\m{1}}\\0&0} \end{align*}

のように,

  • 第$i$行から第$i+1$行に移るごとに左側から$0$が増えていき
  • 各行の主成分($0$でない最も左の成分)が全て$1$であり
  • 主成分のある列では主成分以外の成分が全て$0$

であるような行列のことを言うのでした.

さて,このことから行列のランクは以下のように定義されます.

行列$A$に対して,$A$に行基本変形を施して簡約行列$B$になったとき,零行ベクトルでない$B$の行の個数を$A$のランク (階数,rank)といい,$\rank{A}$や$\operatorname{rk}{A}$などと表す.

例えば,行基本変形により

\begin{align*} \bmat{2&3&-2\\2&-2&8\\-3&0&-6} \to&\bmat{2&3&-2\\1&-1&4\\-3&0&-6} \to\bmat{2&3&-2\\1&-1&4\\-1&0&-2} \\\to&\bmat{1&-1&4\\2&3&-2\\-1&0&-2} \to\bmat{1&-1&4\\0&5&-10\\0&-1&2} \\\to&\bmat{1&-1&4\\0&1&-2\\0&-1&2} \to\bmat{1&-1&4\\0&1&-2\\0&0&0} \end{align*}

なので,

\begin{align*} \rank{\bmat{2&3&-2\\2&-2&8\\-3&0&-6}} =\rank{\bmat{1&-1&4\\0&1&-2\\0&0&0}} =2 \end{align*}

ですね.

連立1次方程式と解と自由度

それでは本題に移ります.

具体例から

まずは3つ具体例を考えます.

次の行列$A$とベクトル$\m{c}$に対して,$\m{x}=[x,y,z]^{T}$の連立1次方程式$A\m{x}=\m{c}$は解を持つか.

  1. $A=\bmat{1&1&1\\0&1&0\\0&0&1}$, $\m{c}=\bmat{1\\2\\3}$
  2. $A=\bmat{1&1&1\\0&1&0\\0&0&0}$, $\m{c}=\bmat{1\\2\\3}$
  3. $A=\bmat{1&1&2\\1&2&3}$, $\m{c}=\bmat{3\\2}$

素朴に掃き出し法で考えましょう.

(1) 拡大係数行列$[A,\m{c}]$を行基本変形により簡約化すると

\begin{align*} [A,\m{c}] =&\bmat{1&1&1&1\\0&1&0&2\\0&0&1&3} \\\to&\bmat{1&0&1&-1\\0&1&0&2\\0&0&1&3} \\\to&\bmat{1&0&0&-4\\0&1&0&2\\0&0&1&3} \end{align*}

なので,連立方程式は$(x,y,z)=(-4,2,3)$と解けますね.

(2) 拡大係数行列$[A,\m{c}]$を行基本変形により簡約化すると

\begin{align*} [A,\m{c}] =&\bmat{1&1&1&1\\0&1&0&2\\0&0&0&3} \\\to&\bmat{1&0&1&-1\\0&1&0&2\\0&0&0&3} \end{align*}

なので,これに対応する連立方程式は

\begin{align*} \begin{cases} x+z=-2\\ y=2\\ 0=3 \end{cases} \end{align*}

となります.この連立方程式の第3式はどのように$(x,y,z)$を選んでも満たしえませんから,解なしとなります.

(3) 拡大係数行列$[A,\m{c}]$を行基本変形により簡約化すると

\begin{align*} [A,\m{c}] =&\bmat{1&1&2&3\\1&2&3&2} \\\to&\bmat{1&1&2&3\\0&1&1&-1} \\\to&\bmat{1&0&1&4\\0&1&1&1} \end{align*}

なので,これに対応する連立方程式は

\begin{align*} \begin{cases} x+z=4\\ y+z=1 \end{cases} \end{align*}

となります.このとき,$z$に任意に値を代入でき,それぞれの場合で$x$, $y$の値が決まります.

よって,$z=c$ ($c$は任意定数)とすることで,解は$(x,y,z)=(4-c,1-c,c)$と表せることが分かりました.

解をもつための条件

この2つ目の例では

\begin{align*} \rank{A}=2,\quad \rank{[A,c]}=3 \end{align*}

となっています.

このように係数行列のランク$\rank{A}$が拡大係数行列のランク$\rank{[A,\m{c}]}$より小さいと,「どう頑張っても成り立たない等式$0=a$ $(a\neq0)$が現れて解けない」ということが見てとれます.

実際,一般に以下が成り立ちます.

$m\times n$行列$A$と$m$次列ベクトル$\m{c}$に対し,以下が成り立つ.

  1. $\rank{A}<\rank{[A,\m{c}]}$が成り立つことと,$\m{x}$の連立方程式$A\m{x}=\m{c}$が解をもたないことは同値である.
  2. $\rank{A}=\rank{[A,\m{c}]}$が成り立つことと,$\m{x}$の連立方程式$A\m{x}=\m{c}$が解をもつことは同値である.

$[A,\m{c}]$の簡約化を$[B,\m{d}]$とする.このとき,$\rank{B}\le\rank{[B,\m{d}]}$が成り立つことに注意すると,行基本変形によるランクの不変性と併せて

\begin{align*} \rank{A}=\rank{B}\le\rank{[B,\m{d}]}=\rank{[A,\m{c}]} \end{align*}

が成り立つ.よって,$\rank{A}$と$\rank{[A,\m{c}]}$の関係は

  • $\rank{A}<\rank{[A,\m{c}]}$
  • $\rank{A}=\rank{[A,\m{c}]}$

のいずれかとなる.

ここで,$\m{d}=[d_{1},\dots,d_{m}]^{T}$とする.

(1) $\rank{A}<\rank{[A,\m{c}]}$のとき,$\rank{B}<\rank{[B,\m{d}]}$である.

このとき,ある$j\in\{1,\dots,m\}$が存在して

  • $B$の第$j$行の成分は全て0である
  • $\m{d}$の第$j$成分は0でない

が成り立つ.

これにより,連立方程式$B\m{x}=\m{d}$の$j$番目の方程式の左辺は0であるが,右辺は0ではないから,$j$番目の方程式を満たす$\m{x}$は存在せず$B\m{x}=\m{d}$は解をもたない.

(2) $\rank{A}=\rank{[A,\m{c}]}$のとき,$\rank{B}=\rank{[B,\m{d}]}$である.

主成分をもたない列に対応する未知数$x_{i}$を全て0とし,主成分をもつ列に対応する未知数$x_{i}$を順に$d_1,\dots,d_m$としてできた$\m{x}$は$B\m{x}=\m{d}$の解となる.

よって,$B\m{x}=\m{d}$は解をもつ.

これで,(1), (2)の必要性が示された.

逆に,(1)の必要性の対偶をとれば(2)の十分性が従い,(2)の必要性の対偶をとれば(1)の十分性が従う.

解の自由度と解の一意性

次に連立1次方程式$A\m{x}=\m{c}$が解をもつときの解の様子をもう少し詳しく考えましょう.したがって,次は

\begin{align*} \rank{A}=\rank{[A,\m{c}]} \end{align*}

の場合を考えます.

先ほどの具体例の3つ目では拡大係数行列は

\begin{align*} [A,\m{c}] \to\bmat{1&0&1&4\\0&1&1&1} \end{align*}

と簡約化され,主成分の存在しない第$3$列に注目して$z=c$と任意定数を与えることで$(x,y,z)=(4-c,1-c,c)$と全ての解を表すことができました.

このように,係数行列を簡約化したとき主成分の存在しない列に対応する未知数に任意定数を与えることで,方程式の解を全て表すことができます.

これについて,解の自由度を以下のように定義します.

$m\times n$行列$A$と$m$次列ベクトル$\m{c}$に対し,$\m{x}$の連立1次方程式$A\m{x}=\m{c}$の解が任意定数を$k$個含むとき,解の自由度は$k$であるという.

いま説明したように,任意定数はちょうど「主成分が存在しない列の個数分」だけ必要になりますから,以下の定理が成り立ちますね.

$m\times n$行列$A$と$m$次列ベクトル$\m{c}$に対し,$N:=\rank{A}=\rank{[A,\m{c}]}$をみたすとする.このとき,$\m{x}$の方程式$A\m{x}=\m{c}$の解の自由度は$n-N$である.

$n$は$A$の行の個数ですが,これは未知数の個数にも等しいですね.


$[A,\m{c}]$の簡約化を$[B,\m{d}]$とする.このとき,$\rank{B}=\rank{A}=N$なので$B$の主成分は$N$個あるから,$B$の主成分が存在しない列は$(n-N)$個ある.

この$B$の主成分が存在しない列に対応する未知数$x_{i_{1}},\dots,x_{i_{n-N}}$それぞれに任意定数$c_{1},\dots,c_{n-N}$を与えると,$\m{x}$の連立方程式$B\m{x}=\m{d}$の残りの未知数は全て$c_{1},\dots,c_{n-N}$で一意に表される.

すなわち,$B\m{x}=\m{d}$の解の自由度は$n-N$となる.

連立方程式$A\m{x}=\m{c}$と$B\m{x}=\m{d}$の解は一致するので,$A\m{x}=\m{c}$の解の自由度も$n-N$となり,定理が従う.

すなわち,$\rank{A}(=\rank{[A,\m{c}]})$が未知数の個数に比べて小さいほど,自由度が大きいわけですね.

とくに$N=n$の場合を考えれば,次の系が成り立ちますね.

$m\times n$行列$A$と$m$次列ベクトル$\m{c}$に対し,$n=\rank{A}=\rank{[A,\m{c}]}$が成り立てば,$\m{x}$の方程式$A\m{x}=\m{c}$の解は一意である.

この定理は次回以降でも非常に重要な定理となります.

線形独立

前回の記事とこの記事で,ランクを考えることで

  • 正方行列が正則であるための条件
  • 連立1次方程式が解を持つための条件

などが分かることを説明しました.

その際,ランクは基本変形によって考えてきましたが,ベクトルの線形独立という考え方をもとにしても考えることができます.

また,線形独立性はとても重要な概念で,線形代数学全体において頻繁に現れます.

次の記事では

  • 線形独立とは何か
  • 線形独立性と行列のランクの関係

を説明します.

参考文献

以下は参考文献です.

手を動かしてまなぶ 線形代数

[藤岡敦 著/裳華房]

線形代数の入門書で,説明も非常に丁寧なので初学者にも読み進めやすい教科書です.

数学で初めて出会った概念で詰まった時には,具体例を考えることで理解できるようになることはよくあります.

特に線形代数は高校数学で扱ってきた数学よりも抽象度がやや増すので,いきなり抽象的に理解するよりも「具体例を理解→抽象化」という学び方が効果的です.

本書は具体例と例題が豊富で,実際に手を動かしながらイメージを掴んで抽象的に理解することを目指しています.

また,続巻も発行されていますが,この第1巻だけでも正方行列の対角化(固有値・固有ベクトル)まで学ぶことができます.

線型代数入門

[齋藤正彦 著/東京大学出版会]

線形代数の教科書として半世紀に渡って売れ続けている超ロングセラーの教科書です.

発刊されてから本書の内容の流れが線形代数の教科書のスタンダードとなったほど,日本の線形代数の指導にインパクトを与えた名著です.

その証拠に,著者の齋藤正彦氏は本書で日本数学会出版賞を受賞しています.

「線形代数をとりあえず使えるようにするための教科書」ではなく「線形代数を理解するための教科書」のため,論理的に非常に詳しく書かれているのが特徴です.

また,テキストのレベルとしては少なくとも理論系(特に数学系)の学部生であれば,確実に理解しておきたい程度のものとなっています.

なお,本書については,以下の記事で書評としてまとめています.