mappy_ds.root.find_local_bf#

mappy_ds.root.find_local_bf(diffeo, y0, params, param_key, theta, *, period=1, **root_options)#

Find a local bifurcation point of a periodic point.

A periodic point \(y\) of period \(n\) undergoes a local bifurcation when one of its characteristic multipliers crosses the unit circle at \(\mu = e^{i\theta}\). The unknowns \((y, p, \theta)\), with \(p\) = params[param_key], are solved from

\[T^n(y) - y = 0, \qquad \det(DT^n(y) - e^{i\theta} I) = 0,\]

the determinant being split into its real and imaginary parts. The initial theta selects the kind of bifurcation:

  • theta = 0 (\(\mu = 1\)): tangent (saddle-node) bifurcation;

  • theta = pi (\(\mu = -1\)): period-doubling bifurcation;

  • any other value: Neimark–Sacker bifurcation, a complex-conjugate pair of multipliers \(e^{\pm i\theta}\) on the unit circle.

The Jacobian of this system is supplied analytically from the map’s Jacobian, Hessian, parameter derivative (MapResult.jac_p) and mixed derivative (MapResult.hes_p).

Parameters:
diffeoMap

The map.

y0array_like

Initial guess of the periodic point.

paramsmapping

Parameters; params[param_key] is the initial guess of the bifurcation value. Not modified.

param_keystr

Key of the bifurcation parameter.

thetafloat

Initial guess of the argument of the critical multiplier.

periodint, optional

Period of the cycle, by default 1.

**root_options

Forwarded to scipy.optimize.root().

Returns:
LocalBfResult

See also

trace_local_bf

Continue a local bifurcation along a second parameter.

find_cycle