✖

連立1次方程式

連立1次方程式とは、n 個の変数についての m 個の1次方程式の組です。連立方程式を解くと、n 個の変数に代入したときにすべての方程式が成り立つような値が得られます。

連立1次方程式の定義

次のような簡単な連立方程式は、すでに見たことがあるでしょう。

a11x+a12y=b1a21x+a22y=b2

ここで、a11,…,a22, b1, b2 は与えられた実数で、x と y は変数です。この連立方程式の解の個数は、ふつうの1次方程式と同じように、解なし、1つ、無数のいずれかになります。ただし、連立1次方程式では、解がいくつあるかを調べたり、解を求めたりするのは、1つの1次方程式の場合より複雑です。

連立1次方程式は、次のように定義します。

a11x1+a12x2+…+a1nxn=b1a21x1+a22x2+…+a2nxn=b2⋮⋮⋮⋮⋮⋮⋮⋮⋮am1x1+am2x2+…+amnxn=bm

ここで、a11, …, amn, b1, …, bm は実数です。これを、係数 a11, …, amn をもつ、n 個の未知数 x1, …, xn についての m 個の1次方程式からなる連立1次方程式といいます。具体的な連立1次方程式は、例えば次のようになります。

3x1+−2x2+4x3+5x4=15x1+4x2+2x3+−10x4=211x1+8x2+10x3+20x4=4

ただし、ある aij が負のときは、ふつう次のように書きます。

3x1−2x2+4x3+5x4=15x1+4x2+2x3−10x4=211x1+8x2+10x3+20x4=4

この場合も、a12 = −2、a24 = −10 であることに変わりはありません。

行列による表し方

この連立方程式は、行列の形に書き直せます。係数の行列、方程式の右辺の行列、変数そのものの行列の3つを定義します。それぞれの行列は次のようになります。

A=(a11a12…a1na21a22…a2n⋮⋮⋱⋮am1am2…amn),b=(b1b2⋮bm),x=(x1x2⋮xn)

行列 A はもとの方程式の係数を成分とする行列で、これを「係数行列」といいます。行列 b は方程式の右辺を、行列 x は変数を成分にもちます。すると、連立方程式全体を次の1つの方程式で表せます。

Ax=b

左辺は2つの行列の積、右辺は行列で、型もきちんと合っているので、この式には意味があります。実際に左辺の積を計算してみましょう。m × n 型の行列に n × 1 型の行列をかけるので、結果は m × 1 型、つまり m 行1列の行列になります。ここまでは問題ありません。

次に、ふつうの行列の積の計算をします。行列 A の第1行と行列 x の第1列(列はこれしかありません)から始めると、次の式が得られます。

a11x1+a12x2+…+a1nxn

この和が、積の行列の1番目の成分、つまり b1 の値になります。これを方程式に書くと、次のようになります。

a11x1+a12x2+…+a1nxn=b1

これは、もとの連立方程式の1番目の方程式そのものです。ほかの行についても同じように計算できます。さらに、係数行列に行列 b を次のように付け加えた行列を、「拡大係数行列」と定義します。

B=(A|b)=(a11a12…a1nb1a21a22…a2nb2⋮⋮⋱⋮⋮am1am2…amnbm)

以下では、この拡大係数行列の階数が重要になります。もとの係数行列の階数を rank(A)、拡大係数行列の階数を rank(A|b) と書きます。この2つの階数にはどんな関係があるでしょうか。行列 A に列 b を付け加えると、2つの場合が考えられます。新しい列が行列 A の列の線形結合であれば、階数は変わりません。線形結合でなければ、階数は1だけ大きくなります。

解の存在条件(ルーシェ・カペリの定理)

拡大係数行列の階数が重要なのは、次の大切な定理が成り立つからです。この定理はルーシェ・カペリの定理(フロベニウスの定理ともいいます)とよばれます。連立方程式 Ax = b が解をもつための必要十分条件は、係数行列の階数と拡大係数行列の階数が等しいこと、つまり rank(A) = rank(A|b) です。

この定理が少なくとも一方の向きで成り立つことを示してみましょう。x = β が方程式 Ax = b の解ならば rank(A) = rank(A|b) である、という向きです。2つの階数が等しいことを示すには、列 b が行列 A の列の線形結合であることを示せば十分です。具体的に書いてみましょう。行列 β は次の形をしています。

β=(β1β2⋮βn)

x1 に β1 を代入し、ほかの変数にも同様に代入すると、連立方程式のすべての方程式が成り立ちます。

a11β1+a12β2+…+a1nβn=b1a21β1+a22β2+…+a2nβn=b2⋮⋮⋮⋮⋮⋮⋮⋮⋮am1β1+am2β2+…+amnβn=bm

ここで、方程式を少し書き直します。1列目を見ると、a11, a21, …, am1 がどれも同じ値 β1 にかけられています。この列を1つの行列として取り出すと、β1 を行列の外にくくり出すことができ、次のようになります。

(a11β1a21β1⋮am1β1)=β1(a11a21⋮am1)

