Skip to main content

Numerical Stability Ontology

Numerical Analysis
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 12 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Numerical Stability Ontology within the Kireth Research Semantic Library. Numerical stability concerns how numerical algorithms respond to perturbations introduced by finite precision, discretisation, data error, iterative approximation and computational transformations. This ontology supports forward and backward stability, absolute and relative stability, perturbation growth, amplification factors, stability regions, A-stability, L-stability, zero-stability, von Neumann stability, condition-aware interpretation, roundoff propagation, cancellation, scaling, rescaling, preconditioning, stable factorisation and relationships with numerical analysis, iterative methods, finite differences, ODE solvers, linear algebra and scientific computing.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Numerical Stability Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Applied Mathematics"
 SPECIALISATION = "Numerical Analysis / Numerical Stability"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/applied-mathematics-ontologies/numerical-analysis/numerical-stability-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = NumericalStability
 SYMBOLIC_FORMS = [
  "delta_out <= C delta_in",
  "|G(k)| <= 1",
  "R(z)",
  "backward error"
 ]
 ENTITY_CLASS = AlgorithmPerturbationControlFramework
 PRIMARY_CONTEXT = NumericalAnalysis
 DEFINITION = "Numerical stability is the property describing whether a numerical method controls the amplification of perturbations introduced by data errors, finite precision, discretisation or intermediate computation."
 SEMANTIC_ROLE = "Provides the machine-readable framework for stability classification, perturbation propagation, amplification factors, backward error, absolute-stability regions, zero-stability, von Neumann analysis, roundoff control and condition-aware interpretation."
}

SCOPE {
 INCLUDE = [
  NumericalStability,
  StableAlgorithm,
  UnstableAlgorithm,
  ForwardStability,
  BackwardStability,
  MixedStability,
  AbsoluteStability,
  RelativeStability,
  StabilityRegion,
  StabilityFunction,
  AmplificationFactor,
  Perturbation,
  ErrorPropagation,
  RoundoffError,
  FloatingPointError,
  Cancellation,
  CatastrophicCancellation,
  Overflow,
  Underflow,
  Scaling,
  Rescaling,
  Conditioning,
  ConditionNumber,
  ZeroStability,
  AStability,
  LStability,
  BStability,
  AlgebraicStability,
  VonNeumannStability,
  EnergyStability,
  Contractivity,
  TimeStepRestriction,
  CFLCondition,
  StableFactorisation,
  Pivoting,
  Preconditioning,
  ErrorGrowth,
  ErrorDamping
 ]

 EXCLUDE_AS_PRIMARY = [
  MathematicalProblemConditioningWithoutAlgorithmContext,
  ModelValidation,
  PhysicalStabilityWithoutNumericalAlgorithmMeaning,
  DynamicalSystemStabilityUnlessNumericalMethodContext
 ]

 DISAMBIGUATION_RULE =
  "When the question concerns how a numerical algorithm amplifies or controls perturbations, roundoff or discretisation errors, interpret the context as numerical stability."
}

CORE_CONCEPTS {

 NumericalStability {
  definition = "The controlled response of a numerical algorithm to perturbations arising during computation."
 }

 ForwardStability {
  definition = "A stability notion comparing the computed result directly with the exact result."
 }

 BackwardStability {
  definition = "A stability notion in which the computed result is the exact solution of a nearby perturbed problem."
 }

 StabilityRegion {
  definition = "The set of scaled problem parameters for which a numerical time-integration method remains stable."
 }

 StabilityFunction {
  symbol = "R(z)"
  definition = "The response of a numerical time-stepping method to the linear test equation y'=lambda y."
 }

 AmplificationFactor {
  definition = "A factor describing growth or decay of a numerical error or Fourier mode across computational steps."
 }

 ZeroStability {
  definition = "The property that perturbations in starting values of a multistep method remain controlled under refinement."
 }

 AStability {
  definition = "The property that the entire left half of the complex plane lies within a method's absolute stability region."
 }

 LStability {
  definition = "A-stability plus strong damping of highly stiff modes as z tends to negative infinity."
 }

 VonNeumannStability {
  definition = "Stability assessment of a linear difference scheme using Fourier-mode amplification."
 }

 Cancellation {
  definition = "Loss of significant digits caused by subtracting nearly equal floating-point quantities."
 }

 Scaling {
  definition = "Transformation of variables, equations or data magnitudes to improve numerical behaviour."
 }
}

