NDSolve

NDSolve[eqns,u,{x,xmin,xmax}]

xminから xmaxの範囲における独立変数 x の関数 u について,常微分方程式 eqns の数値解を求める.

NDSolve[eqns,u,{x,xmin,xmax},{y,ymin,ymax}]

偏微分方程式 eqns を矩形領域上で解く.

NDSolve[eqns,u,{x,y}Ω]

偏微分方程式 eqns を,領域 Ω 上で解く.

NDSolve[eqns,u,{t,tmin,tmax},{x,y}Ω]

時間依存偏微分方程式 eqns を,領域 Ω 上で解く.

NDSolve[eqns,{u1,u2,},]

関数 uiを解く.

詳細とオプション

  • NDSolveは,結果をInterpolatingFunctionオブジェクトで与える数値微分方程式ソルバである.
  • NDSolve[eqns,u[x],{x,xmin,xmax}]は,関数 u 自体の解を与える代りに u[x]の解を与える.
  • 微分方程式は,Dtで得られる全微分商ではなく,Dで得られる u'[x]のような導関数で記述しなければならない.
  • 偏微分方程式は,微分演算子のGrad (),Div (.),Laplacian (2),Curl ()を使って指定することもできる.一般に,これらの演算子は,演算子形が評価されるのを防ぐために,Inactive[op]で使われる.
  • NDSolveは,多種の常微分方程式と多くの偏微分方程式を解くことができる.
  • NDSolveは,多くの遅延微分方程式も解くことができる.
  • 常微分方程式では,関数 uiは単一変数 t だけに依存するものとする.偏微分方程式では,複数の変数に依存してもよい.
  • WhenEvent[event,action]を方程式 eqns に入れて eventTrueになったときに実現する action を指定することができる.
  • uiの完全解を得るには,十分な初期条件または境界条件を微分方程式に与えておかなければならない.
  • 初期条件と境界条件は,通常 u[x0]==c0, u'[x0]==dc0のように与える.実際に与える式はより複雑なものであっても構わない.
  • c0dc0等は,u[x]がベクトルあるいは一般的なリストの値を持つ関数であることを指定するリストでもよい.
  • 周期境界条件は u[x0]==u[x1]を用いて指定することができる.
  • 初期条件や境界条件に現れる点 x0は,解を求める xminから xmaxの範囲に必ずしもなくてよい.
  • 境界値もまたDirichletConditionおよびNeumannValue.を使って指定することができる.
  • 遅延微分方程式では,最初の履歴関数が u[x/;x<x0]==c0の形式で与えられる.ただし,c0は一般に x の関数である.
  • NDSolveの微分方程式には,複素数を使うことができる.
  • NDSolveは多くの微分代数方程式を解くことができる.この場合,eqns が純粋に代数的なこともあれば,変数のあるものが陰的に代数的なこともある.
  • uiは従属変数の関数であり得るが,そのような変数すべてを含んでいる必要はない.
  • 指定可能なオプション
  • AccuracyGoalAutomatic目標とする絶対確度の桁数
    CompiledAutomatic式を自動的にコンパイルするかどうか
    DependentVariables Automatic全従属変数のリスト
    EvaluationMonitor None関数が評価されたときに常に評価される式
    InitialSeeding{}いくつかのアルゴリズムのためのシード方程式
    InterpolationOrder Automatic最終出力の連続性の程度
    MaxStepFraction 1/10各ステップでカバーする領域の最大割合
    MaxSteps Automatic最大ステップ数
    MaxStepSize Automatic各ステップの最大刻み幅
    Method Automatic使用されるアルゴリズム
    NormFunction Automatic誤差推定に用いるノルム
    PrecisionGoalAutomatic目標とする精度の桁数
    StartingStepSize Automatic使用する最初の刻み幅
    StepMonitor Noneステップを取る際に評価される式
    WorkingPrecision MachinePrecision内部計算で使用する精度
  • NDSolveは解における推定誤差がPrecisionGoalAccuracyGoalで指定された許容率内に収まるような刻み幅を取る.
  • オプションNormFunction->f は各 uiの推定誤差を f[{e1,e2,}]を用いて統合するように指定する.
  • AccuracyGoalは,実質的に解を求める各ステップで許される絶対的な局所誤差を指定し,PrecisionGoalは相対的な局所誤差を指定する.
  • 解がゼロ近傍にあるときに,解が正確に求められなければならない場合は,AccuracyGoalを大き目に設定するか,Infinityに設定するとよい.
  • AccuracyGoalPrecisionGoalのデフォルト値のAutomaticWorkingPrecision/2に等しい.
  • MaxStepsのデフォルト設定Automaticは,開始時および終了時と推定されるステップサイズによるNDSolveの最大ステップ数を推定している.これが不可能な場合には,固定ステップ数が使われる.
  • MaxStepFractionの設定で各独立変数の値の幅の割合としてNDSolveの最大刻み幅を指定する.
  • DependentVariables->Automaticの場合,NDSolveは与えられた方程式を解析して従属変数を決定しようとする.
  • NDSolveは一般に微分方程式を,その方程式のタイプによっていくつかの異なるステージに分けて解く.Method->{s1->m1,s2->m2,}では,ステージ si がメソッド miによって処理される.実際に使われるステージとその順序は,解こうとしている問題に基づいてNDSolveによって決定される.
  • 使用可能な解法のステージ
  • "TimeIntegration"微分方程式系の時間積分
    "BoundaryValues"常微分方程式の境界値解
    "DiscontinuityProcessing"不連続微分方程式を扱うための記号処理
    "EquationSimplification"数値評価のための方程式形式の簡略
    "IndexReduction"微分代数方程式の記号指数簡約
    "DAEInitialization"微分代数方程式の一貫した初期化
    "PDEDiscretization"偏微分方程式の離散化
  • Method->m1 またはMethod->{m1,s2->m2,}を使うと,メソッド m1は時間積分に使われると仮定されるので,Method->m1Method->{"TimeIntegration"->m1}に等しい.
  • Methodオプションの可能な明示的時間積分設定
  • "Adams"一次から12次の予測器・修正子Adams法
    "BDF"一次から五次の陰的後退微分法
    "ExplicitRungeKutta"二次あるいは一次から九次あるいは八次のルンゲ・クッタ法の適応的埋込み型ペア
    "IDA"微分代数方程式の陰的後退微分公式
    "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"局所的に厳密な記号解の数値近似
  • InterpolationOrder->Allと設定すると,NDSolveはもとになるメソッドと同じ次数の補間を使う解を生成するようになる. »

