Introduction to Differential Equation Solving with DSolve

The Mathematica function DSolve finds symbolic solutions to differential equations. (The Mathematica function NDSolve, on the other hand, is a general numerical differential equation solver.) DSolve can handle the following types of equations:

  • Ordinary Differential Equations (ODEs), in which there is a single independent variable and one or more dependent variables . DSolve is equipped with a wide variety of techniques for solving single ODEs as well as systems of ODEs.
  • Partial Differential Equations (PDEs), in which there are two or more independent variables and one dependent variable. Finding exact symbolic solutions of PDEs is a difficult problem, but DSolve can solve most first-order PDEs and a limited number of the second-order PDEs found in standard reference books.
    • Differential-Algebraic Equations (DAEs), in which some members of the system are differential equations and the others are purely algebraic, having no derivatives in them. As with PDEs, it is difficult to find exact solutions to DAEs, but DSolve can solve many examples of such systems that occur in applications.
    DSolve[eqn,y[x],x]solve a differential equation for
    DSolve[{eqn1,eqn2,...},{y1[x],y2[x],...},x]
    solve a system of differential equations for

    Finding symbolic solutions to ordinary differential equations.

    DSolve returns results as lists of rules. This makes it possible to return multiple solutions to an equation. For a system of equations, possibly multiple solution sets are grouped together. You can use the rules to substitute the solutions into other calculations.

    This finds the general solution for the given ODE. A rule for the function that satisfies the equation is returned.
    In[1]:=
    Click for copyable input
    Out[1]=
    You can pick out a specific solution by using (ReplaceAll).
    In[2]:=
    Click for copyable input
    Out[2]=

    A general solution contains arbitrary parameters C[i] that can be varied to produce particular solutions for the equation. When an adequate number of initial conditions is specified, DSolve returns particular solutions to the given equations.

    Here, the initial condition is specified, and DSolve returns a particular solution for the problem.
    In[3]:=
    Click for copyable input
    Out[3]=
    This plots the solution. ReplaceAll () is used in the Plot command to substitute the solution for .
    In[4]:=
    Click for copyable input
    Out[4]=
    DSolve[eqn,y,x]solve a differential equation for as a pure function
    DSolve[{eqn1,eqn2,...},{y1,y2,...},x]
    solve a system of differential equations for the pure functions

    Finding symbolic solutions to ordinary differential equations as pure functions.

    When the second argument to DSolve is specified as instead of , the solution is returned as a pure function. This form is useful for verifying the solution of the ODE and for using the solution in further work. More details are given in "Setting Up the Problem".

    The solution to this differential equation is given as a pure function.
    In[5]:=
    Click for copyable input
    Out[5]=
    This verifies the solution.
    In[6]:=
    Click for copyable input
    Out[6]=
    This solves a system of ODEs. Each solution is labeled according to the name of the function (here, and ), making it easier to pick out individual functions.
    In[7]:=
    Click for copyable input
    Out[7]=
    This substitutes a random value for the independent variable and shows that the solutions are correct at that point.
    In[8]:=
    Click for copyable input
    Out[8]=
    This plots the solutions.
    In[9]:=
    Click for copyable input
    Out[9]=
    DSolve[eqn,u[x,y],{x,y}]solve a partial differential equation for

    Finding symbolic solutions to partial differential equations.

    While general solutions to ordinary differential equations involve arbitrary constants, general solutions to partial differential equations involve arbitrary functions. DSolve labels these arbitrary functions as C[i].

    Here is the general solution to a linear first-order PDE. In the solution, C[1] labels an arbitrary function of .
    In[10]:=
    Click for copyable input
    Out[10]=
    This obtains a particular solution to the PDE for a specific choice of C[1].
    In[11]:=
    Click for copyable input
    Out[11]=
    Here is a plot of the surface for this solution.
    In[12]:=
    Click for copyable input
    Out[12]=

    DSolve can also solve differential-algebraic equations. The syntax is the same as for a system of ordinary differential equations.

    This solves a DAE.
    In[13]:=
    Click for copyable input
    Out[13]=
    This verifies the solutions.
    In[14]:=
    Click for copyable input
    Out[14]=
    A plot of the solutions shows that their sum satisfies the algebraic relation f[x]+g[x]=3 Sin[x].
    In[15]:=
    Click for copyable input
    Out[15]=

Goals of Differential Equation Solving with DSolve Tutorials

The design of DSolve is modular: the algorithms for different classes of problems work independently of one another. Once a problem has been classified (as described in "Classification of Differential Equations"), the available methods for that class are tried in a specific sequence until a solution is obtained. The code has a hierarchical structure whereby the solution of complex problems is reduced to the solution of relatively simpler problems, for which a greater variety of methods is available. For example, higher-order ODEs are typically solved by reducing their order to 1 or 2.

The process described is done internally and does not require any intervention from the user. For this reason, these tutorials have the following basic goals.

  • To provide enough information and tips so that users can pose problems to DSolve in the most appropriate form and apply the solutions in their work. This is accomplished through a substantial number of examples. A summary of this information is given in "Working with DSolve".
    • To give a catalog of the kinds of problems that can be handled by DSolve as well as the nature of the solutions for each case. This is provided in the tutorials on ODEs, PDEs, DAEs, and boundary value problems (BVPs).

    These Differential Equation Solving with DSolve tutorials will be useful in acquiring a basic knowledge of DSolve and also serve as a ready reference for information on more advanced topics.

New to Mathematica? Find your learning path »
Have a question? Ask support »