XLPack ソルバー 常微分方程式

常微分方程式の初期値問題の解を求めます.

dy1/dt = y3, dy2/dt = y4, dy3/dt = -y1/r, dy4/dt = -y2/r (ただし, r = (y1^2 + y2^2)^(3/2))
初期値は, t0 = 0 において y1 = 1, y2 = 0, y3 = 0, y4 = sqrt(3)

を解く例を示します. 従属変数が4つで方程式が4本の連立常微分方程式の例になりますが, 実はこれは 2 階常微分方程式の例題と同じもので, dy1/dt = y3, dy2/dt = y4 とおくことにより1階連立常微分方程式で表したものです.

独立変数(t)セル(この場合B8)および従属変数(yi)セル(この場合B9~B12)にはプログラムがそれぞれの値を書き込みます. 微分式(dyi/dt)セル(この場合B13~B16)にはtおよびyiよりdy1/dt~dy4/dtを求める数式を入力しておきます. この場合, B13は =B11, B14は =B12, B15は =-B9*(B9^2+B10^2)^(-3/2), B16は =-B10*(B9^2+B10^2)^(-3/2) とします.

初期値および出力セル範囲(この場合D8:H28)の各行の1列目にtを入力します. 1行目には初期値(この場合 t0, t0におけるy1 ~ y4)を入力しておきます.「計算開始」をクリックすると, 各行のtにおけるyiを求め2列目以降に出力します. 指定した範囲内であってもtが空白の行に出会うと計算を終了します.

使用するプログラムは Derkfa, Dopri5a, Dop853a, Deabm, Debdf(スティフ用) または Radaua(スティフ用) から選ぶことができます.

計算精度の標準値は 1.0e-8 です. 各ルーチンのRTolおよびATolにこれを設定します.

それぞれのセル範囲は必要な範囲よりも大きく指定することができ, その場合には左上から必要なだけの大きさの範囲を使います.

「保存/読込」についてはこちらを参照ください.

「ヘルプ」をクリックするとネット接続中であればこのページを表示します.

右上の「?」は正しく動作しません. 「ヘルプ」ボタンを使用してください.