例題

すべて開くすべて閉じる

  (7)

一階常微分方程式を解く:

解をプロットで使う:

関数とその導関数をプロットで使う:

特定の値を求める:

二階非線形常微分方程式:

関数とその最初の2つの導関数をプロットする:

常微分方程式系:

一次元の熱伝導方程式を解く:

方程式の別の形:

Disk上でポアソン(Poisson)方程式を解く:

正弦波境界条件で,Disk上の最小曲面を求める:

結合非線形サイン・ゴルドン方程式を領域上で解く:

スコープ  (28)

常微分方程式  (8)

任意の階数の方程式を指定する.通常の形への簡約は自動的に行われる:

直接,解を微分し,位相面のプロットを作成する:

方程式系を直接指定する:

ベクトル値の関数について解く:

解の4つの成分をプロットする:

二階方程式としての調和振動子の異なる同等の指定方法:

一階方程式系として:

初期条件から次元を推定し,ベクトル変数を使う:

行列値の変数を使って基本的な行列解を計算する:

厳密解と比較する:

ファン・デル・ポル(van der Pol)方程式を定義する:

デフォルトのソルバが自動的に扱う解の「硬い(stiff)」動作:

他のメソッドではこの系は解けない可能性がある:

方程式は複数の明白な解を持つことがある:

y[x]は,区分関数を一度積分しており,連続的である:

y[x]は微分可能である.これに対し y'[x]は連続なだけである:

偏微分方程式  (5)

一次元の非線形移流拡散方程式:

放物線型と双曲線型をミックスした偏微分方程式系を定義する:

2つの空間次元における周期境界条件を持った非線形正弦Gordon方程式:

最終時間で解をプロットする:

解のラジアル断面の時間の進化をプロットする:

切れ目のある領域上で波動方程式を解く:

曲線状の境界上に周期境界条件があるポアソン方程式を解く:

解を可視化する:

境界値問題  (5)

非線形多点境界値問題:

ディリクレとノイマンの境界条件がある非線形拡散方程式 の初期シードから始めて解く:

結果を可視化する:

ディリクレ境界条件がある非線形方程式 を初期シード から始めて解く:

結果を可視化する:

ディリクレ境界条件がある複素値非線形反応方程式 を解く:

結果を可視化する:

非線形荷重項 がある境界値問題を解く:

結果を可視化する:

遅延型微分方程式  (2)

2定数遅延で初期履歴関数 を持つ遅延型の微分方程式を解く:

不連続性は から遅延と等しい間隔で伝播する:

線形遅延型微分方程式の安定性を調べる:

ハイブリッド方程式と不連続方程式  (4)

自動事象生成を使った不連続な右辺を持つ微分方程式:

右辺が一定の時間間隔で変化する微分方程式:

負の 軸と交差するたびに 軸に沿った解を反映する:

スライディングモードでの周期解:

微分代数方程式  (4)

代数的制約として を持つ微分方程式を解く:

常微分方程式系を特異質量行列で解く:

ヤコビ行列の行列式は0である.の導関数は存在しない:

この方程式を代数係数を持つ微分代数方程式として書き直す:

特異質量行列を含む微分方程式系を微分代数方程式として解く:

質量行列の特異点を調べる:

微分代数方程式を指数0の系に変換し,不変量を持つ方程式として解く:

一般化と拡張  (1)

関数の名前は記号でなくともよい:

オプション  (31)

AccuracyGoalとPrecisionGoal  (1)

デフォルトを使って初期条件に鋭敏に依存する天体力学方程式を解く:

より高い確度と精度を目標とすると結果が変わる:

目標を増やすとさらに正しい解が広がる:

DependentVariables  (1)

非常に大きい方程式系を設定する:

すべての従属変数について解くが,x1についての解だけを保存する:

EvaluationMonitor  (2)

評価の総数:

連続する評価の間の距離.負の距離は拒絶されたステップを表す:

InitialSeedings  (2)

境界値問題について初期シード0を指定する:

空間座標に依存する初期シードを指定する:

InterpolationOrder  (1)

InterpolationOrder->Allを使ってメソッドと同じ次数の補間を得る:

これはデフォルトで使われている補間次数よりもはるかに時間がかかる:

ステップ間でははるかによい:

MaxStepFraction  (1)

積分区間の相対的に小さいサイズの特徴は見逃されることがある:

MaxStepFractionを使って区間の大きさにかかわらず特徴が見逃されないようにする:

MaxSteps  (1)

積分が,所望の区間よりも短い区間で止まってしまう:

解を得るためにはもっとステップ数が必要である:

位相面で解をプロットする:

振動子の無限積分の場合は,ステップ数が最大値に達する:

より多くのステップを要求することができる:

MaxStepSize  (2)

デフォルトのステップ制御では突然変化する特徴を見逃すことがある:

MaxStepSizeの設定値を小さくしてNDSolveが特徴を確実に捉えるようにする:

より小さい正の整数の数を計算しようとするといくつかの事象を見逃してしまう:

MaxStepSizeを十分小さくして事象を一つも見逃さないようにする:

Method  (14)

TimeIntegration  (5)