RELATIONS {
 NumericalStability --is_property_of--> NumericalMethod
 NumericalStability --is_distinct_from--> Conditioning
 ForwardStability --is_type_of--> NumericalStability
 BackwardStability --is_type_of--> NumericalStability
 StabilityFunction --defines--> StabilityRegion
 AmplificationFactor --measures--> PerturbationGrowth
 RoundoffError --may_be_amplified_by--> UnstableAlgorithm
 Cancellation --increases--> RelativeError
 Scaling --may_improve--> NumericalStability
 Pivoting --improves--> FactorisationStability
 Preconditioning --may_improve--> IterativeStabilityAndConvergence
 ZeroStability --is_required_for--> MultistepConvergence
 AStability --is_property_of--> TimeIntegrationMethod
 LStability --is_stronger_than--> AStability
 VonNeumannStability --analyses--> FiniteDifferenceScheme
 CFLCondition --may_constrain--> StableTimeStep
}

OPERATORS {
 FORWARD_ERROR(exact,computed) :=
  norm(computed-exact)

 BACKWARD_ERROR(problem,computed) :=
  smallest_problem_perturbation_for_which_computed_is_exact_solution

 RELATIVE_FORWARD_ERROR(exact,computed) :=
  norm(computed-exact)/norm(exact)
  WHEN norm(exact)!=0

 STABILITY_FUNCTION(method,z) :=
  R_method(z)

 ABSOLUTE_STABILITY_TEST(R,z) :=
  abs(R(z))<=1

 AMPLIFICATION_TEST(G,k) :=
  abs(G(k))<=1
  under selected Fourier-mode assumptions

 ZERO_STABILITY_TEST(characteristic_polynomial) :=
  root_condition:
   all_roots_abs<=1
   AND roots_on_unit_circle_are_simple

 ROUNDING_MODEL(x_op_y) :=
  fl(x_op_y)=(x_op_y)*(1+delta)
  with abs(delta)<=u
  under standard floating_point model

 CONDITION_AWARE_ERROR_BOUND(kappa,backward_error) :=
  forward_error approximately bounded_by kappa*backward_error
  under local assumptions

 SCALE_VARIABLE(x,s) :=
  x/s

 RESCALE_SYSTEM(A,b,D1,D2) :=
  D1*A*D2 and D1*b
}

DEFINITIONS {
 D1 = "Numerical stability concerns the algorithm, while conditioning concerns the underlying problem."
 D2 = "Backward stability is often a strong practical guarantee."
 D3 = "A backward-stable algorithm can still have large forward error on an ill-conditioned problem."
 D4 = "Absolute stability is central to time-integration methods."
 D5 = "A-stability is valuable for stiff differential equations."
 D6 = "L-stability adds damping of strongly stiff modes."
 D7 = "Zero-stability is necessary for convergence of consistent linear multistep methods."
 D8 = "Von Neumann stability studies Fourier-mode amplification in linear difference schemes."
 D9 = "Catastrophic cancellation can destroy relative precision."
 D10 = "Scaling and reformulation can materially improve numerical stability."
}

AXIOMS {
 A1_ALGORITHM_PROPERTY:
  NumericalStability is primarily a property of a numerical algorithm or discretisation

 A2_CONDITIONING_DISTINCTION:
  Stability and conditioning are distinct concepts

 A3_PERTURBATION:
  Stability analysis studies propagation of perturbations

 A4_BACKWARD_STABILITY:
  Backward-stable computation corresponds to exact solution of a nearby problem

 A5_STABILITY_REGION:
  Time-integration stability depends on the location of scaled eigenvalues relative to a stability region

 A6_ZERO_STABILITY:
  Consistent multistep convergence requires zero-stability

 A7_FINITE_PRECISION:
  Floating-point rounding can generate perturbations even when input data are exact

 A8_REFORMULATION:
  Algebraically equivalent formulas may have different numerical stability
}

