Sub 連立一次方程式(係数行列(), r)
Rem (c) Kaoru Fueda
Dim 最大値()
ReDim 最大値(r)
For i = 1 To r
If i < r Then
最大比 = 0
最大行 = i
For j = i To r
最大値(j) = 0
For k = i To r + 1
If Abs(係数行列(j, k)) > 最大値(j) Then
最大値(j) = Abs(係数行列(j, k))
End If
Next k
If 最大値(j) > 0 Then
If 最大比 < Abs(係数行列(j, i) / 最大値(j)) Then
最大比 = Abs(係数行列(j, i) / 最大値(j))
最大行 = j
End If
End If
Next j
If 最大行 > i Then
For k = 1 To r + 1
temp = 係数行列(i, k)
係数行列(i, k) = 係数行列(最大行, k)
係数行列(最大行, k) = temp
Next k
End If
Rem ここは講義では説明していません。
Rem ピボットが0の場合は最も0=0に近い行を第i行に移動して、後に無視する
If 最大比 = 0 Then
最小値 = 最大値(i)
最小行 = i
For j = i + 1 To r
If 最小値 > 最大値(j) Then
最小値 = 最大値(j)
最小行 = j
End If
Next j
If 最小行 > i Then
For k = 1 To r + 1
temp = 係数行列(i, k)
係数行列(i, k) = 係数行列(最小行, k)
係数行列(最小行, k) = temp
Next k
End If
End If
End If
Rem ピボットを1に
If 係数行列(i, i) <> 0 Then
For k = i + 1 To r + 1
係数行列(i, k) = 係数行列(i, k) / 係数行列(i, i)
Next k
Else
Rem ここは講義では説明していません。
MsgBox ("解けないので解の一つを0とします。")
For k = i + 1 To r + 1
係数行列(i, k) = 0
Next k
End If
係数行列(i, i) = 1
Rem ピボット以外を0に
For j = 1 To r
If j <> i Then
For k = i + 1 To r + 1
係数行列(j, k) = 係数行列(j, k) - 係数行列(i, k) * 係数行列(j, i)
Next k
係数行列(j, i) = 0
End If
Next j
Next i
End Sub
Amazonブラックフライデー、11月29日〜12月6日に開催
-
Amazonは、年末最後のビッグセール「Amazonブラックフライデー」を2024年11月29日(金)0時〜12月6日(金)23時59分まで開催する。セール開催に先駆け、先行セールを27日と28日に実施する。
プライム会...
0 件のコメント:
コメントを投稿