微分方程式の時間積分に陽的ルンゲ・クッタ法を使うように指定する:

時間積分に8階の陽的ルンゲ・クッタ法を使うように指定する:

微分方程式の時間積分に陽的オイラー法を使うように指定する:

デフォルトの解法で,連続するステップにおける x の値の違いを示す:

明示的なRungeKutta法を使うと刻み幅はあまり頻繁には変わらない:

補外法ではステップが大変大きくなりがちである:

PDEDiscretization  (3)

Burgersの方程式の解は急勾配になり,数値的に不安定になる可能性がある:

十分に細かい空間的離散化を指定してフロントを解決する:

フロントが形成された後は,解の減衰が比較的速くなる:

空間離散化に有限要素法指定するを使うように指定する:

時間依存シュレディンガー(Schrödinger)方程式を細分化メッシュ上で解く:

高精度の解をプロットする:

BoundaryValues  (1)

境界値問題を解く:

デフォルトオプションを使うと,このメソッドでは自明な解が求まる:

"Shooting"メソッドでデフォルトとは異なる初期条件を指定して別の解を求める:

DiscontinuityProcessing  (1)

NDSolveSignのような不連続関数の処理を自動的に行う:

この処理が使用できなくなっていると,NDSolveは不連続点で止まる可能性がある:

使う時間積分法によっては,解が非常に不正確になる場合もある:

解を求める同等の方法として"DiscontinuitySignature"の使用が考えられる:

解は事実上等しい:

解がスライディングモードのときの不連続性の符号は0である:

EquationSimplification  (2)

平方根関数が十分に滑らかではないので,解は完結できない:

剰余を形成し,微分代数方程式系として解くことで1つの解を求めることができる:

他の解の分枝は の一定の値を指定することで得ることができる:

サブオプション"SimplifySystem"->Trueを使うと,NDSolveは十分に単純な形の成分については記号解を使う:

IndexReduction  (1)

指数減少を使った制約条件付きの振子の指数3による形成:

デフォルトのメソッドは指数1の問題しか解くことができない:

記号的に指数を減少した結果の問題は解くことができる:

指数を0に減少し,投影法で制約条件を維持して解く:

時間ステップの2つの解についての暗黙のエネルギー制約をプロットする:

DAEInitialization  (1)

初期化の前進コロケーションを使って0におけるAbsにまつわる問題を避ける:

NormFunction  (1)

さまざまな誤差推定のノルムを使った実際の解の誤差をプロットする:

最良の解のプロット:

StartingStepSize  (1)

区間が非常に大きい場合には,始点近くの長続きしない特徴は見逃されることがある:

刻み幅を十分小さくして始めると入力が見逃されない:

StepMonitor  (3)

解の処理の中でステップが取られる各点における解をプロットする:

解を求めるのに取られたステップの総数:

連続するステップにおける x の値間の差分:

WorkingPrecision  (1)

100周期を超える調和振動子の解における誤差:

作業精度を上げると,局所的な許容率もこれに伴って高くなる:

作業精度を高くすると,"Extrapolation"メソッドが非常に効果的になることもある:

100周期を超える調和振動子の解における誤差:

作業精度を上げると,局所的な許容率もこれに伴って高くなる:

作業精度を高くすると,"Extrapolation"メソッドが非常に効果的になることもある:

アプリケーション  (35)

常微分方程式  (5)

二重ポテンシャル井戸中の粒子についてのDuffingの方程式のシミュレーションを行う:

解は初期条件に大きく依存する:

ローレンツ(Lorenz)方程式 [詳細]:

ロトカ・ヴォルテラの捕食者と被食者の方程式 [詳細]:

位相面プロット:

Gavrilov・Shilnikovモデルで「blue sky catastrophe」軌道の外観を見る:

簡約された3体(3-body)問題 [詳細]

いくつかの異なる初期条件に適した形:

偏微分方程式  (10)

