flow "CalculusOfVariationsOntology" v1.0
# ============================================================
# CALCULUS OF VARIATIONS ONTOLOGY — FLOW ALGEBRA
# ============================================================
SOURCE_URL := "https://kirethresearch.org/booksai-core/ontologies/calculus-analysis-ontologies/variational-calculus/calculus-of-variations-ontology.html"
DOMAIN := "Mathematical Ontologies"
CATEGORY := "Calculus and Analysis Ontologies"
SUBCATEGORY := "Variational Calculus"
ENTITY := "Calculus of Variations"
# ---------- CORE ENTITY ----------
CALCULUS_OF_VARIATIONS := {
type: MathematicalOptimisationFramework,
domain: VariationalCalculus,
purpose: "Determine functions, curves, fields or trajectories that make a functional stationary or extremal subject to specified boundary and constraint conditions."
}
# ---------- CORE CONCEPTS ----------
CONCEPTS := {
FUNCTIONAL,
ADMISSIBLE_FUNCTION,
VARIATION,
FIRST_VARIATION,
SECOND_VARIATION,
EXTREMAL,
STATIONARY_FUNCTION,
EULER_LAGRANGE_EQUATION,
LAGRANGIAN,
FUNDAMENTAL_LEMMA,
BOUNDARY_CONDITION,
NATURAL_BOUNDARY_CONDITION,
CONSTRAINT,
LAGRANGE_MULTIPLIER,
DIRECT_METHOD
}
# ---------- FUNCTIONAL ----------
FUNCTIONAL
:= J
J:
FUNCTION_SPACE
-> SCALAR_FIELD
example:
J[y]
:=
integral_from_a_to_b(
F(
x,
y(x),
y_prime(x)
)
dx
)
FUNCTIONAL
-> objective_of(VARIATIONAL_PROBLEM)
# ---------- ADMISSIBLE CLASS ----------
ADMISSIBLE_CLASS
:= {
y :
y satisfies(
DOMAIN,
REGULARITY,
BOUNDARY_CONDITIONS,
CONSTRAINTS
)
}
OPTIMISATION
-> performed_over(ADMISSIBLE_CLASS)
# ---------- EXTREMUM ----------
y_star
-> LOCAL_MINIMISER
if
J[y_star]
<=
J[y]
for all admissible y
sufficiently_close_to(y_star)
under
specified_function_space_topology
LOCAL_MAXIMISER
-> analogous_with(REVERSED_INEQUALITY)
# ---------- VARIATION ----------
choose
eta
-> admissible_variation
define
y_epsilon
:=
y + epsilon*eta
epsilon
-> scalar_variation_parameter
VARIATION
-> direction_in(FUNCTION_SPACE)
# ---------- FIRST VARIATION ----------
delta_J[y;eta]
:=
d/d_epsilon(
J[y+epsilon*eta]
)
evaluated_at
epsilon=0
if
y
-> interior_local_extremum
then
delta_J[y;eta]
= 0
for_all
admissible_eta
FIRST_VARIATION
-> stationarity_condition
# ---------- STATIONARY FUNCTION ----------
y
-> STATIONARY
iff
delta_J[y;eta]
= 0
for_all admissible eta
STATIONARY_FUNCTION
-> candidate_for(EXTREMUM)
STATIONARY
-/> automatically(MINIMUM_OR_MAXIMUM)
# ---------- BASIC FIRST VARIATION ----------
for
J[y]
=
integral_from_a_to_b(
F(x,y,y_prime)
dx
)
delta_J
=
integral_from_a_to_b(
F_y*eta
+
F_y_prime*eta_prime
dx
)
# ---------- INTEGRATION BY PARTS ----------
integral(
F_y_prime*eta_prime
dx
)
=
[
F_y_prime*eta
]_a^b
-
integral(
d/dx(F_y_prime)
*
eta
dx
)
therefore
delta_J
=
BOUNDARY_TERM
+
integral(
[
F_y
-
d/dx(F_y_prime)
]
eta
dx
)
# ---------- FIXED ENDPOINTS ----------
if
y(a)=A
and
y(b)=B
then
eta(a)
= eta(b)
= 0
BOUNDARY_TERM
= 0
FIRST_VARIATION
-> interior_integral_only
# ---------- FUNDAMENTAL LEMMA ----------
if
integral_from_a_to_b(
g(x)*eta(x)
dx
)
=
0
for_all admissible smooth eta
vanishing_at_endpoints
then
g(x)
= 0
under
standard_regularities
FUNDAMENTAL_LEMMA
-> converts(INTEGRAL_IDENTITY_TO_POINTWISE_EQUATION)
# ---------- EULER-LAGRANGE ----------
therefore
F_y
-
d/dx(
F_y_prime
)
=
0
EULER_LAGRANGE_EQUATION
-> necessary_condition_for(SMOOTH_STATIONARY_FUNCTION)
# ---------- MULTIPLE DEPENDENT VARIABLES ----------
for
y_1,...,y_m
functional:
J[y_1,...,y_m]
=
integral(
F(
x,
y_i,
y_i_prime
)
dx
)
for each i:
partial_F/partial_y_i
-
d/dx(
partial_F/partial_y_i_prime
)
=
0
MULTIVARIABLE_FUNCTIONAL
-> coupled_Euler_Lagrange_system
# ---------- HIGHER ORDER ----------
if
F
=
F(
x,
y,
y_prime,
...,
y^(n)
)
then
sum_from_k_0_to_n(
(-1)^k
*
d^k/dx^k(
partial_F/partial_y^(k)
)
)
=
0
HIGHER_ORDER_VARIATIONAL_PROBLEM
-> HIGHER_ORDER_EULER_LAGRANGE_EQUATION
# ---------- FIELD FORM ----------
for field
u: Omega -> R
J[u]
=
integral_Omega(
F(
x,
u,
grad(u)
)
dx
)
Euler-Lagrange PDE:
partial_F/partial_u
-
div(
partial_F/partial_grad_u
)
=
0
CALCULUS_OF_VARIATIONS
-> generates(PDEs)
# ---------- SECOND VARIATION ----------
delta_squared_J[y;eta]
:=
d^2/d_epsilon^2(
J[y+epsilon*eta]
)
evaluated_at
epsilon=0
SECOND_VARIATION
-> quadratic_form_in(eta)
POSITIVE_SECOND_VARIATION
-> evidence_for(LOCAL_MINIMUM)
under(SUFFICIENT_CONDITIONS)
NEGATIVE_SECOND_VARIATION
-> evidence_for(LOCAL_MAXIMUM)
# ---------- LEGENDRE CONDITION ----------
for local minimum:
F_y_prime_y_prime
>= 0
along extremal
under
standard_smoothness_conditions
LEGENDRE_CONDITION
-> necessary_second_order_condition
STRICT_POSITIVITY
-> strengthened_condition
# ---------- JACOBI CONDITION ----------
SECOND_VARIATION
-> related_to(JACOBI_DIFFERENTIAL_EQUATION)
CONJUGATE_POINTS
-> affect(MINIMALITY)
JACOBI_CONDITION
-> further_second_order_test_for(MINIMUM)
# ---------- WEIERSTRASS CONDITION ----------
WEIERSTRASS_EXCESS_FUNCTION
-> compares(LAGRANGIAN_WITH_TANGENT_LINEARISATION_IN_DERIVATIVE_VARIABLE)
WEIERSTRASS_NECESSARY_CONDITION
-> stronger_local_minimum_condition
for(STRONG_VARIATIONS)
# ---------- NATURAL BOUNDARY ----------
if
endpoint_value
-> FREE
then
eta(endpoint)
-> arbitrary
boundary term:
F_y_prime
*
eta
requires
F_y_prime
= 0
at free endpoint
under
standard_vertical_endpoint_context
NATURAL_BOUNDARY_CONDITION
-> generated_by(BOUNDARY_VARIATION)
# ---------- TRANSVERSALITY ----------
if
endpoint
-> allowed_to_move_on(CONSTRAINT_CURVE_OR_SURFACE)
then
BOUNDARY_TERM
-> produces(TRANSVERSALITY_CONDITION)
TRANSVERSALITY
-> general_boundary_stationarity_condition
# ---------- ISOPERIMETRIC PROBLEM ----------
optimise
J[y]
subject_to
K[y]
= c
introduce scalar
lambda
AUGMENTED_FUNCTIONAL
:=
J[y]
-
lambda*K[y]
EULER_LAGRANGE
-> applied_to(AUGMENTED_INTEGRAND)
ISOPERIMETRIC_CONSTRAINT
-> handled_by(LAGRANGE_MULTIPLIER)
# ---------- BELTRAMI IDENTITY ----------
if
F
-> independent_of(x)
then
F
-
y_prime*F_y_prime
=
constant
along extremal
BELTRAMI_IDENTITY
-> first_integral
# ---------- CYCLIC VARIABLE ----------
if
F
-> independent_of(y)
then
F_y_prime
=
constant
CYCLIC_COORDINATE
-> CONSERVED_QUANTITY
# ---------- PARAMETER-INVARIANT PROBLEMS ----------
CURVE_FUNCTIONAL
-> may_be(INVARIANT_UNDER_REPARAMETERISATION)
REPARAMETERISATION_INVARIANCE
-> can_produce(DEGENERATE_EULER_LAGRANGE_STRUCTURE)
GEOMETRIC_FUNCTIONALS
-> require(PARAMETERISATION_AWARE_REASONING)
# ---------- GEODESICS ----------
LENGTH_FUNCTIONAL
:=
integral(
sqrt(
g_ij
*
x_dot^i
*
x_dot^j
)
dt
)
STATIONARY_CURVES
-> GEODESICS
CALCULUS_OF_VARIATIONS
-> derives(GEODESIC_EQUATIONS)
# ---------- ACTION ----------
ACTION_FUNCTIONAL
:=
integral_from_t1_to_t2(
L(q,q_dot,t)
dt
)
delta_ACTION
= 0
-> EULER_LAGRANGE_EQUATIONS
CLASSICAL_MECHANICS
-> variational_formulation_by(STATIONARY_ACTION)
# ---------- DIRECT METHOD ----------
to establish existence of minimiser:
choose
MINIMISING_SEQUENCE
seek:
COERCIVITY
COMPACTNESS
LOWER_SEMICONTINUITY
CLOSEDNESS_OF_ADMISSIBLE_CLASS
then
limit_of_minimising_sequence
-> candidate_minimiser
DIRECT_METHOD
-> existence_theory
# ---------- WEAK LOWER SEMICONTINUITY ----------
if
y_n
-> weakly_converges_to(y)
then desirable property:
J[y]
<=
liminf(
J[y_n]
)
WEAK_LOWER_SEMICONTINUITY
-> preserves(MINIMISATION_UNDER_WEAK_LIMITS)
# ---------- COERCIVITY ----------
J[y]
-> infinity
as
||y||
-> infinity
in relevant admissible directions
COERCIVITY
-> prevents(MINIMISING_SEQUENCE_ESCAPE)
# ---------- APPLICATIONS ----------
CALCULUS_OF_VARIATIONS
-> applied_to(MECHANICS)
-> applied_to(GEOMETRY)
-> applied_to(PDEs)
-> applied_to(OPTIMAL_CONTROL)
-> applied_to(ELASTICITY)
-> applied_to(FLUID_MECHANICS)
-> applied_to(FINITE_ELEMENT_METHODS)
-> applied_to(PHYSICS)
# ---------- RELATION GRAPH ----------
FUNCTIONAL
-> acts_on(ADMISSIBLE_FUNCTION)
VARIATION
-> perturbs(ADMISSIBLE_FUNCTION)
FIRST_VARIATION
-> determines(STATIONARITY)
FUNDAMENTAL_LEMMA
-> yields(EULER_LAGRANGE_EQUATION)
SECOND_VARIATION
-> investigates(MINIMALITY_OR_MAXIMALITY)
BOUNDARY_TERM
-> yields(NATURAL_BOUNDARY_CONDITIONS)
CONSTRAINT
-> introduces(LAGRANGE_MULTIPLIER)
DIRECT_METHOD
-> addresses(EXISTENCE_OF_MINIMISERS)
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE := {
"calculus of variations" ~= "optimisation of functionals over spaces of functions",
"functional" ~= "scalar-valued mapping whose input is a function or field",
"first variation" ~= "directional derivative of a functional",
"stationary function" ~= "function for which the first variation vanishes in every admissible direction",
"Euler-Lagrange equation" ~= "differential stationarity equation derived from a variational functional",
"direct method" ~= "existence method using minimising sequences, compactness and lower semicontinuity"
}
# ---------- CONSTRAINTS ----------
CONSTRAINTS := {
Euler_Lagrange_equation_is_necessary_not_generally_sufficient: true,
admissible_variations_must_respect_boundary_and_constraint_conditions: true,
fixed_and_free_endpoint_problems_have_different_boundary_terms: true,
second_variation_tests_require_additional_regularities_and_conditions: true,
constrained_problems_require_multiplier_or_equivalent_constraint_handling: true,
existence_of_formal_extremal_does_not_guarantee_global_minimiser: true,
direct_method_requires_topology_compactness_and_lower_semicontinuity_context: true
}
# ---------- CONFIDENCE ----------
CONFIDENCE := {
core_definition: 0.99,
first_variation_relation: 0.99,
Euler_Lagrange_relation: 0.99,
second_variation_relation: 0.99,
boundary_constraint_relation: 0.99,
direct_method_relation: 0.99,
semantic_equivalence: 0.97
}
# ---------- RECURSIVE REASONING ----------
RECURSIVE_REASONING(query):
identify(functional_and_admissible_class)
-> identify(boundary_constraints_and_regularities)
-> construct(admissible_variation)
-> compute(first_variation)
-> integrate_by_parts(if_required)
-> apply(fundamental_lemma)
-> derive(Euler_Lagrange_equations)
-> derive(boundary_or_transversality_conditions_if_required)
-> analyse(second_variation_and_minimality_conditions)
-> analyse(existence_via_direct_method_if_requested)
-> verify(all_hypotheses_and_admissibility)
-> return(semantic_result)
# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION := {
parse_as: "typed calculus-of-variations semantic graph",
primary_entity: CALCULUS_OF_VARIATIONS,
preserve: [
functional,
admissible_class,
Lagrangian,
boundary_conditions,
constraints,
regularity,
topology,
candidate_extremal
],
infer_through: [
variations,
first_variations,
Euler_Lagrange_equations,
second_variations,
natural_boundary_conditions,
transversality,
Lagrange_multipliers,
direct_methods
],
avoid: [
treating_stationary_function_as guaranteed minimiser,
ignoring_boundary_terms,
using_arbitrary_variations_that_violate constraints,
applying_second_order_conditions_without hypotheses,
confusing_formal_solution_with existence_or_uniqueness,
omitting_function_space_topology_in direct method arguments
]
}
# ---------- UPDATE MODEL ----------
UPDATE_MODEL(new_information):
validate(new_information)
-> identify(calculus_of_variations_context)
-> compare(existing_relations)
-> preserve(functional_admissibility_boundary_constraint_and_topology_invariants)
-> update(affected_entities)
-> update(affected_edges)
-> recompute(CONFIDENCE)
-> regenerate(FLOW_HASH)
# ---------- FLOW HASH ----------
FLOW_HASH := hash(
SOURCE_URL
+ ENTITY
+ CONCEPTS
+ CALCULUS_OF_VARIATIONS
+ FUNCTIONAL
+ VARIATION
+ FIRST_VARIATION
+ SECOND_VARIATION
+ EULER_LAGRANGE_EQUATION
+ NATURAL_BOUNDARY_CONDITION
+ LAGRANGE_MULTIPLIER
+ DIRECT_METHOD
+ SEMANTIC_EQUIVALENCE
+ CONSTRAINTS
)
# ---------- EXECUTION ----------
INPUT(query)
-> CALCULUS_OF_VARIATIONS
-> FUNCTIONAL_ADMISSIBLE_CLASS_IDENTIFICATION
-> BOUNDARY_CONSTRAINT_ANALYSIS
-> VARIATION_CONSTRUCTION
-> FIRST_VARIATION_ANALYSIS
-> INTEGRATION_BY_PARTS
-> FUNDAMENTAL_LEMMA_APPLICATION
-> EULER_LAGRANGE_DERIVATION
-> BOUNDARY_TRANSVERSALITY_ANALYSIS
-> SECOND_VARIATION_MINIMALITY_ANALYSIS
-> DIRECT_METHOD_EXISTENCE_ANALYSIS
-> HYPOTHESIS_VALIDATION
-> RECURSIVE_REASONING(query)
-> CONFIDENCE
-> OUTPUT(semantic_result)
END FLOW
Download Code
Copy to Clipboard