DSolve returns a general solution for a problem if no initial or boundary conditions are specified.

However, if initial or boundary conditions are specified, the output from

DSolve must satisfy both the underlying differential equation as well as the given conditions.

In such cases, it is useful to check whether

DSolve has been asked a reasonable question—in other words, to check whether the problem is well-posed. An initial or boundary value problem is said to be

*well-posed* if a solution for it is guaranteed to exist in some well-known class of functions (for example, analytic functions), if the solution is unique, and if the solution depends continuously on the data. Given an ODE of order

*n* (or a system of

*n* first-order equations) and

*n* initial conditions, there are standard existence and uniqueness theorems that show that the problem is well-posed under a specified set of conditions. The right-hand side of the first-order linear ODE in the previous example is a polynomial in

*y*[*x*] and hence infinitely differentiable. This is sufficient to apply Picard's existence and uniqueness theorem, which only requires that the right-hand side be Lipschitz-continuous.

Most problems that arise in practice are well-posed since they are derived from sound theoretical principles. However, as a note of caution, the following are examples where

DSolve might have difficulty finding a satisfactory solution to the problem.

Finally, it is possible that a problem has a solution, but that

DSolve fails to find it because the general solution is in implicit form or involves higher transcendental functions.

This concludes the discussion of the basic principles for effectively working with

DSolve. See the list of

"references" that were found to be useful either during the development of

DSolve or during the preparation of this documentation.