PDEModelsの概要には,さまざまな分野からの詳細な説明付きのPDEモデルの大規模コレクションが収められている.

表面を周期的に暖めた場合の深さ x における地熱の簡単なモデル:

周期境界条件を持った単純な波の進化:

解をプロットする:

Wolframの非線形波動方程式 [詳細]:

2空間次元におけるWolframの非線形波動方程式:

非線形シュレディンガー(Schrödinger)方程式における周期ポテンシャルによって摂動を与えられたソリトンの断面:

Stokesの方程式を使って狭窄水路内の流速場を計算する:

ロッドの熱源で温度場をモデル化する:

偏微分方程式を解く:

解を可視化する:

過度音圧場についてのモデル変数 vars をモデルパラメータ pars で定義する:

右に進む音波 を初期条件 ics で定義する:

右端の音のハード境界で方程式を設定する:

偏微分方程式を解く:

時間領域で音場を可視化する:

1つの反応速度でさまざまな材料を通過する1D化学種の移動をモデル化する.右辺と左辺はそれぞれ質量濃度と流入条件に従う:

 del .(-d del c(x))+a c(x)^(︷^(           mass transport model              )) =|_(Gamma_(x=0))q(x)^(︷^( mass flux value  ))

定常物質移動モデル変数 vars を設定する:

領域 を設定する:

領域 でアクティブな,物質移動モデルパラメータ種拡散率 と反応率 を指定する:

種流束境界条件を指定する:

質量濃度境界条件を指定する:

方程式を立てる:

偏微分方程式を解く:

解を可視化する:

遅延型微分方程式  (1)

呼吸力学におけるMackeyGlassの遅延型微分方程式の解を見る:

ハイブリッド微分方程式  (5)

それぞれのバウンドで速度の95%を保ちながらバウンドするボールのシミュレーションを行う:

階段を跳ねながら落ちるボールのシミュレーションを行う:

線形振動解が負の 軸と交差するたびにこれを 軸に沿って反射させる:

このリセットされた振動子の解はカオス的動作を示している:

負の 軸上の解を反射点のヒストグラムとともにプロットする:

正弦波入力のある自由度1の衝撃振動子をモデル化する:

一定時間間隔で刺激が与えられる減衰振動子をモデル化する:

軌跡は徐々に一定した軌道に落ち着く:

機械系  (3)

直交座標で振子の動きをモデル化する.ニュートンの運動の第2法則 および を示力図とともに使って支配方程式を導く:

系のシミュレーションを行う:

振子に減衰を加え,時間とともに速度が落ちるようにする:

振子は垂直の固定点で安定する:

制約条件 を変更して棒を硬いバネに替える:

この解には高周波のバネの振動が含まれる:

水平平面から放たれる,単位質量と単位長の二重振子をモデル化する.まず,ニュートンの運動の第2法則を使って方程式を導く:

方程式と制約条件を不変量として強制することで,系のシミュレーションを行う:

二重振子の動きを可視化する:

動いているコンベヤベルト上の,粘度摩擦,クーロン摩擦,ストライベック摩擦,静摩擦を含むまざまな摩擦推力 を使ったバネで壁に固定されたブロックをモデル化する.各モデルについて位置と速度を比較する:

ブロックについてのニュートンの方程式:

粘性摩擦は相対速度 に比例する:

ブロックはバネの自然長1で安定する:

クーロン摩擦は相対速度 の符号に比例する:

ブロックはバネの力が十分強くなるまでベルトとともに動く:

「Stribeck摩擦」は改良されたクローン摩擦 F_(str)=gamma sgn(v) e^(-2 TemplateBox[{v}, Abs])である:

低速度での変化は若干減じられる:

トライベック摩擦は,バネの力がベルト表面の粗さに依存する値 μ を超えるまでブロックを一定の位置に保つ.離散変量 stuck は,ブロックが動かない場合は1に,それ以外の場合は0に設定する:

バネの力が μ より小さいかどうか,またブロックがベルトと相対的に移動していないかどうかをチェックする:

