Concave up intervals calculator
For x³ − 3x the second derivative is 6x, so the curve is concave up exactly on (0, +∞). Enter the coefficients, highest power first, to get both derivatives and every open interval where the second stays positive. 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
- First derivative coefficients
- 3, 0, -3
- First derivative
- 3x^2 - 3
A twice-differentiable graph is concave up on an open interval when its second derivative is strictly positive there: the slope is increasing and the curve bends like a cup that can hold water. For a univariate polynomial given by a coefficient list, the second derivative is another polynomial that can be built with the power rule alone and analysed with a classical sign chart—no graphing calculator, no computer-algebra subscription, and no floating-point black box that disagrees with hand factoring. This concave up intervals calculator accepts coefficients highest degree first, forms p prime and p double prime, finds every distinct real root of the second derivative, tests the open pieces of the real line between those roots, and returns the open intervals where p double prime stays positive, together with readable polynomial strings for classroom display.
What concave up means for a polynomial
The graph is concave up on an open interval I when p double prime of x is strictly greater than zero for every x in I. At an isolated root of p double prime the second derivative is zero, so that point is excluded from every open concave-up interval even when the sign is positive on both sides (an even-multiplicity touch) or only on one side (an odd-multiplicity sign change, the usual inflection setting).
Complex non-real roots of p double prime never appear in the break list because a real-line sign chart only uses real abscissae. Degree zero and degree one polynomials have second derivative identically zero, so they are never strictly concave up on any open interval and the result list is empty rather than invented. Degree two yields a constant second derivative: if the leading coefficient is positive the whole real line is concave up as one open interval from minus infinity to plus infinity; if negative, the list is empty.
Higher degrees produce a non-constant p double prime whose real roots partition the line into finitely many open pieces that this solver labels with interval notation.
How the solver builds the p″ sign chart
After validating a non-empty coefficient array with non-zero leading term, the engine differentiates twice in highest-first order and cleans leading zeros from exact cancellation. The second-derivative polynomial is formatted for display and, when its degree is at least one, passed to a deterministic real-root pipeline shared with other pure calculus tools in the catalogue. 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. Sorted distinct real roots become the break points of the sign chart.
Each open piece—from minus infinity to the first root, between consecutive roots, and from the last root to plus infinity—is tested at a midpoint (or a unit step beyond an unbounded end). Roots themselves are never included because concavity up here means strictly positive second derivative.
What you can do with it
Calculus homework and concavity checks
Students enter polynomial coefficients and verify open intervals of concavity up against hand work with the second derivative and a sign chart.
Exam banks and LMS auto-grading
Generate cubics and quartics with known concavity intervals and mark submissions against this deterministic p″(x)>0 oracle instead of brittle string matching.
Notebooks and lightweight design scripts
Locate cup-shaped regions 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 concave-up intervals of a polynomial?
Send coefficients highest degree first (for example [1, 0, -3, 0] for x³ − 3x).
What does concave up mean?
On an open interval the graph bends upward (like a cup) when the second derivative is strictly positive, so the first derivative is increasing there.
Why are roots of p″ excluded from the intervals?
Concavity up here means p″(x) > 0 strictly.
What happens when the polynomial is a quadratic?
Its second derivative is a constant. With a positive leading coefficient the whole real line is concave up, written as one interval from minus infinity to plus infinity; with a negative one, the list is empty.
Can a straight line or a constant be concave up?
No. Their second derivative is zero everywhere, so it is never strictly positive and the list of intervals comes back empty rather than inventing one. Concavity needs a polynomial of degree two or higher.
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/concave-up-intervals \
-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/concave-up-intervals", {
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/concave-up-intervals",
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/concave-up-intervals", 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/concave-up-intervals", 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.concave_up_intervals",
"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 concave up means for a polynomial
Write a polynomial as p of x equals a_n x to the n plus lower powers down to the constant term a_0. Differentiate twice with the power rule: each a_k x to the k becomes k a_k x to the k minus one, then again for the second derivative.
How the solver builds the p″ sign chart
Pieces where p double prime evaluates strictly positive are emitted as open intervals with left endpoint, right endpoint, and a compact notation string such as (0, +∞).
Input contract, response shape, and where the API fits
Example: one, zero, negative three, zero represents x cubed minus three x, whose second derivative is six x, which is positive precisely on the open ray (0, +∞). 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, first and second derivative coefficient lists and display strings, the sorted real roots of the second derivative, the intervals array of left, right, and notation fields, interval_count, and a one-line formula caption for UI labels. Missing fields, non-finite entries, a zero leading coefficient, or degree above the safety cap 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 interval list with your own plotter if you need a sketch of the curve and its concavity regions—this endpoint returns the open sets where the graph holds water, not a rendered figure.
Technical questions
What about linear or constant polynomials?
Their second derivative is identically zero, so it is never strictly positive. interval_count is zero and intervals is an empty array.
What does the concave up intervals calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.