How to use the graphing calculator
- Type a function after y =, such as
x^2 - 2or2sin(x). Add up to 6 with the button or the example chips; tap a colour dot to hide a curve. - Drag the graph to move it, and pinch, scroll or use the + and − buttons to zoom. Tap or point at a curve to trace it and read off x and y.
- Read the roots, y-intercepts, turning points and intersections under the graph, open the table of values for exact numbers, and download the graph as a PNG or the table as a CSV.
What you can type
| To get | Type |
|---|---|
| Powers and roots | x^3, sqrt(x), cbrt(x), x^(2/3), nthRoot(x, 4) |
| Trigonometry | sin, cos, tan, sec, csc, cot, asin, acos, atan, sinh, cosh, tanh |
| Exponentials and logs | e^x, exp(x), ln(x), log(x) (base 10), log(x, b), log2(x) |
| Other | abs(x), floor(x), ceil(x), round(x), sign(x), mod(x, 3), min(x, 2), max(x, 2), x!, pi |
| Piecewise | x < 0 ? -x : x^2 (if x < 0 then −x, otherwise x²) |
Worked example
The calculator opens with y₁ = x² − 2 and y₂ = sin(x) on x from −10 to 10. y₁ crosses the x-axis at x = −1.41421 and x = 1.41421 (that is ±√2) and the y-axis at y = −2, and has its minimum at (0, −2). sin(x) crosses at every multiple of π in the window: −9.42478, −6.28319, −3.14159, 0, 3.14159, 6.28319 and 9.42478. The two curves meet twice, at (−1.06155, −0.873112) and (1.72847, 0.987596): check the second one with 1.72847² − 2 = 0.98761 and sin(1.72847) = 0.98760.
How it works
Each formula is parsed by math.js, an open-source maths library, into a function of x; anything that isn't a formula in x (assignments, text, unknown names) is rejected with a message instead of being run. Every curve is drawn from two points per pixel of width, with gaps where the function has no real value. Roots come from sign changes narrowed down by bisection, plus a search for points where a curve only touches the axis (like x² at 0); a sign change where the value shoots off to infinity is an asymptote and is skipped.
Tip: odd roots of negative numbers are real here, so x^(1/3) is drawn for negative x too (math.js on its own leaves that half out), while x^(1/2) still has no value there.