AI INTERPRETATION NOTE
This Flow Algebra defines the Secant Method Ontology within the Kireth Research Semantic Library. The secant method is a derivative-free iterative root-finding algorithm that approximates the derivative using two successive function evaluations and advances by intersecting the secant line with the horizontal axis. This ontology supports initial guesses, secant slopes, superlinear convergence, denominator breakdown, multiple roots, safeguarding, finite precision, stopping criteria, conditioning and verification.
FLOW_ALGEBRA_RECORD {
METADATA {
FLOW_NAME = "Secant Method Ontology"
FLOW_TYPE = "Mathematical Ontology"
DOMAIN = "Mathematics"
SUBDOMAIN = "Computational Mathematics"
SPECIALISATION = "Solving Equations / Secant Method"
CANONICAL_PAGE = "https://kirethresearch.org/booksai-core/ontologies/mathematical-ontologies/computational-mathematics-ontologies/solving-equations/secant-method-ontology.html"
LANGUAGE = "en-GB"
VERSION = "1.0"
STATUS = "active"
}
IDENTITY {
PRIMARY_ENTITY = SecantMethod
ENTITY_CLASS = DerivativeFreeOpenRootIterationFramework
PRIMARY_CONTEXT = RootFinding
DEFINITION = "The secant method is an iterative root-finding method that approximates a derivative by a finite secant slope computed from two successive iterates."
SYMBOLIC_FORMS = [
"x_(k+1)=x_k-f(x_k)*(x_k-x_(k-1))/(f(x_k)-f(x_(k-1)))",
"s_k=(f(x_k)-f(x_(k-1)))/(x_k-x_(k-1))",
"f(x_star)=0",
"|f(x_k)|<=tolerance"
]
SEMANTIC_ROLE = "Provides machine-readable semantics for derivative-free secant iteration, two-point derivative approximation, superlinear convergence, failure modes, conditioning, finite precision and verification."
}
SCOPE {
INCLUDE = [
SecantMethod, SecantIteration, DerivativeFreeRootFinding,
OpenRootFindingMethod, RootFinding, RootSolver, Root,
ScalarEquation, NonlinearEquation, InitialGuess,
FirstInitialGuess, SecondInitialGuess, PreviousIterate,
CurrentIterate, NextIterate, SecantLine, SecantSlope,
FiniteDifferenceSlope, FunctionValue, FunctionDifference,
IterateDifference, Denominator, SmallDenominator, ZeroDenominator,
SimpleRoot, MultipleRoot, RepeatedRoot, RootMultiplicity,
SuperlinearConvergence, GoldenRatioOrder, ConvergenceOrder,
LocalConvergence, Divergence, Stagnation, Oscillation, Cycling,
BasinOfAttraction, Residual, AbsoluteResidual, RelativeResidual,
StepSize, StepNorm, FunctionTolerance, StepTolerance,
AbsoluteTolerance, RelativeTolerance, StoppingCriterion,
MaximumIterations, MaximumEvaluations, Failure, Success, Warning,
SafeguardedSecant, HybridSecant, BracketedSecant,
RegulaFalsi, BrentMethod, NewtonMethod, FiniteDifferenceNewton,
Conditioning, RootConditionNumber, Sensitivity, FlatRoot,
Scaling, VariableScaling, RoundOffError, TruncationError,
FloatingPointArithmetic, MachinePrecision, Cancellation,
Overflow, Underflow, Verification, SubstitutionCheck,
ReferenceRoot, Benchmarking, Reproducibility
]
EXCLUDE_AS_PRIMARY = [
NewtonMethodUsingExactDerivative,
BisectionMethodWithMandatoryBracketHalving,
MultivariableQuasiNewtonMethodWithoutScalarSecantContext,
LinearInterpolationWithoutRootFindingSemantics
]
DISAMBIGUATION_RULE = "When a scalar nonlinear root is approximated using successive secant-line intersections based on two prior iterates, interpret the context as the secant method."
}
CORE_CONCEPTS {
SecantMethod = "Derivative-free scalar root iteration using two previous function evaluations."
SecantSlope = "Approximate derivative formed from differences of function values and iterates."
OpenMethod = "Root-finding method that does not preserve a bracketing interval by default."
SuperlinearConvergence = "Convergence faster than linear but slower than quadratic in the standard simple-root secant case."
SmallDenominator = "Near equality of successive function values causing an unstable secant step."
RootMultiplicity = "Multiplicity of a root, which can alter secant convergence behaviour."
SafeguardedSecant = "Secant iteration augmented by bounds or fallback rules to improve robustness."
}
RELATIONS {
SecantMethod --is_child_of--> RootFinding
SecantMethod --is_type_of--> OpenMethod
SecantMethod --approximates--> NewtonMethod
SecantMethod --uses--> SecantSlope
SecantSlope --approximates--> FirstDerivative
SecantMethod --uses--> TwoPreviousIterates
SecantMethod --targets--> Root
SimpleRoot --supports_under_conditions--> SuperlinearConvergence
MultipleRoot --reduces--> StandardSecantConvergenceRate
SmallDenominator --can_cause--> SecantBreakdown
SafeguardedSecant --improves--> Robustness
BrentMethod --combines--> SecantAndBracketingIdeas
Residual --measures--> RootEquationMismatch
RootConditionNumber --quantifies--> RootSensitivity
Verification --checks--> CandidateRoot
}
OPERATORS {
SECANT_SLOPE(x0,x1,f) := (f(x1)-f(x0))/(x1-x0)
SECANT_STEP(x0,x1,f) := x2=x1-f(x1)*(x1-x0)/(f(x1)-f(x0))
ROOT_PROBLEM(f) := find_x_such_that_f(x)=0
RESIDUAL(f,x) := r=f(x)
STEP_SIZE(x0,x1) := |x1-x0|
RELATIVE_STEP(x0,x1) := |x1-x0|/max(1,|x1|)
DENOMINATOR(f,x0,x1) := f(x1)-f(x0)
}
AXIOMS {
A1 = "The secant method does not require explicit derivative evaluation."
A2 = "The method requires two initial iterates or two previous approximations."
A3 = "For a sufficiently smooth function and a simple root, standard secant iteration is locally superlinear under suitable initialisation."
A4 = "The standard asymptotic convergence order for a simple root is the golden ratio."
A5 = "A zero or very small difference in successive function values can make the secant step undefined or unstable."
A6 = "Repeated roots generally reduce convergence speed."
A7 = "Residual and root-location error are distinct."
A8 = "Secant results require explicit initialisation, stopping, failure and verification semantics."
}
REASONING {
R1_CONTEXT = identify(function,domain,continuity,smoothness,initial_guesses,accuracy_goal)
R2_INITIALISE = evaluate(f(x0),f(x1))
R3_DENOMINATOR = compute(f(x1)-f(x0))
R4_CHECK = detect(zero_or_small_denominator)
R5_STEP = compute_secant_intersection)
R6_UPDATE = shift(x0<-x1,x1<-x2)
R7_CONVERGENCE = monitor(residual,step_size,rate,stagnation,oscillation_and_divergence)
R8_SAFEGUARD = if_unstable apply(bracket,fallback,damping_or_hybrid_method)
R9_CONDITIONING = assess(root_sensitivity,flatness,scaling_and_finite_precision)
R10_VERIFY = substitute_candidate_into_original_function_and_check_domain_and_reproducibility)
}
CONSTRAINTS {
C1 = "The secant method can diverge from poor initial guesses."
C2 = "The method does not maintain a root bracket by default."
C3 = "A zero denominator makes the standard secant formula undefined."
C4 = "A small denominator can generate a very large step."
C5 = "Repeated roots can reduce superlinear behaviour."
C6 = "A small residual does not guarantee a small root error for poorly conditioned roots."
C7 = "Successive iterates that become equal in floating-point arithmetic can cause stagnation."
C8 = "Function cancellation can degrade the secant slope."
C9 = "Stopping on step size alone can be misleading."
C10 = "Safeguards change the raw secant iteration and must be documented."
}
SEMANTIC_EQUIVALENCE {
"SecantMethod" <=> "SecantRootMethod"
"SecantSlope" <=> "TwoPointDerivativeApproximation"
"OpenRootFindingMethod" <=> "OpenMethod"
"SafeguardedSecant" <=> "ProtectedSecantMethod"
"GoldenRatioOrder" <=> "SecantAsymptoticOrder"
}
VALIDATION {
V1 = "Original function and domain are explicit."
V2 = "Both initial guesses are documented."
V3 = "Function values at initial guesses are documented or reproducible."
V4 = "Denominator safeguards are documented."
V5 = "Stopping criteria are explicit."
V6 = "Residual is evaluated using the original function."
V7 = "Step-size convergence is monitored."
V8 = "Root multiplicity and conditioning are considered when convergence is anomalous."
V9 = "Termination reason is explicit."
V10 = "Results are reproducible under documented arithmetic settings."
}
CONFIDENCE {
BASE_CONFIDENCE = 0.99
SECANT_METHOD_DEFINITION = 0.99
SECANT_SLOPE_REASONING = 0.99
SUPERLINEAR_CONVERGENCE_REASONING = 0.99
SMALL_DENOMINATOR_REASONING = 0.99
MULTIPLE_ROOT_REASONING = 0.98
SAFEGUARD_REASONING = 0.98
FLOATING_POINT_REASONING = 0.98
POLICY = "Reduce confidence when initial guesses, denominator thresholds, smoothness, root multiplicity, stopping criteria, safeguards or arithmetic precision are underspecified."
}
AI_CONSUMPTION {
PURPOSES = [
SemanticSearch, OntologyGrounding, SecantMethodReasoning,
DerivativeFreeRootReasoning, SecantSlopeReasoning,
SuperlinearConvergenceReasoning, GoldenRatioOrderReasoning,
InitialGuessReasoning, SmallDenominatorReasoning,
MultipleRootReasoning, SafeguardedSecantReasoning,
ResidualReasoning, RootConditioningReasoning,
FinitePrecisionReasoning, VerificationReasoning,
KnowledgeGraphConstruction, RetrievalAugmentation, RecursiveInference
]
NORMALISE {
"secant method" -> SecantMethod
"secant root method" -> SecantMethod
"secant slope" -> SecantSlope
"two-point derivative" -> SecantSlope
"protected secant" -> SafeguardedSecant
}
}
EXECUTION_RULES {
E1 = "If a scalar root is sought using two previous iterates and a secant-line derivative approximation, activate SecantMethodOntology."
E2 = "Require two initial guesses."
E3 = "Evaluate the denominator f(x_k)-f(x_(k-1)) before forming the secant step."
E4 = "If the denominator is zero or too small, use a safeguard or alternate root method."
E5 = "Update the two-point iterate history after every accepted step."
E6 = "Monitor both residual and step size."
E7 = "If iteration diverges or leaves the intended domain, apply a safeguard or switch to a hybrid method."
E8 = "If a multiple root is suspected, reduce confidence in standard convergence expectations."
E9 = "Verify the returned root against the original function and domain."
}
RECURSION {
ENTRY = SecantMethod
EXPAND(SecantMethod) -> [
SecantIteration,DerivativeFreeRootFinding,OpenRootFindingMethod,
RootFinding,RootSolver,Root,ScalarEquation,NonlinearEquation,
InitialGuess,FirstInitialGuess,SecondInitialGuess,PreviousIterate,
CurrentIterate,NextIterate,SecantLine,SecantSlope,
FiniteDifferenceSlope,FunctionValue,FunctionDifference,
IterateDifference,Denominator,SmallDenominator,ZeroDenominator,
SimpleRoot,MultipleRoot,RepeatedRoot,RootMultiplicity,
SuperlinearConvergence,GoldenRatioOrder,ConvergenceOrder,
LocalConvergence,Divergence,Stagnation,Oscillation,Cycling,
BasinOfAttraction,Residual,AbsoluteResidual,RelativeResidual,
StepSize,FunctionTolerance,StepTolerance,AbsoluteTolerance,
RelativeTolerance,StoppingCriterion,MaximumIterations,
MaximumEvaluations,Failure,Success,Warning,SafeguardedSecant,
HybridSecant,BracketedSecant,RegulaFalsi,BrentMethod,NewtonMethod,
FiniteDifferenceNewton,Conditioning,RootConditionNumber,Sensitivity,
FlatRoot,Scaling,RoundOffError,TruncationError,
FloatingPointArithmetic,MachinePrecision,Cancellation,
Verification,ReferenceRoot,Benchmarking,Reproducibility
]
EXPAND(SecantFamilies) -> [
StandardSecantIteration,
SecantConvergence,
SecantBreakdownHandling,
SafeguardedAndHybridSecant,
MultipleRootSecantBehaviour,
FinitePrecisionSecant,
SecantVerification
]
STOP_CONDITION = "Stop when initial guesses, secant slope, update rule, convergence, denominator behaviour, conditioning and verification are sufficiently resolved."
}
ROUTING {
PARENT_ONTOLOGY = "Root Finding Ontology 2"
RELATED_ONTOLOGIES = [
"Root Finding Ontology 2",
"Nonlinear Solver Ontology",
"Equation Solver Ontology",
"Newton-Raphson Ontology",
"Bisection Method Ontology",
"Numerical Methods",
"Numerical Analysis Ontology 2",
"Numerical Error Ontology",
"Numerical Stability Ontology 2",
"Numerical Convergence Ontology",
"Floating Point Arithmetic Ontology"
]
ROUTE_RULES = [
"Secant Method -> Root Finding for parent zero-finding semantics",
"Secant Method -> Nonlinear Solver for open-solver configuration and termination",
"Secant Method -> Newton-Raphson for derivative approximation comparison",
"Secant Method -> Bisection Method for open-versus-bracketing comparison",
"Secant Method -> Numerical Analysis for local convergence and conditioning",
"Secant Method -> Numerical Error for residual and root-location error",
"Secant Method -> Numerical Stability for denominator and finite-precision behaviour",
"Secant Method -> Numerical Convergence for superlinear convergence semantics",
"Secant Method -> Floating Point Arithmetic for cancellation and stagnation"
]
}
UPDATE_MODEL {
MODE = "append-compatible semantic versioning"
MAJOR = "ontology-breaking conceptual change"
MINOR = "new compatible secant safeguards, hybrid variants or reasoning pathways"
PATCH = "clarification, metadata or formatting correction"
RULES = [
"Preserve derivative-free-versus-derivative-based distinction.",
"Preserve open-versus-bracketing method distinction.",
"Preserve two-point-history semantics.",
"Preserve simple-root-versus-multiple-root distinction.",
"Preserve residual-versus-root-error distinction.",
"Preserve raw-secant-versus-safeguarded-secant distinction.",
"Preserve mathematical-denominator-versus-floating-point-denominator distinction.",
"Preserve machine-readable secant-method semantics."
]
}
OUTPUT {
CANONICAL_DEFINITION = "The secant method is a derivative-free root-finding iteration that replaces the derivative in Newton's method with a two-point secant slope."
STEP_SUMMARY = "Each iteration uses the two most recent function evaluations to estimate the next root approximation."
CONVERGENCE_SUMMARY = "For a smooth simple root and suitable starting values, the standard secant method converges superlinearly with asymptotic order equal to the golden ratio."
ROBUSTNESS_SUMMARY = "The method avoids derivative evaluation but lacks the default bracket guarantee of bisection."
FAILURE_SUMMARY = "Small function-value differences can create unstable steps or denominator breakdown."
MULTIPLICITY_SUMMARY = "Repeated roots reduce standard secant convergence and require adjusted expectations or alternative methods."
VALIDATION_SUMMARY = "Secant results should be checked using residuals, step sizes, denominator behaviour, conditioning, termination status and reproducibility."
}
FLOW {
INPUT
-> detect_secant_method_context
-> identify_function_domain_smoothness_initial_guesses_and_accuracy_goal
-> evaluate_function_at_two_initial_guesses
-> compute_secant_denominator_and_slope
-> if_denominator_too_small_apply_safeguard_or_alternate_method
-> compute_next_secant_intersection
-> update_previous_and_current_iterates
-> monitor_residual_step_size_convergence_rate_stagnation_oscillation_and_divergence
-> if_needed_apply_bracket_fallback_damping_or_hybrid_logic
-> assess_root_multiplicity_conditioning_scaling_roundoff_and_machine_precision
-> classify_solver_status
-> verify_candidate_against_original_function_and_domain
-> route_to_related_root_finding_Newton_bisection_analysis_error_stability_convergence_and_floating_point_ontologies
-> recursively_expand_required_dependencies
-> verify_result
-> assign_confidence
-> produce_semantic_output
-> END
}
SEMANTIC_SUMMARY {
"The Secant Method Ontology defines derivative-free scalar root finding using two-point secant slopes. It supports two initial guesses, secant lines and finite-difference derivative approximations, open-method iteration, simple and repeated roots, superlinear convergence and golden-ratio asymptotic order, small and zero denominators, safeguarded and hybrid secant variants, relationships with Newton, regula falsi, Brent and bisection methods, residual and step stopping criteria, conditioning, scaling, cancellation, round-off, machine precision, solver status, verification, benchmarking and reproducibility."
}
FLOW_HASH {
METHOD = "semantic-content-identity"
ID = "KIRETH-MATH-COMPUTATIONAL-MATHEMATICS-SECANT-METHOD-ONTOLOGY-V1"
}
}
END_FLOW
Download Code
Copy to Clipboard