Discretization of a limit cycle

In MATCONT limit cycles are discretized using orthogonal collocation [6], the same way as it was done in AUTO [12]; the left hand side of the resulting system is the defining function $F(u,T,\alpha)$ for limit cycles.

In practice this means that the normalized time interval $[0,1]$ is divided in a number ntst (number of test intervals) of intervals with variable lengths; the (ntst+1) endpoints of these intervals form the coarse mesh. Each interval is further subdivided in a number ncol (number of collocation points) of subintervals with equal lengths. So altogether there are (ntst $\times$ ncol + 1) fine mesh points. The state variable values are collected in the points of the fine mesh. The limit cycle itself is then approximated by a continuous piecewise polynomial which is a polynomial of degree ncol in each of the ntst coarse mesh intervals.

If the number of phase variables is denoted by nphase then altogether

(ntst $\times$ ncol $\times$ nphase)

state variable values are stored, since by periodicity the values in the endpoints $0$ and $1$ must be identical. But the number of continuation variables is

((ntst $\times$ ncol + $1$ ) $\times$ nphase)+2

since the state variable values in both $0$ and $1$ are stored and the period $T$ and a free system parameter must be included. They are stored in the output vector $x$ of a limit cycle continuation in that order, after all state variable values.

The coarse mesh is adapted after each number of Adapt continuation points, cf §3.4.9. We note that ntst and ncol are input arguments of the routines that initialize the continuation of limit cycles but are not explicitly found in the output of the continuation; however, they are preserved as fields in the global structure lds.