Solve
Type a function of x —or an equality— and the graph appears as you type.
Loading tool…
Quick guide
Understand the calculation
A visual tool to graph and analyze up to two mathematical functions simultaneously, exploring their spatial properties in real-time. It marks roots, maxima, minima, inflection points and the value at x = 0, and computes the intersections when two curves are present.
When to use this tool
Ideal for studying the analytical behavior of a function, visually identifying its roots (x-intercepts), finding maximum or minimum points, understanding where multiple equations intersect, and analyzing graphical trends.
How it works
Type in your mathematical expression (e.g., x^2 - 4) or set up an equality (like cos(x) = x); in that second case the grapher plots the difference between both sides, so the roots of the curve are the solutions of the equation. As you enter the formula or drag across the cartesian plane, the grapher instantly plots the path and automatically highlights its intersections, roots, and key points. The whole analysis is numerical and is redone over the visible range: it splits that range into 500 intervals, refines sign crossings by bisection, and locally minimizes |f(x)| to recognize roots that touch the axis without crossing it, such as abs(x) or an even-multiplicity root. Extrema are refined directly and inflections are detected from changes in concavity. Use your mouse wheel to zoom or drag the canvas to explore freely; zooming in also concentrates the sampling over a narrower span.
The analysis is numerical and lives inside the visible range: with 500 sampling intervals, a feature narrower than that step can go unnoticed until you zoom in. It detects crossings, tangent roots, extrema and inflections resolved by the grid, but it does not replace a symbolic proof, and two features closer than the visible resolution may merge. The lists show up to 10 roots, 6 extrema and 10 intersections; the ∞ symbol means there are more inside the view. It accepts two functions of a single variable x, up to 300 characters each. Functions with vertical asymptotes are drawn interrupted and validated so the jump is not mistaken for a root. Nothing is stored: reloading the page discards the expressions.
Examples
- A parabola and its notable points
x^2 - 4 → roots at x = −2 and x = 2; minimum at (0, −4) - An equation with no simple algebraic solution
cos(x) = x → single root at x ≈ 0.7391 - Two curves and where they cross
f = x^2 · g = x + 2 → (−1, 1) and (2, 4)
Frequently asked questions
Can I graph an equation instead of a function?
Yes. When you type something like cos(x) = x, the grapher plots the difference between both sides and marks its roots: each one is a solution of the equation. That is why, in that mode, the value at x = 0 is labelled x=0 rather than f(0): it represents the difference, not the function.
Why does it miss a root I know exists?
The engine detects both sign changes and local minima of |f(x)|, so abs(x), x^2 and other tangent roots remain marked while panning or zooming as long as they stay inside the visible range. A very narrow oscillation or feature can still fall between samples. Zooming in concentrates the same 500 samples and lets the engine resolve it.
What does the ∞ symbol at the end of a list mean?
That there are more roots, extrema or intersections inside the visible range than the list can show. This is common for periodic functions such as sin(x), which have infinitely many roots. It also appears when both functions coincide across the whole range, where listing intersection points would make no sense.
Are the functions kept when I reload the page?
No. Everything lives in the tab's memory: reloading or closing it discards the expressions and the view.