DSolve::deqn NDSolve::deqn NDSolveValue::deqn ParametricNDSolve::deqn ParametricNDSolveValue::deqn RSolve::deqn

詳細

  • このメッセージは,指摘されたDSolveの第1引数の式が方程式ではない場合に表示される.
  • DSolveの第1引数には,方程式または方程式のリストが想定されている.
  • 方程式は,表記法 lhs==rhs を用いて入力することができる.
  • 表記法 lhs=rhs は,方程式よりも割当てに用いられる.この形式の式の評価は,lhs に値を割り当てようとする.
  • Off[message]はメッセージが表示されないようにし,On[message] はメッセージが表示されるようにする.(例:Off[DSolve::deqn]

例題

  (5)

第1引数にリストされている要素の1つは,方程式ではない:

は方程式ではない.これは値と等しくなければならない.以下はDSolveにおける正しい方程式指定である:

第1引数は,方程式でもリストでもない:

DSolveの有効な入力である:

次の例題において,y には値が割り当てられているので,DSolveは警告メッセージを返す:

割当ての結果,入力の2つ目の式はTrueとなる:

変数 が0と等しいと設定されたので,方程式内の Trueを返す.方程式にTrueが存在することがエラーの原因である.Clearを使ってこの問題を解決する:

変数の不正な定義:

方程式を解く:

問題は関数の定義が不正なことである.「=」ではなく「==」を使わなければならない.Clearを使うだけでは十分ではない:

導関数の定義は引き続き使用できる:

ClearAllを使う:

方程式を解く:

導関数の境界条件がある方程式を設定する:

この問題の境界条件はである.左辺を評価すると0になるので,Trueを返す:

境界条件を適切に設定するために,まず一般的な についての導関数を取得し,導関数を取得した後で を0に設定する:

導関数の境界条件で忘れずにカッコを使って操作順を制御する.そうしないと再度NDSolve::deqnメッセージが発せられる: