もう一度(これでだめな時は更新してください。) : 新しいNと場所で描き直します。
ガウスの消去法(2011年6月5日公開、2011年06月11日12:10:49第1回の改訂)
●注意
上はJAVAで作られています。メモリを大量に使ったり、重くなるかもしれません。その時は、ごめんなさい。
実行後に画面をスクロールしたり、アプレット全体が画面に入ってないと、間違った画面になるかもしれないので、気をつけてください。画面の大きさを決めてから”もう一度”をクリックするか、更新(reload)してください。
ガウスの消去法は、ホームページで数式を書くのは、ちょー面倒なので詳しくは参考文献を読む方がよろしいかとは思いますが、一次の連立方程式Ax=b(Aは行列、bはベクトル、xは答えのベクトル)でxを求める方法の一つです。
ここでは、ガウスの消去法で得られた答えxと、Axの結果、Axとbの差を表示して楽しんでいます。わーい。
なお、Aとbの要素を*.**の形式で表示していますが、実際には桁数をたくさん使っています。表示の都合で*.**にしています。
ここでは、求めたい連立方程式を
a11x1 + a12x2 +・・・+ a1jxj +・・・+ a1nxn = b1
a21x1 + a22x2 +・・・+ a2jxj +・・・+ a2nxn = b2
・・・
ai1x1 + ai2x2 +・・・+ aijxj +・・・+ ainxn = bi
・・・
an1x1 + an2x2 +・・・+ anjxj +・・・+ annxn = bn
と表現します。これを行列とベクトルを使ってあらわすと、ただし、行列とベクトルで使う括弧()はかっこ悪いけど使っていませんが・・・
A =
a11 a12 ・・・ a1j ・・・ a1n
a21 a22 ・・・ a2j ・・・ a2n
・・・
ai1 ai2 ・・・ aij ・・・ ain
・・・
an1 an2 ・・・ anj ・・・ ann
x=
x1
x2
・・・
xi
・・・
xn
b=
b1
b2
・・・
bi
・・・
bn
を使って、Ax=bとなります。
ガウスの消去法は、
-------------
STEP 1
aij(1) = aij
bi(1) = bi
STEP 2
k = 2,3, ..., nに対して、
aij(k) = aij(k-1) (i<=k-1のとき)
aij(k) = 0 (i>k-1でj<=k-1のとき)
aij(k) = aij(k-1) - ai(k-1)(k-1) a(k-1)j(k-1) / a(k-1)(k-1)(k-1) (i>k-1でj>k-1のとき)
bi(k) = bi(k-1) (i<=k-1のとき)
bi(k) = bi(k-1) - ai(k-1)(k-1)b(k-1)(k-1) / a(k-1)(k-1)(k-1) (i>k-1のとき)
を計算する。
STEP 3
xn = bn(n) / ann(n)
i = n-1, n-2, ..., 1の順に、
xi = (bi(n) - Σ(j=i+1)(j=n) aij(n)xj ) / aii(n)
を計算する。
-------------
というプロセスでxを求める方法です。
●参考文献
有本卓著、コロナ社、数値解析(1)
川上一郎著、岩波書店、数値計算
●プログラムのダウンロード
○Java(gauss.java)
ご意見、ご感想、お問い合わせ、お願い等がございましたら、お気軽に、
メール送信フォームからメールを送るか、
●掲示板に書き込むか、
どちらかお好きな方法で、ご連絡お願いいたします。
●大山崇のホームページの利用について
●大山崇のホームページ