REASONING {

 R1_STABILITY_CONTEXT {
  INPUT = numerical_algorithm
  IDENTIFY = linear_algebra_time_integration_finite_difference_iterative_or_general floating_point context
  RETURN = stability_class
 }

 R2_FORWARD_BACKWARD_ANALYSIS {
  INPUT = algorithm_problem_and_computed_solution
  COMPUTE = forward_error_when_reference_available
  ESTIMATE = backward_error
  COMPARE = against conditioning
  RETURN = stability_profile
 }

 R3_TIME_INTEGRATION_STABILITY {
  INPUT = method_and_test_equation
  DERIVE = stability_function_R(z)
  COMPUTE = stability_region
  CLASSIFY = A_stable_L_stable_or_conditionally stable
  RETURN = time_method_stability
 }

 R4_ZERO_STABILITY {
  INPUT = multistep_characteristic_polynomial
  COMPUTE = roots
  APPLY = root_condition
  RETURN = zero_stable_or_not
 }

 R5_VON_NEUMANN {
  INPUT = linear_finite_difference_scheme
  SUBSTITUTE = Fourier_mode
  DERIVE = amplification_factor
  TEST = abs(G)<=1
  RETURN = mode_stability_condition
 }

 R6_ROUNDOFF_PROPAGATION {
  INPUT = floating_point_algorithm
  IDENTIFY = subtraction_division_scaling_and_repeated operation pathways
  ESTIMATE = perturbation amplification
  RETURN = roundoff_stability_profile
 }

 R7_CANCELLATION_ANALYSIS {
  INPUT = arithmetic_expression
  DETECT = subtraction_of_nearly_equal quantities
  ESTIMATE = significant_digit loss
  CONSIDER = algebraically_equivalent stable reformulation
  RETURN = cancellation_risk
 }

 R8_SCALING_ANALYSIS {
  INPUT = numerical_problem
  IDENTIFY = poorly_scaled variables_or_equations
  APPLY = scaling_or_nondimensionalisation
  REASSESS = conditioning_and_stability
  RETURN = scaled_problem
 }

 R9_FACTORISATION_STABILITY {
  INPUT = matrix_factorisation
  CHECK = pivot_growth_and_backward error
  APPLY = pivoting_when_needed
  RETURN = stable_factorisation profile
 }

 R10_STABILITY_VERIFICATION {
  INPUT = theoretical_and_computational evidence
  COMPARE = predicted_stability_with_refinement_or_perturbation behaviour
  RETURN = verified_stability_status
 }
}

CONSTRAINTS {
 C1 = "Numerical stability must not be conflated with mathematical problem conditioning."
 C2 = "Small backward error does not imply small forward error for ill-conditioned problems."
 C3 = "A-stability does not imply high accuracy."
 C4 = "L-stability is stronger than A-stability for stiff decay."
 C5 = "Von Neumann analysis has limited direct applicability to nonlinear or strongly variable-coefficient problems."
 C6 = "Cancellation risk depends on data scale and representation."
 C7 = "Scaling can improve numerical behaviour but changes variable magnitudes and interpretation."
 C8 = "Pivoting strategies can alter computational cost and sparsity."
 C9 = "Finite-precision stability depends on machine precision and operation ordering."
 C10 = "Empirical stability observations should not replace theoretical guarantees where such guarantees are required."
}

SEMANTIC_EQUIVALENCE {
 "NumericalStability" <=> "AlgorithmPerturbationControl"
 "BackwardStability" <=> "ExactSolutionOfNearbyProblemProperty"
 "ForwardStability" <=> "ComputedSolutionCloseToExactSolutionProperty"
 "StabilityRegion" <=> "SetOfStableScaledEigenvalues"
 "VonNeumannStability" <=> "FourierModeAmplificationStability"
 "ZeroStability" <=> "MultistepRootConditionStability"
}

