【連立方程式編】解を網羅する(基本解や特殊解)

こんにちは、おぐえもん(@oguemon_com)です。

前回の記事では、1 次独立・1 次従属の概念を紹介した上で、今まで扱ってきた階数(rank)は、実のところ 1 次独立な行 or 列の数を表すのだということを説明しました。

今回は、1 次独立などを用いつつ、解を網羅する方法について説明します。

Ax=oの非自明解を考える

一般的な場合を考える前に、まずはAx=oA\boldsymbol{x}=\boldsymbol{o}の場合を考えましょう。これは、同次形の連立 1 次方程式、すなわち、右辺が全部 0 で定数項を持たない方程式のことですね。

Ax=oが解を持つとき

まず、Ax=oA\boldsymbol{x}=\boldsymbol{o}は「x=o\boldsymbol{x}=\boldsymbol{o}」(→ どの変数も全部 0)という解を絶対に持ちます。これは自明とみなして、x=o\boldsymbol{x}=\boldsymbol{o}以外の解(非自明解)を求めます。

同次形の連立 1 次方程式が非自明解を持つのは、次の場合でした。

同次形の連立1次方程式が非自明解を持つとき

AAの列数がnnのとき、同次形の連立 1 次方程式Ax=oA\boldsymbol{x}=\boldsymbol{o}非自明解を持つ必要十分条件は以下の式の成立である。

rank[A o]<n{\rm rank}[A \ \boldsymbol{o}] < n

厳密さを欠くの承知で簡単に言えば、変数の数が式の数よりも多い状況です。

さて、そんな時は、nrank[A o]n-{\rm rank}[A \ \boldsymbol{o}]個の変数を任意にした上で、残りの変数をこれらの変数の組み合わせで表すことにもなっていました。

この辺の話については、例も含めて過去の記事をご覧ください。

Ax=oの非自明解を網羅する方法

ここで、真っ先に結論を言っちゃいますが、同次形の連立 1 次方程式が持つ非自明解を網羅するための方法は以下の通りになります。

同次形の連立1次方程式の非自明解

便宜を図るためr=rank[A o]r={\rm rank}[A \ \boldsymbol{o}]とする。nn個の変数を持つ同次形の連立 1 次方程式Ax=oA\boldsymbol{x}=\boldsymbol{o}の任意解(全ての解)x\boldsymbol{x}は、nrn-r個の 1 次独立な解の 1 次結合により表される。

すなわち、Ax=oA\boldsymbol{x}=\boldsymbol{o}を満たす(x1 x2  xn)(x*1 \ x_2 \ \cdots \ x_n)の組み合わせxi\boldsymbol{x_i}のうち、1 次独立なnrn-r個(x1,x2,,xnr\boldsymbol{x_1},\boldsymbol{x_2},\cdots,\boldsymbol{x*{n-r}})を用いて

x=λ1x1+λ2x2++λnrxnr\boldsymbol{x}=\lambda_1\boldsymbol{x_1}+\lambda_2\boldsymbol{x_2}+\cdots+\lambda_{n-r}\boldsymbol{x_{n-r}} (λ1,λ2,,λnrは任意)(\lambda_1,\lambda_2,\ldots,\lambda_{n-r}\text{は任意})

と表すことができる。

網羅する方法の例

例として、5つの変数を持つ3式の同次連立1次方程式を用意しました。