ブロックは繰り返しベルトに着いて動かなくなり,次にバネの力によって引き戻される:

各モデルを比較する:

電気系  (6)

時間 ,電圧 に対するRLC回路のステップ応答のシミュレーションを行う:

成分法則を接続に関するキルヒッホフ(Kirchhoff)の法則と一緒に使う:

ステップ応答のシミュレーションを行う:

時間 ,電圧 に対するRLC回路のステップ応答のシミュレーションを行う:

ステップ応答のシミュレーションを行う:

ステップ応答を示す:

並列RLC回路の動作のシミュレーションを行う:

一定の入力電流のもとでの応答を示す:

R,L,Cの各コンポーネントにおける電流とその結果の電圧を示す:

トランジスタ増幅器の回路をモデル化する:

入力電圧 は正弦的に変わる:

トランジスタは に依存して非線形的に電圧を発する:

オームの法則とキルヒッホフの法則を使って各ノードの支配方程式を求める:

方程式の特異系のシミュレーションを行う:

トランジスタは,と相対的に電圧 を増幅する:

入力電圧レベル vi から希望する出力電圧レベル vd へのDC-DCブーストコンバータをパルス幅変調フィードバック制御 q[t]を使ってモデル化する:

キルヒッホフの法則を使って上記回路のモデルを得る:

制御信号 q[t]が各周期 τvi/vd の割合でトランジスタをオンにする:

低電圧 vi=24から始めて高電圧 vd=36にする:

パルス幅変調フィードバック制御 q[t]を使って入力電圧レベル vi から希望する出力電圧レベルl vo へのDC-DC バックブーストコンバータをモデル化する:

キルヒッホフの法則を使って上記回路のモデルを得る:

制御信号 q[t]が各周期の vd/(vi+vd)の割合でトランジスタをオンにする:

低電圧 vi=24から始めて高電圧 vd=36にする:

高電圧 vi=24から低電圧 vd=16に進む:

水力系  (3)

2本の円柱タンクがあり,水が一方のタンクからもう一方のタンクへとパイプを通って移動する.タンクの水面の高さの変化をモデル化する:

圧力の関係 と質量保存を使う:

HagenPoiseuilleの関係を使ってパイプを通る流れのシミュレーションを行う:

系のシミュレーションを行う:

2番目のタンクを水漏れするタンクとしてモデル化する:

2番目のタンクの水漏れのために,両方のタンクがいずれ空になる:

パイプを通って片方のタンクからもう一方のタンクに水が流れる.この半円形の2つのタンクの水位変化をモデル化する:

1つのタンクが他の2つのタンクに水を供給する3つのタンクがある.この3つのタンクの水位変化をモデル化する:

HagenPoiseuille関係でパイプを通る水の流れをモデル化する:

最初のタンクからの流量は他の2つのタンクの流量の和に等しい:

系のシミュレーションを行う:

3番目のタンクを水漏れのあるタンクとしてモデル化する:

最初の2つのタンクは平衡に達し,次に同じ比率で空になる:

化学系  (2)

自己触媒反応の運動をモデル化する:

    

反応速度式は次で与えられる:

abcの濃度は常に一定である:

3つの種の進化を解き,これを可視化する:

二酸化炭素と連続的に混ざり合うFLBとZHUの2つの種の化学反応をモデル化する:

容積単位あたりの二酸化酸素の流入は以下で示される:

反応速度式は以下として与えられる:

平衡方程式は以下で与えられる:

方程式を解き,FLBZHUCO2ZLAの濃度の変化を求める:

特性と関係  (7)

微分方程式の記号的解と数値的解:

JacobiSNを定義する方程式:

ある区間の異なる点で積分の値を数値的に計算する:

独立変数の関数では,NDSolveは実質的に不定積分を返す:

事象を求めるのは解の関数の根を求めることと関連する:

事象の位置で正確かつ効率よく根を見付けることができる:

