Maths Solver
Solve linear, quadratic, and simultaneous equations or evaluate arithmetic expressions — with full step-by-step working.
a₂x + b₂y = c₂
About this maths solver
This free maths solver handles the four most common school and competitive-exam problem types in one place. Switch between modes using the tabs: solve a linear equation of the form ax + b = c, find the roots and discriminant of a quadratic equation ax² + bx + c = 0, solve a pair of simultaneous linear equations in two variables, or safely evaluate an arithmetic expression. Every mode shows the full step-by-step working so you can learn the method, not just the answer.
Solves ax + b = c by isolating x: x = (c − b) / a. Detects no-solution and infinite-solution cases.
Uses the quadratic formula and discriminant to classify and find real or complex roots.
Solves two equations in x and y using Cramer's rule (determinant method).
Frequently asked questions
How do I solve a linear equation?
A linear equation in one variable has the form ax + b = c, where a ≠ 0. To solve, subtract b from both sides to get ax = c − b, then divide by a to get x = (c − b) / a. For example, 2x + 3 = 11 gives 2x = 8, so x = 4. This solver shows each of those steps automatically.
What does the discriminant tell me in a quadratic?
The discriminant D = b² − 4ac reveals the nature of a quadratic equation's roots without fully solving it. If D > 0 there are two distinct real roots, if D = 0 there is one repeated real root, and if D < 0 the roots are complex (involving the imaginary unit i). The quadratic tab displays D prominently along with the classified roots.
How are simultaneous equations solved here?
Two linear equations in two variables (a₁x + b₁y = c₁ and a₂x + b₂y = c₂) are solved using Cramer's rule. The determinant D = a₁b₂ − a₂b₁ is computed first; x = (c₁b₂ − c₂b₁) / D and y = (a₁c₂ − a₂c₁) / D. If D = 0 the system has either no solution (inconsistent) or infinitely many solutions (dependent lines).
Is the arithmetic evaluator safe?
Yes. The expression evaluator never uses JavaScript's eval() function. Instead it tokenizes your input and parses it with a recursive-descent parser that only accepts digits, decimal points, the operators + − × ÷, and parentheses. Any other characters are rejected, so there is no risk of running arbitrary code.
Does it follow order of operations (BODMAS / PEMDAS)?
Yes. The arithmetic evaluator respects standard operator precedence: expressions in parentheses are evaluated first, then multiplication and division (left to right), and finally addition and subtraction (left to right). So 3 + 4 * 2 correctly evaluates to 11, not 14.