******************************************************************************** rungekutta.c ルンゲクッタ法 extern void RungeKuttaOneStep(n, x, diff, pt, dt) 微分方程式 dx/dt = f(x,t) の解を一ステップ求める. ここで x は,n 次の変数ベクトルである. 入力 n 変数ベクトルの次元数 x 変数ベクトルの値:時刻 kT diff 関数 f(x,t) を計算する手続き *pt 現在の時刻:kT dt 時間間隔 関数 diff は,次の形でなくてはならない. diff(int n, double x[], double t, double v[]) n 変数ベクトルの次元数 x[] 変数ベクトル(n次元配列) t 時間 v[] f(x,t)の計算値が置かれる配列 (n次元配列) 出力 x 変数ベクトルの値:時刻 (k+1)T *pt 次の時刻:(k+1)T extern void RungeKutta(fd, n, x, diff, dt, kcnt) 微分方程式 dx/dt = f(x,t) の解を求める. ここで x は,n 次の変数ベクトルである. 入力 fd 計算結果を書くファイルポインタ n 変数ベクトルの次元数 x 変数ベクトルの初期値 diff 関数 f(x,t) を計算する手続き dt 時間間隔 kcnt 繰り返し数 関数 diff は,次の形でなくてはならない. diff(int n, double x[], double t, double v[]) n 変数ベクトルの次元数 x[] 変数ベクトル(n次元配列) t 時間 v[] f(x,t)の計算値が置かれる配列 (n次元配列) 出力 ファイルポインタ fd に,以下の値が書き込まれる. time x[0] x[1] ... x[n-1] rungekutta-t0.c テストファイル rungekutta-t1.c テストファイル rungekutta-t2.c テストファイル ********************************************************************************