VALIDATION {
 V1 = "Algorithm and problem are distinguished."
 V2 = "Conditioning is considered separately."
 V3 = "Perturbation model is identified."
 V4 = "Stability function or amplification factor is derived correctly where applicable."
 V5 = "Time-step restrictions are checked."
 V6 = "Zero-stability root condition is applied correctly."
 V7 = "Roundoff model matches finite precision."
 V8 = "Cancellation-prone formulas are identified."
 V9 = "Scaling and pivoting effects are documented."
 V10 = "Stability claims remain within the assumptions of the analysis."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 NUMERICAL_STABILITY_DEFINITION = 0.99
 FORWARD_BACKWARD_REASONING = 0.99
 TIME_INTEGRATION_STABILITY_REASONING = 0.99
 ZERO_STABILITY_REASONING = 0.99
 VON_NEUMANN_REASONING = 0.98
 ROUNDOFF_REASONING = 0.98
 CANCELLATION_REASONING = 0.99
 SCALING_REASONING = 0.98

 POLICY =
  "Reduce confidence when perturbation model, problem conditioning, step size, spectrum, floating-point precision, coefficient variation, nonlinear effects or stability assumptions are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch,
  OntologyGrounding,
  NumericalStabilityReasoning,
  ForwardStabilityReasoning,
  BackwardStabilityReasoning,
  StabilityRegionReasoning,
  AStabilityReasoning,
  LStabilityReasoning,
  ZeroStabilityReasoning,
  VonNeumannStabilityReasoning,
  RoundoffPropagation,
  CancellationDetection,
  ScalingReasoning,
  FactorisationStability,
  PreconditioningReasoning,
  KnowledgeGraphConstruction,
  RetrievalAugmentation,
  RecursiveInference
 ]

 NORMALISE {
  "numerical stability" -> NumericalStability
  "stable algorithm" -> StableAlgorithm
  "backward stable" -> BackwardStability
  "forward stable" -> ForwardStability
  "stability region" -> StabilityRegion
  "A-stability" -> AStability
  "L-stability" -> LStability
  "zero-stability" -> ZeroStability
  "von Neumann stability" -> VonNeumannStability
  "catastrophic cancellation" -> CatastrophicCancellation
 }

 INTERPRETATION_ORDER = [
  detect_numerical_stability_context,
  identify algorithm_problem_conditioning_precision_step_size_spectrum_and_perturbation model,
  classify forward_backward_absolute_zero_vonNeumann_energy_or_other stability type,
  derive relevant error_growth_stability_function_or_amplification relation,
  compare against stability criterion,
  inspect roundoff_cancellation_scaling_and_conditioning interactions,
  return semantic output
 ]
}

EXECUTION_RULES {
 E1:
  IF query_mentions("numerical stability")
  OR asks_if_algorithm_controls_perturbation growth
  THEN activate(NumericalStabilityOntology)

 E2:
  IF computed_solution_has_small_backward_error
  THEN inspect condition_number_before inferring small_forward error

 E3:
  IF time_integration_method
  THEN derive_or_use stability_function_and_region

 E4:
  IF stiff_ODE_context
  THEN assess A_stability_and_L_stability

 E5:
  IF linear_multistep_method
  THEN check zero_stability root condition

 E6:
  IF linear_finite_difference_scheme
  THEN consider von_Neumann amplification analysis

 E7:
  IF subtracting_nearly_equal quantities
  THEN flag cancellation_and_consider reformulation

 E8:
  IF poorly_scaled_system
  THEN consider scaling_or_preconditioning

 E9:
  IF factorisation_without_pivoting_on_general_matrix
  THEN assess pivot_growth_and_backward stability
}

