|
|
◆ derkf_int()
| function derkf_int |
( |
n::Integer |
, |
|
|
t::Real |
, |
|
|
y::Array{Float64} |
, |
|
|
wsave::Array{Float64} |
|
|
) |
| |
常微分方程式の初期値問題 (5(4)次 ルンゲ・クッタ・フェールベルグ法) (密出力のための補間)
- 目的
- 本ルーチンは, derkfを使って常微分方程式の初期値問題の解を求める際に, 密出力を行うための補間を行う補助ルーチンである. 使用されている補間公式の詳細については下記参考文献を参照のこと.
derkf を用いて密出力を行うためには, パラメータ mode = 2 と設定して derkf を呼び出す必要がある. 密出力のための追加の関数評価は不要である.
ステップが成功すると info1 = 2 (最後のステップでは info1 = 1) で derkf から戻るので, 本ルーチンを使って直近のステップの区間内で補間値を求めることができる.
- 戻り値
- Int32
= 0: 正常終了.
= -1: 入力パラメータ n の誤り. (n <= 0)
= -3: 入力パラメータ y の誤り.
= -4: 入力パラメータ wsave の誤り.
- 引数
-
| [in] | n | 微分方程式の数. (n >= 1) |
| [in] | t | 補間値を求める t を入力する.
t は直近のステップの区間内になければならない. すなわち, 前回 info1 = 2 で derkf から戻ったときを t1, 今回戻ったときを t2 とすると, t1 <= t <= t2 となっている必要がある. |
| [out] | y | 1次元配列 (Float64, n)
t における解の補間値. |
| [in] | wsave | 1次元配列 (Float64, 9*n + 20)
derkf が使用したデータ領域. |
- 参考文献
- W H Enright et al. "Interpolants for Runge-Kutta Formulas" ACM Transactions on Mathematical Software Vol.12, No.3, 1986, pp.193-218
- 使用例
- derkf の使用例(2)を参照せよ.
|