3×3 system of equations solver
Three equations, three unknowns, one answer: the textbook system x + y + z equal to 6, 2y + 5z equal to −4 and one more equation gives 5, 3 and −2. Cramer's rule shows every determinant, here −21. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Runs in your browser. Free, unlimited — your data never leaves this page.
This 3×3 system of equations calculator solves a linear system with three unknowns by Cramer's rule and returns the unique triple x, y, and z when the coefficient matrix is nonsingular. You provide a three-by-three matrix A and a length-three constants vector b for A · [x, y, z]ᵀ = b; the engine builds the four determinants D, Dx, Dy, and Dz and divides when D is nonzero. When the determinant is zero the system is dependent or inconsistent, so the tool rejects the input instead of inventing a free-variable description. The path is pure deterministic arithmetic: no network calls, no sampling, and no date-dependent shortcuts.
How coefficients and constants are read and how determinants stay finite
Each cell must be a finite decimal number; scientific notation is allowed, but empty strings, objects, and non-numeric tokens are rejected with a clear field path so a bad cell does not become a wrong root. Optional precision between zero and fifteen decimal places rounds the published x, y, z and the four determinants for stable display; the default is ten.
Determinant evaluation uses the standard expansion a11 times the cofactor of a11 minus a12 times its cofactor plus a13 times its cofactor, applied four times for D, Dx, Dy, and Dz. A determinant whose absolute value is at most one times ten to the minus twelve is treated as zero and rejected, which catches both exact singular matrices and near-singular floating-point junk without claiming a unique solution that is not there.
Where Cramer's rule fits in study, code, and verification
Students meet Cramer's rule when a linear-algebra unit introduces determinants before Gaussian elimination, when a textbook asks them to verify a unique triple by hand, or when they need a second method to check homework after row reduction. Teachers can pre-generate answer keys for modest integer systems without trusting opaque calculator apps that hide intermediate determinants or silently round away from textbook fractions that clean up to small integers.
Developers call the same contract from scripts to seed deterministic test vectors for graphics transforms, constraint blocks with three unknowns, or teaching platforms that must show D, Dx, Dy, and Dz alongside the solution. Contest practice often needs a fast, offline 3×3 solver so solutions can be checked without writing a full matrix library under time pressure.
Analysts and engineers use the unique triple when a small physical model collapses to three linear balances and they want an explicit Cramer path rather than a black-box LAPACK call for a system that small.
What you can do with it
Homework and exam answer keys
Solve textbook 3×3 systems with Cramer's rule and check the unique triple x, y, z against hand-worked determinants.
Small engineering balances
Resolve three linear unknowns from a 3×3 coefficient matrix when a unique Cramer solution is enough.
FAQ
What does the 3×3 system of equations solver cost?
It is free in your browser on this page.
How is the solution defined?
By Cramer's rule: D = det(A), Dx/Dy/Dz replace each column of A with b, then x = Dx/D, y = Dy/D, z = Dz/D when D ≠ 0.
What happens if the determinant is zero?
A zero determinant means the system is singular — dependent or inconsistent — so there is no unique solution.
Can I send a matrix larger than 3×3?
No. This tool accepts exactly a 3×3 coefficient matrix and a length-3 constants vector.
Are the results exact fractions?
No. The engine uses floating-point arithmetic and returns numbers rounded to the requested precision (default ten decimal places).
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/system-3x3 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"coefficients":[[1,1,1],[0,2,5],[2,5,-1]],"constants":[6,-4,27]}'const res = await fetch("https://api.kit.forhosting.com/algebra/system-3x3", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"coefficients": [
[
1,
1,
1
],
[
0,
2,
5
],
[
2,
5,
-1
]
],
"constants": [
6,
-4,
27
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/system-3x3",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"coefficients": [
[
1,
1,
1
],
[
0,
2,
5
],
[
2,
5,
-1
]
],
"constants": [
6,
-4,
27
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/system-3x3", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"coefficients":[[1,1,1],[0,2,5],[2,5,-1]],"constants":[6,-4,27]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"coefficients":[[1,1,1],[0,2,5],[2,5,-1]],"constants":[6,-4,27]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/system-3x3", 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,
1,
1
],
[
0,
2,
5
],
[
2,
5,
-1
]
],
"constants": [
6,
-4,
27
]
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.system_3x3",
"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_abs_coeff | 1000000000000000 |
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
Classic checks include the textbook system with rows [1,1,1], [0,2,5], [2,5,−1] and right-hand side [6,−4,27], which yields x = 5, y = 3, z = −2.
What a 3×3 linear system is and what the response contains
A three-by-three linear system asks for numbers x, y, and z that satisfy three simultaneous equations whose unknowns appear only to the first power. In matrix form that is A v = b, where A is the three-by-three coefficient matrix, v is the column of unknowns, and b is the right-hand side. Cramer's rule answers the nonsingular case with four determinants: D is det(A), Dx replaces the first column of A with b, Dy replaces the second column, and Dz replaces the third; then x equals Dx over D, y equals Dy over D, and z equals Dz over D. There is no approximate iterative solver presented as exact truth and no random starting guess: the engine either builds the closed-form Cramer quotients inside the supported numeric range or rejects the input with invalid_input. Rejected cases include missing coefficients or constants, non-numeric cells, wrong matrix shape, magnitudes beyond the published ceiling, non-finite intermediates, and a zero or numerically zero determinant that makes the system dependent or inconsistent.
How coefficients and constants are read and how determinants stay finite
The preferred fields are coefficients for the three-by-three matrix A and constants for the length-three vector b, but aliases a, matrix, and A for the matrix and b, rhs, and right_hand_side for the vector are accepted so spreadsheets, query strings, and typed forms can reuse the same contract. The engine enforces a hard magnitude ceiling on every coefficient and constant so edge Worker and free-browser runs stay inside a predictable numeric budget. Pair the free browser run on this page with the priced API when you need the identical Cramer result inside an automated pipeline without re-implementing four determinants yourself.
Where Cramer's rule fits in study, code, and verification
On this page the work runs entirely in your browser; through the API each successful solve costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result. Pair it with two-line intersection or number-theory solvers when you are building a small lab of free, deterministic algebra helpers, and with other math endpoints when you need related closed forms rather than iterative numerical methods.
Integration use cases
Deterministic CI fixtures
Generate reproducible x, y, z and determinant fields for unit tests without hand-maintaining four det expansions.