Automatic switching between Natural and PALC
This is one of the continuation methods implemented in the package. It is set by the option AutoSwitch() in continuation. See also AutoSwitch for more information.
This algorithm uses a Natural continuation when the branch is "horizontal" and switches to PALC otherwise.
Example
We provide an example of use. We define a BifurcationProblem as usual and pass the continuation algorithm AutoSwitch.
using Plots
using BifurcationKit
const BK = BifurcationKit
function F(x, p)
(;α) = p
f = similar(x)
f[1] = (-2x[1]+x[2]) + α * exp(x[1])
f[2] = ( x[1]-2x[2]) + α * exp(x[2])
return f
end
sol0 = zeros(2)
par = (α = 0.0, )
prob = BifurcationProblem(F, sol0, par, (@optic _.α))┌─ Bifurcation Problem with uType Vector{Float64}
├─ Inplace: false
├─ Dimension: 2
├─ Symmetric: false
└─ Parameter: αopts = ContinuationPar(dsmax = 0.15, max_steps = 40, )
br = continuation(prob, AutoSwitch(), opts, normC = norminf) ┌─ Curve type: EquilibriumCont
├─ Number of points: 41
├─ Type of vectors: Vector{Float64}
├─ Parameter α starts at 0.0, ends at 0.0037503773892065143
├─ Algo: AutoSwitch
└─ Special points:
- # 1, bp at α ≈ +0.35676560 ∈ (+0.35676560, +0.36285736), |δp|=6e-03, [ guess], δ = ( 1, 0), step = 11
- # 2, bp at α ≈ +0.11540768 ∈ (+0.11540768, +0.15404965), |δp|=4e-02, [ guess], δ = ( 1, 0), step = 20
- # 3, endpoint at α ≈ +0.00311802, step = 41
You can plot the result as usual:
plot(br)