Meta.Numerics.Matrices Namespace

Contains types that store and operate on matrices.

Remarks

You can create matrices of real values using the RectangularMatrix and SquareMatrix classes, and vectors of real values using the ColumnVector and RowVector classes. Operator overloads are defined that allow you to perform allowed arithmetic operations, such as adding two vectors or matrices, or multiplying a vector by a scalar, vector, or matrix. Each type defines methods corresponding to common linear algebra operations, such as inversion (Inverse), finding eigenvalues and eigenvectors (Eigenvalues and Eigendecomposition), and decompositions (QRDecomposition and SingularValueDecomposition).

The fastest way to solve a linear system A x = b is to form the LUDecomposition of A and call Solve(IReadOnlyListDouble) with the right-hand-side b.

There are several additional matrix containers that support smaller storage requirements and faster operations for matrices with particular structures, such as DiagonalMatrix, TridiagonalMatrix, SymmetricMatrix, and SparseSquareMatrix.

Where possible, we quickly return new matrix objects that implement a new view of existing stored values, without copying or otherwise disturbing the original values. Examples include Transpose and Row(Int32). For read-only purposes, this is much faster and requires less memory that computing and storing new values. The returned matrix objects are, however, necessarily read-only. Whether an matrix object is read-only can be determined from IsReadOnly. If you want to modify a read-only matrix object, simply make a copy using the object's Copy method (e.g. Copy or Copy).

Classes

AnyMatrixT Describes the form of all matrices.
AnyRectangularMatrix Describes the form of all real matrices.
AnySquareMatrix Describes the form of all real, square matrices.
AnyVector Implements functionality shared between row and column vectors.
CholeskyDecomposition Represents the Cholesky Decomposition of a symmetric, positive definite matrix.
ColumnVector A column vector of real numbers.
ComplexColumnVector Represents a column vector of complex numbers.
ComplexEigendecomposition Represents a collection of complex eigenvalues and eigenvectors.
ComplexEigenpair Represents a complex-valued eigenvector and corresponding eigenvalue.
ComplexEigenpairCollection Contains a collection of complex eigenvalues and eigenvectors.
DiagonalMatrix Represents a diagonal matrix.
LUDecomposition Represents the LU decomposition of a square matrix.
PermutationMatrix A permutation matrix.
QRDecomposition Represents a QR decomposition of a matrix.
RealEigendecomposition Represents a collection of real eigenvalues and eigenvectors.
RealEigenpair Contains a real-valued eigenvector and eigenvalue.
RealEigenpairCollection Contains real-valued eigenvalues and eigenvectors of a matrix.
RectangularMatrix A rectangular matrix of real numbers.
RowVector A row vector of real numbers.
SingularValueContributor Contains the value and left and right vectors of one term in a singular value decomposition.
SingularValueContributorCollection Contains all the terms contributing to the singular value decomposition of a matrix.
SingularValueDecomposition Stores the singular value decomposition of a matrix.
SparseSquareMatrix Represents a sparse, square matrix.
SquareMatrix Represents a square matrix.
SquareQRDecomposition Represents the QR decomposition of a square matrix.
SymmetricMatrix Represents a symmetric matrix.
TridiagonalLUDecomposition Represents the LU decomposition of a tri-diagonal matrix.
TridiagonalMatrix Represents a tri-diagonal matrix.
UnitMatrix Represents a unit matrix.

Enumerations

OrderBy Describes an ordering of eigenvalues.