連立一次方程式
ここで述べる解法は中学数学の方法と本質的には同じである。未知数がx,y,zの3つの方程式より,yとzを消去してxだけの方程式を作り,これを解いてyとzも求められる。消去の過程で行列の基本変形を使用する。詳しくは「基礎数学演習」p64〜p85を参照。
行列の基本変形とは c=aik/akk として
aij=aij−cakj と変形していく。
ただし k=1,2,・・・n i≠k j=i,i+1,・・・n+1
その結果係数の行列(n×n)は対角化されるので,さらに@によって
aij=aij/aii
とすれば係数の行列(n×n)は単位行列となり,また第n+1列には解が算出される。
ところが上記ではakk≠0という前提がある。係数の行列(n×n)がSingularなら「不定または解なし」となる。
[プログラム]
2次元配列,三重ループ,多岐分岐など注意すべき点が多い。n(n+1)個の係数を入力して間違えたときの修正処置も重要。完成後は逆行列,行列式にも拡張すること。
主要演算部は下記の通り(VB) 入出力部分(C)はここに
For k = 1 To n
p = a(k, k)
If Abs(p) < 0.01 Then
・・・・・・・・・(不定)・・・・・
・・・・・・・・・(解なし)・・・・・
End If
For i = 1 To n
If ・・・・・・ Then
・・・・・・
For j = k To m
a(i, j) = ・・・・・・
Next j
End If
Next i
Next k
[問題]
[課題] 係数を入力してn元1次連立方程式を解くプログラムを作れ。