How to | Check the Results of DSolve

While DSolve usually returns the correct solution to a differential equation it is given, it is common practice to verify the solution returned by any differential equation solver. The solution given by DSolve can be verified using various methods. The easiest method involves substituting the solution back into the equation. If the result is True, the solution is valid.

In this example, the solution is verified by substitution.

For convenience later, assign the first argument of DSolve to :

In[1]:=
Click for copyable input

When the second argument to DSolve is specified as instead of , the solution is returned as a pure function. This form is useful both for verifying the solution and using it in further work:

In[2]:=
Click for copyable input
Out[2]=

Use (the short form for ReplaceAll) to substitute the solution back into the equation:

In[3]:=
Click for copyable input
Out[3]=

Here, the same method is used to verify that the solution satisfies the equation and an initial condition:

In[4]:=
Click for copyable input
In[5]:=
Click for copyable input
Out[5]=
In[6]:=
Click for copyable input
Out[6]=
    

Sometimes the result of the substitution is too complicated to give an immediate True or False. Such examples can be verified by using Simplify to simplify the result of the substitution. If the simplified result is True, the solution is valid.

Get the solution to a second-order inhomogeneous equation:

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=

Substitute the solution back into the equation:

In[3]:=
Click for copyable input
Out[3]=

Use Simplify to verify the solution:

In[4]:=
Click for copyable input
Out[4]=

Here, the same method is used to verify the solution to a linear PDE:

In[5]:=
Click for copyable input
In[6]:=
Click for copyable input
Out[6]=
In[7]:=
Click for copyable input
Out[7]=

If the equation involves special functions, it may be necessary to use FullSimplify to verify the solution.

For example, this solution contains Bessel functions:

In[8]:=
Click for copyable input
In[9]:=
Click for copyable input
Out[9]=

Using Simplify does not verify the solution:

In[10]:=
Click for copyable input
Out[10]=

Using FullSimplify does:

In[11]:=
Click for copyable input
Out[11]=
    

Another important verification technique is to do a numerical check for all the variables and parameters in the problem. It is advisable in such cases to repeat the check with several sets of random values.

Here is an example where numerical verification is useful:

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=
In[3]:=
Click for copyable input
Out[3]=

Although numerical checks cannot verify a solution with certainty, more rigorous checks can be made by using higher precision or by allowing the variables to take complex values.

This verifies the previous solution with higher precision:

In[4]:=
Click for copyable input
Out[4]=

This uses complex random values to verify the previous solution:

In[5]:=
Click for copyable input
In[6]:=
Click for copyable input
Out[6]=