Monday, April 7, 2008

Stiff ODEs

Methods for solving differential equations may be divided into two classes namely explicit and implicit methods. Explicit methods calculate the state of a system at a later time from the state of the system at the current time, while an implicit method finds it by solving an equation involving both the current state of the system and the later one. Implicit methods require an extra computation and they can be much harder to implement. More information is available here. Implicit methods are used because many problems arising in real life are stiff for which the use of an explicit method requires impractically small time steps Δt to keep the error in the result bounded.

According to wikipedia, a stiff equation is a differential equation for which certain numerical methods for solving the equation are numerically unstable unless the step size is taken to be extremely small. The main idea is that the equation includes some terms that can lead to rapid variation in the solution.
We have seen that for solving ODE numerically the equation must be stable. This for example implies that the Jacobian of the RHS of the equation \dot{x} = f(x,t) must be a stable matrix. But with the Jacobian can be associated the Lipschitz constant, related with the norm of the Jacobian. Roughly a stiff problem is the combination of stability, with big eigenvalues (negative real part) of the Jacobian , implying a big norm, hence a big Lipschitz constant. This imply that the process described by the ODE contains components operating on different time scale.

For stiff problems, certain implicit methods give better accuracy than the explicit ones. For stiff problems, it is better to use Jacobian for solving the differential equations.

No comments:

 
pre { margin: 5px 20px; border: 1px dashed #666; padding: 5px; background: #f8f8f8; white-space: pre-wrap; /* css-3 */ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ }