Graphing Calculator

Plot Any Function, Then Get the Numbers: Roots, Turning Points, Area & Regression

Graph a Function and Get the Numbers Back

Most free graphing tools hand you a picture and nothing else. You get pixels, not numbers, so you still have to work out the intercepts, the turning points and the enclosed area somewhere else, usually by hand. This one draws the curve and then measures it. Type an expression, and the tool reports every real root, every local maximum and minimum, the coordinates of the turning points, the slope of the tangent at any x you name, the definite integral between two bounds, and the area trapped between two curves with the bounds worked out for you from their intersection points. Regression is built in too, so you can paste a column of data and get a fitted equation with the coefficient of determination and the residuals.

Expressions — use x as the variable
Drag to pan · scroll to zoom

Numerical analysis

Regression & curve fitting

What This Graphing Calculator Computes

Every number on this page comes from a numerical method applied to your own expression, not from a lookup table. Roots are bracketed across the visible window and then narrowed by a bisection search that keeps halving the interval until the interval is shorter than a trillionth of a unit. Turning points are found the same way: the tool takes a central difference of your function, watches for the sign change that says the slope has flipped, and bisects to pin the x value down. Integrals use the Gauss-Kronrod fifteen point rule, which evaluates a fifteen point rule and a seven point rule on the same fifteen abscissae and compares them. When the two agree to a tolerance set against the size of the integrand, the panel is accepted; when they do not, the panel is halved and tried again, all the way down. An interval that is hundreds of units wide therefore costs nothing extra, while one full of tight oscillations costs as many panels as it needs. Intersections between two curves come from the sign changes of the difference of the two functions, which means a crossing is only ever reported when the two curves genuinely swap sides.

Every kind of curve in one page

  • Function — y = f(x). The default, and the only mode the analysis panel works on.
  • Sideways — x = g(y). Needed for sideways parabolas, circles written as x in terms of y, and sideways ellipses.
  • Parametric — x(t), y(t) in one row. Cycloids, spirals, Lissajous figures and anything a single function cannot express.
  • Polar — r(θ). Rose curves, cardioids, limacons and conic sections in polar form.
  • Implicit — F(x, y) = 0. Circles, ellipses, hyperbolas and Cassini ovals, drawn by scanning each column for sign changes in F.

How the regression works

Paste your data as x and y values separated by commas, spaces, tabs or new lines, then pick a model. Linear, quadratic and cubic fits solve the normal equations with partial pivoting, so they stay stable even when the x values are large and badly scaled. Exponential, logarithmic and power fits take logs on both sides first and are only offered when every y value is positive, because a logarithm of a negative number is not a number. You get the equation in a form you can paste straight into a calculator, the coefficient of determination, the correlation coefficient, and the root mean square error of the residuals. The fitted curve is drawn over your data on the graph so you can see immediately whether the model is telling you the truth.

Why This Is Not Just Another Desmos

Desmos is a beautiful drawing tool and it stays that way: it plots, and it leaves the arithmetic to you. The difference here is that the measurement happens in the same place as the drawing. Nobody has to open a second tab, guess a bound, and then check a definite integral against a table of values. If you only want a picture, a graph pad is the right instrument. If you want the four decimal places that have to be right, that is a different job, and it is the job this page does.

Why Use This Instead of AI

A language model answering from memory will happily invent a root, round an integral to two significant figures, or hand you a regression line fitted to numbers you never gave it. Arithmetic that depends on your specific expression and your specific bounds is exactly where that breaks down, and you have no way to check the answer without doing the work yourself. Here the calculation is done by an actual numerical solver on the actual expression you typed, and the result is reproducible: change the window, the numbers move the way they should, and a second run returns the same value. Nothing is uploaded either, because there is no server to upload it to.

How to use it

  1. Start with the first input and type your function using x as the variable, for instance x^2-4 or sin(x)/x. Multiplication does not need a sign, so 2x and 2sin(x) both work.
  2. Add a second row when you want a second curve, and change a row's type when you need a polar curve, a parametric pair, an implicit equation or a sideways function written as x in terms of y.
  3. Drag inside the graph to pan and use the wheel or the zoom buttons to change the window; the analysis follows the window, so zoom in on a region and the roots it reports are the roots in that region.
  4. Choose a root, a maximum or a minimum in the results list and the graph will jump to it and mark it.

Function reference

Constants: pi, e, tau, phi. Powers use ^. Functions: sin cos tan asin acos atan atan2, sinh cosh tanh, exp ln log log2 log10, sqrt cbrt abs sign, floor ceil round, min max mod pow hypot, deg rad. Postfix ! is the factorial of a non-negative integer. In polar mode the angle is theta (th also works), in parametric mode it is t, and in implicit mode you get both x and y.

Frequently Asked Questions

