Skip to main content

Runge-Kutta Ontology

Differential Equation Solvers
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 14 September 2026
Audio Overview
AI INTERPRETATION NOTE
This Flow Algebra defines the Runge-Kutta Ontology within the Kireth Research Semantic Library. Runge-Kutta methods are one-step numerical integration schemes for ordinary differential equations that combine multiple stage evaluations within each step to achieve higher-order accuracy. This ontology supports explicit and implicit Runge-Kutta methods, Butcher tableaux, stage equations, embedded pairs, adaptive step-size control, stability functions, stiffly accurate variants, symplectic and collocation relationships, error estimation, finite precision and verification.

FLOW_ALGEBRA_RECORD {

METADATA {
 FLOW_NAME = "Runge-Kutta Ontology"
 FLOW_TYPE = "Mathematical Ontology"
 DOMAIN = "Mathematics"
 SUBDOMAIN = "Computational Mathematics"
 SPECIALISATION = "Differential Equation Solvers / Runge-Kutta"
 CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/differential-equation-solvers/runge-kutta-ontology.html"
 LANGUAGE = "en-GB"
 VERSION = "1.0"
 STATUS = "active"
}

IDENTITY {
 PRIMARY_ENTITY = RungeKuttaMethod
 ENTITY_CLASS = MultiStageOneStepTimeIntegrationFramework
 PRIMARY_CONTEXT = OrdinaryDifferentialEquationSolver
 DEFINITION = "A Runge-Kutta method advances an ODE solution over one time step by combining multiple intermediate stage evaluations of the differential equation."
 SYMBOLIC_FORMS = [
  "k_i=f(t_n+c_i*h, y_n+h*sum_j a_ij*k_j)",
  "y_(n+1)=y_n+h*sum_i b_i*k_i",
  "ButcherTableau=(A,b,c)",
  "R(z)=stability_function(z)"
 ]
 SEMANTIC_ROLE = "Provides machine-readable semantics for multi-stage one-step integration, explicit and implicit Runge-Kutta methods, Butcher coefficients, order conditions, embedded pairs, adaptive control, stability and verification."
}

SCOPE {
 INCLUDE = [
  RungeKuttaMethod, RungeKuttaSolver, RKMethod,
  OneStepMethod, MultiStageMethod, Stage, StageDerivative,
  ButcherTableau, ButcherMatrix, ButcherVector, StageAbscissa,
  CoefficientMatrix, WeightVector, NodeVector,
  ExplicitRungeKutta, ImplicitRungeKutta,
  DiagonallyImplicitRungeKutta, DIRK,
  SinglyDiagonallyImplicitRungeKutta, SDIRK,
  FullyImplicitRungeKutta, CollocationMethod,
  GaussLegendreRungeKutta, RadauRungeKutta,
  LobattoRungeKutta, StifflyAccurateRungeKutta,
  LStableRungeKutta, AStableRungeKutta,
  ClassicalRK4, RK4, RK3, RK2, MidpointMethod,
  HeunMethod, RalstonMethod, KuttaThirdOrder,
  EmbeddedRungeKutta, EmbeddedPair,
  RungeKuttaFehlberg, RKF45, DormandPrince,
  CashKarp, BogackiShampine, FehlbergPair,
  LocalErrorEstimate, ErrorEstimator,
  AdaptiveStepSize, StepSizeController, SafetyFactor,
  AcceptedStep, RejectedStep, DenseOutput,
  ContinuousExtension, Interpolant,
  OrderCondition, ButcherTree, RootedTree,
  ElementaryWeight, OrderOfAccuracy,
  Consistency, Convergence, Stability,
  AbsoluteStability, StabilityRegion, StabilityFunction,
  AStability, LStability, AlgebraicStability,
  SSPRungeKutta, StrongStabilityPreservingMethod,
  Monotonicity, PositivityPreservation,
  SymplecticRungeKutta, PartitionedRungeKutta,
  IMEXRungeKutta, AdditiveRungeKutta,
  StiffEquation, Stiffness, NonstiffEquation,
  Jacobian, NonlinearStageSystem, NonlinearSolver,
  NewtonMethod, LinearSolver, Preconditioner,
  StageResidual, StageConvergenceTolerance,
  FunctionEvaluationCount, JacobianEvaluationCount,
  ComputationalCost, MemoryCost,
  FloatingPointArithmetic, MachinePrecision, RoundOffError,
  LongTimeIntegration, PhaseError, DissipationError,
  Verification, ReferenceSolution, ManufacturedSolution,
  BenchmarkProblem, Reproducibility
 ]
 EXCLUDE_AS_PRIMARY = [
  EulerMethodExceptAsFirstOrderRungeKuttaSpecialCase,
  LinearMultistepMethodWithoutRungeKuttaStages,
  GeneralCollocationWithoutTimeIntegrationSemantics,
  SymbolicODESolutionWithoutNumericalTimeStepping
 ]
 DISAMBIGUATION_RULE = "When an ODE time step is advanced through multiple internal stage evaluations combined by Butcher coefficients, interpret the context as a Runge-Kutta method."
}

CORE_CONCEPTS {
 RungeKuttaMethod = "One-step method combining multiple stage evaluations."
 ButcherTableau = "Structured representation of Runge-Kutta stage coefficients A, weights b and abscissae c."
 ExplicitRungeKutta = "Runge-Kutta method with strictly lower-triangular stage matrix."
 ImplicitRungeKutta = "Runge-Kutta method whose stage equations are coupled or implicit."
 EmbeddedPair = "Two Runge-Kutta formulas sharing stages but using different weights to estimate local error."
 OrderCondition = "Algebraic condition on Butcher coefficients required to achieve a specified order."
 StabilityFunction = "Rational or polynomial function describing the method on the linear test equation."
 DenseOutput = "Continuous approximation within a completed Runge-Kutta step."
}

RELATIONS {
 RungeKuttaMethod --is_child_of--> OrdinaryDifferentialEquationSolver
 RungeKuttaMethod --is_type_of--> OneStepMethod
 RungeKuttaMethod --uses--> ButcherTableau
 ButcherTableau --contains--> ButcherMatrix
 ButcherTableau --contains--> WeightVector
 ButcherTableau --contains--> StageAbscissa
 ExplicitRungeKutta --has--> StrictlyLowerTriangularButcherMatrix
 ImplicitRungeKutta --has--> ImplicitStageEquations
 EmbeddedRungeKutta --provides--> LocalErrorEstimate
 AdaptiveStepSize --uses--> LocalErrorEstimate
 OrderCondition --determines--> OrderOfAccuracy
 StabilityFunction --determines--> AbsoluteStabilityRegion
 StiffEquation --favours--> StifflyStableRungeKutta
 DIRK --reduces--> ImplicitStageCoupling
 NonlinearStageSystem --is_solved_by--> NonlinearSolver
 NonlinearSolver --often_uses--> LinearSolver
 SymplecticRungeKutta --preserves--> GeometricStructure
 Verification --checks--> RungeKuttaSolution
}

OPERATORS {
 RK_STAGE(i) := k_i=f(t_n+c_i*h, y_n+h*sum_j a_ij*k_j)
 RK_UPDATE(y_n,h,b,k) := y_(n+1)=y_n+h*sum_i b_i*k_i
 EMBEDDED_UPDATE(y_n,h,b_hat,k) := y_hat=y_n+h*sum_i b_hat_i*k_i
 EMBEDDED_ERROR(y_high,y_low) := e=y_high-y_low
 STABILITY_FUNCTION(A,b,z) := R(z)=1+z*b^T*(I-z*A)^(-1)*1
 ADAPTIVE_STEP(h,error,tol,p) := h_new=h*safety*(tol/error)^(1/(p+1))
 STAGE_RESIDUAL(K) := nonlinear_stage_equation_mismatch(K)
}

AXIOMS {
 A1 = "Runge-Kutta methods are one-step methods whose internal stages approximate the vector field within a step."
 A2 = "Explicit Runge-Kutta methods compute stages sequentially without nonlinear stage solves."
 A3 = "Implicit Runge-Kutta methods generally require coupled or sequential nonlinear stage solves."
 A4 = "Runge-Kutta order is determined by algebraic conditions on Butcher coefficients."
 A5 = "Embedded pairs estimate local error by comparing two formulas sharing stage evaluations."
 A6 = "Stability properties depend on the method's stability function, not only its formal order."
 A7 = "Higher stage count can increase accuracy or stability at greater computational cost."
 A8 = "Runge-Kutta results require coefficient, error, stability and reproducibility validation."
}

REASONING {
 R1_CONTEXT = identify(ODE_system,stiffness,accuracy_goal,cost_constraints,event_requirements)
 R2_FAMILY = select(explicit,embedded,DIRK,SDIRK,fully_implicit,collocation,SSP,symplectic_or_IMEX_family)
 R3_TABLEAU = load_or_define(A,b,c,and_optional_embedded_weights)
 R4_STAGE_SOLVE = compute_stage_values_sequentially_or_with_nonlinear_solver
 R5_UPDATE = combine_stage_derivatives_into_candidate_solution
 R6_ERROR_CONTROL = if_embedded estimate_local_error_and_accept_or_reject_step
 R7_STABILITY = analyse(stability_function,stiffness,A_stability,L_stability_or_SSP_properties)
 R8_COST = assess(function_evaluations,Jacobian_evaluations,linear_solves_and_memory)
 R9_DENSE_OUTPUT = if_required construct_continuous_extension
 R10_VALIDATE = check(order,step_refinement,reference_solution,stage_residuals_and_reproducibility)
}

CONSTRAINTS {
 C1 = "High formal order does not guarantee suitable stability for stiff systems."
 C2 = "Explicit Runge-Kutta methods can require restrictive step sizes on stiff problems."
 C3 = "Implicit Runge-Kutta methods require accurate nonlinear stage solves."
 C4 = "Incorrect Butcher coefficients invalidate order and stability properties."
 C5 = "Embedded error estimators can be unreliable near discontinuities or nonsmooth dynamics."
 C6 = "Adaptive controllers can reject many steps when the solution changes abruptly."
 C7 = "Dense-output order may differ from the main method order."
 C8 = "SSP properties hold only under stated coefficient and step-size conditions."
 C9 = "Finite-precision round-off can dominate at very small step sizes."
 C10 = "Stage convergence tolerances that are too loose can spoil the nominal method accuracy."
}

SEMANTIC_EQUIVALENCE {
 "RungeKuttaMethod" <=> "RKMethod"
 "ClassicalRK4" <=> "RK4"
 "RungeKuttaFehlberg" <=> "RKF45"
 "DiagonallyImplicitRungeKutta" <=> "DIRK"
 "SinglyDiagonallyImplicitRungeKutta" <=> "SDIRK"
 "StrongStabilityPreservingMethod" <=> "SSPRungeKutta"
}

VALIDATION {
 V1 = "Butcher tableau is explicit or reproducibly identified."
 V2 = "Method order is documented."
 V3 = "Explicit versus implicit stage structure is documented."
 V4 = "Adaptive tolerances and controller parameters are documented."
 V5 = "Implicit stage-solver tolerances are documented."
 V6 = "Stability properties are checked against problem stiffness."
 V7 = "Observed order under step refinement is checked where feasible."
 V8 = "Dense-output properties are documented where used."
 V9 = "Reference or manufactured solutions are used where feasible."
 V10 = "Results are reproducible under documented arithmetic and solver settings."
}

CONFIDENCE {
 BASE_CONFIDENCE = 0.99
 RUNGE_KUTTA_DEFINITION = 0.99
 EXPLICIT_RK_REASONING = 0.99
 IMPLICIT_RK_REASONING = 0.99
 EMBEDDED_RK_REASONING = 0.99
 ORDER_CONDITION_REASONING = 0.98
 STABILITY_REASONING = 0.99
 STIFF_RK_REASONING = 0.98
 POLICY = "Reduce confidence when Butcher coefficients, method order, stiffness, stage tolerances, adaptive controller or arithmetic precision are underspecified."
}

AI_CONSUMPTION {
 PURPOSES = [
  SemanticSearch, OntologyGrounding, RungeKuttaReasoning,
  ButcherTableauReasoning, ExplicitRKReasoning,
  ImplicitRKReasoning, EmbeddedRKReasoning,
  AdaptiveStepReasoning, OrderConditionReasoning,
  StabilityFunctionReasoning, StiffRKReasoning,
  DIRKReasoning, SDIRKReasoning, CollocationReasoning,
  SSPReasoning, SymplecticRKReasoning, IMEXReasoning,
  StageSolverReasoning, DenseOutputReasoning,
  VerificationReasoning, KnowledgeGraphConstruction,
  RetrievalAugmentation, RecursiveInference
 ]
 NORMALISE {
  "Runge-Kutta" -> RungeKuttaMethod
  "RK method" -> RungeKuttaMethod
  "RK4" -> ClassicalRK4
  "RKF45" -> RungeKuttaFehlberg
  "DIRK" -> DiagonallyImplicitRungeKutta
  "SDIRK" -> SinglyDiagonallyImplicitRungeKutta
  "SSP RK" -> SSPRungeKutta
 }
}

EXECUTION_RULES {
 E1 = "If an ODE step uses multiple internal stage evaluations combined by Butcher coefficients, activate RungeKuttaOntology."
 E2 = "Identify the Butcher tableau and method order before reasoning about execution."
 E3 = "For explicit methods, compute stages in dependency order."
 E4 = "For implicit methods, configure nonlinear and linear subsolvers for stage equations."
 E5 = "For adaptive embedded methods, compare paired solutions and apply explicit step acceptance and rejection logic."
 E6 = "For stiff systems, assess A-stability, L-stability or related stiff-solver properties."
 E7 = "For monotonicity-sensitive problems, assess SSP properties."
 E8 = "For geometric long-time problems, consider symplectic or partitioned Runge-Kutta methods."
 E9 = "Validate through order tests, stability analysis, stage residuals, reference solutions and reproducibility."
}

RECURSION {
 ENTRY = RungeKuttaMethod
 EXPAND(RungeKuttaMethod) -> [
  RungeKuttaSolver,RKMethod,OneStepMethod,MultiStageMethod,Stage,
  StageDerivative,ButcherTableau,ButcherMatrix,WeightVector,StageAbscissa,
  ExplicitRungeKutta,ImplicitRungeKutta,DIRK,SDIRK,
  FullyImplicitRungeKutta,CollocationMethod,GaussLegendreRungeKutta,
  RadauRungeKutta,LobattoRungeKutta,StifflyAccurateRungeKutta,
  ClassicalRK4,RK4,RK3,RK2,MidpointMethod,HeunMethod,RalstonMethod,
  EmbeddedRungeKutta,EmbeddedPair,RungeKuttaFehlberg,RKF45,
  DormandPrince,CashKarp,BogackiShampine,LocalErrorEstimate,
  AdaptiveStepSize,StepSizeController,DenseOutput,ContinuousExtension,
  OrderCondition,ButcherTree,RootedTree,OrderOfAccuracy,Consistency,
  Convergence,Stability,AbsoluteStability,StabilityRegion,StabilityFunction,
  AStability,LStability,AlgebraicStability,SSPRungeKutta,Monotonicity,
  SymplecticRungeKutta,PartitionedRungeKutta,IMEXRungeKutta,
  AdditiveRungeKutta,StiffEquation,Stiffness,Jacobian,
  NonlinearStageSystem,NonlinearSolver,NewtonMethod,LinearSolver,
  Preconditioner,StageResidual,FunctionEvaluationCount,
  JacobianEvaluationCount,FloatingPointArithmetic,MachinePrecision,
  RoundOffError,Verification,ReferenceSolution,ManufacturedSolution,
  BenchmarkProblem,Reproducibility
 ]
 EXPAND(RungeKuttaFamilies) -> [
  ExplicitRungeKuttaMethods,
  EmbeddedAdaptiveRungeKuttaMethods,
  ImplicitRungeKuttaMethods,
  DIRKAndSDIRKMethods,
  CollocationRungeKuttaMethods,
  SSPRungeKuttaMethods,
  SymplecticAndPartitionedRungeKutta,
  IMEXAndAdditiveRungeKutta
 ]
 STOP_CONDITION = "Stop when tableau, stages, order, adaptivity, stability, stiffness, subsolvers and validation are sufficiently resolved."
}

ROUTING {
 PARENT_ONTOLOGY = "Ordinary Differential Equation Solver Ontology"
 RELATED_ONTOLOGIES = [
  "Ordinary Differential Equation Solver Ontology",
  "Differential Equation Solver Ontology",
  "Euler Method Ontology",
  "Partial Differential Equation Solver Ontology",
  "Linear Solver Ontology",
  "Nonlinear Solver Ontology",
  "Newton-Raphson Ontology",
  "Numerical Analysis Ontology 2",
  "Numerical Error Ontology",
  "Numerical Stability Ontology 2",
  "Numerical Convergence Ontology",
  "Floating Point Arithmetic Ontology"
 ]
 ROUTE_RULES = [
  "Runge-Kutta -> ODE Solver for parent time-integration semantics",
  "Runge-Kutta -> Euler Method for first-order RK relationship",
  "Runge-Kutta -> PDE Solver when used after method-of-lines discretisation",
  "Runge-Kutta -> Nonlinear Solver for implicit stage equations",
  "Runge-Kutta -> Linear Solver for Newton stage corrections",
  "Runge-Kutta -> Numerical Analysis for order, consistency, stability and convergence",
  "Runge-Kutta -> Numerical Error for local and global error semantics",
  "Runge-Kutta -> Numerical Stability for absolute-stability behaviour",
  "Runge-Kutta -> Floating Point Arithmetic for high-stage and small-step round-off effects"
 ]
}

UPDATE_MODEL {
 MODE = "append-compatible semantic versioning"
 MAJOR = "ontology-breaking conceptual change"
 MINOR = "new compatible Runge-Kutta families, tableaux or reasoning pathways"
 PATCH = "clarification, metadata or formatting correction"
 RULES = [
  "Preserve explicit-versus-implicit Runge-Kutta distinction.",
  "Preserve stage-coefficient-versus-solution-state distinction.",
  "Preserve formal-order-versus-stability distinction.",
  "Preserve embedded-pair-versus-single-formula distinction.",
  "Preserve local-error-estimate-versus-global-error distinction.",
  "Preserve stiff-versus-nonstiff suitability distinction.",
  "Preserve algebraic-stage-solve-versus-time-integration distinction.",
  "Preserve machine-readable Runge-Kutta semantics."
 ]
}

OUTPUT {
 CANONICAL_DEFINITION = "A Runge-Kutta method advances an ODE solution using multiple internal stage evaluations combined through Butcher coefficients."
 EXPLICIT_SUMMARY = "Explicit Runge-Kutta methods compute stages sequentially and avoid nonlinear stage solves."
 IMPLICIT_SUMMARY = "Implicit Runge-Kutta methods solve coupled or diagonally implicit stage equations and can provide strong stability for stiff problems."
 ADAPTIVE_SUMMARY = "Embedded Runge-Kutta pairs estimate local error from shared stages and support adaptive step-size control."
 ORDER_SUMMARY = "Method order is determined by algebraic conditions on the Butcher tableau."
 STABILITY_SUMMARY = "The stability function determines absolute-stability behaviour on the linear test equation."
 VALIDATION_SUMMARY = "Runge-Kutta results should be checked through tableau verification, order tests, stability analysis, stage residuals, reference solutions and reproducibility."
}

FLOW {
 INPUT
 -> detect_Runge_Kutta_context
 -> identify_ODE_system_stiffness_accuracy_goal_cost_and_event_requirements
 -> select_explicit_embedded_DIRK_SDIRK_fully_implicit_collocation_SSP_symplectic_or_IMEX_family
 -> load_or_define_Butcher_tableau
 -> compute_stage_values_sequentially_or_with_stage_subsolvers
 -> combine_stage_derivatives_into_candidate_solution
 -> if_embedded_estimate_local_error_and_accept_or_reject_step
 -> analyse_order_conditions_stability_function_and_stiffness_properties
 -> if_required_construct_dense_output
 -> assess_function_evaluation_cost_stage_residuals_roundoff_and_memory
 -> validate_against_reference_solution_and_step_refinement
 -> route_to_related_ODE_Euler_PDE_linear_nonlinear_analysis_error_stability_convergence_and_floating_point_ontologies
 -> recursively_expand_required_dependencies
 -> verify_result
 -> assign_confidence
 -> produce_semantic_output
 -> END
}

SEMANTIC_SUMMARY {
 "The Runge-Kutta Ontology defines multi-stage one-step numerical integration for ODEs. It supports Butcher tableaux, stage equations and derivatives, explicit RK2, RK3 and classical RK4 methods, embedded pairs such as RKF45, Dormand-Prince, Cash-Karp and Bogacki-Shampine, adaptive step-size control, implicit RK, DIRK, SDIRK, Radau, Gauss and Lobatto collocation methods, order conditions and rooted-tree relationships, stability functions, A-stability and L-stability, SSP, symplectic, partitioned, IMEX and additive Runge-Kutta methods, nonlinear stage systems, Jacobians and subsolvers, dense output, finite precision, verification, benchmarking and reproducibility."
}

FLOW_HASH {
 METHOD = "semantic-content-identity"
 ID = "KIRETH-MATH-COMPUTATIONAL-MATHEMATICS-RUNGE-KUTTA-ONTOLOGY-V1"
}

}

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