This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (October 2015) (Learn how and when to remove this template message)

In mathematics, a **system of linear equations** (or **linear system**) is a collection of one or more linear equations involving the same variables.^{[1]}^{[2]}^{[3]}^{[4]}^{[5]}

For example,

is a system of three equations in the three variables *x*, *y*, *z*. A **solution** to a linear system is an assignment of values to the variables such that all the equations are simultaneously satisfied. A solution to the system above is given by the ordered triple

since it makes all three equations valid. The word "system" indicates that the equations should be considered collectively, rather than individually.

In mathematics, the theory of linear systems is the basis and a fundamental part of linear algebra, a subject used in most modern mathematics. Computational algorithms for finding the solutions are an important part of numerical linear algebra, and play a prominent role in engineering, physics, chemistry, computer science, and economics. A system of non-linear equations can often be approximated by a linear system (see linearization), a helpful technique when making a mathematical model or computer simulation of a relatively complex system.

Very often, and in this article, the coefficients of the equations are real or complex numbers and the solutions are searched in the same set of numbers, but the theory and the algorithms apply for coefficients and solutions in any field. For solutions in an integral domain like the ring of the integers, or in other algebraic structures, other theories have been developed, see Linear equation over a ring. Integer linear programming is a collection of methods for finding the "best" integer solution (when there are many). Gröbner basis theory provides algorithms when coefficients and unknowns are polynomials. Also tropical geometry is an example of linear algebra in a more exotic structure.

The system of one equation in one unknown

has the solution

However, a linear system is commonly considered as having at least two equations.

The simplest kind of nontrivial linear system involves two equations and two variables:

One method for solving such a system is as follows. First, solve the top equation for in terms of :

Now substitute this expression for *x* into the bottom equation:

This results in a single equation involving only the variable . Solving gives , and substituting this back into the equation for yields . This method generalizes to systems with additional variables (see "elimination of variables" below, or the article on elementary algebra.)

A general system of *m* linear equations with *n* unknowns and coefficients can be written as

where are the unknowns, are the coefficients of the system, and are the constant terms.

Often the coefficients and unknowns are real or complex numbers, but integers and rational numbers are also seen, as are polynomials and elements of an abstract algebraic structure.

One extremely helpful view is that each unknown is a weight for a column vector in a linear combination.

This allows all the language and theory of *vector spaces* (or more generally, *modules*) to be brought to bear. For example, the collection of all possible linear combinations of the vectors on the left-hand side is called their *span*, and the equations have a solution just when the right-hand vector is within that span. If every vector within that span has exactly one expression as a linear combination of the given left-hand vectors, then any solution is unique. In any event, the span has a *basis* of linearly independent vectors that do guarantee exactly one expression; and the number of vectors in that basis (its *dimension*) cannot be larger than *m* or *n*, but it can be smaller. This is important because if we have *m* independent vectors a solution is guaranteed regardless of the right-hand side, and otherwise not guaranteed.

The vector equation is equivalent to a matrix equation of the form

where *A* is an *m*×*n* matrix, **x** is a column vector with *n* entries, and **b** is a column vector with *m* entries.

The number of vectors in a basis for the span is now expressed as the *rank* of the matrix.

A **solution** of a linear system is an assignment of values to the variables *x*_{1}, *x*_{2}, ..., *x _{n}* such that each of the equations is satisfied. The set of all possible solutions is called the

A linear system may behave in any one of three possible ways:

- The system has
*infinitely many solutions*. - The system has a single
*unique solution*. - The system has
*no solution*.

For a system involving two variables (*x* and *y*), each linear equation determines a line on the *xy*-plane. Because a solution to a linear system must satisfy all of the equations, the solution set is the intersection of these lines, and is hence either a line, a single point, or the empty set.

