# Simultaneous (System of) Equations Solver

This is an online **simultaneous equations solver** (otherwise known as a **system of equations solver**) based on the Gaussian elimination algorithm. This equations solver can solve up to several hundred equations of unknowns! To use it, type the full equations in the text area below, each on a separate line, then click on the *Solve* button to trigger the solving process. After the results have been calculated, they will appear just below the text area. In addition to showing you the solution, the solver will attempt to show you how it understood your equations. For example, typing in an equation like *0x + 1y + 2z = 3* will simply show as *y + 2z = 3*.

Originally, this simultaneous equations solver was meant to be a proof-of-concept implementation to corroborate the fact that, it is feasible to develop an equations solver that can parse a given set of equations, extract the required data, and solve for theoretically an unlimited number of unknowns, thus freeing the user from any complexity. However, shortly after appearing online, it attracted so much widespread usage that I decided to keep it, even though I have no immediate plans to update it. Because of this historical design philosophy, unconventional equations and carelessly formed equations with unnecessary constants will fail to parse. Please type the equations properly.

**NOTE:** The parser for this simultaneous equations solver expects all input equations to be in the form **ax ± by [...] = c** where *a,* *b,* and *c* are integers, and *x* and *y* are unknowns. Because of the very limited support for different syntaxes, equations where the constant appears before the equals sign will fail to parse correctly. Moreover, equations that are in the form *c = x (a) + y (b),* *c = x * a + y * b,* *c = xa + yb,* or even *xa + yb = c,* where, in all the aforementioned equations, *x* and *y* are the unknowns, *a* and *b* are coefficients, and *c* is a constant, will result in an error. To solve such an equation, first convert it into the form *ax + by = c* before passing it to the solver.

The source code of this simultaneous equations solver is available for your reading pleasure :)