Skyline matrix
A skyline matrix is a form of a square, banded (and typically symmetric) matrix that reduces the storage requirement of a matrix due to its banded nature.
For symmetrical matrices (with zero based indexing):
For unsymmetrical matrices (with zero based indexing):
![]() | This section's factual accuracy is disputed. |
Beware, these examples appear to be of banded matrices, that do not have variable band-widths. The whole point of skyline matrices is to have multiple bandwidths. Moreover, the storage format appears to be for banded matrices, not skyline matrices as well. The correct format is shown at this link.
Examples:
For a symmetric 6 by 6 matrix A with a bandwidth of 3 turns into the 6 by 3 matrix A_{skyline}.
Matrix A in original format:
Matrix A_{skyline} in skyline format:
For an unsymmetrical 6 by 6 matrix B with left and right band widths of 2 turns into the 6 by 3 matrix B_{skyline}.
Matrix B in original format:
Matrix B_{skyline} in skyline format:
Skyline Matrix storage
skyline matrix storage, or SKS, or a variable band matrix storage, or envelope storage scheme[1] is a form of a sparse matrix storage format matrix that reduces the storage requirement of a matrix more than banded storage. In banded storage, all entries within a fixed distance from the diagonal (called half-bandwidth) are stored. In column oriented skyline storage, only the entries from the first nonzero entry to the last nonzero entry in each column are stored. There is also row oriented skyline storage, and, for symmetric matrices, only one triangle is usually stored.[2]
Skyline storage has become very popular in the finite element codes for structural mechanics, because the skyline is preserved by Cholesky decomposition (a method of solving systems of linear equations with a symmetric, positive-definite matrix; all fill-in falls within the skyline), and systems of equations from finite elements have a relatively small skyline. In addition, the effort of coding skyline Cholesky[3] is about same as for Cholesky for banded matrices (available for banded matrices, e.g. in LAPACK; for a prototype skyline code, see [3]).
Before storing a matrix in skyline format, the rows and columns are typically renumbered to reduce the size of the skyline (the number of nonzero entries stored) and to decrease the number of operations in the skyline Cholesky algorithm. The same heuristic renumbering algorithm that reduce the bandwidth are also used to reduce the skyline. The basic and one of the earliest algorithms to do that is reverse Cuthill–McKee algorithm.
However, skyline storage is not as popular for very large systems (many millions of equations) because skyline Cholesky is not so easily adapted for massively parallel computing, and general sparse methods,[4] which store only the nonzero entries of the matrix, become more efficient for very large problems due to much less fill-in.
See also
References
- ^ Watkins, David S. (2002), Fundamentals of matrix computations (Second ed.), New York: John Wiley & Sons, Inc., p. 60, ISBN 0-471-21394-2
- ^ Barrett, Richard; Berry; Chan; Demmel; Donato; Dongarra; Eijkout; Pozo; Romine; Van der Vorst (1994), "Skyline Storage (SKS)", Templates for the solution of linear systems, SIAM, ISBN 0-89871-328-5
{{citation}}
: External link in
(help); Unknown parameter|chapterurl=
|chapterurl=
ignored (|chapter-url=
suggested) (help) - ^ a b George, Alan; Liu, Joseph W. H. (1981), Computer solution of large sparse positive definite systems, Prentice-Hall Inc., ISBN 0-13-165274-5. The book also contains the description and source code of simple sparse matrix routines, still useful even if long superseded.
- ^ Duff, Iain S.; Erisman, Albert M.; Reid, John K. (1986), Direct methods for sparse matrices, Oxford University Press, ISBN 0-19-853408-6