For three variables, each linear equation determines a plane in three-dimensional space, and the solution set is the intersection of these planes. Thus the solution set may be a plane, a line, a single point, or the empty set. For example, as three parallel planes do not have a common point, the solution set of their equations is empty; the solution set of the equations of three planes intersecting at a point is single point; if three planes pass through two points, their equations have at least two common solutions; in fact the solution set is infinite and consists in all the line passing through these points.^{[7]}

For *n* variables, each linear equation determines a hyperplane in *n*-dimensional space. The solution set is the intersection of these hyperplanes, and is a flat, which may have any dimension lower than *n*.

In general, the behavior of a linear system is determined by the relationship between the number of equations and the number of unknowns. Here, "in general" means that a different behavior may occur for specific values of the coefficients of the equations.

- In general, a system with fewer equations than unknowns has infinitely many solutions, but it may have no solution. Such a system is known as an underdetermined system.
- In general, a system with the same number of equations and unknowns has a single unique solution.
- In general, a system with more equations than unknowns has no solution. Such a system is also known as an overdetermined system.

In the first case, the dimension of the solution set is, in general, equal to *n* − *m*, where *n* is the number of variables and *m* is the number of equations.

The following pictures illustrate this trichotomy in the case of two variables:

The first system has infinitely many solutions, namely all of the points on the blue line. The second system has a single unique solution, namely the intersection of the two lines. The third system has no solutions, since the three lines share no common point.

It must be kept in mind that the pictures above show only the most common case (the general case). It is possible for a system of two equations and two unknowns to have no solution (if the two lines are parallel), or for a system of three equations and two unknowns to be solvable (if the three lines intersect at a single point).

A system of linear equations behave differently from the general case if the equations are *linearly dependent*, or if it is *inconsistent* and has no more equations than unknowns.

The equations of a linear system are **independent** if none of the equations can be derived algebraically from the others. When the equations are independent, each equation contains new information about the variables, and removing any of the equations increases the size of the solution set. For linear equations, logical independence is the same as linear independence.

For example, the equations

are not independent — they are the same equation when scaled by a factor of two, and they would produce identical graphs. This is an example of equivalence in a system of linear equations.

For a more complicated example, the equations

are not independent, because the third equation is the sum of the other two. Indeed, any one of these equations can be derived from the other two, and any one of the equations can be removed without affecting the solution set. The graphs of these equations are three lines that intersect at a single point.

See also: Consistent and inconsistent equations |

A linear system is **inconsistent** if it has no solution, and otherwise it is said to be **consistent**. When the system is inconsistent, it is possible to derive a contradiction from the equations, that may always be rewritten as the statement 0 = 1.

For example, the equations

are inconsistent. In fact, by subtracting the first equation from the second one and multiplying both sides of the result by 1/6, we get 0 = 1. The graphs of these equations on the *xy*-plane are a pair of parallel lines.

It is possible for three linear equations to be inconsistent, even though any two of them are consistent together. For example, the equations

are inconsistent. Adding the first two equations together gives 3*x* + 2*y* = 2, which can be subtracted from the third equation to yield 0 = 1. Any two of these equations have a common solution. The same phenomenon can occur for any number of equations.

In general, inconsistencies occur if the left-hand sides of the equations in a system are linearly dependent, and the constant terms do not satisfy the dependence relation. A system of equations whose left-hand sides are linearly independent is always consistent.

Putting it another way, according to the Rouché–Capelli theorem, any system of equations (overdetermined or otherwise) is inconsistent if the rank of the augmented matrix is greater than the rank of the coefficient matrix. If, on the other hand, the ranks of these two matrices are equal, the system must have at least one solution. The solution is unique if and only if the rank equals the number of variables. Otherwise the general solution has *k* free parameters where *k* is the difference between the number of variables and the rank; hence in such a case there are an infinitude of solutions. The rank of a system of equations (that is, the rank of the augmented matrix) can never be higher than [the number of variables] + 1, which means that a system with any number of equations can always be reduced to a system that has a number of independent equations that is at most equal to [the number of variables] + 1.

