Numerics Lab

As you become more familiar with **DAE Solver**, you will start wondering how your problems are presented to the numerical algorithms in charge of solving them, and how those algorithms work. This page addresses some of that.

**Problem Stack**

When you ask for a new document, you are shown a user interface where expressions representing your equations and initial conditions can be written in any order. In solving a problem, those expressions are stored in a stack by following a strict set of rules that you have no need to know as long as your problems remain simple.

When your problems become more complex, however, you might choose to switch to the original user interface, which gives you full access to the problem stack. To understand the structure of this stack, we will use one of the examples that you can execute by choosing the **Example Scripts...** item from the **File** menu. First in the stack are quantities that remain constant while the problem is being solved. These are known as **Parameters**:

They are followed by your problem unknowns, also known as **States**:

Next are intermediate variables. Sometimes you want to make use of these **Variables** just to keep your equations short:

**Derivatives** of the unknowns are also included in the stack, even in problems where these do not matter much, in systems of algebraic equations for example. They do matter in this problem since the equations are all differential:

Last in the stack are the **Equations** you want solved:

In the alternate user interface the entire problem can look like this, with the components listed earlier presented in any order you choose:

**Differential Algebraic Systems**

A system of **n** equations with **n** initial conditions can be represented by:

**f**(t,**y**(t),**y'**(t)) = **0** with **y**(t_{o}) = **yo**

In this notation, **f**, **y**, **y'**, and **yo** are all vectors containing **n** elements each. **DAE Solver** relies on Newton's Method for the solution of this type of system. It is important to formulate the equations in a way that will not make the corresponding Jacobian matrix singular, which happens for example when one one of its rows is the null vector or is a linear combination of other rows.

Numerical methods for the solution of this system come in two forms: One-Step and Multistep. The following One-Step methods are currently available in **DAE Solver**:

Multistep methods are available too:

In general, implicit methods are more challenging than explicit methods and of the implicit methods, the multistep methods are the most challenging. Details on all these methods and the types of systems they solve are provided in two excellent resources:

K. Brenan, S. Campbell, and L. Petzold. Numerical Solution of Initial-Value Problems in Differential-Algebraic Equations. SIAM, Philadelphia, 2nd Edition, 1996

U. Ascher, and L. Petzold. Computer Methods for Ordinary Differential Equations and Differential-Algebraic Equations. SIAM, Philadelphia, 1st Edition, 1998

**Bifurcation and Stability Analysis**

These techniques can be applied to systems of **n** equations whose dynamic behavior is described by:

**f**(**y**,**y'**,s) = **0**

In this notation, **f**, **y**, and **y'** are all vectors containing **n** elements each. **DAE Solver** uses arclength continuation to follow branches of stationary solutions as the continuation parameter s is varied. Along the way, it identifies stable and unstable points and it searches for turning points, simple bifurcation points (where two branches intersect), and Hopf bifurcation points. When a new solver is being created, any parameter in the Problem Stack can be selected as continuation parameter.

In graphs, the usual notation is followed: stable branches are represented using continuous lines while unstable branches are represented using dotted lines. In the table of results corresponding to each solver, points are labeled as follows:

Additional details on the techniques used to perform bifurcation and stability analysis are provided in two excellent resources:

R. Seydel. Practical Bifurcation and Stability Analysis. Springer, New York, 3rd Edition, 2010

E. Doedel. Lecture Notes on Numerical Analysis of Nonlinear Equations. Concordia University. Montreal. 2010