|
|
◆ DerkfInt()
| Sub DerkfInt |
( |
N As |
Long, |
|
|
T As |
Double, |
|
|
Y() As |
Double, |
|
|
Cont As |
LongPtr, |
|
|
Optional Info As |
Long |
|
) |
| |
常微分方程式の初期値問題 (5(4)次 ルンゲ・クッタ・フェールベルグ法) (密出力のための補間)
- 目的
- 本ルーチンは, Derkf (または Derkf_r) を使って常微分方程式の初期値問題の解を求める際に, 密出力を行うための補間を行う補助ルーチンである. 使用されている補間公式の詳細については下記参考文献を参照のこと.
Derkf を用いて密出力を行うためには, パラメータ Mode = 2 と設定して Derkf を呼び出す必要がある. 密出力のための追加の関数評価は不要である.
ステップが成功すると Info = 2 (最後のステップでは Info = 1) で Derkf から戻るので, 本ルーチンを使って直近のステップの区間内で補間値を求めることができる.
- 引数
-
| [in] | N | 微分方程式の数. (N >= 1) |
| [in] | T | 補間値を求める T を入力する.
T は直近のステップの区間内になければならない. すなわち, 前回 Info = 2 で Derkf から戻ったときを T1, 今回戻ったときを T2 とすると, T1 <= T <= T2 となっている必要がある. |
| [out] | Y() | 配列 Y(LY - 1) (LY >= N)
t における解の補間値. |
| [in] | Cont | 密出力のための制御情報.
Derkf のオプションパラメータ Cont で受け取ったものをそのまま入力する. |
| [out] | Info | (省略可)
= 0: 正常終了.
= -1: パラメータ N の誤り. (N <= 0)
= -3: パラメータ Y() の誤り. |
- 参考文献
- W H Enright et al. "Interpolants for Runge-Kutta Formulas" ACM Transactions on Mathematical Software Vol.12, No.3, 1986, pp.193-218
- 使用例
- Derkf および Derkf_r の使用例(2)を参照せよ.
|