Is the Problem Well-Posed?As previously discussed, DSolve returns a general solution for a problem if no initial or boundary conditions are specified. The general solution to this equation is returned. In[538]:=  |
Out[538]=
|
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. Here is an example with a boundary condition. In[539]:=  |
In[540]:=  |
Out[540]=
|
In[541]:=  |
Out[541]=
|
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, we would like to give a few examples where DSolve might have difficulty finding a satisfactory solution to the problem. Here is the solution to a first-order ODE in which the right-hand side fails to satisfy the Lipschitz condition around 0. In[542]:=  |
Out[542]=
|
The general solution has two branches. In[543]:=  |
DSolve succeeds in picking out the correct branch for the given initial condition. In[544]:=  |
Out[544]=
|
Here is a second-order ODE. The boundary conditions do not allow any solution to this problem. In[545]:=  |
Out[545]=
|
In this example, DSolve returns a pair of solutions. As the table shows, the first solution is only valid for values of x greater than or equal to 2. In[546]:=  |
In[547]:=  |
Out[547]=
|
In[548]:=  |
Out[548]=
|
Finally, it is possible that a problem could have a solution but that DSolve could fail to find it because the general solution is in implicit form or involves higher transcendental functions. In this example, a solution is available only after inverting the roles of the dependent and independent variables. In[549]:=  |
Out[549]=
|
In[550]:=  |
Out[550]=
|
This concludes the discussion of the basic principles for effectively working with DSolve. The next section contains a list of references that were found to be useful either during the development of DSolve or during the preparation of this documentation.
|