# Cramer's rule

In linear algebra, **Cramer's rule** is an explicit formula for the solution of a system of linear equations with as many equations as unknowns, valid whenever the system has a unique solution. It expresses the solution in terms of the determinants of the (square) coefficient matrix and of matrices obtained from it by replacing one column by the column vector of right-hand-sides of the equations. It is named after Gabriel Cramer (1704–1752), who published the rule for an arbitrary number of unknowns in 1750,^{[1]}^{[2]} although Colin Maclaurin also published special cases of the rule in 1748^{[3]} (and possibly knew of it as early as 1729).^{[4]}^{[5]}^{[6]}

Cramer's rule implemented in a naïve way is computationally inefficient for systems of more than two or three equations.^{[7]} In the case of n equations in n unknowns, it requires computation of *n* + 1 determinants, while Gaussian elimination produces the result with the same computational complexity as the computation of a single determinant.^{[8]}^{[9]}^{[verification needed]} Cramer's rule can also be numerically unstable even for 2×2 systems.^{[10]} However, it has recently been shown that Cramer's rule can be implemented in O(*n*^{3}) time,^{[11]} which is comparable to more common methods of solving systems of linear equations, such as Gaussian elimination (consistently requiring 2.5 times as many arithmetic operations for all matrix sizes), while exhibiting comparable numeric stability in most cases.

Consider a system of n linear equations for n unknowns, represented in matrix multiplication form as follows:

A more general version of Cramer's rule^{[12]} considers the matrix equation

The rule holds for systems of equations with coefficients and unknowns in any field, not just in the real numbers.

The proof for Cramer's rule uses the following properties of the determinants: linearity with respect to any given column and the fact that the determinant is zero whenever two columns are equal, which is implied by the property that the sign of the determinant flips if you switch two columns.

Fix the index *j* of a column. Linearity means that if we consider only column *j* as variable (fixing the others arbitrarily), the resulting function^{[clarification needed]} **R**^{n} → **R** (assuming matrix entries are in **R**) can be given by a matrix, with one row and *n* columns, that acts on column *j*. In fact this is precisely what Laplace expansion does, writing det(*A*) = *C*_{1}*a*_{1,j} + ⋯ + *C _{n}a_{n,j}* for certain coefficients

*C*

_{1}, ...,

*C*that depend on the columns of A other than column

_{n}*j*(the precise expression for these cofactors is not important here). The value det(

*A*) is then the result of applying the one-line matrix

*L*

_{(j)}= (

*C*

_{1}

*C*

_{2}⋯

*C*) to column

_{n}*j*of A. If

*L*

_{(j)}is applied to any

*other*column

*k*of A, then the result is the determinant of the matrix obtained from A by replacing column

*j*by a copy of column

*k*, so the resulting determinant is 0 (the case of two equal columns).

If one combines these equations by taking *C*_{1} times the first equation, plus *C*_{2} times the second, and so forth until *C*_{n} times the last, then the coefficient of x_{j} will become *C*_{1}*a*_{1, j} + ⋯ + *C _{n}a_{n,j}* = det(

*A*), while the coefficients of all other unknowns become 0; the left hand side becomes simply det(

*A*)

*x*. The right hand side is

_{j}*C*

_{1}

*b*

_{1}+ ⋯ +

*C*, which is

_{n}b_{n}*L*

_{(j)}applied to the column vector

**b**of the right hand side b

_{i}. In fact what has been done here is multiply the matrix equation

*A*

**x**=

**b**on the left by

*L*

_{(j)}. Dividing by the nonzero number det(

*A*) one finds the following equation, necessary to satisfy the system:

But by construction the numerator is the determinant of the matrix obtained from A by replacing column *j* by **b**, so we get the expression of Cramer's rule as a necessary condition for a solution. The same procedure can be repeated for other values of *j* to find values for the other unknowns.

The only point that remains to prove is that these values for the unknowns, the only possible ones, do indeed together form a solution. But if the matrix A is invertible with inverse *A*^{−1}, then **x** = *A*^{−1}**b** will be a solution, thus showing its existence. To see that A is invertible when det(*A*) is nonzero, consider the *n* × *n* matrix *M* obtained by stacking the one-line matrices *L*_{(j)} on top of each other for *j* = 1, ..., *n* (this gives the adjugate matrix for A). It was shown that *L*_{(j)}*A* = (0 ⋯ 0 det(*A*) 0 ⋯ 0) where det(*A*) appears at the position *j*; from this it follows that *MA* = det(*A*)*I _{n}*. Therefore,

where adj(*A*) denotes the adjugate matrix, det(*A*) is the determinant, and *I* is the identity matrix. If det(*A*) is nonzero, then the inverse matrix of A is

This gives a formula for the inverse of A, provided det(*A*) ≠ 0. In fact, this formula works whenever *F* is a commutative ring, provided that det(*A*) is a unit. If det(*A*) is not a unit, then A is not invertible over the ring (it may be invertible over a larger ring in which some non-unit elements of F may be invertible).

Assume *a*_{1}*b*_{2} − *b*_{1}*a*_{2} nonzero. Then, with help of determinants, x and y can be found with Cramer's rule as

Cramer's rule is used in the Ricci calculus in various calculations involving the Christoffel symbols of the first and second kind.^{[13]}

Cramer's rule can be used to prove that an integer programming problem whose constraint matrix is totally unimodular and whose right-hand side is integer, has integer basic solutions. This makes the integer program substantially easier to solve.

Cramer's rule is used to derive the general solution to an inhomogeneous linear differential equation by the method of variation of parameters.

Cramer's rule has a geometric interpretation that can be considered also a proof or simply giving insight about its geometric nature. These geometric arguments work in general and not only in the case of two equations with two unknowns presented here.

In general, when there are more variables and equations, the determinant of n vectors of length n will give the *volume* of the *parallelepiped* determined by those vectors in the n-th dimensional Euclidean space.

Equating the areas of this last and the second parallelogram gives the equation

A system of equations is said to be incompatible or inconsistent when there are no solutions and it is called indeterminate when there is more than one solution. For linear equations, an indeterminate system will have infinitely many solutions (if it is over an infinite field), since the solutions can be expressed in terms of one or more parameters that can take arbitrary values.

Cramer's rule applies to the case where the coefficient determinant is nonzero. In the 2×2 case, if the coefficient determinant is zero, then the system is incompatible if the numerator determinants are nonzero, or indeterminate if the numerator determinants are zero.

For 3×3 or higher systems, the only thing one can say when the coefficient determinant equals zero is that if any of the numerator determinants are nonzero, then the system must be incompatible. However, having all determinants zero does not imply that the system is indeterminate. A simple example where all determinants vanish (equal zero) but the system is still incompatible is the 3×3 system *x*+*y*+*z*=1, *x*+*y*+*z*=2, *x*+*y*+*z*=3.