ルンゲ_クッタ法(マクロ01)
Sub RK_method01() 'ルンゲ_クッタ法
Range("c4:d39").Clear '領域消去
Cells(4, 3) = Cells(2, 2) '初期データを記憶
Cells(4, 4) = Cells(3, 2) '初期データを記憶
h = Cells(4, 2) '刻み幅の取得
h2 = h / 2 '刻み幅の半分の計算
For n = 4 To 38 '繰り返し
tn = Cells(n, 3) '変数値の取得
xn = Cells(n, 4) '関数値の取得
Cells(2, 3) = tn '作業領域に複写
Cells(2, 4) = xn '作業領域に複写
k1 = h * Cells(2, 6) 'k1の値の計算
Cells(2, 3) = tn + h2 '変数値の変更
Cells(2, 4) = xn + k1 / 2 '関数値の変更
k2 = h * Cells(2, 6) 'k2の値の計算
Cells(2, 4) = xn + k2 / 2 '作業領域に複写
k3 = h * Cells(2, 6) 'k3の値の計算
tnp = tn + h '変数値の変更
Cells(2, 3) = tnp '変数値の変更
Cells(2, 4) = xn + k3 '関数値の変更
k4 = h * Cells(2, 6) 'k4の値の計算
Cells(n + 1, 3) = tnp '新しい変数値の記憶
Cells(n + 1, 4) = xn + (k1 + 2 * k2 + 2 * k3 + k4) / 6
'新しい関数値の記憶
Next n
End Sub
アップデート 2001.1.14