NDSolve::ibcinc NDSolveValue::ibcinc ParametricNDSolve::ibcinc ParametricNDSolveValue::ibcinc

詳細

  • このメッセージは,偏微分方程式の境界条件および初期条件が,1つの点において異なる解の値を与える場合に表示される.
  • 矛盾する境界条件および初期条件に伴う問題は,しばしば矛盾する条件を矛盾のない値に近似させることによって解決することができる.
  • 矛盾する境界条件および初期条件は実際のモデルにおいてありがちなことであるが,そのような条件は一般的に急激な温度変化のような反物理的な過程を表し,数値的な方法で扱うことが難しい特異解になることがある.
  • Off[message]はメッセージが表示されないようにし,On[message] はメッセージが表示されるようにする.(例:Off[NDSolve::ibcinc]

例題

  (5)

警告が表示されるのは, において,初期条件と境界条件が の値に対して2つの異なる値を与えるからである.具体的には,において, は矛盾している.この例は,一方の端点の温度が急激に変化する熱方程式に相当する:

解の矛盾する条件を避ける方法のひとつは,不連続な条件を急激ではあるがスムーズに変化する類似の条件で置き換えることである:

解のプロットである:

solの値の定義を消去する:

空間離散化が粗すぎる場合,実際には座標に矛盾がなくてもメッセージが表示されることがある:

この動作は正常であり,「矛盾した境界条件」で詳しく説明されている.空間離散化を十分に細かく行うとメッセージは表示されない:

以下の微分方程式について考える:

このメッセージは通常,初期条件と境界条件の交点において問題があることを示す.ここでは,問題は で起る.第1条件は なのに,第2条件は なので, はこの点において矛盾している.

状況が複雑すぎて,どこで境界条件が矛盾しているのかを特定することが難しい場合は,"DifferentiateBoundaryConditions"Falseを使えばよい.これで常微分方程式のもとになる系を微分代数方程式ソルバで解くことができる.ソルバは,矛盾のない初期条件集合を求めるために提供される初期条件を修正することができる:

しかし,このアプローチは,指定された初期条件と境界条件から逸脱するものである.

以下の例では,離散化エラーのために,NDSolveが誤って境界条件の矛盾について警告する:

NDSolveは時おり境界条件に矛盾がない場合に,矛盾についてNDSolve::ibcincのメッセージj警告を発する.これは,導関数を近似する際の離散化エラーによるものである.より細かい時間離散化なら,エラーメッセージは表示されず,境界条件がよりよく満たされる:

以下の偏微分方程式について考える:

矛盾した境界条件は,のせいである.なので, における 方向の導関数は,においてこの境界条件に一致していなければならない.このため, でなければならない:

NDSolve::eerrの警告メッセージが表示されないように,精度を低くする: