Gauss–Jordan elimination
In linear algebra, Gauss–Jordan elimination is an algorithm for getting matrices in reduced row echelon form using elementary row operations. It is a variation of Gaussian elimination. Gaussian elimination places zeros below each pivot in the matrix, starting with the top row and working downwards. Matrices containing zeros below each pivot are said to be in row echelon form. Gauss–Jordan elimination goes a step further by placing zeros above and below each pivot; such matrices are said to be in reduced row echelon form. Every matrix has a reduced row echelon form, and Gauss–Jordan elimination is guaranteed to find it.
It is named after Carl Friedrich Gauss and Wilhelm Jordan because it is a variation of Gaussian elimination as Jordan described in 1887. However, the method also appears in an article by Clasen published in the same year. Jordan and Clasen probably discovered Gauss–Jordan elimination independently.[1]
Comparison with Gaussian elimination
Computer science's complexity theory shows Gauss–Jordan elimination has time complexity of order for an n by n full rank matrix (using Big O Notation). This result means it is efficiently solvable for most practical purposes. As a result, it is often used in computer software for a diverse set of applications. However, it is often an unnecessary step past Gaussian elimination. Gaussian elimination shares Gauss-Jordan's time complexity order of , however despite sharing the same order, Gauss-Jordan elimination requires approximately 50% more computation steps than Gaussian elimination[2].
This brings down the fundamental question, why should Gauss-Jordan elimination method be used over Gaussian elimination. Gauss-Jordan elimination method is used for computing application in a multi-processor environment where processing speed is the main criteria. It has been shown that even though Gauss-Jordan elimination method requires more computation steps than Gaussian elimination, in a multiple processor environment, Gauss-Jordan elimination achieves higher processing speed than Gaussian elimination as the number of processors increases. This is explained due to the better load balancing characteristics and lower synchronization cost of the Gauss-Jordan elimination method[3].
Application to finding inverses
If Gauss–Jordan elimination is applied on a square matrix, it can be used to calculate the matrix's inverse. This can be done by augmenting the square matrix with the identity matrix of the same dimensions and applying the following matrix operations:
If the original square matrix, , is given by the following expression:
Then, after augmenting by the identity, the following is obtained:
By performing elementary row operations on the matrix until it reaches reduced row echelon form, the following is the final result:
The matrix augmentation can now be undone, which gives the following:
A matrix is non-singular (meaning that it has an inverse matrix) if and only if the identity matrix can be obtained using only elementary row operations.
References
- ^ Althoen, Steven C.; McLaughlin, Renate (1987), "Gauss–Jordan reduction: a brief history", The American Mathematical Monthly, 94 (2), Mathematical Association of America: 130–142, doi:10.2307/2322413, ISSN 0002-9890, JSTOR 2322413
- ^ J. B. Fraleigh and R. A. Beauregard, Linear Algebra. Addison-Wesley Publishing Company, 1995, Chapter 10
- ^ G. A. Darmohray and E. D. Brooks, “Gaussian Techniques on Shared Memory Multiprocessor Computers,” in SIAM PPSC, Los Angeles, USA, December 1987.
- Lipschutz, Seymour, and Lipson, Mark. "Schaum's Outlines: Linear Algebra". Tata McGraw–Hill edition. Delhi 2001. pp. 69–80.
- Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007), "Section 2.1", Numerical Recipes: The Art of Scientific Computing (3rd ed.), New York: Cambridge University Press, ISBN 978-0-521-88068-8
- Strang, Gilbert (2003), Introduction to Linear Algebra (3rd ed.), Wellesley, Massachusetts: Wellesley-Cambridge Press, pp. 74–76, ISBN 978-0-9614088-9-3
External links
- Algorithm for Gauss–Jordan elimination in Octave
- Algorithm for Gauss–Jordan elimination in Python
- An online tool solve nxm linear systems using Gauss–Jordan elimination (source-code and mobile version included), by Felipe Santos de Andrade (Portuguese)
- Algorithm for Gauss–Jordan elimination in Basic
- Module for Gauss–Jordan Elimination
- Example of Gauss–Jordan Elimination "Step-by-Step"
- Gauss–Jordan Elimination Calculator
- Example of detailed solutions SLE in four unknowns using the Gauss-Jordan elimination