Skip to main content
Calcimator

Advanced Graphing Calculator

Graph mathematical functions, compute derivatives and integrals, find critical points, and explore parametric and polar equations with an interactive visual display. Supports multiple functions, calculus analysis, and advanced coordinate systems.

This calculator switches between five entirely independent modes based on Graphing Mode (lines 34-263): Standard Graphing plots up to four functions of x at once; Calculus Analysis takes a single function and derives its symbolic derivative, a numerical definite integral via Simpson's rule (1,000 steps, lib/math-expression.ts), roots by bisection, and critical points by finding where the derivative crosses zero and classifying each with a second-derivative test; Parametric and Polar modes trace curves defined by a parameter t or angle θ; and Limits mode estimates a two-sided limit by evaluating the function at five shrinking distances (0.1 down to 0.00001) from the approach point and checking whether the left- and right-hand values agree within 0.0001. In the default mode (Standard Graphing, with only f₁(x) = sin(x) filled in), the internal count of how many functions are active is completely unaffected by every numeric input on the page — X Min, X Max, t max, and θ max all leave it unchanged, because that count is just the number of the four function fields that are non-blank and successfully parsed — a field left blank, or one that fails to parse, is skipped before it reaches the count (lines 38-44, 64); it never reads a numeric input at all, and t max and θ max in particular belong to modes (Parametric and Polar) the calculator isn't even running while in Standard Graphing mode. In Standard Graphing and Calculus Analysis modes, a point where evaluation throws or returns a non-finite value (for example, dividing by zero) is not silently dropped — generatePoints (lib/math-expression.ts:101-131) explicitly records it as `{x, y: null}`, a marked discontinuity the chart can render as a gap rather than an invented value. Parametric and Polar modes handle the same situation differently: generateParametricPoints and generatePolarPoints (lib/math-expression.ts:139-210) both skip a failing point without recording anything at all, so a discontinuity in those two modes leaves no gap marker — the curve simply has one fewer point there. Critical-point classification treats a second derivative between −0.001 and 0.001 as an inflection point rather than attempting an exact symbolic test. This calculator does not distinguish why a point failed to evaluate — a genuine vertical asymptote (like x = 0 in 1/x) and a single removable hole in an otherwise continuous curve both just produce the same null-marked gap or missing point, with no separate classification of which kind of discontinuity it is.

Function Graph

sin(x)

Functions

Analysis

Enter a function to see analysis results.

Supported Functions

Arithmetic

+, -, *, /, ^

Trigonometric

sin, cos, tan, asin, acos, atan

Exponential

exp, log, log10, sqrt, abs

Constants

pi, e

How to Use This Calculator
  1. Type a mathematical expression in the function field using standard notation (e.g., 2*x^2 - 3*x + 1, sin(x), log(x)).
  2. Set xMin and xMax to define the horizontal range of the graph; numPoints controls plot resolution.
  3. Supported functions include trig (sin, cos, tan), logarithms (log, ln), exponentials (exp), and arithmetic operators.
  4. The chart renders the function curve; key values like roots, turning points, or y-intercept appear in the output panel.
  5. Combine with the Derivative Calculator to plot both f(x) and f'(x) over the same domain.

What each input means

Graphing Mode
Select the type of graphing you want to perform.
f₁(x)
Enter a function of x. Examples: x^2, sin(x), log(x), exp(-x^2)
f₂(x)
Optional second function
f₃(x)
Optional third function
f₄(x)
Optional fourth function
f(x)
Enter the function to analyze. Supports: +, -, *, /, ^, sin, cos, tan, log, exp, sqrt, abs
x(t)
Enter x as a function of t
y(t)
Enter y as a function of t
t min
Start value for parameter t
t max
End value for parameter t (2π ≈ 6.283)
r(θ)
Enter r as a function of theta. Use 'theta' for the angle variable.
θ min
Start angle in radians
θ max
End angle in radians (2π ≈ 6.283)
f(x)
Enter the function to find the limit of
x approaches
The value x approaches
X Min
Left boundary of the graph
X Max
Right boundary of the graph
Resolution
Higher resolution = smoother curves but slower rendering

How this is calculated

Formula

y = f(x) — plot functions, compute derivatives, integrals, and find roots/critical points

Engine last updated . Checked against 2 independently-derived tests how we verify calculators.

Frequently Asked Questions

Does changing the X Min or X Max range affect how many functions are being plotted?

No — the calculator's internal function count (line 64) is simply a tally of how many of the four function fields (f₁ through f₄) contain non-blank text that also parses successfully as a valid expression (lines 38-44); a field with garbage text never increments the count. It never reads X Min, X Max, or any other numeric input, so widening or narrowing the plotted range never changes that count, even though it does change how much of each curve is visible.

If I adjust the Parametric mode's t max, does it change anything in Standard Graphing mode?

No. Standard Graphing mode's branch (lines 34-66) never reads t max, t min, θ min, or θ max at all — those four fields are only used inside the Parametric and Polar branches (lines 133-210), which don't run unless Graphing Mode is switched to one of those two modes. Adjusting them while in Standard Graphing mode has zero effect on anything computed or plotted.

How does the calculator find a function's roots and critical points?

Roots are found by bisection: the domain is split into 100 intervals, and whenever the function's sign changes between two adjacent sample points, up to 50 rounds of bisection narrow in on the crossing (lib/math-expression.ts, findRoots). Critical points reuse that same root-finder on the function's symbolic derivative, then classify each one as a minimum, maximum, or inflection point using the sign of the second derivative at that point, with values between −0.001 and 0.001 treated as inflections rather than true extrema.

How precise is the Limits mode calculation?

It's a numerical estimate, not a symbolic one. The calculator evaluates the function at five progressively smaller distances from the approach value — 0.1, 0.01, 0.001, 0.0001, and 0.00001, on both sides (lib/math-expression.ts, calculateNumericalLimit) — and reports the limit as existing only if the final left-hand and right-hand values agree within 0.0001; a function with a genuine jump discontinuity at that point will correctly show no limit rather than a wrong number.

The questions that sit next to this one — chosen by subject, including calculators filed under a different category.

More in Math & Statistics.