これは,微分方程式についてのの関数としての を返す:

の根を求める:

同等の境界位置問題を解く:

NDSolveSystemModelのソルバとして使う:

シミュレーションの結果から変数をプロットする:

SystemModelを使って大きい階層的モデルをモデル化する:

時間の経過に伴う水槽の系の水位をプロットする:

考えられる問題  (14)

NDSolveのメッセージの多くにはそのメッセージに特有の参照ページがある.各ページにアクセスする方法はワークフローのエラーメッセージを理解するを参照されたい.

数値誤差  (4)

初期条件から遠ざかるにつれて誤差も大きくなる傾向がある:

数値解と厳密解の差分を求める:

非線形方程式の誤差:

高次のアルゴリズムでは,デフォルトの補間はステップ間で大きい誤差を生むことがある:

アルゴリズムに対応した次数の補間を使うとステップ間の誤差が小さくなる:

有限要素法が使うアルゴリズムの中には決定論的ではないものがある.このことは,このアルゴリズムの中で何らかの偶然性が使われ,同じ入力の実行結果に若干の差が出ることを意味する:

同じ偏微分方程式を2度解く.2つの解には小さい差があるかもしれない:

微分代数方程式  (3)

NDSolveは指数が1より大きい系を自動的には処理しない:

高指数の系は,系の指数を低くすると解くことができる:

これは,微分代数方程式系である:

で解を求める:

NDSolveは,で解が求まらない場合は,指定された初期条件を変えることがある:

反復に関する最初の推定を変え,問題を回避する:

NDSolveは指数1に限定されるが,の解の指数は2である:

高指数の系を解く場合は,指数減少法を使って微分代数方程式の指数を1にするとよい:

デフォルトのメソッドではデフォルトの許容度には収束できないかもしれない:

AccuracyGoalPrecisionGoalの設定値を低くすると解が求まる:

"StateSpace"時間積分法はデフォルトの許容度でこの問題を解くことができる:

偏微分方程式  (4)

PDEModelsの概要には,さまざまな分野からの詳細な説明付きのPDEモデルの大規模コレクションが収められている.

非線形偏微分方程式を定義する:

空間的な離散化は初期値に基づいており,それは最終値に比べると変化が少ない:

空間的な格子点の最小数を大きくすることで,最終値が正確に計算できるようになる:

このプロットは,空間的により複雑な解のオンセットを示している:

初期値が階段関数の熱伝導方程式を定義する:

初期値における不連続性によって空間格子点が多すぎるようになるかもしれない:

空間格子点の数をより少なく設定しても,基本的に同じような解になる:

初期値のあるラプラス(Laplace)方程式を定義する:

このソルバは初期値(Cauchy)問題としてよく設定できた方程式にしか使えない:

設定不良だと数値的に不安定になる:

境界値問題  (1)

これは,境界値問題の自明な解を求める:

解の探索に開始条件を加えることで,他の解を求めることができる:

未知の関数定義  (1)

未知の関数の定義が評価に影響することがある:

未知の関数についての定義をクリアすると,この問題は解決する:

Wolfram Research (1991), NDSolve, Wolfram言語関数, https://reference.wolfram.com/language/ref/NDSolve.html (2019年に更新).

テキスト

Wolfram Research (1991), NDSolve, Wolfram言語関数, https://reference.wolfram.com/language/ref/NDSolve.html (2019年に更新).

CMS

Wolfram Language. 1991. "NDSolve." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/NDSolve.html.

APA

Wolfram Language. (1991). NDSolve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NDSolve.html

BibTeX

@misc{reference.wolfram_2024_ndsolve, author="Wolfram Research", title="{NDSolve}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/NDSolve.html}", note=[Accessed: 18-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_ndsolve, organization={Wolfram Research}, title={NDSolve}, year={2019}, url={https://reference.wolfram.com/language/ref/NDSolve.html}, note=[Accessed: 18-November-2024 ]}