Chiò’s Method
When doing Gauss’s Method on a matrix that contains only integers people often like to keep it that way. To avoid fractions in the reduction of this matrix
they may start by multiplying the lower rows by
so that elimination in the first column goes like this.
This all-integer approach is easier for mental calculations. And, using integer arithmetic on a computer avoids some sticky issues involving floating point calculations [Kahan]. So there are sound reasons for this approach.
Another advantage of this approach is that we can easily apply Laplace’s expansion to the first column of () and then get the determinant by remembering to divide by because of ().
Here is the general case of this approach to finding the determinant. First, assuming , we can rescale the lower rows.
This rescales the determinant by . Now eliminate down the first column.
Let be the minor. By Laplace the determinant of the above matrix is . We thus have and since this gives .
To do larger matrices we must see how to compute the minor’s entries. The pattern above is that each element of the minor is a determinant. For instance, the entry in the minor’s upper left , which is the entry in the above matrix, is the determinant of the matrix of these four elements of .
And the minor’s lower left, the entry from above, is the determinant of the matrix of these four.
So, where is for , we let Chiò’s matrix be the matrix whose entry is the determinant
where . Chiò’s method for finding the determinant of is that if then . (By the way, nothing in Chiò’s formula requires that the numbers be integers; it applies to reals as well.)
To illustrate we find the determinant of this matrix.
This is Chiò’s matrix.
The formula for matrices gives .
For a larger determinant we must do multiple steps but each involves only determinants. So we can often calculate the determinant just by writing down a bit of intermediate information. For instance, with this matrix
we can mentally doing each of the calculations and only write down the result.
Note that the determinant of this is times the determinant of .
To finish, iterate. Here is Chiò’s matrix of .
The determinant of this matrix is times the determinant of . The determinant of is . So .
Laplace’s expansion formula reduces the calculation of an determinant to the evaluation of a number of ones. Chiò’s formula is also recursive but it reduces an determinant to a single determinant, calculated from a number of determinants. However, for large matrices Gauss’s Method is better than either of these; for instance, it takes roughly half as many operations as Chiò’s Method [Fuller & Logan].
Exercises
Exercise 1 Supplied answer
Use Chiò’s Method to find each determinant.
Answer.
Chiò’s matrix is
and its determinant is
Start with
and then the next step
with determinant . The determinant of the original matrix is thus
Exercise 2 Supplied answer
What if is zero?
Answer. The same construction as was used for the case above shows that in place of we can select any nonzero entry . Entry of Chiò’s matrix is the value of this determinant
where and .
Exercise 3 Supplied answer
The Rule of Sarrus is a mnemonic that many people learn for the determinant formula. To the right of the matrix, copy the first two columns.
Then the determinant is the sum of the three upper-left to lower-right diagonals minus the three lower-left to upper-right diagonals . Count the operations involved in Sarrus’s formula and in Chiò’s.
Answer. Sarrus’s formula uses multiplications and additions (including the subtractions in with the additions). Chiò’s formula uses two multiplications and an addition (which is actually a subtraction) for each of the four determinants, and another two multiplications and an addition for the Chió’s determinant, as well as a final division by . That’s eleven multiplication/divisions and five addition/subtractions. So Chiò is the winner.
Exercise 4 Supplied answer
Prove Chiò’s formula.
Answer. Consider an matrix.
Rescale every row but the first by .
That rescales the determinant by a factor of .
Next perform the row operation on each row . These row operations don’t change the determinant.
The result is a matrix whose first row is unchanged, whose first column is all zeros (except for the entry of ), and whose remaining entries are these.
The determinant of this matrix is times the determinant of .
Denote by the minor of the matrix , that is, the submatrix consisting of the last rows and columns. The Laplace expansion down the first column of gives that its determinant is .
If then setting equal the two expressions for and canceling gives .
Computer Code
This implements Chiò’s Method. It is in the computer language Python.
#!/usr/bin/python
# chio.py
# Calculate a determinant using Chio's method.
# Jim Hefferon; Public Domain
# For demonstration only; for instance, does not handle the M[0][0]=0 case
def det_two(a,b,c,d):
"""Return the determinant of the 2x2 matrix [[a,b], [c,d]]"""
return a*d-b*c
def chio_mat(M):
"""Return the Chio matrix as a list of the rows
M nxn matrix, list of rows"""
dim=len(M)
C=[]
for row in range(1,dim):
C.append([])
for col in range(1,dim):
C[-1].append(det_two(M[0][0], M[0][col], M[row][0], M[row][col]))
return C
def chio_det(M,show=None):
"""Find the determinant of M by Chio's method
M mxm matrix, list of rows"""
dim=len(M)
key_elet=M[0][0]
if dim==1:
return key_elet
return chio_det(chio_mat(M))/(key_elet**(dim-2))
if __name__=='__main__':
M=[[2,1,1], [3,4,-1], [1,5,1]]
print "M=",M
print "Det is", chio_det(M)
This is the result of calling the program from a command line.
$ python chio.py
M=[[2, 1, 1], [3, 4, -1], [1, 5, 1]]
Det is 25
References cited in this section
Kahan
William Kahan, Chiò’s Trick for Linear Equations with Integer Coefficients, http://www.cs.berkeley.edu/~wkahan/MathH110/chio.pdf, 1998, retrieved 2012-Jun-18.
Fuller & Logan
L.E. Fuller & J.D. Logan, On the Evaluation of Determinants by Chiò’s Method, p 49-52, in Linear Algebra Gems, Carlson, et al, Mathematical Association of America, 2002.