Mathematica 9 is now available
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT.
SEE THE DOCUMENTATION CENTER FOR THE LATEST INFORMATION.
Mathematica > 微分方程式 >

NDSolve

Updated In 6 Graphic
NDSolve[eqns, y, {x, xmin, xmax}]
xmin からxmax の範囲における独立変数x の関数y について,常微分方程式eqns の数値解を求める.
NDSolve[eqns, y, {x, xmin, xmax}, {t, tmin, tmax}]
偏微分方程式eqns の数値解を求める.
NDSolve[eqns, {y1, y2, ...}, {x, xmin, xmax}]
関数yi の数値解を求める.
  • NDSolve[eqns, y[x], {x, xmin, xmax}]は,関数y に解を与える代りにy[x]の解を与える.
  • 微分方程式は,Dtで得られる全微分ではなく,Dで得られるy'[x]のような導関数で記述しなければならない.
  • NDSolveは,多種の常微分方程式と多くの偏微分方程式を解くことができる.
  • 常微分方程式では,関数yi は単一変数xだけに依存するものとする.偏微分方程式では,複数の変数に依存してもよい.
  • yi の完全解を得るには,十分な初期条件または境界条件を微分方程式に与えておかなければならない.
  • 初期条件と境界条件は,通常y[x0]c0y'[x0]dc0のように与える.実際に与える式はより複雑なものであっても構わない.
  • c0dc0等は,y[x]がベクトルあるいは一般的なリストの値を持つ関数であることを指定するリストでもよい.
  • 周期境界条件はy[x0]y[x1]を用いて指定することができる.
  • 初期条件や境界条件に指定する点x0は,解を限定するxmin からxmax の範囲に必ずしもなくてよい.
  • NDSolveの微分方程式には,複素数を使うことができる.
  • NDSolveは多くの微分代数方程式を解くことができる.ここで,eqns が純粋に代数的な場合もあれば,変数のあるものが陰的に代数的な場合もある.
  • yi は従属変数の関数であり得るが,そのような変数すべてを含んでいる必要はない.
  • 指定可能なオプション:
AccuracyGoalAutomatic目標とする絶対確度の桁数
DependentVariablesAutomatic全従属変数のリスト
EvaluationMonitorNone関数が評価されたときに常に評価される式
InterpolationOrderAutomatic最終出力の連続性の程度
MaxStepFraction1/10各ステップでカバーする領域の最大割合
MaxSteps10000最大ステップ数
MaxStepSizeAutomatic各ステップの最大刻み幅
MethodAutomatic使用されるアルゴリズム
NormFunctionAutomatic誤差推定に用いるノルム
PrecisionGoalAutomatic目標とする桁精度
StartingStepSizeAutomatic刻み幅の初期値
StepMonitorNoneステップを取るたびに常に評価される式
WorkingPrecisionMachinePrecision内部計算で使用する精度
  • オプションNormFunction->f は各yi の推定誤差をf[{e1, e2, ...}]を用いて統合するように指定する.
  • AccuracyGoalは,実質的に解を求める各ステップで許される絶対的な局所誤差を指定し,PrecisionGoalは相対的な局所誤差を指定する.
  • 解がゼロ近傍にあるときに,解が正確に求められなければならない場合は,AccuracyGoalを大き目に設定するか,Infinityに設定するとよい.
  • MaxStepFractionの設定で各独立変数の値の幅の割合としてNDSolveの最大刻み幅を指定する.
  • Methodオプションに明示的に与えられる設定:
"Adams"1階から12階の予測子・修正子Adams法
"BDF"1階から5階の陰的後退微分法
"ExplicitRungeKutta"2(1)階から9(8)階のルンゲクッタ法の適応的埋込み型ペア
"ImplicitRungeKutta"任意階数の陰的ルンゲクッタ法
"SymplecticPartitionedRungeKutta"
分離可能なハミルトン系のために挿入されたルンゲクッタ法
  • Method->{"controller", Method->"submethod"}あるいはMethod->{"controller", Method->{m1, m2, ...}}のときの可能なコントローラ法:
"Composition"サブメソッドのリストを作成
"DoubleStep"ダブルステップ法による刻み幅を適用
"EventLocator"特殊イベントに応答
"Extrapolation"多項式補間を用いて階数と刻み幅を適用
"FixedStep"固定刻み幅を使用
"OrthogonalProjection"直交制約条件を満たす解を投影
"Projection"一般的な制約条件を満足する解を投影
"Splitting"式を分割し異なるサブメソッドを使用
"StiffnessSwitching"硬さが検出されたら陽的メソッドから陰的メソッドに変更
  • 主にサブメソッドとして使われるメソッド:
"ExplicitEuler"前進オイラー法
"ExplicitMidpoint"中点法則法
"ExplicitModifiedMidpoint"Graggの補整を伴う中点法則法
"LinearlyImplicitEuler"線形後退オイラー法
"LinearlyImplicitMidpoint"線形陰的中点法則法
"LinearlyImplicitModifiedMidpoint"
線形陰的Bader補整中点法則法
"LocallyExact"局所的に厳密な記号解の数値近似
バージョン 2 の新機能 | バージョン 6 での修正機能
© 2013 Wolfram Research, Inc. English
Ask a question about this page  |  Suggest an improvement  |  Leave a message for the team