{2x1+2x2+6x3+2x4+2x5=0x1+2x2+6x3+2x4+3x5=0x1+x2+4x3+2x4+2x5=0\left\{ \begin{array}{rcl} 2x_1+2x_2+6x_3+2x_4+2x_5&=&0 \\ x_1+2x_2+6x_3+2x_4+3x_5&=&0 \\ x_1+x_2+4x_3+2x_4+2x_5&=&0 \end{array} \right.

これの拡大係数行列を階段行列にすると、

(114220012010001110)\left( \begin{array}{cccccc} 1 & 1 & 4 & 2 & 2 & 0 \\ 0 & 1 & 2 & 0 & 1 & 0 \\ 0 & 0 & 1 & 1 & 1 & 0 \end{array} \right)

となり、階数が33だと判りました。

ここで、53=25-3=2つの変数を任意にしましょう。

x4=μ1, x5=μ2x_4=\mu_1, \ x_5=\mu_2

μ1,μ2\mu_1,\mu_2は両方とも任意の数をとることにします。

そして、先ほどの式にx4,x5x_4,x_5を代入することで、解が求まるのですが、互いに1次独立な解を53=25-3=2つ用意すれば良いので、(μ1,μ2)=(1,0)(\mu_1,\mu_2)=(1,0)の場合と(μ1,μ2)=(0,1)(\mu_1,\mu_2)=(0,1)の場合について解を探してみましょう!(μ1,μ2)(\mu_1,\mu_2)に与える値は'基本的に'何でも良い(求まった解が全て1次独立じゃないとNG)のですが、簡単な数の方が計算が楽です。

また、解を導くにあたって、連立1次方程式は階段行列に変形したときのものを使うとショートカットできます。

{x1+x2+4x3+2x4+2x5=0x2+2x3+x5=0x3+x4+x5=0\left\{ \begin{array}{rcl} x_1+x_2+4x_3+2x_4+2x_5&=&0 \\ x_2+2x_3+x_5&=&0 \\ x_3+x_4+x_5&=&0 \end{array} \right.

(μ1,μ2)=(1,0)(\mu_1,\mu_2)=(1,0)の場合】

連立 1 次方程式は

{x1+x2+4x3+2=0x2+2x3=0x3+1=0\left\{ \begin{array}{rcl} x_1+x_2+4x_3+2&=&0 \\ x_2+2x_3&=&0 \\ x_3+1&=&0 \end{array} \right.

となります。既にx3x_3の値が分かっちゃってますし、楽勝すぎワロタですね。

解は**(x1,x2,x3,x4,x5)=(0,2,1,1,0)(x_1,x_2,x_3,x_4,x_5)=(0,2,-1,1,0)**です。

(μ1,μ2)=(0,1)(\mu_1,\mu_2)=(0,1)の場合】

連立 1 次方程式は

{x1+x2+4x3+2=0x2+2x3+1=0x3+1=0\left\{ \begin{array}{rcl} x_1+x_2+4x_3+2&=&0 \\ x_2+2x_3+1&=&0 \\ x_3+1&=&0 \end{array} \right.

となります。先ほどと同様にして、解は**(x1,x2,x3,x4,x5)=(1,1,1,0,1)(x_1,x_2,x_3,x_4,x_5)=(1,1,-1,0,1)**です。

このように、簡単に 2 つの解が導けました。この 2 解は互いに 1 次結合で表せない 1 次独立の関係性なので、非自明解x\boldsymbol{x}

x=λ1(02110)+λ2(11101)=(λ22λ1+λ2λ1λ2λ1λ2)\boldsymbol{x}=\lambda_1 \left( \begin{array}{c} 0 \\ 2 \\ -1 \\ 1 \\ 0 \end{array} \right) +\lambda_2 \left( \begin{array}{c} 1 \\ 1 \\ -1 \\ 0 \\ 1 \end{array} \right)= \left( \begin{array}{c} \lambda_2 \\ 2\lambda_1+\lambda_2 \\ -\lambda_1-\lambda_2 \\ \lambda_1 \\ \lambda_2 \end{array} \right)

という形にすることで網羅できます!

ただし、ここでもλ1,λ2\lambda_1,\lambda_2は任意の数をとることとします。

基本解について

同次形の連立1次方程式の非自明解は、1次独立な「変数の個数 - 階数」個の解の1次結合で表わすことで、これを網羅することができました。

ここで、非自明解の網羅に必要な「変数の個数 - 階数」個の解を基本解と呼びます。

基本解は、「変数の個数 - 階数」個の解が1次独立ならばなんでも構いません(これ!ってのが1つに定まるタイプのものではありません)。

しかし、1次独立であることが何よりも重要なので、1次独立であることが確実で、なおかつシンプルな組み合わせが良く用いられます。

その例が、先ほども用いた、「あるμ\mu11で、それ以外のμ\muが全部00の場合における解」の組み合わせです。

つまり、任意の値を与えることになる「変数の個数(nn) - 階数(rr)」個の解xr+1,,xnx*{r+1},\cdots,x*{n}について、

(xr+1,xr+2,xr+3,,xn)=(1,0,0,,0)(x*{r+1},x*{r+2},x*{r+3},\cdots,x*{n})=(1,0,0,\cdots,0)の場合の解(x1,,xr+1,,x_n)(x*1,\cdots,x*{r+1},\cdots,x\_{n})と、
(xr+1,xr+2,xr+3,,xn)=(0,1,0,,0)(x*{r+1},x*{r+2},x*{r+3},\cdots,x*{n})=(0,1,0,\cdots,0)の場合の解(x1,,xr+1,,x_n)(x*1,\cdots,x*{r+1},\cdots,x\_{n})と、
(xr+1,xr+2,xr+3,,xn)=(0,0,1,,0)(x*{r+1},x*{r+2},x*{r+3},\cdots,x*{n})=(0,0,1,\cdots,0)の場合の解(x1,,xr+1,,x_n)(x*1,\cdots,x*{r+1},\cdots,x\_{n})と、
\vdots
(xr+1,xr+2,xr+3,,xn)=(0,0,0,,1)(x*{r+1},x*{r+2},x*{r+3},\cdots,x*{n})=(0,0,0,\cdots,1)の場合の解(x1,,xr+1,,x_n)(x*1,\cdots,x*{r+1},\cdots,x\_{n})

nrn-r個を基本解とするのがオススメです!

基本解の一次結合って自明解も包含してるくない?

その通り!!解にある任意定数を全て0にすると、当然ながら解は0になるので、自明解も含みます!やったね!

まとめ

以上から、同次形の連立1次方程式は次の形で網羅できます。

同次連立1次方程式の任意解(全ての解)

nn個の変数を持つ同次形の連立1次方程式Ax=oA\boldsymbol{x}=\boldsymbol{o}の任意解(全ての解)x\boldsymbol{x}について考える。

ここで、r=rank[A o]r={\rm rank}[A \ \boldsymbol{o}]とする。

r=nr = nのとき

自明解しか持たないので、x=o\boldsymbol{x}=\boldsymbol{o}でおわり。

r<nr < nのとき

nrn-r個の1次独立な解の1次結合により表される。

x=λ1x1+λ2x2++λnrxnr\boldsymbol{x}=\lambda_1\boldsymbol{x_1}+\lambda_2\boldsymbol{x_2}+\cdots+\lambda_{n-r}\boldsymbol{x_{n-r}} (λ1,λ2,,λnrは任意)(\lambda_1,\lambda_2,\ldots,\lambda_{n-r}\text{は任意})

Ax=bが解を持つとき

次は、より一般的な場合について考えます。今度は、先ほどとは異なり定数項がある(0 でない)場合の解です。

これも先に結論を言いますと、Ax=bA\boldsymbol{x}=\boldsymbol{b}の解を 1 つ求めて、Ax=oA\boldsymbol{x}=\boldsymbol{o}の任意解(全ての解)を足し合わせると網羅できます!

ここで、Ax=bA\boldsymbol{x}=\boldsymbol{b}を満たす解の 1 つを特殊解と呼びます。

Ax=bの解に関する定理

連立1次方程式の解に関する2つの定理

Ax=bA\boldsymbol{x}=\boldsymbol{b}を満たす解の 1 つx0\boldsymbol{x_0}とすると、次の(1)と(2)が成り立つ。

(1)Ax=bA\boldsymbol{x}=\boldsymbol{b}任意解(全ての解)x\boldsymbol{x}

x=x0+y\boldsymbol{x}=\boldsymbol{x_0}+\boldsymbol{y}

と表すと、y\boldsymbol{y}は、Ax=oA\boldsymbol{x}=\boldsymbol{o}の解(任意解とは限らない)である。

(2)Ax=oA\boldsymbol{x}=\boldsymbol{o}の**任意解(全ての解)**をz\boldsymbol{z}と表すとき、

w=x0+z\boldsymbol{w}=\boldsymbol{x_0}+\boldsymbol{z}

について、w\boldsymbol{w}Ax=bA\boldsymbol{x}=\boldsymbol{b}の解(任意解とは限らない)である。

理由は簡単。

1.について

x=x0+yx=x_0+yを変形して、y=xx0y=x-x_0にすると、

Ay=A(xx0)=AxAx0 分配法則=bb=o\begin{aligned} A\boldsymbol{y} &= A(\boldsymbol{x-x_0})\\ &= A\boldsymbol{x}-A\boldsymbol{x_0} \ \leftarrow\text{分配法則}\\ &= \boldsymbol{b}-\boldsymbol{b}\\ &= \boldsymbol{o} \end{aligned}

となり、yyAx=oA\boldsymbol{x}=\boldsymbol{o}の解であることが示されました。

2.について

w=x0+zw=x_0+z直接代入します。

Aw=A(x0+z)=Ax0+Az 分配法則=b+o=b\begin{aligned} A\boldsymbol{w} &= A(\boldsymbol{x_0+z})\\ &= A\boldsymbol{x_0}+A\boldsymbol{z} \ \leftarrow\text{分配法則}\\ &= \boldsymbol{b}+\boldsymbol{o}\\ &= \boldsymbol{b} \end{aligned}

より、wwAx=bA\boldsymbol{x}=\boldsymbol{b}の解であることが示されました。

(1),(2)ともに、命題の結びには**(任意解とは限らない)と書いているのですが、(1),(2)を結びつけることで、これらの解は任意解(全ての解)である**ことになります。よって、Ax=bA\boldsymbol{x}=\boldsymbol{b}の任意解(全ての解)が、解の1つと、Ax=oA\boldsymbol{x}=\boldsymbol{o}の任意解(全ての解)の和で表せることが言えました!

網羅する方法の例

先ほど解いた同次連立1次方程式の右辺に値を加えたものを用意しました。

{2x1+2x2+6x3+2x4+2x5=2x1+2x2+6x3+2x4+3x5=1x1+x2+4x3+2x4+2x5=2\left\{ \begin{array}{rcl} 2x_1+2x_2+6x_3+2x_4+2x_5&=&2 \\ x_1+2x_2+6x_3+2x_4+3x_5&=&1 \\ x_1+x_2+4x_3+2x_4+2x_5&=&2 \end{array} \right.

ここで、改めて拡大係数行列を用意して、階段行列を作ります。

(114222012011001111)\left( \begin{array}{cccccc} 1 & 1 & 4 & 2 & 2 & 2 \\ 0 & 1 & 2 & 0 & 1 & -1 \\ 0 & 0 & 1 & 1 & 1 & 1 \end{array} \right)

となり、rank[A b]=rankA{\rm rank}[A \ \boldsymbol{b}]={\rm rank}Aである上、階数が33だと判りました。

同次形のときと同じく、53=25-3=2個の変数を任意に与えることができるので、計算を簡単にするため、(x4,x5)=(0,0)(x_4,x_5)=(0,0)として計算を進めます。

階段行列を利用しつつ、(x4,x5)(x_4,x_5)を代入した式がこちら。

{x1+x2+4x3=2x2+2x3=1x3=1\left\{ \begin{array}{rcl} x_1+x_2+4x_3&=&2 \\ x_2+2x_3&=&-1 \\ x_3&=&1 \end{array} \right.

これを解くと、 (x1,x2,x3,x4,x5)=(1,3,1,0,0)(x_1,x_2,x_3,x_4,x_5)=(1,-3,1,0,0)が導かれました。この解が特殊解です。

連立方程式の任意解は、これと同次連立1次方程式の任意解の和でした。よって、先ほど求めた同次連立1次方程式の任意解

(λ22λ1+λ2λ1λ2λ1λ2)\left( \begin{array}{c} \lambda_2 \\ 2\lambda_1+\lambda_2 \\ -\lambda_1-\lambda_2 \\ \lambda_1 \\ \lambda_2 \end{array} \right)

を合わせて、

(13100)+(λ22λ1+λ2λ1λ2λ1λ2)=(1+λ23+2λ1+λ21λ1λ2λ1λ2)\left( \begin{array}{c} 1 \\ -3 \\ 1 \\ 0 \\ 0 \end{array} \right)+\left( \begin{array}{c} \lambda_2 \\ 2\lambda_1+\lambda_2 \\ -\lambda_1-\lambda_2 \\ \lambda_1 \\ \lambda_2 \end{array} \right)=\left( \begin{array}{c} 1+\lambda_2 \\ -3+2\lambda_1+\lambda_2 \\ 1-\lambda_1-\lambda_2 \\ \lambda_1 \\ \lambda_2 \end{array} \right)

が連立方程式の任意解になります。

まとめ

以上の話を改めてまとめます。

連立1次方程式の任意解(全ての解)

連立1次方程式Ax=bA\boldsymbol{x}=\boldsymbol{b}の任意解(全ての解)x\boldsymbol{x}は、

Ax=oA\boldsymbol{x}=\boldsymbol{o}の任意解(全ての解)と、Ax=bA\boldsymbol{x}=\boldsymbol{b}の解の1つ(特殊解)の和である。

連立1次方程式の解を網羅する方法(まとめ)

以上のクソ長い説明をまとめると、連立1次方程式の解は以下のようにして網羅できることになります。(解が求まるシチュエーションが前提です)

連立1次方程式の解を網羅する方法

連立1次方程式Ax=bA\boldsymbol{x}=\boldsymbol{b}の任意解(全ての解)x\boldsymbol{x}を求める方法は以下の通り。

Step1: Ax=bA\boldsymbol{x}=\boldsymbol{b}の解の1つ(特殊解)を求める

階段行列を作って階数を求め、「変数の個数 - 階数」個の変数に好きな値を与える(オール0がオススメ)。

その上で導いた連立方程式の解x0\boldsymbol{x_0}が特殊解である。

Step2: Ax=oA\boldsymbol{x}=\boldsymbol{o}の任意解(全ての解)を求める

「変数の個数 - 階数」個の変数に好きな値を与え(1つだけ「1」で、残りはオール0がオススメ)、これを用いて連立方程式を解く。

これを繰り返して、1次独立な「変数の個数 - 階数」組の解を求める。

そして、これらの解を1次結合させた解(λ1x1++λnrx_nr\lambda*1\boldsymbol{x_1}+\cdots+\lambda*{n-r}\boldsymbol{x\_{n-r}})が任意解である。

Step3: 特殊解と任意解を足す

Step1とStep2で求めた解の和が、連立方程式の任意解である。

x=x0+λ1x1++λnrxnr\boldsymbol{x}=\boldsymbol{x_0}+\lambda_1\boldsymbol{x_1}+\cdots+\lambda_{n-r}\boldsymbol{x_{n-r}}

これで連立方程式編はおしまいです!ありがとうございました!

▲ トップへ戻る