Graphing Math App
What does your function look like, and where does it cross zero?
Type any function — linear, quadratic, trigonometric, or exponential — and instantly see it plotted on a coordinate plane. The app calculates roots, the y-intercept, vertex (for quadratics), and key turning points so you can verify your work or understand the shape before solving by hand.
—
Send feedback
💡 Share your idea or report a problem
✓ Thanks! We'll take a look.
Learn more
How It Works
The formula, explained simply
Imagine walking along a number line and measuring your height above the ground at every step — the graph of a function is exactly that record of heights plotted as a continuous curve. Every x value you step through gets paired with a y value from your equation, and the result is a shape that makes the equation visible.
The app samples 600 evenly-spaced x values across your chosen range and computes f(x) for each one. Those point pairs are then connected in order on a canvas element, producing the curve. The closer together those sample points are — which depends on how narrow your x range is — the more accurately the curve represents the true function.
Root detection works by watching for sign changes: wherever the function goes from positive to negative or vice versa, a root must lie between those two samples. Bisection refines the crossing to four decimal places by repeatedly halving the interval. The y-intercept is simply f(0), evaluated directly. The displayed vertex min and max are the lowest and highest y values found across all 600 samples in your range — for a true parabola vertex, this is accurate to within the sample spacing.
When To Use This
Right tool, right situation
Use this tool when you need to understand the shape of a function before solving it analytically, when you want to verify that your algebraic answer matches a visual root, or when you are comparing how different parameter values change the curve's behavior. It is also useful for catching impossible equations — if you expect two roots but the graph never crosses the x-axis, your setup has an error worth finding before you proceed.
Do not rely on this tool for high-precision root finding when the function is nearly tangent to the x-axis (just touching but not crossing). The bisection method requires a clear sign change, and a double root will register as zero or no roots depending on numerical noise. For repeated roots or near-tangent crossings, symbolic algebra is more reliable.
Also recognize that this app evaluates functions numerically, not symbolically. It cannot simplify, factor, or differentiate your expression. If you need an exact closed-form vertex or exact root expressions like (2 + sqrt(5)) / 3, you need a computer algebra system, not a numerical plotter.
Common Mistakes
Why results sometimes look wrong
The single most common mistake is skipping the multiplication symbol. Writing 3x instead of 3*x, or 2(x+1) instead of 2*(x+1), produces a parse error or an unintended result because the parser treats adjacent characters as a single token, not as implied multiplication. Always include * between a coefficient and a variable.
A second frequent error is choosing an x range that does not include the interesting part of the function. If you plot sin(x) from 0 to 0.1, you see almost a flat line — the oscillation only becomes visible over a range of at least 2*pi (approximately 6.28 units). Match your x range to the scale of the phenomenon you are investigating.
A third mistake involves trigonometric inputs: this app uses radians, not degrees. Typing sin(90) does not give 1 — it gives approximately 0.894, because 90 radians is a very large angle. To plot a sine wave that peaks at x = 90 degrees, you would need to account for the conversion or use sin(x * pi / 180) as your function.
The Math
Worked examples and deeper derivation
Every plotted point solves the equation y = f(x) for a specific x. The collection of all such points forms the graph. For a linear function like y = 2x + 1, that collection is a straight line. For a quadratic like y = x^2 - 4x + 3, it is a parabola. The shape emerges from the algebra.
Roots are x values where f(x) = 0 — the graph crosses or touches the x-axis. A quadratic can have zero, one, or two real roots depending on the discriminant (b^2 - 4ac). The vertex of a parabola y = ax^2 + bx + c sits exactly at x = -b/(2a), which this app approximates numerically by scanning for the minimum or maximum y value.
The y-intercept is always f(0). If x = 0 falls outside your plotted range, the intercept is not visible — but it still exists. The function range over an interval [a, b] is the set of all output values: from the minimum f-value to the maximum f-value found in that window. A function that dips to -2 and peaks at 8 has a range of [-2, 8] on that interval, regardless of what happens outside it.
Expert Unlock
The thing most explanations skip
The 600-sample approach means that rapidly oscillating functions — like sin(100*x) plotted over a range of 0 to 10 — will alias badly. The sample spacing would be about 0.017 units, but the function completes a full cycle every 0.063 units, so you would see far fewer oscillations than actually exist. Narrow the x range to 0 to 0.5 to see the true frequency. This is the numerical equivalent of the Nyquist sampling problem: the sample rate must exceed twice the function's frequency to represent it accurately.
Why does my graph look flat or wrong after I type the function?
Need something this doesn't cover?
Suggest a tool — we'll build it →