Why Arclength Continuation?
Here is a toy problem with a typical saddle-node bifurcation
that demonstrates the need for continuation method. For each there is an (or two) equilibrium solution . Suppose we only know one such fixed point and wish to find all other equilibria. In practice, discretized differential equations for example, the actual landscape of the dynamical system is often higher dimensional and much more complex than a nice quadratic curve. We employ a basic example here to highlight the core theoretical concepts, avoiding the obfuscation of unnecessary details. The method discussed here applies to a large family of problem of the form where and .
Baby Continuation
The naive approach is to increment by small steps towards the left (or right, but the left is the more dangerous direction because it passes through the fold point ). The baby continuation algorithm proceeds as follows:
- Initialize the continuation by finding a solution with .
- Start loop.
- Increment in : .
- Solve for using Newton’s method with as the initial guess.
- Set .
- End loop.
As illustrated in the python program below, the baby continuation algorithm fails near the fold point because it can only continue horizontally to the left and search for solutions vertically (for each newton loop, the value is fixed, so we can only vary , in the vertical direction). But there is no solution to be found on the left of the fold point, which causes it to “fall off the cliff”. The newton loop diverges quickly when the supplied initial guess is far away from the true solution, or there is no solution along the specified search route.
The key issue here is that the fixed searching path in the baby continuation makes it impossible to overcome turning points. To resolve this, we implement a path-following strategy capable of negotiating sharp turns, ensuring the solver consistently tracks the bifurcation curve. In other words, this new continuation algorithm adjusts its path adaptively so that it can grab on to the bifurcation curve even near the edge of the cliff.
Pseudo-arclength Continuation
The trick is to view as a single item and, instead of continuing in only, it continues in both spatial and parameter space. The arclength continuation algorithm goes as follows:
- Initialize the continuation by finding a solution such that .
- Start loop
- Find the kernel of .
- Normalize so that .
- Increment .
- Solve for using Newton’s method with as the initial guess.
- Set .
- End loop.
Secant Continuation
Sometimes the kernel of can be cumbersome to compute. An alternative to a vector in the arclenth direction is the secant vector, given by where is the solution found in the previous continuation step. The upside is that we don’t have to go through the hassle computing a kernel; the downside is that now we need to initialize the algorithm with two known solutions (they better be near each other to produce a good secant vector that closely traces the bifurcation curve). We should also keep track of two solutions and , instead of just one in the arclength continuation, throughout the continuation.
The secant continuation goes like this:
- Initialize the continuation by finding a solution and such that .
- Start loop
- Find the secant .
- Normalize so that .
- Increment .
- Solve for using Newton’s method with as the initial guess.
- Set and then
- End loop.
The secant continuation is implemented the python notebook below. The results confirm that the algorithm traverses the turning point without divergence, capturing the other solution branch.
The key insight from the arclength/secant continuation is to continue in the direction that is tangential to the bifurcation curve. Besides solving , we added an extra condition so that the combined system is still a square system (). The vector controls the searching route and, together with this condition, ensures that the Newton’s loop always look for solution along a straight line that is orthogonal to the secant line. As a result, there is a much bigger chance of finding an intersection between the searching path and the bifurcation curve near the initial guess provided that the increment rate is sufficiently small.