Rolle's Theorem Point Finder Calculator
The Rolle's theorem point finder checks a polynomial on a closed interval, confirms that its endpoint values agree, differentiates it, and locates every derivative-zero point strictly between the endpoints.
Run — free
It then identifies the leftmost qualifying point as the primary answer while retaining any additional valid points. This makes the result useful for homework checks, worked examples, and automated calculus exercises without hiding whether the theorem's essential endpoint condition was actually satisfied.
What Rolle's theorem guarantees
Rolle's theorem applies when a function is continuous on a closed interval, differentiable throughout the corresponding open interval, and has equal values at the two endpoints. Every polynomial automatically meets the continuity and differentiability requirements, so the decisive input check is whether f(a) equals f(b). When it does, the theorem guarantees at least one number c strictly between a and b for which f'(c) equals zero. Geometrically, the graph has a horizontal tangent somewhere between two endpoint locations at the same height. This calculator evaluates both endpoint values before solving the derivative, rather than assuming that the theorem applies merely because an interval was supplied. If the values differ beyond a small scale-aware numerical tolerance, it returns an input error instead of presenting a critical point as a Rolle point. The distinction matters: a polynomial may have derivative zeros even when its endpoint values differ, but those points are not guaranteed by Rolle's theorem on the interval you entered. The returned endpoint value therefore documents the condition that supported the conclusion.
How to enter and interpret the polynomial
Enter a polynomial using x as the variable, decimal coefficients, and a caret for powers, for example x^3 - 3x or 2x^4 - 8x^2 + 6. Multiplication signs are optional, so 4*x and 4x mean the same thing. Exponents must be non-negative integers, and the bounded parser accepts degrees through twelve. Then enter interval_start and interval_end with the left endpoint smaller than the right endpoint. The result's point field is the leftmost qualifying value of c, which supplies one unambiguous answer when an exercise asks for “the point.” The points array contains every distinct derivative-zero value isolated inside the interval, because Rolle's theorem promises existence but does not promise uniqueness. Each entry also reports the derivative evaluated at the rounded point. A tiny displayed residual can occur when an irrational root is rounded to the requested precision; it does not mean the root failed the equation. The derivative_coefficients array lists coefficients in descending powers, allowing you to verify the differentiation independently or reconstruct the derivative polynomial for a written solution.
How the calculation finds reliable interior points
The algorithm first combines like powers and evaluates the polynomial with Horner's method. It constructs the derivative exactly from the entered coefficients, then isolates its real roots recursively. The roots of each derivative divide the interval into sections where the polynomial being solved is monotonic. Sign changes in those sections are refined by bounded bisection, while derivative boundary points are checked separately so repeated roots are not missed simply because their graphs touch zero without crossing it. Only roots strictly inside the open interval are retained; an endpoint where the derivative happens to be zero does not satisfy Rolle's conclusion for c. All loops have fixed bounds, the degree and input length are capped, and the calculation uses no network, randomness, or clock. Precision controls output rounding, not whether the theorem's endpoint condition is silently relaxed. For classroom work, use the returned point as a numerical result and show the symbolic steps: compute f(a) and f(b), state that polynomials are continuous and differentiable, differentiate f, and solve f'(c)=0 with a<c<b. That presentation connects the calculator result to the theorem's hypotheses and conclusion.
What you can do with it
Check a calculus exercise
Verify equal endpoint values and compare your derivative-zero point with a deterministic numerical result.
Find multiple valid Rolle points
See every interior derivative root when the theorem guarantees existence but the polynomial provides several answers.
Generate worked-example data
Use the endpoint value, derivative coefficients, and interior points to prepare a transparent step-by-step solution.
FAQ
What does the calculation cost?
It runs free in your browser. An API request costs $0.002.
Why must the endpoint values be equal?
Equal endpoint values are one of Rolle's theorem's hypotheses. Without them, a derivative zero may exist, but Rolle's theorem does not guarantee it on that interval.
Why can the result contain more than one point?
The theorem guarantees at least one qualifying point, not exactly one. A polynomial derivative can have several real roots inside the interval.
Are interval endpoints included as possible answers?
No. The guaranteed point c must lie in the open interval, so derivative zeros exactly at either endpoint are excluded.
What polynomial syntax is supported?
Use x, decimal coefficients, plus or minus signs, and non-negative integer powers written with ^. Multiplication signs are optional, and the maximum degree is twelve.
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/rolle-theorem-point \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"polynomial":"x^2 - 4x + 3","interval_start":1,"interval_end":3}'const res = await fetch("https://api.kit.forhosting.com/calculus/rolle-theorem-point", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"polynomial": "x^2 - 4x + 3",
"interval_start": 1,
"interval_end": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calculus/rolle-theorem-point",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"polynomial": "x^2 - 4x + 3",
"interval_start": 1,
"interval_end": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calculus/rolle-theorem-point", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"polynomial":"x^2 - 4x + 3","interval_start":1,"interval_end":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"polynomial":"x^2 - 4x + 3","interval_start":1,"interval_end":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calculus/rolle-theorem-point", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"polynomial": "x^2 - 4x + 3",
"interval_start": 1,
"interval_end": 3
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calculus.rolle_theorem_point",
"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.
Limits
max_degree | 12 |
max_input_chars | 500 |
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. |