What does this graphing calculator do that others do not?

Graphing calculators are not exactly a new idea, so it is fair to ask what this one adds. The short answer is that the measuring is built in. Other tools either draw and stop, or they sit behind a login, or they only handle the one function you happened to load. Here the same page that draws a parabola also finds its roots, its vertex, the area under it between two chosen numbers, and the area between it and a second curve, and then fits a regression line to whatever data you paste in. It also stays in your browser, which means no account, no upload and no daily limit.

How do I find the roots or x-intercepts of a function?

A root is a value of x that makes the function equal to zero, and it shows up on the graph wherever the curve crosses the x-axis. The tool looks for sign changes across the whole window you are looking at, so a root that sits outside the current view will not appear until you zoom out far enough to contain it. Each root is then narrowed by bisection, which means the printed value is correct to about twelve decimal places rather than being a grid artefact from however many pixels the canvas happens to have. If the curve is tangent to the axis without crossing it, that is a repeated root and it will not produce a sign change, so look for it in the turning points instead.

How does it find turning points, maxima and minima?

A turning point is where the curve stops going one way and starts going the other, so the derivative changes sign there. For a local maximum the derivative goes from positive to negative; for a local minimum it goes from negative to positive. The tool finds these by taking a central difference of your function at closely spaced points and watching for a sign change in that, then bisecting to pin the x value down. Once it has x it evaluates the second difference to decide which of the two kinds it is, and it reports the y value there as well. A point of inflection, where the curve bends the other way but keeps going the same direction, is a different animal and is not listed as a turning point.

How is the area between two curves calculated?

The area between two curves is the integral of the vertical distance between them, so the tool has to know where the top curve stops being the top one. It does that by finding every intersection in the range you gave, sorting those x values, and integrating the difference separately across each resulting slice. A slice where the second curve is on top has its sign flipped, which is what makes the answer come out positive even when you enter the curves in the wrong order. This is why the area between two circles or a circle and a line comes out right even though the top curve changes halfway through, and it is the step that hand-rolled setups usually miss.

What is R² and how should I read the regression output?

The coefficient of determination, usually written R squared, is the proportion of the variation in your y values that the fitted model accounts for. One means the model reproduces the data exactly, zero means it explains nothing beyond a flat line, and values in between sit in proportion to how well it works. Read it together with the residual list rather than on its own, because a straight line through data that curves can still post a middling R squared while fitting some regions well and others badly. The root mean square error tells you the typical size of the misses in the units of your own y values, which is usually the more useful number when you are deciding whether the model is good enough to use.

Is my data private? Does anything get uploaded?

Everything you type stays on your own machine. There is no account, the data never leaves the browser, and the analysis runs on your processor through code that shipped with the page. That matters more here than in most tools because the data people fit regressions to tends to be real: sales figures, measurements, marks, whatever you are trying to understand. If you close the tab it is gone, and if you want to come back to a graph, the address bar holds the whole thing, so a bookmark or a shared link reproduces the same curves on any machine.

How accurate are the numbers, really?

The honest answer depends on what you typed. For roots, turning points, intersections and slopes the tool bisects an interval it has already proved contains a crossing, so the printed digits are good right down to the twelfth, and you can confirm it by changing the zoom and watching the number not move. Integrals are exact to roughly ten significant digits for anything with a continuous integrand, and they stay accurate for sharp corners and jumps because the panel splitting reacts to the disagreement between the two rules rather than to a smoothness assumption. The one case to be careful about is an improper integral, where the function runs off to infinity at one of your bounds, the sort of thing you get from a square root of something that reaches zero at the edge. The rule never samples the endpoints, so it cannot see the blow-up, and the answer it prints there is right to about four or five significant digits. The tool notices this and puts a warning card next to the number instead of letting you believe the last digit.

Why is my root not showing up?

Three things cause it. First, the root may be outside the window you are currently looking at, because the search only covers what is visible — press Fit to data or reset the zoom. Second, a root that touches the x-axis without crossing it (an even-multiplicity root, such as the zero in x²) produces no sign change and is therefore invisible to a bracketing search; such a point is a stationary point and shows up in the turning points list instead. Third, the expression may contain a domain error around the root, for instance sqrt(x)/x at zero, in which case there is no sign change to find either.

Can I graph a circle or an ellipse?

Yes, using an implicit row. Enter (x-1)^2+(y-2)^2=9 as the expression and switch the row type to Implicit; the parser reads the equals sign as "set this to zero". The same row also handles x^2/16+y^2/9=1 for an ellipse and x^2-y^2=1 for a hyperbola. Implicit rows are for drawing only: roots, turning points, integrals and area all need an explicit y = f(x), so enter the upper half as a function row when you want to measure under the curve.

Comments & Ratings

Be the first to comment.

References