...

第11回数学演習 1 11 連立 1 次方程式 (その 1:一意解が存在する場合)

by user

on
Category: Documents
2

views

Report

Comments

Transcript

第11回数学演習 1 11 連立 1 次方程式 (その 1:一意解が存在する場合)
第 11 回数学演習 1
11
連立 1 次方程式 (その 1:一意解が存在する場合)
目的:これから,連立1次方程式を扱っていく。いままで漫然と解を求めていた方法を行列を使っ
て見直し,一定の規則的な手順 1 による解法を見出す。このような数学的思考法をアルゴリズム
といい,情報化社会の中ではきわめて重要な考え方である。今回は,そのなかでも解が存在して
なおかつ一意的であるという特別な場合を取り扱う。次回以降,より一般的な連立 1 次方程式を
取り扱う。
11.1
行列の基本変形
行列を用いる解法を考える前に,まず,連立方程式の解法について簡単に復習し,システマティッ
クに解けるよう方法を整理しよう。例として,次の方程式


 2x + 3y + z = −2
(P1)
x + 2y + z = 1


x + y + 2z = 3
をとりあげる。この方程式の解法として,消去法や代入法があるが,以下では消去法によって方
程式を解く。消去法でを解を求める際には,方程式の両辺を定数倍したり,方程式同士を足し引
きする。それらの操作は,次のような 3 つの基本操作としてまとめることができる。
(消去法における基本操作)
I 2 つの方程式を入れ替える。
II ある方程式に 0 でない数をかけて他の方程式に加える。
III ある方程式に 0 でない数をかける。
今から,この3つの操作を実行して解を求める。このとき,どの操作を使ったかを明確にしたい
ので,第 n 式を en と記述することにして,例えば,
「第 2 式に第 1 式の −2 倍を加える」ことを,
「e2 − 2e1 」などと記述することにする。漫然と解くのではなく,以下のような明確な方針を持っ
て方程式に操作を行っていく。
変数の消去の方針:第 1 式は x を残し,他の式は x を消す。第 2 式は y を残し,他の式は y を消
す。第 3 式は z を残し,他の式は z を消す…。
(step 1:変数 x を消す準備)


 2x + 3y + z = −2
x + 2y + z = 1


x + y + 2z = 3
e1 と e2 の交換
−−−−−−−−−→
(step 3:第 2 式の y に注目。係数を 1 にする。)


 x + 2y + z = 1
−y − z = −4


−y + z = 2
(−1)e2
−−−−→
(step 2:第 1 式以外の x を消す)



x + 2y + z = 1
2x + 3y + z = −2


x + y + 2z = 3
e −2e
2
1
−−
−−→
e3 −e1
(step 4:第 2 式以外の y を消す)


 x + 2y + z = 1
y+z =4


−y + z = 2
1
e −2e
1
2
−−
−−→
e3 +e2
ここでいう “一定の” という意味は,考えている連立方程式の未知変数の個数や,方程式の本数などに関係なくど
んな方程式に対しても応用可能なもの,という意味である。
1
(step 5:第 3 式の z に注目。係数を 1 にする)


 x − z = −7 (1/2)e
3
y + z = 4 −−−−→


2z = 6
(step6:第 3 式以外の z を消す)


 x − z = −7
y+z = 4


z= 3
e +e
3
−−1−−→
e2 −e3
(結果)


x
= −4
y
=1


z =3
よって,解が得られた。
上の連立方程式の解法を行列を使って書き直してみよう。方程式 (P1) の係数を表す行列 (係数行
列という) と,方程式の変数,および右辺の値を,それぞれ



 

−2
2 3 1
x



 

A =  1 2 1 , x =  y , b =  1 
3
1 1 2
z
と表すと,方程式 (P1) は行列を用いて
Ax = b
と表される 2 。この方程式を解くために,係数行列 A と右辺を並べて出来る行列


2 3 1 −2


