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.

Updated July 2026 · How this works

Example calculation — edit any field to use your own numbers

Worth knowing
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.

Student checking a quadratic before solving by hand
f(x) = x^2 - 5x + 6, X range -1 to 6
The graph shows two roots at x = 2 and x = 3, with a y-intercept at 6 and a vertex minimum near (2.5, -0.25). Before factoring, the student can confirm the parabola opens upward and crosses the x-axis twice, meaning two real solutions exist — no wasted algebra on an impossible factoring attempt.
Engineer visualizing a damped oscillation model
f(x) = sin(x) * e^(-0.3*x), X range 0 to 20
The graph reveals how the sine wave loses amplitude over time, crossing zero at each pi-multiple while the envelope shrinks toward zero. The vertex tracker shows the first peak near x = 1.25 and confirms the function stays bounded — exactly the behavior needed before plugging it into a control system model.
Teacher building an exam problem with a known root structure
f(x) = (x - 2)*(x + 3)*(x - 1), X range -5 to 4
Three roots appear at x = -3, x = 1, and x = 2, with the graph crossing negative between x = -3 and x = 1, then positive briefly, then negative again. The teacher can instantly verify the sign pattern and local extrema match the intended problem difficulty without expanding the polynomial by hand.
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?

How do I enter exponents and powers in the function box?
Use the caret symbol ^ for exponents — for example, x^2 for x squared or x^3 for x cubed. Multiplication must be written explicitly with *, so 3x should be typed as 3*x. The most common input mistake is writing 3x or 2(x+1) without the * symbol, which the parser cannot interpret.
Why are my roots missing or showing up in the wrong place?
Root detection uses numerical bisection, which requires the function to cross zero within your plotted x range. If your x range does not include a root, it will not appear. Also, roots in very flat or nearly-tangent regions may be missed because the function does not clearly change sign — try narrowing your x range around the suspected root to improve detection accuracy.
What functions and operators does the graphing app support?
Supported operators include +, -, *, /, and ^ for powers. Built-in functions include sin, cos, tan, sqrt, log (base 10), ln (natural log), and abs. Constants pi and e are recognized. Trigonometric functions expect radians — sin(3.14159) is approximately zero, not sin(180 degrees).

Need something this doesn't cover?

Suggest a tool — we'll build it →