flow "DifferentialEquationOntology" v1.0
# ============================================================
# DIFFERENTIAL EQUATION ONTOLOGY — FLOW ALGEBRA
# ============================================================
SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/differential-equations/differential-equation-ontology.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Differential Equations"
ENTITY := "Differential Equation"
# ---------- CORE ENTITY ----------
DIFFERENTIAL_EQUATION := {
type: MathematicalEquation,
domain: DifferentialEquations,
purpose: "Represent a relation involving an unknown function and one or more of its derivatives, describing how a quantity changes with respect to one or more independent variables."
}
# ---------- CORE CONCEPTS ----------
CONCEPTS := {
DIFFERENTIAL_EQUATION,
UNKNOWN_FUNCTION,
INDEPENDENT_VARIABLE,
DEPENDENT_VARIABLE,
DERIVATIVE,
ORDINARY_DIFFERENTIAL_EQUATION,
PARTIAL_DIFFERENTIAL_EQUATION,
ORDER,
DEGREE,
LINEARITY,
INITIAL_CONDITION,
BOUNDARY_CONDITION,
SOLUTION,
GENERAL_SOLUTION,
PARTICULAR_SOLUTION
}
# ---------- GENERAL FORM ----------
DIFFERENTIAL_EQUATION
:= relation(
independent_variables,
unknown_function,
derivatives_of_unknown_function
)
general_ODE_form:
F(
x,
y,
y_prime,
y_double_prime,
...,
y^(n)
) = 0
general_PDE_form:
F(
x1,...,xm,
u,
partial_derivatives_of_u
) = 0
# ---------- UNKNOWN FUNCTION ----------
UNKNOWN_FUNCTION
-> mathematical_object_to_be_determined
DEPENDENT_VARIABLE
-> represented_by(UNKNOWN_FUNCTION)
INDEPENDENT_VARIABLE
-> variable_with_respect_to_which_derivatives_are_taken
# ---------- ODE CLASSIFICATION ----------
ORDINARY_DIFFERENTIAL_EQUATION
-> derivatives_with_respect_to(ONE_INDEPENDENT_VARIABLE)
ODE
~= ORDINARY_DIFFERENTIAL_EQUATION
example:
dy/dx
= f(x,y)
# ---------- PDE CLASSIFICATION ----------
PARTIAL_DIFFERENTIAL_EQUATION
-> partial_derivatives_with_respect_to(MULTIPLE_INDEPENDENT_VARIABLES)
PDE
~= PARTIAL_DIFFERENTIAL_EQUATION
example:
partial_u/partial_t
= alpha * partial_squared_u/partial_x_squared
# ---------- ORDER ----------
ORDER
:= highest_derivative_order_present
example:
y_triple_prime
+ y_prime
+ y
= 0
ORDER
= 3
ORDER
-> structural_property_of(DIFFERENTIAL_EQUATION)
# ---------- DEGREE ----------
DEGREE
:= exponent_of(HIGHEST_ORDER_DERIVATIVE)
when(EQUATION_IS_POLYNOMIAL_IN_DERIVATIVES)
DEGREE
-> may_be(UNDEFINED)
for(NONPOLYNOMIAL_DERIVATIVE_EXPRESSIONS)
ORDER
-/> equivalent_to(DEGREE)
# ---------- LINEARITY ----------
LINEAR_DIFFERENTIAL_EQUATION
-> unknown_function_and_derivatives_appear_to_FIRST_POWER
-> no_products_between(UNKNOWN_FUNCTION_OR_ITS_DERIVATIVES)
-> coefficients_may_depend_on(INDEPENDENT_VARIABLES)
general_linear_ODE:
a_n(x)y^(n)
+
...
+
a_1(x)y_prime
+
a_0(x)y
=
g(x)
# ---------- NONLINEARITY ----------
NONLINEAR_DIFFERENTIAL_EQUATION
-> violates(LINEARITY_CONDITIONS)
examples_of_nonlinearity:
y*y_prime
(y_prime)^2
sin(y)
exp(y)
NONLINEARITY
-> may_produce(COMPLEX_DYNAMICS)
# ---------- HOMOGENEOUS LINEAR EQUATION ----------
if
g(x) = 0
then
LINEAR_DIFFERENTIAL_EQUATION
-> HOMOGENEOUS
HOMOGENEOUS_LINEAR_SOLUTION_SET
-> closed_under(LINEAR_COMBINATION)
# ---------- NONHOMOGENEOUS LINEAR EQUATION ----------
if
g(x) != 0
then
LINEAR_DIFFERENTIAL_EQUATION
-> NONHOMOGENEOUS
GENERAL_SOLUTION
=
HOMOGENEOUS_SOLUTION
+
PARTICULAR_SOLUTION
# ---------- SOLUTION ----------
SOLUTION
:= function_that_satisfies(
DIFFERENTIAL_EQUATION
)
on(RELEVANT_DOMAIN)
SOLUTION_VERIFICATION
-> substitute(function_and_derivatives_into_equation)
if
equation_identity_holds
then
candidate
-> VALID_SOLUTION
# ---------- GENERAL SOLUTION ----------
GENERAL_SOLUTION
-> family_of(SOLUTIONS)
-> may_contain(ARBITRARY_CONSTANTS)
number_of_arbitrary_constants
-> often_related_to(ORDER)
for(REGULAR_ODE_CONTEXTS)
# ---------- PARTICULAR SOLUTION ----------
PARTICULAR_SOLUTION
-> specific_member_of(SOLUTION_FAMILY)
INITIAL_OR_BOUNDARY_CONDITIONS
-> may_select(PARTICULAR_SOLUTION)
# ---------- INITIAL VALUE PROBLEM ----------
INITIAL_VALUE_PROBLEM
:= DIFFERENTIAL_EQUATION
+ INITIAL_CONDITIONS
example:
y_prime = f(x,y)
y(x_0) = y_0
INITIAL_CONDITION
-> specifies(SOLUTION_DATA_AT_INITIAL_POINT)
# ---------- BOUNDARY VALUE PROBLEM ----------
BOUNDARY_VALUE_PROBLEM
:= DIFFERENTIAL_EQUATION
+ BOUNDARY_CONDITIONS
BOUNDARY_CONDITION
-> imposed_at(BOUNDARY_POINTS_OR_SURFACES)
types:
DIRICHLET
NEUMANN
ROBIN
MIXED
# ---------- EXISTENCE ----------
EXISTENCE
-> asks(Whether_at_least_one_solution_exists)
EXISTENCE_THEOREM
-> requires(HYPOTHESES)
SOLUTION
-/> assumed_to_exist_without(VALIDATION)
# ---------- UNIQUENESS ----------
UNIQUENESS
-> asks(Whether_only_one_solution_satisfies_problem_data)
PICARD_LINDELOF_THEOREM
-> provides(LOCAL_EXISTENCE_AND_UNIQUENESS)
for certain first-order ODEs
under(CONTINUITY_AND_LIPSCHITZ_CONDITIONS)
# ---------- ANALYTICAL SOLUTION ----------
ANALYTICAL_SOLUTION
-> expressed_in(CLOSED_OR_SYMBOLIC_FORM)
METHODS := {
SEPARATION_OF_VARIABLES,
INTEGRATING_FACTOR,
CHARACTERISTIC_EQUATION,
SUBSTITUTION,
TRANSFORMS,
POWER_SERIES,
GREEN_FUNCTIONS
}
METHOD_SELECTION
-> depends_on(EQUATION_STRUCTURE)
# ---------- NUMERICAL SOLUTION ----------
NUMERICAL_SOLUTION
-> approximate_solution
METHODS_NUMERICAL := {
EULER_METHOD,
RUNGE_KUTTA_METHODS,
FINITE_DIFFERENCE_METHOD,
FINITE_ELEMENT_METHOD,
FINITE_VOLUME_METHOD
}
NUMERICAL_METHOD
-> discretises(CONTINUOUS_PROBLEM)
# ---------- AUTONOMOUS EQUATION ----------
AUTONOMOUS_ODE
:= y_prime = f(y)
INDEPENDENT_VARIABLE
-> absent_explicitly_from(RIGHT_HAND_SIDE)
AUTONOMOUS_SYSTEM
-> supports(PHASE_SPACE_ANALYSIS)
# ---------- SYSTEM FORM ----------
SYSTEM_OF_ODES
:= x_prime = F(t,x)
HIGHER_ORDER_ODE
-> convertible_to(FIRST_ORDER_SYSTEM)
STATE_VECTOR
-> stores(DEPENDENT_VARIABLES_AND_REQUIRED_DERIVATIVES)
# ---------- EQUILIBRIUM ----------
for autonomous system:
x_prime
= F(x)
EQUILIBRIUM_POINT
:= x_star
where
F(x_star) = 0
EQUILIBRIUM
-> constant_solution
# ---------- STABILITY ----------
STABILITY
-> describes(RESPONSE_TO_PERTURBATIONS)
JACOBIAN_AT_EQUILIBRIUM
-> supports(LOCAL_LINEAR_STABILITY_ANALYSIS)
EIGENVALUES
-> inform(LOCAL_BEHAVIOUR)
under(APPROPRIATE_CONDITIONS)
# ---------- APPLICATIONS ----------
DIFFERENTIAL_EQUATION
-> models(MOTION)
-> models(POPULATION_CHANGE)
-> models(HEAT_FLOW)
-> models(WAVES)
-> models(ELECTRICAL_SYSTEMS)
-> models(CHEMICAL_REACTIONS)
-> models(FLUID_FLOW)
-> models(CONTROL_SYSTEMS)
# ---------- RELATION GRAPH ----------
UNKNOWN_FUNCTION
-> constrained_by(DIFFERENTIAL_EQUATION)
DERIVATIVES
-> encode(CHANGE)
HIGHEST_DERIVATIVE
-> determines(ORDER)
LINEARITY
-> determines(SUPERPOSITION_PROPERTIES)
INITIAL_CONDITIONS
-> define(INITIAL_VALUE_PROBLEM)
BOUNDARY_CONDITIONS
-> define(BOUNDARY_VALUE_PROBLEM)
SOLUTION
-> verified_by(SUBSTITUTION)
NUMERICAL_METHOD
-> approximates(SOLUTION)
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
"differential equation" ~= "equation involving an unknown function and its derivatives",
"ODE" ~= "ordinary differential equation",
"PDE" ~= "partial differential equation",
"general solution" ~= "family of solutions containing arbitrary parameters where appropriate",
"particular solution" ~= "specific solution satisfying selected conditions",
"initial value problem" ~= "differential equation with initial data"
}
# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
differential_equation_must_involve_derivative_information: true,
order_is_highest_derivative_order: true,
degree_not_defined_for_all_equations: true,
linearity_has_specific_structural_requirements: true,
solution_must_satisfy_equation_on_domain: true,
existence_and_uniqueness_require_hypotheses: true,
numerical_solution_is_approximate_unless_exactness_is_proven: true
}
# ---------- CONFIDENCE ----------
CONFIDENCE := {
core_definition: 0.99,
ode_pde_relation: 0.99,
order_degree_relation: 0.99,
linearity_relation: 0.99,
solution_structure: 0.99,
existence_uniqueness_relation: 0.98,
semantic_equivalence: 0.97
}
# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
identify(equation)
-> identify(unknown_function)
-> identify(independent_variables)
-> classify(ode_or_pde)
-> determine(order)
-> determine(degree_if_defined)
-> determine(linearity)
-> identify(initial_or_boundary_conditions)
-> classify(equation_type)
-> select(solution_method)
-> solve_or_approximate()
-> verify(solution_by_substitution)
-> analyse(existence_uniqueness_or_stability_if_requested)
-> return(semantic_result)
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
parse_as: "typed differential-equation semantic graph",
primary_entity: DIFFERENTIAL_EQUATION,
preserve: [
unknown_function,
independent_variables,
derivative_orders,
coefficients,
linearity,
domain,
initial_conditions,
boundary_conditions
],
infer_through: [
ode_classification,
pde_classification,
solution_methods,
existence_uniqueness,
numerical_methods,
dynamical_systems,
stability
],
avoid: [
confusing_order_with_degree,
assigning_degree_when undefined,
applying_superposition_to nonlinear equations,
assuming_solution_exists uniquely,
ignoring initial_or_boundary conditions,
treating numerical approximation as exact solution
]
}
# ---------- UPDATE MODEL ----------
UPDATE_MODEL(new_information):
validate(new_information)
-> identify(differential_equation_context)
-> compare(existing_relations)
-> preserve(order_linearity_and_solution_invariants)
-> update(affected_entities)
-> update(affected_edges)
-> recompute(CONFIDENCE)
-> regenerate(FLOW_HASH)
# ---------- FLOW HASH ----------
FLOW_HASH := hash(
SOURCE_URL
+ ENTITY
+ CONCEPTS
+ DIFFERENTIAL_EQUATION
+ ORDINARY_DIFFERENTIAL_EQUATION
+ PARTIAL_DIFFERENTIAL_EQUATION
+ ORDER
+ DEGREE
+ LINEAR_DIFFERENTIAL_EQUATION
+ INITIAL_VALUE_PROBLEM
+ BOUNDARY_VALUE_PROBLEM
+ SOLUTION
+ SEMANTIC_EQUIVALENCE
+ CONSTRAINTS
)
# ---------- EXECUTION ----------
INPUT(query)
-> DIFFERENTIAL_EQUATION
-> EQUATION_IDENTIFICATION
-> FUNCTION_VARIABLE_IDENTIFICATION
-> ODE_PDE_CLASSIFICATION
-> ORDER_DEGREE_ANALYSIS
-> LINEARITY_ANALYSIS
-> CONDITION_ANALYSIS
-> EQUATION_TYPE_CLASSIFICATION
-> METHOD_SELECTION
-> SOLUTION_OR_APPROXIMATION
-> SOLUTION_VALIDATION
-> EXISTENCE_UNIQUENESS_STABILITY_ANALYSIS
-> RECURSIVE_REASONING(query)
-> CONFIDENCE
-> OUTPUT(semantic_result)
END FLOW
Download Code
Copy to Clipboard