(A b)= 1 2 1
1 
1 1 2
3
を考える。この行列を拡大係数行列という。先ほどの方程式 (P1) の解法(step1 ∼ step6)を思い
返すと,実は,解く作業においては,変数はあまり重要ではなく,方程式の係数と右辺にだけ注
目すればよいということが分かる。これらの情報を抜き出したものが,拡大係数行列である。先
ほどの方程式に対して行われた操作は,拡大係数行列の変形と考えることができる。
実際に,step1 ∼ step6 を拡大行列の変形で書き表そう。なお,変形が分かりやすいように,拡大
係数行列の係数行列と右辺の間に破線を入れた。また,ri は i 行を表す。
(step1:(1, 1) 成分を 1 にする為)


2 3 1 −2
r1 と r2 の交換
 1 2 1
1  −−
−−−−−−−−→
1 1 2
3
(step2:(1, 2)(1, 3) 成分を 0 にする)


1 2 1
1
r2 −2r1
 2 3 1 −2  −
−−−→
r3 −r1
1 1 2
3
(step4:(1, 2)(1, 3) 成分を 0 にする)


1
2 1 1
r1 −2r2
 0
1 1 4  −−
−−→
r3 +r2
0 −1 1 2
(step5:(3, 3) 成分を 1 にする。


1 0 −1 −7
(1/2)r3
 0 1
1
4  −−−−−→
0 0
2
6
2
(step3:(2, 2) 成分を 1 にする)


1
2
1
1
(−1)r2
 0 −1 −1 −4  −
−−−−→
0 −1
1
2
(step6:(3, 1)(3, 2) 成分を 0 にする)


1 0 −1 −7
r +r3
 0 1
1
4  −−1−−→
r2 −r3
0 0
1
3
実際に左辺を計算してみれば,列ベクトルについての等式が得られる。両辺の成分を比べると,税所に与えられた
連立方程式が得られる。
2
(結果)

1 0
 0 1
0 0
0
0
1

−4
1 
3
答え x = −4, y = 1, z = 3
このようにすることで,方程式 (P1) を解くことを,拡大係数行列を変形することに帰すことがで
きた!
上で行った行列の変形は,消去法の方程式に関する操作に対応している。方程式の基本操作と
同様に,ここで行った変形は次の基本変形としてまとめることができる。
(行列の基本変形)
I 2 つの行を入れ替える。
II ある行に 0 でない数をかけて他の行に加える。
III ある行に 0 でない数をかける。
注意:step2 → 3,step4 → 5,step6 →(結果),の部分を見ると対角線状に 1 が並んでいくように
変形が進められていることが分かるだろう。このようなある一定の規則によって進められる手順
をアルゴリズムと言い,特に計算機を駆使する際に,不可欠なものである。
注意:行列の基本変形では,列に対する同様の操作はできない。行列式の計算の際の変形と混同
しがちであるので要注意。
11.2
解を持つ連立一次方程式と掃き出し法
前小節で,拡大係数行列を定義して,それを変形することによって方程式を解いた。これをま
とめると,次のような方法で行列を変形すれば,方程式の解が導出されることが分かる。
拡大係数行列の変形の方針:破線より左側の部分が単位行列になるように変形する。つまり,最
終目標は


1 0 0 b̃1


 0 1 0 b̃2 
0 0 1 b̃3
という形にする。ここで,b̃i は変形した結果現れるある数で,これが方程式の解になる。
3
拡大係数行列の変形の手順:
(step 1) 1 行での計算
(1) (1, 1) 成分の値を 1 にしたい. 初めからそうなっていない場合は,1 列の第 1 成分より
下の成分から相応しい成分を選び,その成分がある行と 1 行を入れ替える。もしどの
行にもなければ,どこかの行を定数倍して,係数が 1 になるようにする 3 。
(2) 1 列の第 1 成分を 1,それ以外の成分を 0 にする。
(step 2) 2 行での計算
(1) (2, 2) 成分の値を 1 にしたい,初めからそうなっていない場合は,2 列の第 2 成分より
下の成分から相応しい成分を選び 4 ,その成分がある行と 2 行を入れ替える。もしどの
行にもなければ,(2 行以下の) どこかの行を定数倍して,係数が 1 になるようにする。
(2) 2 列の第 2 成分を 1,それ以外の成分を 0 にする。
..
.
(step i) i 行での計算
(1) (i, i) 成分の値が相応しくないなら,i 列の第 i 成分より下の成分から相応しい成分を選
び,その成分がある行と i 行を入れ替える。もしどの行にもなければ,(i 行以下の) ど
こかの行を定数倍して,係数が 1 になるようにする。
(2) i 列の第 i 成分を 1,それ以外の成分を 0 にする。
..
.
(以下) 最後の行まで上記の計算を続ける。
i 行において計算の軸となる成分は対角成分である (i, i) 成分である。対角成分は 1 とし,同列の
それ以外の成分は 0 となる様に基本変形を実施する。この行為を掃き出しと言う 5 。
n 次連立方程式
(AP)

a11 x1 + a12 x2 + · · · + a1n xn = b1



 a x + a x + ··· + a x = b
21 1
22 2
2n n
2
 ······



an1 x1 + an2 x2 + · · · + ann xn = bn
3
こうすると,後ろのほうの列の成分が分数になってしうまうことが多い。成分が分数になると計算が面倒になるの
で,入れ替えで済むなら入れ替えをした方が良い。
4
必ず,2 行より下を見なければらない。1行目と入れ替えたら,step 1 でやったことが台無しになってしまう。
5
より正確には,軸となる成分 (値を 1 にして残したい成分) をピボットと言い,ピボット以外の成分を 0 にする行
為を掃きだしという。ここで書いていること何が違うかというと,ピボットは必ずしも (i, i) 成分でなくてもよい,と
いう点が違う。別の場所を 1 にして掃き出すこともある。
4
が与えられたとき,

a11 a12 · · ·

 a21 a22 · · ·



an1 an2 · · ·
a1n
a2n

b1
b2
..
.

1
0 ···
0 g1
 0
1 ···
0 g2 






···
0 ···
0
1 gn






行基本変形
=⇒
ann bn
のように,拡大係数行列から対角成分のみが 1 となるよう順次掃き出して g1 , g2 , · · · , gn と解を
得る方法を掃き出し法と言う。
例 題 11.1 次の連立 1 次方程式を掃き出し法で解け。


3x + 2y − 5z + 2w = 4




 x + 2y + 1z = 9
 x + y − 3z − 2w = 0
(1)
(2)
2x + 3y + z = 6


2x + y − 5z − 3w = 2
 3x + y − 7z = 2



x
− w=6

1 2
(解)(1) 拡大係数行列は  2 3
3 1

1 9
1 6  である。これを (1, 1),(2, 2),(3, 3) の順に,各列に
−7 2
おいてこの成分だけが 1 になるよう掃き出す。

1 2
 2 3
3 1

1 0
 0 1
0 0


1
2
1
1
9
(−1)r2
1
1
−1 −12  −−−−→  0
0 −5 −10
−10 −25


1 9
1
2
r − 2r1 
1 6  −−2−−−−→
0 −1
r3 − 3r1
−7 2
0 −5
−1
1
−5


−15
1 0
(−1/5)r3
12  −−−−−−→  0 1
35
0 0


−15
1
r +r3
 0
12  −−1−−→
r2 −r3
7
0
−1
1
1
0
1
0

9
r1 −2r2
12  −−
−−→
r3 +5r2
−25

0 −8
0
5 
1
7
答え x = −8, y = 5, z = 7
(2)

3
 1

 2
1
2
1
1
0


−5
2 4

−3 −2 0 
r1 と r4
 −−
−−−−→ 
−5 −3 2  を入れ替え 
0
1 6

1
0
r3 −r2 
−−−−→ 
r4 −2r2  0
0

1
 0

 0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
4
1
1
2
3
0
1
1
2


0
1 6
r2 −r1 ,r3 −2r1 
−3 −2 0 
−
−−−−−−−−→ 

−5 −3 2 
r4 −3r1
−5
2 4


0
1
6
(−1/2)r3 
−3 −2 −6 
−
−−−−−→ 

−2 −2 −4 
1
5
6


6
(1/4)r4 
−3 
−
−−−−→ 

2 
4
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
5

1
6
−3 −6 

−5 −10 
−1 −14
0
1
1
2
0
−3
−5
−5
0
0
0
1

5
−4 

1 
1

0
1
6
−3 −2 −6 
r2 +3r3
−
−−−→
1
1
2  r4 −r3
1
5
6


6
r1 −r4 ,r2 −r4 
−3 
−
−−−−−−−→ 

2 
r3 −r4
1
答え x = 5, y = −4, z = 1, w = 1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
11.3
逆行列への応用
A が正則(逆行列を持つ)のとき,逆行列を求める問題を考察する。A の逆行列は
AX = E
を満たす行列 X である。そこで,連立方程式で使用した掃き出し法を適用する。すなわち,
(A, E)
行基本変形
⇒
(E, B)
と変形したとき,B が求める逆行列である。


1 2 1


例 題 11.2 A =  2 3 1  の逆行列を求めよ。
1 2 2
(解)

1
 2
1
2
3
2
1
1
2

1
0
0
1 0
−−−−→  0 1
0 0
r1 −2r2
0
1
0


0
1
2
1
r2 −2r1
0  −−
−−→  0 −1 −1
r3 −r1
1
0
0
1
−1
1
1


1 2
1 0 0
(−1)r2
−2 1 0  −−−−→  0 1
0 0
−1 0 1


−3
2 0
1 0
r1 +r3
2 −1 0  −−−−→  0 1
r2 −r3
−1
0 1
0 0
0
0
1
1
1
1

1
0 0
2 −1 0 
−1
0 1

−4
2
1
3 −1 −1 
−1
0
1
従って,求める逆行列は

A−1

−4
2
1


=  3 −1 −1 
−1
0
1
(考察)
:なぜこの方法で逆行列が求まるのか?
• AX = E において,X および E の列ベクトルを xj ,ej (j = 1, 2, · · · , n) とおくと,
AX = E ⇔ A(x1 x2 · · · xn ) = (e1 e2 · · · en ) ⇔ Axj = ej (j = 1, 2, · · · , n)
また
A−1 AX = A−1 E
⇔ X = A−1 ⇔ xj = A−1 ej (j = 1, 2, · · · , n)
したがって,方程式 Axj = ej の解が A−1 の j 番目の列ベクトルである。そこでこの方程式の
解法に掃き出し法を利用する。ところが上手いことに,掃き出し法による解法は,係数行列に
よって決まる。つまり同じ係数行列を持つ方程式は同じ行基本変形で解ける。今の場合 n 個の
Axj = ej (j = 1, 2, · · · , n) の係数行列は同一なので方程式を個々に解くのではなくまとめて
(Ax1 Ae2 · · · Ax2 ) = (e1 e2 · · · en ) ⇔ A(x1 e2 · · · x2 ) = (e1 e2 · · · en ) ⇔ AX = E
に対して掃き出し法を用いるのである。
6
数学演習 I (問題 11)
[1] 連立方程式について



x+y−z =2
3x + 5y − 7z = 0


2x − 3y + z = 5
について次の問に答えよ。
(1) 係数行列,拡大係数行列を求めよ。
(2) 拡大係数行列を使用して,(1, 1) 成分→ (2, 2) 成分→ (3, 3) 成分の順にピボットを定め
掃出し法によって解を求めよ。(答え:x = 3, y = 1, z = 2)
[2] 問1と同様にして,掃出し法を利用して次の連立方程式を解け。



2x + 3y − z = −3
−x + 2y + 2z =
1


x + y − z = −2
(ヒント :
第 1 ピボットを選択する際に (3,1) 成分に注目し,1 行と 3 行を入れ替え,掃き出しを実行
する。次に 2 行に移ったとき,(2,2) 成分は 3,(3,2) 成分は 1 になっているはず。そこで,2
行と 3 行を入れ替えて掃き出しを実行する。)


2 −1
0


[3]  2 −1 −1  の逆行列を求めよ。
1
0 −1
7
Fly UP