Two linear systems using the same set of variables are **equivalent** if each of the equations in the second system can be derived algebraically from the equations in the first system, and vice versa. Two systems are equivalent if either both are inconsistent or each equation of each of them is a linear combination of the equations of the other one. It follows that two linear systems are equivalent if and only if they have the same solution set.

There are several algorithms for solving a system of linear equations.

When the solution set is finite, it is reduced to a single element. In this case, the unique solution is described by a sequence of equations whose left-hand sides are the names of the unknowns and right-hand sides are the corresponding values, for example . When an order on the unknowns has been fixed, for example the alphabetical order the solution may be described as a vector of values, like for the previous example.

To describe a set with an infinite number of solutions, typically some of the variables are designated as **free** (or **independent**, or as **parameters**), meaning that they are allowed to take any value, while the remaining variables are **dependent** on the values of the free variables.

For example, consider the following system:

The solution set to this system can be described by the following equations:

Here *z* is the free variable, while *x* and *y* are dependent on *z*. Any point in the solution set can be obtained by first choosing a value for *z*, and then computing the corresponding values for *x* and *y*.

Each free variable gives the solution space one degree of freedom, the number of which is equal to the dimension of the solution set. For example, the solution set for the above equation is a line, since a point in the solution set can be chosen by specifying the value of the parameter *z*. An infinite solution of higher order may describe a plane, or higher-dimensional set.

Different choices for the free variables may lead to different descriptions of the same solution set. For example, the solution to the above equations can alternatively be described as follows:

Here *x* is the free variable, and *y* and *z* are dependent.

The simplest method for solving a system of linear equations is to repeatedly eliminate variables. This method can be described as follows:

- In the first equation, solve for one of the variables in terms of the others.
- Substitute this expression into the remaining equations. This yields a system of equations with one fewer equation and unknown.
- Repeat steps 1 and 2 until the system is reduced to a single linear equation.
- Solve this equation, and then back-substitute until the entire solution is found.

For example, consider the following system:

Solving the first equation for *x* gives *x* = 5 + 2*z* - 3*y*, and plugging this into the second and third equation yields

Since the LHS of both of these equations equal *y*, equating the RHS of the equations. We now have:

Substituting *z* = 2 into the second or third equation gives *y* = 8, and the values of *y* and *z* into the first equation yields *x* = −15. Therefore, the solution set is the ordered triple .

Main article: Gaussian elimination |

In **row reduction** (also known as **Gaussian elimination**), the linear system is represented as an augmented matrix:

This matrix is then modified using elementary row operations until it reaches reduced row echelon form. There are three types of elementary row operations:

**Type 1**: Swap the positions of two rows.**Type 2**: Multiply a row by a nonzero scalar.**Type 3**: Add to one row a scalar multiple of another.

Because these operations are reversible, the augmented matrix produced always represents a linear system that is equivalent to the original.

There are several specific algorithms to row-reduce an augmented matrix, the simplest of which are Gaussian elimination and Gauss–Jordan elimination. The following computation shows Gauss–Jordan elimination applied to the matrix above:

The last matrix is in reduced row echelon form, and represents the system *x* = −15, *y* = 8, *z* = 2. A comparison with the example in the previous section on the algebraic elimination of variables shows that these two methods are in fact the same; the difference lies in how the computations are written down.

Main article: Cramer's rule |

**Cramer's rule** is an explicit formula for the solution of a system of linear equations, with each variable given by a quotient of two determinants. For example, the solution to the system

is given by

For each variable, the denominator is the determinant of the matrix of coefficients, while the numerator is the determinant of a matrix in which one column has been replaced by the vector of constant terms.

Though Cramer's rule is important theoretically, it has little practical value for large matrices, since the computation of large determinants is somewhat cumbersome. (Indeed, large determinants are most easily computed using row reduction.)
Further, Cramer's rule has very poor numerical properties, making it unsuitable for solving even small systems reliably, unless the operations are performed in rational arithmetic with unbounded precision.^{[citation needed]}

