Quadratic maximum-minimum calculator
Find the turning point of a parabola in one step: f(x) = x² − 6x + 5 has its minimum value −4 at x equal to 3, because a is positive and the graph opens upward. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- A
- 1
- B
- -6
- C
- 5
- Value
- -4
- Equation
- f(x) = x^2 - 6x + 5
- Kind
- minimum
- X
- 3
A quadratic function f of x equals a x squared plus b x plus c graphs as a parabola. The leading coefficient a decides the orientation: when a is positive the arms open upward and the turning point is a global minimum; when a is negative the arms open downward and the turning point is a global maximum. This quadratic maximum-minimum calculator locates that turning point without calculus. The input where the extreme occurs is always x equals negative b over two a, and the extreme value is the function evaluated there, equivalently c minus b squared over four a. Send the three finite coefficients. The response names the kind of extremum from the sign of a, returns the input x, and returns the extreme value itself. There is no network call, no sampling, and no date.
Why the sign of a decides a maximum or a minimum
Every non-degenerate quadratic is a parabola, and a parabola has exactly one turning point. Completing the square rewrites f of x as a times open parenthesis x minus h close parenthesis squared plus k, with h equal to negative b over two a and k equal to c minus b squared over four a. The squared factor is never negative, so the smallest it can be is zero, which happens only at x equals h.
If a is positive, a times that square is at least zero and f of x is at least k: the vertex is a global minimum and the graph opens upward. If a is negative, a times that square is at most zero and f of x is at most k: the vertex is a global maximum and the graph opens downward.
Calculus reaches the same pair: the first derivative two a x plus b vanishes at x equals negative b over two a, and the second derivative two a is positive for a minimum and negative for a maximum. The axis of symmetry is the same vertical line x equals h, so the answer is also the high or low point you would read off a sketch.
When a is exactly zero the identity collapses and there is no unique vertex, which this capability refuses instead of pretending a linear or constant expression has a quadratic extremum.
What you enter, what you get and a worked example
On success the body echoes a, b, and c after stable rounding; an equation string rewritten as f of x for display; kind as maximum or minimum; x as the vertex abscissa; value as the extreme function value; vertex as the two-element array of those coordinates; opens as up or down; and a formula string restating the closed forms. Optional fields that do not apply are omitted, never returned as null.
Example of a minimum: a equals one, b equals negative six, c equals five gives f of x equals x squared minus six x plus five, opens up, kind minimum, x equals three, and value equals negative four, because the vertex formula yields three and one times nine minus six times three plus five equals negative four.
Example of a maximum: a equals negative two, b equals eight, c equals negative three gives f of x equals negative two x squared plus eight x minus three, opens down, kind maximum, x equals two, and value equals five. Pair the response with your own plotter if you need a sketch; this capability reports the extremum only and does not emit graphs, roots, or multi-step prose beyond the formula field. Twelve-digit rounding keeps goldens stable across runtimes without inventing extra digits.
Who uses a maximum or minimum check
Algebra courses introduce the vertex as the first optimization problem that does not need calculus, and entrance exams still ask students to state whether a given quadratic has a maximum or a minimum and to name both the input and the value. Tutoring platforms and LMS graders need a deterministic oracle that classifies the sign of a and evaluates k instead of accepting a vertex that a learner computed with the wrong sign on b. Failed validation does not consume balance.
Keep requests small, treat a equals zero as a hard error, and you get reproducible extrema for homework, plugins, and edge workers without standing up symbolic math infrastructure of your own. Related tools that solve for roots, complete the square, or list geometric focus data answer different questions; use this one when the question is the extreme value and where it occurs.
What you can do with it
Classroom vertex checks
Let students submit a, b, and c and verify whether the quadratic has a maximum or a minimum, plus the vertex input and the extreme value.
Exam and LMS auto-grading
Mark max-min items with a deterministic oracle that rejects a equals zero and never invents a turning point for a linear expression.
Notebooks and quadratic models
Evaluate the peak or trough of a fitted parabola in a script without importing a full computer-algebra library.
FAQ
How do I find the maximum or minimum of ax² + bx + c?
Send finite numbers a (non-zero), b, and c. If a > 0 the result is a minimum; if a < 0 it is a maximum.
How does the sign of a decide max versus min?
A positive leading coefficient opens the parabola upward, so the vertex is the global minimum. A negative leading coefficient opens it downward, so the vertex is the global maximum.
What happens if a is zero?
When a is zero the expression is linear or constant and has no unique quadratic maximum or minimum. That failure is not billed.
Is the vertex the same as the extreme value?
The vertex is the point (x, value). The field x is the input where the extreme occurs; value is the maximum or minimum itself; kind says which of the two it is.
How do I find the lowest point of x² − 6x + 5?
Compute −b/(2a), which gives 3 for this function, so the minimum is at 3. The value there, c − b²/(4a), is −4, so the lowest point of the parabola is (3, −4).
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/algebra/quadratic-max-min \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1,"b":-6,"c":5}'const res = await fetch("https://api.kit.forhosting.com/algebra/quadratic-max-min", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1,
"b": -6,
"c": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/quadratic-max-min",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1,
"b": -6,
"c": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/quadratic-max-min", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1,"b":-6,"c":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1,"b":-6,"c":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/quadratic-max-min", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"a": 1,
"b": -6,
"c": 5
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.quadratic_max_min",
"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
When a is zero the expression is not quadratic and the task fails with invalid_input rather than inventing a vertex. Successful API calls are billed at $0.002; validation failures are not billed.
Why the sign of a decides a maximum or a minimum
This endpoint never differentiates and never completes the square as an intermediate rewrite; it evaluates the two closed forms and classifies the result from the sign of a. That is the search people type as quadratic maximum minimum calculator: not the roots of an equation, not a geometric focus and directrix, and not a conversion into vertex form for its own sake, but the extreme value and the input where it occurs.
Input contract, response fields, and worked numbers
POST a JSON object with three required finite numbers: a, the non-zero leading coefficient; b, the linear coefficient; and c, the constant term. Each field may arrive as a JSON number or as a numeric string; missing values, empty strings, NaN, and Infinity fail with invalid_input naming the field. If a is zero, or so close to zero that it cannot define a parabola, the request is rejected because ax squared plus bx plus c would be linear or constant and would not have a unique quadratic maximum or minimum.
Where a quadratic max-min API earns its keep
Physics and engineering notebooks reduce projectile height, cost parabolas, and small-signal quadratic models to the same three coefficients; calling a tiny parse endpoint avoids pulling a computer-algebra system for one closed form.
Technical questions
What does the quadratic maximum-minimum calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.