同じようにして、連立方程式全体を次のように書き直せます。

β1(a11a21⋮am1)+β2(a12a22⋮am2)+…+βn(a1na2n⋮amn)=(b1b2⋮bm)

この等式が成り立つには、右辺の行列が左辺の列ベクトルの線形結合になっていて、β1, …, βn がその係数になっていなければなりません。

これで、行列 β が連立方程式の解であるためには、連立方程式の右辺である行列 b が係数行列の列の線形結合でなければならないことが示されました。そして、行列 b の列が行列 A の列の線形結合であれば、行列 A と行列 (A|b) の階数は等しくなります。

さらに、rank(A) = rank(A|b) = k で、k が未知数の個数に等しい、つまり k = n ならば、連立方程式はただ1組の解をもちます。k < n ならば、連立方程式は無数の解をもち、解を書き表すには n − k 個のパラメータが必要です。

行基本変形

さらに、前の式から、行列 (A|b) に行基本変形をしても連立方程式の解は変わらないことがわかります。例えば、第2行に第1行を加えると、次の式が得られます。

β1(a11a21+a11⋮am1)+β2(a12a22+a12⋮am2)+…+βn(a1na2n+a1n⋮amn)=(b1b2+b1⋮bm)

第2行を書き出すと、次のようになります。

β1(a21+a11)+β2(a22+a12)+…+βn(a2n+a1n)=b1+b2

かっこをはずします。

β1a21+β1a11+β2a22+β2a12+…+βna2n+βna1n=b1+b2

項を少し並べかえます。

(β1a11+β2a12+…+βna1n)+(β1a21+β2a22+…+βna2n)=b1+b2

1つ目のかっこの中は第1行、2つ目のかっこの中はもとの第2行です。もとの方程式から、第1行は b1 に、第2行は b2 に等しいことがわかっています。そこで、1つ目のかっこを b1 に、2つ目のかっこを b2 に置きかえると、次の等式が得られます。

b1+b2=b1+b2.

同じように、ある行全体に定数 c ≠ 0 をかけても、連立方程式の解は変わりません。ただし、列の基本変形は使えないことに注意しましょう。

解がただ1組の連立方程式

解がただ1組の連立方程式の解き方を、例を使って見てみましょう。次の連立方程式を考えます。

2x1+3x2+7x3=473x1+8x2+x3=503x2+3x3=27

行列 A は次のようになります。

A=(237381033)

この行列の階数を求めます。

(237381033)∼(69216162033)∼(692107−19033)∼(6921021−5702121)∼(6921021−570078)

rank(A) = 3 であることがわかります。3 × 4 型の行列の階数は最大でも3なので、rank(A|b) = 3 もわかります。未知数は3個なので、この連立方程式はただ1組の解をもちます。では、その解はどう求めればよいでしょうか。

掃き出し法(ガウスの消去法)

ガウスの消去法では、拡大係数行列を階段形に変形します。行列を階段形にすると、1つの変数の値がわかります。1つの変数の値がわかれば、その値をほかの方程式に代入していくことができます。

行列 (A|b) は次のとおりです。

(A|b)=(237473815003327)

これを階段形に変形します。前の計算と同じ変形を、今度は第4列にも行います。

(237473815003327)∼(6921141616210003327)∼(692114107−19−4103327)∼(6921141021−57−12302121189)∼(6921141021−57−1230078312)

行基本変形しか使っていないので、この行列が表す連立方程式は、もとの連立方程式と同値です。つまり、解がまったく同じです。最後の行列の係数を使って、連立方程式を行列の形からふつうの形に書き直します。

6x1+9x2+21x3=14121x2−57x3=−12378x3=312

最後の方程式から始めます。この方程式は 78x3 = 312 です。x3 の値はいくつでしょうか。これは簡単な1次方程式なので、次のように解けます。

78x3=312x3=31278x3=4

これで1つ目の変数として x3 の値が求まりました。この値を2番目の方程式に代入します。

21x2−57x3=−12321x2−57⋅4=−12321x2=−123+22821x2=105x2=10521x2=5

最後に、求めた2つの値を1番目の方程式に代入します。

6x1+9x2+21x3=1416x1+9⋅5+21⋅4=1416x1+45+84=1416x1=12x1=2

変数 x1 の値は2です。これで解がすべて求まり、x = (x1, x2, x3) = (2, 5, 4) と書けます。このように、ガウスの消去法は簡単ですが、連立1次方程式を解くための強力な方法です。

解が無数にある場合

rank(A) = rank(A|b) = k で、k が未知数の個数より小さい、つまり k < n ならば、連立方程式は無数の解をもちます。簡単な例を見てみましょう。

4x1+x2=512x1+3x2=15

2番目の方程式は、1番目の方程式を3倍したものです。1番目の方程式を3倍して2番目の方程式から引くと、次のようになります。

4x1+x2=50x1+0x2=0

このとき、変数の個数は2、つまり n = 2 で、係数行列の階数は1、つまり rank(A) = 1、拡大係数行列の階数も1、つまり rank(A|b) = 1 です。k < n なので、この連立方程式は無数の解をもちます。では、その解はどう求めればよいでしょうか。

