2006年度・数理解析・計算機数学2・第11回
1
● 前回の講義のまとめ
【
Gauss-Jordan
の消去法】1. Gauss-Jordan
の消去法とは,いわゆる「掃き出し法」であり,連立一次方程式Ax = b
を解くために, 基本変形行列の積となる行列を利用して
MAN (N
−1)x = Mb, MAN =
1 0 · · · 0 0 · · · 0 0 1 · · · 0 0 · · · 0
. . . .. . . . . 0 0 · · · 1 0 · · · 0 0 0 · · · 0 0 · · · 0 . . . . . .. ...
0 0 · · · 0 0 · · · 0
とするアルゴリズムである.
2. A
が正方行列で正則な場合, Gauss-Jordanの消去法のアルゴリズムは以下のようなものとなる.以下で
R
j は,その時点での各行列の第j
行目をあらわす. また,n
は行列のサイズをあらわす.(a) k = 1, M = I
とする.(b) (部分枢軸選択) {a
k}
n=k たちの中から,その絶対値が最も大きいものをa
k0 としたとき,A , b , M
に対して,R
k とR
0 を交換する.(c) (A
の対角成分a
kk を1
にする.)A, b, M
に対して,R
k← (a
kk)
−1R
k とする.(d) (A
の対角成分以外を0
にする)A, b, M
に対して,= 1
からm
まで,= k
を除いて,R
← R
− a
kL
k を行う.(e) k += 1
とし,k = n
ならば終了. そうでなければ, Step bに戻る.これが終了した時点で,
b
は解x
を与え,M
はもとのA
の逆行列を与える.3.
浮動小数点演算による誤差を最小限に止めるために「枢軸選択」は必ず必要な手順である.4.
正則でない場合には, Step 2において,「0でない要素(実際には,誤差を含んで0
と等しくな い要素)が見つからない」という形でアルゴリズムが実行できなくなる.5. A
が正方行列で正則でない場合も含んだGauss-Jordan
の消去法のアルゴリズムは以下のよう なものとなる. 以下でC
j は, その時点での各行列の第j
列目をあらわす. また,n
は行列のサ イズをあらわす.(a) k = 1
とする.(b) (完全枢軸選択) {a
j}
n=k,j=k の中に0
でない要素を以下のようにして探す.i.
はじめに,= k
とし,j = k
からj = n
の範囲で探す. ここで見つからなければ,+= 1
とし, 再びj = k
からj = n
の範囲で探す. 以下,これを= m , j = n
まで繰り返す.もし,全てが
0
であれば,アルゴリズムを終了する. 0でない要素がk
0 列目に見つかれ ば,A, N
に対して,C
k とC
k0 を交換する.ii. {a
k}
n=k の中に0
でない要素があれば,その中から絶対値が最も大きいものをa
0k と したとき,A, b, M
に対して,R
k とR
0 を交換する.(c) ( A
の対角成分a
kk を1
にする)A , b , M
に対して,R
k← ( a
kk)
−1R
k とする.ex11.tex,v 1.6 2006-06-28 08:05:43+09 naito Exp
2
2006年度・数理解析・計算機数学2・第11回(d) (A
の対角成分以外を0
にする)A, b, M
に対して,= 1
からm
まで,= k
を除いて,R
← R
− a
kR
k を行う.(e) k += 1
とし,k
がn
に等しいならばステップf
へ,そうでなければ, ステップb
に戻る.(f)
この時点でのk
0= k, k = 1
とおき,k = 1
からk
0 まで,次の操作を繰り返す.a
k= 0 (k < ≤ n)
でないが存在したら,
A, N
に対して,C
→ C
− a
kC
k を行う.(g) A
の対角成分の1
の個数をr
と置き,r < n
ならば,b
の第r + 1
列目(b
に相当する部 分)を˜ b
とおく.r < n
かつ, ˜b
のr + 1
列目以後に0
でない成分があれば, 方程式は解を 持たない.そうでなければ,
b = N ˜ b
と置く.r = n
ならばx
が求めるただひとつの解.r < n
ならば,x
が求める解のうちの一つで,他の解はN
のr + 1
列目以後のベクトルで張られる部分空 間をx
に加えたものとなる.6.
これらのGauss-Jordan
の消去法のアルゴリズムは,行に関する演算については左から,列に関する演算については右から,
A
に基本変形行列を掛けて変形していることに他ならない.7. Gauss-Jordan
の消去法で, 正則なn × n
行列を単位行列まで変形するためには,n
2(n − 1)
回 の乗算とn(n − 1)
回の加算が必要となる. 特にO(n
3)
回の乗算が必要である.● 実習内容
• Gauss
の消去法を用いて,以下の連立方程式を解くプログラムを書きなさい.
3x+12y+9z=3, 2x+ 5y+4z=4,
−x+ 3y+2z=5.
2x+2y+ z=3, x+ y+2z=4, y+ z=5.
•
次の行列をLU
分解するプログラムを書きなさい. また,その結果を使って上の連立一次方程式を解 くプログラムを書きなさい.
3 12 9
2 5 4
−1 3 2
,
2 2 1 1 1 2 0 0 1
,
•
電子メールで「今日の講義の感想や意見」を送ってください.★ 実習内容の解答