If the equation system is expressed in the matrix form , the entire solution set can also be expressed in matrix form. If the matrix *A* is square (has *m* rows and *n*=*m* columns) and has full rank (all *m* rows are independent), then the system has a unique solution given by

where is the inverse of *A*. More generally, regardless of whether *m*=*n* or not and regardless of the rank of *A*, all solutions (if any exist) are given using the Moore–Penrose inverse of *A*, denoted , as follows:

where is a vector of free parameters that ranges over all possible *n*×1 vectors. A necessary and sufficient condition for any solution(s) to exist is that the potential solution obtained using satisfy — that is, that If this condition does not hold, the equation system is inconsistent and has no solution. If the condition holds, the system is consistent and at least one solution exists. For example, in the above-mentioned case in which *A* is square and of full rank, simply equals and the general solution equation simplifies to

as previously stated, where has completely dropped out of the solution, leaving only a single solution. In other cases, though, remains and hence an infinitude of potential values of the free parameter vector give an infinitude of solutions of the equation.

While systems of three or four equations can be readily solved by hand (see Cracovian), computers are often used for larger systems. The standard algorithm for solving a system of linear equations is based on Gaussian elimination with some modifications. Firstly, it is essential to avoid division by small numbers, which may lead to inaccurate results. This can be done by reordering the equations if necessary, a process known as *pivoting*. Secondly, the algorithm does not exactly do Gaussian elimination, but it computes the LU decomposition of the matrix *A*. This is mostly an organizational tool, but it is much quicker if one has to solve several systems with the same matrix *A* but different vectors **b**.

If the matrix *A* has some special structure, this can be exploited to obtain faster or more accurate algorithms. For instance, systems with a symmetric positive definite matrix can be solved twice as fast with the Cholesky decomposition. Levinson recursion is a fast method for Toeplitz matrices. Special methods exist also for matrices with many zero elements (so-called sparse matrices), which appear often in applications.

A completely different approach is often taken for very large systems, which would otherwise take too much time or memory. The idea is to start with an initial approximation to the solution (which does not have to be accurate at all), and to change this approximation in several steps to bring it closer to the true solution. Once the approximation is sufficiently accurate, this is taken to be the solution to the system. This leads to the class of iterative methods. For some sparse matrices, the introduction of randomness improves the speed of the iterative methods.^{[8]}

There is also a quantum algorithm for linear systems of equations.^{[9]}

See also: Homogeneous differential equation |

A system of linear equations is **homogeneous** if all of the constant terms are zero:

A homogeneous system is equivalent to a matrix equation of the form

where *A* is an *m* × *n* matrix, **x** is a column vector with *n* entries, and **0** is the zero vector with *m* entries.

Every homogeneous system has at least one solution, known as the *zero* (or *trivial*) solution, which is obtained by assigning the value of zero to each of the variables. If the system has a non-singular matrix (det(*A*) ≠ 0) then it is also the only solution. If the system has a singular matrix then there is a solution set with an infinite number of solutions. This solution set has the following additional properties:

- If
**u**and**v**are two vectors representing solutions to a homogeneous system, then the vector sum**u**+**v**is also a solution to the system. - If
**u**is a vector representing a solution to a homogeneous system, and*r*is any scalar, then*r***u**is also a solution to the system.

These are exactly the properties required for the solution set to be a linear subspace of **R**^{n}. In particular, the solution set to a homogeneous system is the same as the null space of the corresponding matrix *A*.

There is a close relationship between the solutions to a linear system and the solutions to the corresponding homogeneous system:

Specifically, if **p** is any specific solution to the linear system *A***x** = **b**, then the entire solution set can be described as

Geometrically, this says that the solution set for *A***x** = **b** is a translation of the solution set for *A***x** = **0**. Specifically, the flat for the first system can be obtained by translating the linear subspace for the homogeneous system by the vector **p**.

This reasoning only applies if the system *A***x** = **b** has at least one solution. This occurs if and only if the vector **b** lies in the image of the linear transformation *A*.