"Projection" Method for NDSolve
When a differential system has a certain structure, it is advantageous if a numerical integration method preserves the structure. In certain situations it is useful to solve differential equations in which solutions are constrained. Projection methods work by taking a time step with a numerical integration method and then projecting the approximate solution onto the manifold on which the true solution evolves.
NDSolve includes a differential algebraic solver which may be appropriate and is described in more detail within "Numerical Solution of Differential-Algebraic Equations".
Sometimes the form of the equations may not be reduced to the form required by a DAE solver. Furthermore so-called index reduction techniques can destroy certain structural properties, such as symplecticity, that the differential system may possess (see [HW96] and [HLW02]). An example that illustrates this can be found in the documentation for DAEs.
If the differential system is -reversible then a symmetric projection process can be advantageous (see [H00]). Symmetric projection is generally more costly than projection and has not yet been implemented in NDSolve.
Given a differential equation (3) then implies for all . This is a weaker assumption than invariance and is called a weak invariant (see [HLW02]).
For the termination criterion in the method "Projection", the option "IterationSafetyFactor" is combined with one Unit in the Last Place in the working precision used by NDSolve.
Certain numerical methods preserve quadratic invariants exactly (see for example [C87]). The implicit midpoint rule, or one-stage Gauss implicit Runge–Kutta method, is one such method.
An experiment now illustrates the importance of using all the available invariants in the projective process (see [HLW02]). Consider the solutions obtained using:
It can be observed that only the solution with projection onto both invariants gives the correct qualitative behavior—for comparison, results using an efficient symplectic solver can be found in "SymplecticPartitionedRungeKutta Method for NDSolve".
An example of constraint projection for the Lotka–Volterra system is given within "Numerical Methods for Solving the Lotka–Volterra Equations".
An example of constraint projection for Euler's equations is given within "Rigid Body Solvers".
|"Invariants"||None||specify the invariants of the differential system|
|"IterationSafetyFactor"||specify the safety factor to use in the iterative solution of the invariants|
|MaxIterations||Automatic||specify the maximum number of iterations to use in the iterative solution of the invariants|
|Method||"StiffnessSwitching"||specify the method to use for integrating the differential system numerically|