Limits
Compute limits of expressions as variables approach values, infinity, or points of discontinuity.
📐
Mathematical Definition
Epsilon-Delta Definition (ε-δ):
means: For every , there exists such that:
Limit Laws: 1. Sum/Difference: 2. Product: 3. Quotient: (if denominator )
L'Hôpital's Rule (0/0 or ∞/∞):
(if the limit on the right exists)
Code Examples
Direct Substitution
For continuous functions, substitute directly
use mathhook::prelude::*;
let x = symbol!(x);
// Limit: lim(x→2) x² = 4
let expr1 = expr!(x ^ 2);
let limit1 = expr1.limit(&x, &expr!(2));
// Result: 4
// Limit: lim(x→π) sin(x) = 0
let expr2 = expr!(sin(x));
let limit2 = expr2.limit(&x, &Expression::pi());
// Result: 0
L'Hôpital's Rule (0/0 Form)
Use derivatives to resolve indeterminate forms
use mathhook::prelude::*;
let x = symbol!(x);
// Limit: lim(x→0) sin(x)/x = 1 (0/0 form)
// Apply L'Hôpital: lim(x→0) cos(x)/1 = 1
let expr = expr!(sin(x) / x);
let limit = expr.limit(&x, &expr!(0));
// Result: 1
// Limit: lim(x→0) (1 - cos(x))/x² = 1/2 (0/0 form)
let expr2 = expr!((1 - cos(x)) / (x ^ 2));
let limit2 = expr2.limit(&x, &expr!(0));
// Result: 1/2
Limits at Infinity
Behavior as x approaches ±∞
use mathhook::prelude::*;
use mathhook::core::Expression;
let x = symbol!(x);
// Limit: lim(x→∞) (2x² + 1)/(x² + 3) = 2
let expr1 = expr!((2 * (x ^ 2) + 1) / ((x ^ 2) + 3));
let limit1 = expr1.limit(&x, &Expression::infinity());
// Result: 2
// Limit: lim(x→∞) (x + 1)/(x² + 1) = 0
let expr2 = expr!((x + 1) / ((x ^ 2) + 1));
let limit2 = expr2.limit(&x, &Expression::infinity());
// Result: 0