Horizontal tangent points calculator
The curve x^3 - 3x flattens out at (-1, 2) and (1, -2), where its derivative 3x^2 - 3 is zero. Enter the coefficients of any polynomial and get every real point with a horizontal tangent, ready to plot or tabulate. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Coefficients
- 1, 0, -3, 0
- Degree
- 3
- Polynomial
- x^3 - 3x
- Derivative coefficients
- 3, 0, -3
- Derivative degree
- 2
A horizontal tangent line on a smooth graph is the geometric picture of a critical point: the instantaneous slope is zero, so the derivative of the function vanishes. For a univariate polynomial given by its coefficients, that condition becomes a second polynomial equation of one lower degree that can be solved with classical root-finding rather than graphing software or a full computer-algebra system. This horizontal tangent line points calculator accepts the coefficient list highest degree first, builds the formal derivative, finds every distinct real root of that derivative, and returns the ordered x values together with the function heights y equals p of x so you can plot or tabulate the points immediately.
What a horizontal tangent means for a polynomial
A tangent line at a point x0 has slope p prime of x0, so the tangent is horizontal exactly when p prime of x0 equals zero. Those x0 are the critical points of p in the calculus sense: local maxima, local minima, or horizontal inflection points depending on the second derivative and the surrounding graph. Complex non-real roots of the derivative are omitted because a real plane graph only shows real abscissae.
Degree one non-constant polynomials have constant non-zero slope, so the solution list is empty rather than invented. Degree zero constants are rejected as invalid input because the graph is a horizontal line and every x would qualify, which is not a finite list of points. Degree is capped so isolate workers stay bounded while still covering the cubics, quartics, and quintics that dominate precalculus and first-year calculus problem sets.
How the solver finds p′(x) = 0
The resulting derivative polynomial is cleaned of leading zeros from exact cancellation, formatted for display, and passed to a deterministic real-root pipeline. When every coefficient is near an integer, the rational root theorem supplies a finite candidate set; hits are peeled with synthetic division so multiplicities and residual factors shrink quickly. Linear residuals solve by division; quadratic residuals use the discriminant formula and keep only real roots.
Higher residual degrees are isolated without external libraries by recursively locating critical points of the residual, applying a Cauchy magnitude bound, bisecting sign-change intervals, and polishing with Newton until residual and step size fall under tight epsilon thresholds. The formula field restates the geometric contract in one line for UI captions and LMS feedback.
What you can do with it
Calculus homework and critical-point checks
Students enter polynomial coefficients and verify every real x where the tangent is horizontal against hand work with the power rule and factoring.
Exam banks and LMS auto-grading
Generate cubics and quartics with known critical points and mark submissions against this deterministic p′(x)=0 oracle instead of brittle string matching.
Notebooks and lightweight design scripts
Locate flat spots on low-degree response curves in calibration or cost models without pulling a full symbolic algebra package into the pipeline.
FAQ
How do I find horizontal tangent points of a polynomial?
Send coefficients highest degree first (for example [1, 0, -3, 0] for x³ − 3x).
What does a horizontal tangent mean?
The tangent line at x has slope zero, so p′(x)=0. Those abscissae are the real critical points of the polynomial on the real line.
Why are constant polynomials rejected?
A constant graph is itself a horizontal line, so every x would qualify. The solver requires a non-constant polynomial and returns a finite list of points where p′ vanishes.
What are the horizontal tangent points of x^3 - 3x?
The derivative is 3x^2 - 3, which is zero at -1 and 1. The matching heights are 2 and -2, so the curve is flat at (-1, 2) and at (1, -2).
Why does a straight line give no points?
A polynomial of degree one has the same nonzero slope everywhere, so its tangent is never horizontal. The calculator returns an empty list instead of inventing a point that does not exist.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/calculus/tangent-horizontal-points \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"coefficients":[1,0,-3,0]}'const res = await fetch("https://api.kit.forhosting.com/calculus/tangent-horizontal-points", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"coefficients": [
1,
0,
-3,
0
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/tangent-horizontal-points",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"coefficients": [
1,
0,
-3,
0
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/tangent-horizontal-points", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"coefficients":[1,0,-3,0]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"coefficients":[1,0,-3,0]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/tangent-horizontal-points", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"coefficients": [
1,
0,
-3,
0
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.tangent_horizontal_points",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What a horizontal tangent means for a polynomial
Write a polynomial as p of x equals a_n x to the n plus a sub n minus one times x to the n minus one down to the constant term a_0. The derivative p prime is the formal term-by-term rule n a_n x to the n minus one plus and so on; no limits are taken at runtime because polynomials are smooth everywhere. Multiplicity is collapsed into a single listed x: a flat inflection that touches with multiplicity two still appears once in the x_values array, which is what graphing and table-of-values workflows usually want.
How the solver finds p′(x) = 0
After validating a non-empty coefficient array with non-zero leading term, the engine differentiates in highest-first order: each coefficient a_k of x to the k becomes k a_k of x to the k minus one. The final x_values array is sorted ascending and deduplicated; each matching y is p evaluated by Horner’s method so clients receive complete point pairs without recomputing the original polynomial.
Input contract, response shape, and where the API fits
Example: one, zero, negative three, zero represents x cubed minus three x, whose derivative three x squared minus three vanishes at x equals negative one and x equals one, with y values two and negative two respectively. Use the free in-browser tool for one-off homework checks and lecture demos without installing Maxima or a local NumPy stack. POST a JSON body with the required coefficients array of finite numbers, highest degree first; the alias coeffs is accepted for convenience. On success the response echoes cleaned coefficients, degree, a human-readable polynomial string, derivative_coefficients, derivative_degree, a derivative display string, sorted x_values, parallel y_values, point_count, and the formula label. Missing fields, non-finite entries, a zero leading coefficient, degree above the safety cap, or a constant polynomial fail with invalid_input and are not billed. Use the API when a tutoring platform, coding-assessment sandbox, curriculum generator, or notebook pipeline needs a stable contract under prepaid KIT balance at $0.002 per successful item. Pair the x and y arrays with your own plotter if you need a sketch of the curve and its horizontal tangents—this endpoint solves for the points only.
Technical questions
Can a linear polynomial have a horizontal tangent?
Only if it is actually constant. A non-constant linear polynomial has constant non-zero slope, so point_count is zero and x_values is empty.
What does the horizontal tangent points calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.