NDSolveの"FixedStep"法

はじめに

固定刻み幅を使って数値積分を実行すると便利なことがよくある.

例えば,"DoubleStep""Extrapolation"等のメソッドはさらに正確なメソッドを得るために,適応刻み幅を容認する誤差推定値と解とを組み合せる前に,一連の固定刻み幅による積分を実行する.

"FixedStep"法を使うと,固定刻み幅を使って1ステップの積分法が実行できる.

以下のようにして,例題のパッケージと効用関数のパッケージをロードする.

例題

例題を定義する:
"ExplicitEuler"法で固定刻み幅1/10を使い,微分方程式系を積分する:
実際は"ExplicitEuler"法には,適応型の刻み幅制御がない.したがって,積分は固定刻み幅を使ってすでに実行され,"FixedStep"の指定は必要ない:
同じ問題で"ExplicitRungeKutta"が取る刻み幅である:
"ExplicitRungeKutta"メソッドで固定刻み幅を使うよう指定する:

積分区間に依存する刻み幅の絶対区間は,MaxStepFractionオプションが提供する.

MaxStepFractionのデフォルト値は1/10なので,この例題の刻み幅は積分区間の10分の1が境界となる.これで1/20という一定の刻み幅を使うようになる:
MaxStepFractionの値を別の値に設定すると,積分区間への刻み幅の依存性が緩和されたり,完全になくなったりすることがある:

オプションの要約

オプション名
デフォルト値
MethodNone固定刻み幅で使用するメソッドを指定する

"FixedStep"メソッドのオプション