方程式を見てみましょう。2番目の方程式はどんな x1, x2 でも成り立つので、考えるのは1番目の方程式だけです。実際、1番目の方程式を満たす x1, x2 の組全体が、この連立方程式の解全体になります。そこで、方程式 4x1 + x2 = 5 を解きます。この方程式を変形すると x2 = 5 − 4x1 になります。

ここでパラメータを使います。パラメータ t を1つ選びます。x1, x2 の組を t で表して、例えば「(t, t + 2) の形の組はすべて連立方程式の解である」と書けるようにするのが目標です。この例なら、(1, 3) や (14, 16) のような組が解になります。ねらいは、一方の変数の値をもう一方の変数で表すことです。そうすれば、例えば x1 の値がこれこれのとき、x2 の値はその3倍になる、といったことがわかります。出発点には x1 を選びます。

そこで、t = x1 とおきます。変数 x1 の値が t のとき、変数 x2 の値はいくつでしょうか。前の式からわかるとおり、その値は x2 = 5 − 4x1 です。つまり、x1 = t ならば x2 = 5 − 4t です。したがって、(t, 5 − 4t) の形の組はすべて連立方程式の解である、と書けます。

確かめてみましょう。t に1を代入すると、x1 = 1、x2 = 5 − 4 · 1 = 1 です。これらの値を方程式に代入すると 4 · 1 + 1 = 5 となり、方程式は成り立ちます。

t に5を代入すると、x1 = 5、x2 = 5 − 4 · 5 = −15 です。方程式に代入すると 4 · 5 − 15 = 5 となり、やはり成り立ちます。

一般解と特殊解

パラメータを使って書き表した連立方程式の解を一般解といいます。パラメータに具体的な数を代入して得られる個々の解を特殊解といいます。

前の例では、(x1, x2) = (t, 5 − 4t) が連立方程式の一般解で、(1, 1) と (5, −15) は特殊解です。

係数行列 A と拡大係数行列 (A|b) の階数が等しく、rank(A) = rank(A|b) = k のとき、一般解を書き表すには n − k 個のパラメータが必要です。n = k ならば、必要なパラメータは0個であることに注目しましょう。これは連立方程式の解がただ1組の場合で、パラメータはまったくいりません。

例題

次の連立1次方程式を解きなさい。

3x1−2x2+4x3+5x4=15x1−4x2+2x3+10x4=211x1−8x2+10x3+20x4=4

まず、行列 A と (A|b) の階数を求めます。拡大係数行列を階段形に変形すれば、両方の行列の階数がわかります。では、変形していきましょう。(第1行を2倍し、次に第1行と第2行の和を第3行から引きます。さらに、第2行から第1行を引き、最後に第1行を2で割ってもとに戻します。)

(A|b)=(3−24515−4210211−810204)∼(6−481025−4210211−810204)∼(6−481025−4210200000)∼(6−48102−10−60000000)∼(3−2451−10−60000000)

この最後の行列から、rank(A) = rank(A|b) = k = 2 であることがわかります。一方、未知数の個数は n = 4 なので、n − k = 2 個のパラメータが必要です。最後の行列から方程式を書き出します。

3x1−2x2+4x3+5x4=1−x1−6x3=0

2番目の方程式から、次の式が得られます。

−x1−6x3=0−x1=6x3x1=−6x3

1つ目のパラメータを t = x3 とおきます。すると x1 = −6t と書けます。これを1番目の方程式に代入します。

3(−6t)−2x2+4t+5x4=1−18t−2x2+4t+5x4=1−14t−2x2+5x4=1−2x2=1+14t−5x4x2=−12−7t+52x4

ここで2つ目のパラメータを s = x4 とおきます。すると、次のように書けます。

x2=−12−7t+52s

これで、連立方程式の一般解が得られました。

(x1,x2,x3,x4)=(−6t,−12−7t+52s,t,s)

いくつか特殊解を確かめてみましょう。例えば s = t = 0 とすると、(x1,x2,x3,x4)=(0,−12,0,0) が得られます。これをもとの方程式

3x1−2x2+4x3+5x4=15x1−4x2+2x3+10x4=211x1−8x2+10x3+20x4=4

に代入すると、次の式が得られます。

0−2⋅(−12)+0+0=10−4⋅(−12)+0+0=20−8⋅(−12)+0+0=4

0の項を取り除いて分数の積を計算すると、次のようになります。

1=12=24=4

別の特殊解も試してみましょう。s = 2, t = 1 とすると、次のようになります。

x1=−6x2=−12−7+5=−52x3=1x4=2

方程式に代入します。

−18−2(−52)+4+10=1−30−4(−52)+2+20=2−66−8(−52)+10+40=4

整理します。

−4+5=1−8+10=2−16+20=4

最終的に、次の等式が得られます。

1=12=24=4

求めた一般解は正しいようです。

章: 連立1次方程式, クラメルの公式, 同次連立1次方程式