To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

4,5
Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
Live Statistics
English Articles
Improved in 24 Hours
Added in 24 Hours
Languages
Recent
Show all languages
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.
.
Leo
Newton
Brights
Milds

Bareiss algorithm

From Wikipedia, the free encyclopedia

In mathematics, the Bareiss algorithm, named after Erwin Bareiss, is an algorithm to calculate the determinant or the echelon form of a matrix with integer entries using only integer arithmetic; any divisions that are performed are guaranteed to be exact (there is no remainder). The method can also be used to compute the determinant of matrices with (approximated) real entries, avoiding the introduction of any round-off errors beyond those already present in the input.

YouTube Encyclopedic

  • 1/3
    Views:
    7 187
    12 211
    759 640
  • Linear Algebra 11q: Algorithm for Calculating the Inverse Matrix
  • Determinant of 3x3 and 4x4 Matrices Shortcut | How to find determinant of matrix
  • Simpler 4x4 determinant | Matrix transformations | Linear Algebra | Khan Academy

Transcription

History

The general Bareiss algorithm is distinct from the Bareiss algorithm for Toeplitz matrices.

In some Spanish-speaking countries, this algorithm is also known as Bareiss-Montante, because of René Mario Montante Pardo, a professor of the Universidad Autónoma de Nuevo León, Mexico, who popularized the method among his students.

Overview

Determinant definition has only multiplication, addition and subtraction operations. Obviously the determinant is integer if all matrix entries are integer. However actual computation of the determinant using the definition or Leibniz formula is impractical, as it requires O(n!) operations.

Gaussian elimination has O(n3) complexity, but introduces division, which results in round-off errors when implemented using floating point numbers.

Round-off errors can be avoided if all the numbers are kept as integer fractions instead of floating point. But then the size of each element grows in size exponentially with the number of rows.[1]

Bareiss brings up a question of performing an integer-preserving elimination while keeping the magnitudes of the intermediate coefficients reasonably small. Two algorithms are suggested:[2][3]

  1. Division-free algorithm — performs matrix reduction to triangular form without any division operation.
  2. Fraction-free algorithm — uses division to keep the intermediate entries smaller, but due to the Sylvester's Identity the transformation is still integer-preserving (the division has zero remainder).

For completeness Bareiss also suggests fraction-producing multiplication-free elimination methods.[2]

The algorithm

The program structure of this algorithm is a simple triple-loop, as in the standard Gaussian elimination. However in this case the matrix is modified so that each Mk,k entry contains the leading principal minor [M]k,k. Algorithm correctness is easily shown by induction on k.[4]

  • Input: M — an n-square matrix
    assuming its leading principal minors [M]k,k are all non-zero.
  • Let M0,0 = 1 (Note: M0,0 is a special variable)
  • For k from 1 to n−1:
    • For i from k+1 to n:
      • For j from k+1 to n:
        • Set
  • Output: The matrix is modified in-place,
    each Mk,k entry contains the leading minor [M]k,k,
    entry Mn,n contains the determinant of the original M.

If the assumption about principal minors turns out to be false, e.g. if Mk−1,k−1 = 0 and some Mi,k−1 ≠ 0 (i = k,...,n) then we can exchange the k−1-th row with the i-th row and change the sign of the final answer.

Analysis

During execution of the Bareiss algorithm, every integer that is computed is the determinant of a submatrix of the input matrix. This allows, using the Hadamard inequality, to bound the size of these integers. Otherwise, the Bareiss algorithm may be viewed as a variant of Gaussian elimination and needs roughly the same number of arithmetic operations.

It follows that, for an n × n matrix of maximum (absolute) value 2L for each entry, the Bareiss algorithm runs in O(n3) elementary operations with an O(nn/2 2nL) bound on the absolute value of intermediate values needed. Its computational complexity is thus O(n5L2 (log(n)2 + L2)) when using elementary arithmetic or O(n4L (log(n) + L) log(log(n) + L))) by using fast multiplication.

References

  1. ^ Middeke, J.; Jeffrey, D.J.; Koutschan, C. (2020), "Common Factors in Fraction-Free Matrix Decompositions", Mathematics in Computer Science, 15 (4): 589–608, arXiv:2005.12380, doi:10.1007/s11786-020-00495-9
  2. ^ a b Bareiss, Erwin H. (1968), "Sylvester's Identity and multistep integer-preserving Gaussian elimination" (PDF), Mathematics of Computation, 22 (103): 565–578, doi:10.2307/2004533, JSTOR 2004533
  3. ^ Bareiss, Erwin H. (1966), MULTISTEP INTEGER-PRESERVING GAUSSIAN ELIMINATION (PDF). (Contains a clearer picture of the operations sequence)
  4. ^ Yap, Chee Keng (2000), Fundamental Problems of Algorithmic Algebra, Oxford University Press
This page was last edited on 2 April 2023, at 20:32
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.