DFIELD & PPLANE Solvers

The default solver in both DFIELD5 and PPLANE5 is one due to J.R. Dormand and P.J. Prince. It is described in chapters 5 & 6 of John Dormand's excellent new book, Numerical Methods for Differential Equations. This is the same solver that is used in the new version of ODE45. Special versions have been included in DFIELD5 and PPLANE5 to meet the particular needs of those routines.

DFIELD5 includes solvers using Euler's method and the second and fourth order Runge-Kutta methods, in addition to the default solver.

In PPLANE5 the user has the option to use the solver ODE23S from the new ODE suite. This solver is designed to solve stiff systems. It was written by Larry Shampine of SMU and Mark Reichelt of The MathWorks. It will appear very slow in comparison to the default solver for most systems. It is especially slow in PPLANE5 because of the demands put on it there to plot solutions continuously, and because of the stopping criteria used. (The auxiliary file ppn5out.m is necessary in order to optimize the speed of ODE23S. ) Nevertheless, the user will see its strength if it is used on a truly stiff system. Try

                   t' = 1
                   y' = exp(t)*sin(y)
using both of the solvers and compare the speed of solution.

For a real test try the solvers on the van der Pol equation:

                   x' = y
                   y' = MU*(1-x^2)*y - x
With MU relatively small, the equation is not stiff, and neither of the solvers has much difficulty with the system. However, when Mu = 100 or MU = 1000 the system is stiff and the default solver will grind away getting nowhere, while ODE23S will readily solve the system. (Use a Display window with -3 < x < 3, and -1.5 MU < y < 1.5 MU.) Preferably use Keyboard Input with a prescribed computation interval of (0,3*MU), and (2,0) as the starting point.

For some stiff systems the stopping criteria used may cause the solution to stop before it should. Use the Keyboard Input with a prescribed computation interval (see next item).

ODE23S can only be used in the Display Window. It cannot be used in the Linearization Window. It is unlikely that it will be useful there.


John C. Polking <polking@rice.edu>
Last modified: Fri Jan 28 14:54:41 CST 2000