Introduction to Working with DSolve

The aim of these tutorials is to provide a self-contained working guide for solving different types of problems with (RefLink[DSolve, paclet:ref/DSolve]).

The first step in using (RefLink[DSolve, paclet:ref/DSolve]) is to set up the problem correctly. The next step is to use (RefLink[DSolve, paclet:ref/DSolve]) to get an expression for the solution. Once the solution has been found, it can be verified using symbolic or numerical techniques, or it can be plotted using a Wolfram System function such as (RefLink[Plot, paclet:ref/Plot]), (RefLink[Plot3D, paclet:ref/Plot3D]), or (RefLink[ContourPlot, paclet:ref/ContourPlot]). Plots often reveal information about the solution that might not be evident from its closed-form expression.

If no boundary conditions are specified for a problem, the output from (RefLink[DSolve, paclet:ref/DSolve]) is some form of a general solution containing arbitrary parameters. The (RefLink[GeneratedParameters, paclet:ref/GeneratedParameters]) option can be used to label these arbitrary parameters.

In many applications, differential equations contain symbolic parameters, such as the rate of growth in the logistic equation. A differential equation can also contain inexact quantities, such as machine numbers arising from previous calculations. Both symbolic parameters and inexact quantities are allowed by (RefLink[DSolve, paclet:ref/DSolve]), but it is good to be aware of their presence and interpret the solution correctly.

When (RefLink[DSolve, paclet:ref/DSolve]) makes any assumptions or encounters difficulty during a calculation, it issues a warning message outlining the problem. These messages can usually be ignored, but sometimes they point to serious limitations in the answer given for the problem.

It is helpful to analyze the statement of the problem for possible ambiguities—in other words, to make sure that the problem is well posed—so that meaningful answers can be obtained from (RefLink[DSolve, paclet:ref/DSolve]).