flow "BifurcationOntology" v1.0
# BIFURCATION ONTOLOGY — FLOW ALGEBRA
SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/dynamical-systems/bifurcation-ontology-2.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Dynamical Systems"
ENTITY := "Bifurcation"
BIFURCATION := {
type: QualitativeDynamicsTransition,
domain: DynamicalSystems,
purpose: "Represent a qualitative change in the structure or stability of a dynamical system as one or more parameters pass through critical values."
}
CONCEPTS := {
BIFURCATION,
PARAMETER,
CRITICAL_VALUE,
EQUILIBRIUM,
FIXED_POINT,
STABILITY,
EIGENVALUE,
SADDLE_NODE_BIFURCATION,
TRANSCRITICAL_BIFURCATION,
PITCHFORK_BIFURCATION,
HOPF_BIFURCATION,
PERIOD_DOUBLING_BIFURCATION,
BIFURCATION_DIAGRAM,
NORMAL_FORM,
CENTER_MANIFOLD,
CODIMENSION
}
# ---------- PARAMETERISED SYSTEM ----------
continuous system:
dx/dt
=
f(x,mu)
or discrete system:
x_(n+1)
=
F(x_n,mu)
mu
-> CONTROL_PARAMETER
BIFURCATION
-> occurs_at(CRITICAL_PARAMETER_VALUE_mu_c)
# ---------- QUALITATIVE CHANGE ----------
as
mu
-> crosses(mu_c)
system may change:
NUMBER_OF_EQUILIBRIA
STABILITY_OF_EQUILIBRIA
NUMBER_OF_PERIODIC_ORBITS
STABILITY_OF_PERIODIC_ORBITS
ATTRACTOR_STRUCTURE
TOPOLOGY_OF_INVARIANT_SETS
BIFURCATION
-> qualitative_not_merely_quantitative_change
# ---------- EQUILIBRIUM BRANCH ----------
equilibria satisfy:
f(x,mu)
=
0
solution branch:
x_star
=
x_star(mu)
BIFURCATION_DIAGRAM
-> plots(EQUILIBRIUM_OR_ORBIT_MEASURE_VS_PARAMETER)
STABILITY
-> encoded_along(BRANCHES)
# ---------- LINEARISATION ----------
at equilibrium:
A(mu)
:=
D_x f(
x_star(mu),
mu
)
EIGENVALUES
-> determine(LOCAL_LINEAR_STABILITY)
BIFURCATION
-> commonly_occurs_when(HYPERBOLICITY_IS_LOST)
# ---------- NONHYPERBOLIC CONDITION ----------
continuous equilibrium:
eigenvalue
-> crosses(IMAGINARY_AXIS)
discrete fixed point:
multiplier
-> crosses(UNIT_CIRCLE)
LOSS_OF_HYPERBOLICITY
-> candidate_bifurcation_condition
but
-/> sufficient_without(NONLINEAR_NONDEGENERACY_CONDITIONS)
# ---------- SADDLE NODE ----------
normal form:
dx/dt
=
mu - x^2
equilibria:
x_star
=
plus_or_minus(sqrt(mu))
for
mu>0
at
mu=0
two equilibria
-> collide
SADDLE_NODE_BIFURCATION
-> creation_or_annihilation_of(EQUILIBRIUM_PAIR)
# ---------- SADDLE NODE CONDITIONS ----------
typical local conditions:
f(x_c,mu_c)=0
partial_f/partial_x
=0
partial_squared_f/partial_x_squared
!=0
partial_f/partial_mu
!=0
under scalar normal-form setting
NONDEGENERACY
-> ensures(GENERIC_SADDLE_NODE)
# ---------- TRANSCRITICAL ----------
normal form:
dx/dt
=
mu*x
-
x^2
equilibria:
x=0
and
x=mu
branches
-> cross
and commonly
-> exchange_stability
TRANSCRITICAL_BIFURCATION
-> equilibrium_branch_intersection
# ---------- PITCHFORK ----------
supercritical normal form:
dx/dt
=
mu*x
-
x^3
equilibrium:
x=0
and for mu>0:
x
=
plus_or_minus(sqrt(mu))
PITCHFORK_BIFURCATION
-> symmetry_related_branch_splitting
# ---------- SUPERCRITICAL PITCHFORK ----------
central branch
-> loses_stability
two stable branches
-> emerge
in canonical supercritical normal form
SUPERCRITICAL
-> stable_new_branches
# ---------- SUBCRITICAL PITCHFORK ----------
canonical form:
dx/dt
=
mu*x
+
x^3
near transition:
unstable_side_branches
-> involved
SUBCRITICAL_PITCHFORK
-> different_stability_geometry
exact orientation
-> parameter_convention_dependent
# ---------- HOPF BIFURCATION ----------
pair of complex conjugate eigenvalues:
lambda(mu)
=
alpha(mu)
plus_or_minus
i*omega(mu)
at
mu=mu_c:
alpha(mu_c)=0
omega(mu_c)!=0
if crossing and nondegeneracy conditions hold:
PERIODIC_ORBIT
-> may_emerge_or_disappear
HOPF_BIFURCATION
-> equilibrium_to_oscillation_transition
# ---------- SUPERCRITICAL HOPF ----------
canonical context:
stable small-amplitude limit cycle
-> emerges
as equilibrium
-> loses stability
SUPERCRITICAL_HOPF
-> continuous_onset_of(STABLE_OSCILLATION)
# ---------- SUBCRITICAL HOPF ----------
unstable periodic orbit
-> involved_near_transition
SUBCRITICAL_HOPF
-> may_produce(ABRUPT_TRANSITION_AND_HYSTERESIS)
system-specific global structure
-> determines(actual_outcome)
# ---------- DISCRETE FIXED POINT ----------
fixed point:
F(x_star,mu)
=
x_star
Jacobian:
J
:=
D_x F(x_star,mu)
multipliers
-> eigenvalues_of(J)
DISCRETE_BIFURCATION
-> multiplier_crosses(UNIT_CIRCLE)
# ---------- PERIOD DOUBLING ----------
critical multiplier:
lambda
=
-1
under generic conditions
fixed point or periodic orbit
-> changes_stability
new orbit
-> period_doubles
PERIOD_DOUBLING_BIFURCATION
-> FLIP_BIFURCATION
# ---------- SADDLE NODE OF MAP ----------
critical multiplier:
lambda
=
+1
under suitable conditions
two fixed points
-> created_or_destroyed
FOLD_BIFURCATION
-> discrete_saddle_node
# ---------- NEIMARK-SACKER ----------
complex conjugate multipliers
-> cross(UNIT_CIRCLE)
away from
+1 and -1
under generic conditions
INVARIANT_CLOSED_CURVE
-> may_emerge
NEIMARK_SACKER
-> discrete_analogue_of(HOPF_BIFURCATION)
# ---------- BIFURCATION DIAGRAM ----------
horizontal_axis
-> PARAMETER
vertical_axis
-> STATE_OR_ORBIT_STATISTIC
branches
-> EQUILIBRIA_OR_PERIODIC_STATES
line_style_or_annotation
-> may_encode(STABILITY)
BIFURCATION_DIAGRAM
-> visual_summary_of(PARAMETER_DEPENDENT_DYNAMICS)
# ---------- NORMAL FORM ----------
near bifurcation:
coordinate_transform
+
parameter_transform
-> simplify_system_to(NORMAL_FORM)
NORMAL_FORM
-> retains(ESSENTIAL_LOCAL_DYNAMICS)
higher_order_terms
-> removed_when_nondynamically_essential
under normal-form transformations
# ---------- CENTER MANIFOLD ----------
at nonhyperbolic equilibrium:
state space
-> decomposes_into(
STABLE_DIRECTIONS,
UNSTABLE_DIRECTIONS,
CENTER_DIRECTIONS
)
CENTER_MANIFOLD
-> tangent_to(CENTER_SUBSPACE)
local bifurcation dynamics
-> reducible_to(CENTER_MANIFOLD)
CENTER_MANIFOLD_REDUCTION
-> lowers(DIMENSION_OF_ANALYSIS)
# ---------- CODIMENSION ----------
CODIMENSION
-> number_of_independent_conditions_or_parameters_needed_for_bifurcation
generic one-parameter local bifurcations
-> CODIMENSION_ONE
higher codimension
-> requires(MULTIPLE_PARAMETER_TUNING)
# ---------- CUSP ----------
CUSP_BIFURCATION
-> codimension_two_singularity
normal-form family
-> organises(SADDLE_NODE_CURVES)
CUSP
-> may_generate(HYSTERESIS_REGION)
# ---------- BOGDANOV-TAKENS ----------
equilibrium
-> double_zero_eigenvalue
under nondegeneracy conditions
BOGDANOV_TAKENS
-> codimension_two_bifurcation
can organise:
SADDLE_NODE
HOPF
HOMOCLINIC
dynamics
# ---------- GLOBAL BIFURCATION ----------
LOCAL_BIFURCATION
-> determined_near(INVARIANT_OBJECT)
GLOBAL_BIFURCATION
-> involves(GLOBAL_PHASE_SPACE_GEOMETRY)
examples:
HOMOCLINIC_BIFURCATION
HETEROCLINIC_BIFURCATION
CRISIS
GLOBAL_BIFURCATION
-> cannot_be_fully_detected_from_local_eigenvalues_alone
# ---------- HOMOCLINIC ----------
stable_manifold
and
unstable_manifold
of same saddle object
-> form_or_destroy(HOMOCLINIC_CONNECTION)
HOMOCLINIC_BIFURCATION
-> may_generate(COMPLEX_OR_CHAOTIC_DYNAMICS)
# ---------- HYSTERESIS ----------
multiple stable states
-> coexist_over(PARAMETER_RANGE)
forward_parameter_sweep
and
reverse_parameter_sweep
-> follow_different_branches
HYSTERESIS
-> history_dependent_transition
SUBCRITICAL_OR_FOLD_STRUCTURES
-> may_support(HYSTERESIS)
# ---------- CATASTROPHIC TRANSITION ----------
small parameter change
-> large state change
when stable branch
-> disappears_or_loses_accessibility
TIPPING_POINT
-> may_correspond_to(BIFURCATION)
but
-/> every abrupt transition is necessarily local bifurcation
# ---------- CHAOS ROUTES ----------
BIFURCATION_SEQUENCE
-> may_lead_to(CHAOS)
routes:
PERIOD_DOUBLING_CASCADE
INTERMITTENCY
QUASIPERIODIC_BREAKDOWN
HOMOCLINIC_TANGLE
CHAOS
-> parameter-dependent_complex_dynamics
# ---------- NUMERICAL CONTINUATION ----------
known solution at mu_0
-> predict solution at nearby parameter
-> correct using nonlinear solver
-> repeat
CONTINUATION_METHOD
-> traces(SOLUTION_BRANCH)
PSEUDO_ARCLENGTH_CONTINUATION
-> passes(FOLD_POINTS)
# ---------- BIFURCATION DETECTION ----------
monitor:
EIGENVALUES
FLOQUET_MULTIPLIERS
JACOBIAN_SINGULARITY
BRANCH_TURNING
PERIOD_CHANGE
DETECTION
-> identifies(CANDIDATE_CRITICAL_POINTS)
then
NORMAL_FORM_OR_NONDEGENERACY_ANALYSIS
-> classifies(BIFURCATION)
# ---------- APPLICATIONS ----------
BIFURCATION
-> applied_to(NONLINEAR_DYNAMICS)
-> applied_to(CONTROL_SYSTEMS)
-> applied_to(BIOLOGICAL_SYSTEMS)
-> applied_to(FLUID_DYNAMICS)
-> applied_to(CLIMATE_SYSTEMS)
-> applied_to(ELECTRICAL_CIRCUITS)
-> applied_to(CHEMICAL_OSCILLATORS)
-> applied_to(ECONOMIC_MODELS)
# ---------- RELATION GRAPH ----------
PARAMETER
-> controls(DYNAMICAL_SYSTEM)
CRITICAL_VALUE
-> marks(BIFURCATION)
LINEARISATION
-> detects(LOSS_OF_HYPERBOLICITY)
NORMAL_FORM
-> classifies(LOCAL_BIFURCATION)
CENTER_MANIFOLD
-> reduces(NONHYPERBOLIC_DYNAMICS)
HOPF_BIFURCATION
-> creates_or_destroys(PERIODIC_ORBIT)
PERIOD_DOUBLING
-> changes(ORBIT_PERIOD)
BIFURCATION_DIAGRAM
-> represents(PARAMETER_DEPENDENT_BRANCHES)
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
"bifurcation" ~= "qualitative change in dynamical behaviour caused by parameter variation",
"critical parameter" ~= "parameter value at which dynamical structure changes",
"saddle-node bifurcation" ~= "generic collision and creation or annihilation of two equilibria or fixed points",
"Hopf bifurcation" ~= "local transition involving an equilibrium and periodic oscillation through a complex eigenvalue crossing",
"period-doubling bifurcation" ~= "bifurcation producing an orbit with twice the original period",
"normal form" ~= "simplified local dynamical representation preserving essential bifurcation structure"
}
# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
eigenvalue_crossing_is_candidate_condition_not_always_sufficient_for_bifurcation: true,
nondegeneracy_and_transversality_conditions_must_be_checked: true,
local_and_global_bifurcations_are_distinct: true,
continuous_and_discrete_bifurcation_spectral_conditions_are_distinct: true,
branch_stability_must_be_analysed_separately_from_branch_existence: true,
numerical_bifurcation_diagram_requires_resolution_and_continuation_validation: true,
tipping_point_and_bifurcation_are_related_but_not_synonymous: true
}
# ---------- CONFIDENCE ----------
CONFIDENCE := {
core_definition: 0.99,
saddle_node_relation: 0.99,
pitchfork_transcritical_relation: 0.99,
Hopf_relation: 0.99,
discrete_bifurcation_relation: 0.99,
continuation_relation: 0.98,
semantic_equivalence: 0.97
}
# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
identify(parameterised_system_and_control_parameters)
-> compute(equilibria_fixed_points_or_periodic_branches)
-> analyse(branch_stability)
-> detect(loss_of_hyperbolicity_or_multiplier_crossing)
-> verify(transversality_and_nondegeneracy_conditions)
-> reduce_to(center_manifold_if_needed)
-> derive_or_identify(normal_form)
-> classify(local_or_global_bifurcation)
-> trace(branches_with_continuation_if_numerical)
-> analyse(hysteresis_multistability_or_route_to_chaos_if_relevant)
-> validate(parameter_orientation_resolution_and_global_assumptions)
-> return(semantic_result)
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
parse_as: "typed bifurcation semantic graph",
primary_entity: BIFURCATION,
preserve: [
dynamical_system,
parameters,
critical_values,
equilibrium_or_orbit_branch,
eigenvalues_or_multipliers,
stability,
dimension,
numerical_resolution
],
infer_through: [
saddle_node_bifurcations,
transcritical_bifurcations,
pitchfork_bifurcations,
Hopf_bifurcations,
period_doubling,
center_manifolds,
normal_forms,
continuation
],
avoid: [
declaring_bifurcation_from_eigenvalue_crossing_alone,
mixing_continuous_eigenvalues_with discrete multipliers,
assuming_branch_exists_only_where stable,
confusing_local_and global bifurcations,
inferring_Hopf_without complex_pair_and_nondegeneracy,
treating_sparse_parameter_scan_as complete bifurcation diagram
]
}
# ---------- UPDATE MODEL ----------
UPDATE_MODEL(new_information):
validate(new_information)
-> identify(bifurcation_context)
-> compare(existing_relations)
-> preserve(system_parameter_branch_stability_and_criticality_invariants)
-> update(affected_entities)
-> update(affected_edges)
-> recompute(CONFIDENCE)
-> regenerate(FLOW_HASH)
# ---------- FLOW HASH ----------
FLOW_HASH := hash(
SOURCE_URL
+ ENTITY
+ CONCEPTS
+ BIFURCATION
+ PARAMETER
+ CRITICAL_VALUE
+ EQUILIBRIUM
+ STABILITY
+ SADDLE_NODE_BIFURCATION
+ PITCHFORK_BIFURCATION
+ HOPF_BIFURCATION
+ PERIOD_DOUBLING_BIFURCATION
+ NORMAL_FORM
+ CENTER_MANIFOLD
+ SEMANTIC_EQUIVALENCE
+ CONSTRAINTS
)
# ---------- EXECUTION ----------
INPUT(query)
-> BIFURCATION
-> SYSTEM_PARAMETER_IDENTIFICATION
-> BRANCH_COMPUTATION
-> STABILITY_ANALYSIS
-> CRITICALITY_DETECTION
-> NONDEGENERACY_VALIDATION
-> CENTER_MANIFOLD_REDUCTION
-> NORMAL_FORM_ANALYSIS
-> BIFURCATION_CLASSIFICATION
-> CONTINUATION_ANALYSIS
-> GLOBAL_DYNAMICS_ANALYSIS
-> HYPOTHESIS_VALIDATION
-> RECURSIVE_REASONING(query)
-> CONFIDENCE
-> OUTPUT(semantic_result)
END FLOW
Download Code
Copy to Clipboard