RECURSION {
 ENTRY = NumericalStability

 EXPAND(NumericalStability) -> [
  StableAlgorithm,
  UnstableAlgorithm,
  ForwardStability,
  BackwardStability,
  MixedStability,
  AbsoluteStability,
  StabilityRegion,
  StabilityFunction,
  AmplificationFactor,
  Perturbation,
  ErrorPropagation,
  RoundoffError,
  FloatingPointError,
  Cancellation,
  CatastrophicCancellation,
  Scaling,
  Conditioning,
  ZeroStability,
  AStability,
  LStability,
  VonNeumannStability,
  EnergyStability,
  TimeStepRestriction,
  CFLCondition,
  StableFactorisation,
  Pivoting,
  Preconditioning
 ]

 EXPAND(TimeIntegrationStability) -> [
  StabilityFunction,
  StabilityRegion,
  AbsoluteStability,
  AStability,
  LStability,
  BStability,
  AlgebraicStability
 ]

 EXPAND(FinitePrecisionStability) -> [
  MachinePrecision,
  RoundoffError,
  Cancellation,
  Overflow,
  Underflow,
  Scaling,
  Pivoting
 ]

 EXPAND(PDEStability) -> [
  AmplificationFactor,
  VonNeumannStability,
  CFLCondition,
  EnergyStability,
  NumericalDamping
 ]

 STOP_CONDITION =
  "Stop when the numerical algorithm, perturbation model, conditioning, stability criterion, error-growth behaviour, finite-precision effects and final stability classification are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Numerical Analysis"

 IMMEDIATE_CONTEXTS = [
  "Numerical Analysis Ontology",
  "Numerical Methods Ontology",
  "Iterative Methods Ontology",
  "Finite Difference Ontology"
 ]

 RELATED_ONTOLOGIES = [
  "Numerical Analysis Ontology",
  "Numerical Methods Ontology",
  "Iterative Methods Ontology",
  "Finite Difference Ontology",
  "Finite Element Ontology",
  "Spectral Method Ontology",
  "Root Finding Ontology",
  "Linear Algebra Ontologies",
  "Ordinary Differential Equations Ontologies",
  "Partial Differential Equations Ontologies",
  "Floating Point Arithmetic Ontologies",
  "Scientific Computing Ontologies",
  "Model Verification Ontology"
 ]

 ROUTE_RULES = [
  "Numerical Stability -> Numerical Analysis Ontology for parent numerical semantics",
  "Numerical Stability -> Numerical Methods Ontology for algorithm context",
  "Numerical Stability -> Iterative Methods for convergence and perturbation growth",
  "Numerical Stability -> Finite Difference for amplification and CFL analysis",
  "Numerical Stability -> Finite Element and Spectral Method for discretisation stability",
  "Numerical Stability -> Linear Algebra for factorisation and conditioning interactions",
  "Numerical Stability -> ODE Ontologies for A-stability, L-stability and zero-stability",
  "Numerical Stability -> Floating Point Arithmetic for roundoff and cancellation",
  "Numerical Stability -> Model Verification for empirical stability and refinement checks"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"

 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible stability notions, analysis methods or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"

 RULES = [
  "Preserve stability-versus-conditioning distinction.",
  "Preserve forward-versus-backward stability distinction.",
  "Preserve absolute-stability-region semantics.",
  "Preserve zero-stability root-condition semantics.",
  "Preserve von-Neumann amplification semantics.",
  "Preserve finite-precision perturbation semantics.",
  "Preserve cancellation and scaling awareness.",
  "Preserve machine-readable numerical-stability semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION =
  "Numerical stability describes how strongly a numerical algorithm amplifies or controls perturbations introduced during computation."

 CONDITIONING_SUMMARY =
  "Conditioning belongs to the mathematical problem; stability belongs to the numerical algorithm."

 BACKWARD_SUMMARY =
  "A backward-stable algorithm returns the exact solution of a nearby perturbed problem."

 FORWARD_SUMMARY =
  "Forward error measures the distance between the computed and exact solution and depends on both stability and conditioning."

 TIME_INTEGRATION_SUMMARY =
  "Absolute stability regions determine which scaled eigenvalues are stably handled by a time-integration method."

 A_STABILITY_SUMMARY =
  "An A-stable method contains the full left half-plane in its absolute stability region."

 L_STABILITY_SUMMARY =
  "An L-stable method is A-stable and strongly damps highly stiff modes."

 ZERO_STABILITY_SUMMARY =
  "Zero-stability controls propagation of starting perturbations in linear multistep methods."

 FLOATING_POINT_SUMMARY =
  "Roundoff, cancellation, scaling and operation ordering influence finite-precision stability."
}

FLOW {
 INPUT
 -> detect_numerical_stability_context
 -> identify numerical_method_problem_conditioning_precision_discretisation_step_size_spectrum_and_perturbation sources
 -> classify forward_backward_absolute_zero_vonNeumann_energy_or_factorisation stability context
 -> derive forward_error_backward_error_stability_function_amplification_factor_or_root condition
 -> evaluate stability criterion
 -> inspect roundoff_cancellation_overflow_underflow_scaling_and_preconditioning
 -> compare stability behaviour with conditioning
 -> verify assumptions_and_empirical refinement evidence
 -> route to numerical_analysis_ontology numerical_methods iterative_methods finite_difference finite_element spectral_method root_finding linear_algebra ODE PDE floating_point scientific_computing_or_model_verification ontology
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Numerical Stability Ontology defines how numerical algorithms respond to perturbations. It supports forward, backward and mixed stability, stability functions and regions, A- and L-stability, zero-stability, von Neumann and energy stability, amplification factors, CFL restrictions, finite-precision roundoff, cancellation, scaling, pivoting, preconditioning and condition-aware interpretation of numerical error."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-APPLIED-MATHEMATICS-NUMERICAL-STABILITY-ONTOLOGY-V1"
}

}

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