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

Details

  • This message is generated when the indicated expression from the first argument of DSolve is not an equation.
  • The first argument in DSolve is expected to be an equation or a list of equations.
  • Equations can be entered using the notation lhs==rhs.
  • The notation lhs=rhs is used for assignments rather than for equations. Evaluation of an expression of this form will attempt to assign a value to lhs.
  • Off[message] switches off the message; On[message] switches it on. For example: Off[DSolve::deqn].

Examples

Basic Examples  (5)

One of the elements listed in the first argument is not an equation:

is not an equation. This needs to be set equal to a value. This shows a valid specification of equations in DSolve:

The first argument is not an equation or a list:

This shows valid input for DSolve:

DSolve gives an error message for this example, since y has been assigned a value:

The second equation in the input reduces to True as a result of the assignment:

The variable has been set equal to zero, thus in the equations returns True. The presence of True in the equations is the cause of the error. Use Clear to fix this issue:

A wrong definition of variables:

Solve an equation:

The problem is that the function definitions are wrong. You need to use == instead of =. Making use of Clear is not sufficient.

The definitions of , and derivatives are still available:

Use ClearAll:

Solve the equations:

Set up an equation with a derivative boundary condition:

The problem is with the boundary condition. The left-hand side evaluates to zero, so returns True:

To specify the boundary condition properly, take a derivative with respect to a general first, then set to 0 after the derivative has been taken.

Make sure to use parentheses in the derivative boundary condition to control the order of operation. If you do not, you will get the NDSolve::deqn message again.