Matrices
- Introduction
- Creation of Matrices
- General Matrix Construction
Matrix(R, m, n, Q): Rng, RngIntElt, RngIntElt, [ RngElt ] → Mtrx
Matrix(R, m, n, Q): Rng, RngIntElt, RngIntElt, [ <RngIntElt, RngIntElt, RngElt> ] → Mtrx
Matrix(R, m, n, Q): Rng, RngIntElt, RngIntElt, [ [ RngElt ] ] → Mtrx
Example: Create
- Shortcuts
Matrix(m, n, Q): RngIntElt, RngIntElt, [ RngElt ] → Mtrx
Matrix(m, n, Q): RngIntElt, RngIntElt, [ [ RngElt ] ] → Mtrx
Matrix(Q): [ Mtrx ] → Mtrx
Matrix(R, n, Q): Rng, RngIntElt, [ RngElt ] → Mtrx
Matrix(n, Q): RngIntElt, [ RngElt ] → Mtrx
Matrix(Q): [ [ RngElt ] ] → Mtrx
Matrix(R, Q): Rng, [ [ RngElt ] ] → Mtrx
Example: Short Cuts
- Construction of Structured Matrices
ZeroMatrix(R, m, n): Rng, RngIntElt, RngIntElt → Mtrx
IdentityMatrix(R, n): Rng, RngIntElt → Mtrx
ScalarMatrix(n, s): RngIntElt, RngElt → Mtrx
ScalarMatrix(R, n, s): Rng, RngIntElt, RngElt → Mtrx
DiagonalMatrix(R, n, Q): Rng, RngIntElt, [ RngElt ] → Mtrx
DiagonalMatrix(R, Q): Rng, [ RngElt ] → Mtrx
DiagonalMatrix(Q): [ RngElt ] → Mtrx
Matrix(A): Mtrx → Mtrx
LowerTriangularMatrix(Q): [ RngElt ] → Mtrx
LowerTriangularMatrix(R, Q): Rng, [ RngElt ] → Mtrx
UpperTriangularMatrix(Q): [ RngElt ] → Mtrx
UpperTriangularMatrix(R, Q): Rng, [ RngElt ] → Mtrx
SymmetricMatrix(Q): [ RngElt ] → Mtrx
SymmetricMatrix(R, Q): Rng, [ RngElt ] → Mtrx
AntisymmetricMatrix(Q): [ RngElt ] → Mtrx
AntisymmetricMatrix(R, Q): Rng, [ RngElt ] → Mtrx
PermutationMatrix(R, Q): Rng, [ RngIntElt ] → Mtrx
PermutationMatrix(R, x): Rng, GrpPermElt → Mtrx
Example: Shortcuts
- Construction of Random Matrices
RandomMatrix(R, m, n): Rng, RngIntElt, RngIntElt → Mtrx
RandomUnimodularMatrix(n, M): RngIntElt, RngIntElt → Mtrx
RandomSLnZ(n, k, l): RngIntElt, RngIntElt, RngIntElt → AlgMatElt
RandomGLnZ(n, k, l): RngIntElt, RngIntElt, RngIntElt → AlgMatElt
RandomSymplecticMatrix(g, m): RngIntElt, RngIntElt → Mtrx
RandomSymmetricMatrix(R, n): Rng, RngIntElt → AlgMatElt
RandomSymmetricMatrix(R, n, M): RngOrd, RngIntElt, RngIntElt → AlgMatElt
RandomPositiveDefiniteSymmetricMatrix(n, M): RngIntElt, RngIntElt → AlgMatElt
- Creating Vectors
- Elementary Properties
- Accessing or Modifying Entries
- Indexing
A[i]: Mtrx, RngIntElt → ModTupRngElt
A[i, j]: Mtrx, RngIntElt, RngIntElt → RngElt
A[Q]: Mtrx, [ RngIntElt ] → RngElt
A[i .. j]: Mtrx, RngIntElt, RngIntElt → RngElt
A[i] := v: Mtrx, RngIntElt, Mtrx
A[i, j] := x: Mtrx, RngIntElt, RngIntElt, RngElt
Example: Indexing
- Extracting and Inserting Blocks
Submatrix(A, i, j, p, q): Mtrx, RngIntElt, RngIntElt, RngIntElt, RngIntElt → Mtrx
ExtractBlock(A, i, j, p, q): Mtrx, RngIntElt, RngIntElt, RngIntElt, RngIntElt → Mtrx
SubmatrixRange(A, i, j, r, s): Mtrx, RngIntElt, RngIntElt, RngIntElt, RngIntElt → Mtrx
ExtractBlockRange(A, i, j, r, s): Mtrx, RngIntElt, RngIntElt, RngIntElt, RngIntElt → Mtrx
Submatrix(A, I, J): Mtrx, [RngIntElt], [RngIntElt] → Mtrx
InsertBlock(A, B, i, j): Mtrx, Mtrx, RngIntElt, RngIntElt → Mtrx
InsertBlock(~A, B, i, j): Mtrx, Mtrx, RngIntElt, RngIntElt → Mtrx
RowSubmatrix(A, i, k): Mtrx, RngIntElt, RngIntElt → Mtrx
RowSubmatrix(A, i): Mtrx, RngIntElt → Mtrx
RowSubmatrixRange(A, i, j): Mtrx, RngIntElt, RngIntElt → Mtrx
ColumnSubmatrix(A, i, k): Mtrx, RngIntElt, RngIntElt → Mtrx
ColumnSubmatrix(A, i): Mtrx, RngIntElt → Mtrx
ColumnSubmatrixRange(A, i, j): Mtrx, RngIntElt, RngIntElt → Mtrx
Example: Submatrix
- Row and Column Operations
SwapRows(A, i, j): Mtrx, RngIntElt, RngIntElt → Mtrx
SwapRows(~A, i, j): Mtrx, RngIntElt, RngIntElt
SwapColumns(A, i, j): Mtrx, RngIntElt, RngIntElt → Mtrx
SwapColumns(~A, i, j): Mtrx, RngIntElt, RngIntElt
ReverseRows(A): Mtrx → Mtrx
ReverseRows(~A): Mtrx
ReverseColumns(A): Mtrx → Mtrx
ReverseColumns(~A): Mtrx
AddRow(A, c, i, j): Mtrx, RngElt, RngIntElt, RngIntElt → Mtrx
AddRow(~A, c, i, j): Mtrx, RngElt, RngIntElt, RngIntElt
AddColumn(A, c, i, j): Mtrx, RngElt, RngIntElt, RngIntElt → Mtrx
AddColumn(~A, c, i, j): Mtrx, RngElt, RngIntElt, RngIntElt
MultiplyRow(A, c, i): Mtrx, RngElt, RngIntElt → Mtrx
MultiplyRow(~A, c, i): Mtrx, RngElt, RngIntElt
MultiplyColumn(A, c, i): Mtrx, RngElt, RngIntElt → Mtrx
MultiplyColumn(~A, c, i): Mtrx, RngElt, RngIntElt
RemoveRow(A, i): Mtrx, RngIntElt → Mtrx
RemoveRow(~A, i): Mtrx, RngIntElt
RemoveColumn(A, j): Mtrx, RngIntElt → Mtrx
RemoveColumn(~A, j): Mtrx, RngIntElt
RemoveRowColumn(A, i, j): Mtrx, RngIntElt → Mtrx
RemoveRowColumn(~A, i, j): Mtrx, RngIntElt
RemoveZeroRows(A): Mtrx → Mtrx
RemoveZeroRows(~A): Mtrx
Example: Row Column Ops
- Building Block Matrices
BlockMatrix(m, n, blocks): RngIntElt, RngIntElt, [ Mtrx ] → Mtrx
BlockMatrix(m, n, rows): RngIntElt, RngIntElt, [ [ Mtrx ] ] → Mtrx
BlockMatrix(rows): [ [ Mtrx ] ] → Mtrx
HorizontalJoin(X, Y): Mtrx, Mtrx → Mtrx
HorizontalJoin(Q): [ Mtrx ] → Mtrx
HorizontalJoin(T): < Mtrx > → Mtrx
VerticalJoin(X, Y): Mtrx, Mtrx → Mtrx
VerticalJoin(Q): [ Mtrx ] → Mtrx
VerticalJoin(T): < Mtrx > → Mtrx
DiagonalJoin(X, Y): Mtrx, Mtrx → Mtrx
DiagonalJoin(Q): [ Mtrx ] → Mtrx
DiagonalJoin(T): < Mtrx > → Mtrx
KroneckerProduct(A, B): Mtrx, Mtrx → Mtrx
- Changing Ring
ChangeRing(A, R): Mtrx, Rng → Mtrx
Matrix(R, A): Rng, Mtrx → Mtrx
ChangeRing(A, R, f): Mtrx, Rng, Map → Mtrx
ChangeRing(A, f): Mtrx, Map → Mtrx
CanChangeRing(A, R): Mtrx, Rng → BoolElt, Mtrx
- Elementary Arithmetic
A + B: Mtrx, Mtrx → Mtrx
A - B: Mtrx, Mtrx → Mtrx
A * B: Mtrx, Mtrx → Mtrx
x * A: RngElt, Mtrx → Mtrx
A * x: Mtrx, RngElt → Mtrx
- A: Mtrx → Mtrx
A ^ -1: Mtrx, RngIntElt → Mtrx
A ^ n: Mtrx, RngIntElt → Mtrx
Transpose(A): Mtrx → Mtrx
AddScaledMatrix(A, s, B): Mtrx, RngElt, Mtrx → Mtrx
AddScaledMatrix(~A, s, B): Mtrx, RngElt, Mtrx
- Nullspaces and Solutions of Systems
Nullspace(A): Mtrx → ModTupRng
Kernel(A): Mtrx → ModTupRng, Map
NullspaceMatrix(A): Mtrx → ModTupRng
KernelMatrix(A): Mtrx → ModTupRng
NullspaceOfTranspose(A): Mtrx → ModTupRng
IsConsistent(A, W): Mtrx, Mtrx → BoolElt, Mtrx, ModTupRng
IsConsistent(A, Q): Mtrx, [ ModTupRng ] → BoolElt, [ ModTupRngElt ], ModTupRng
Solution(A, W): ModMatRngElt, ModTupRng → ModTupRngElt, ModTupRng
Solution(A, Q): ModMatRngElt, [ ModTupRng ] → [ ModTupRngElt ], ModTupRng
Example: Nullspace
Example: Solution
- Predicates
- Determinant and Other Properties
Determinant(A: parameters): Mtrx → RngElt
Trace(A): Mtrx → RngElt
TraceOfProduct(A, B): Mtrx, Mtrx → RngElt
Rank(A): Mtrx → RngIntElt
Minor(M, i, j): Mtrx, RngIntElt, RngIntElt → RngElt
Minor(M, I, J): Mtrx, [RngIntElt], [RngIntElt] → RngElt
Minors(M, r): Mtrx, RngIntElt → SeqEnum
Cofactor(M, i, j): Mtrx, RngIntElt, RngIntElt → RngElt
Cofactors(M): Mtrx → SeqEnum
Cofactors(M, r): Mtrx, RngIntElt → SeqEnum
Pfaffian(M): Mtrx → RngElt
Pfaffian(M, I, J): Mtrx, [RngIntElt], [RngIntElt] → RngElt
Pfaffians(M, r): Mtrx, RngIntElt → SeqEnum
- Minimal and Characteristic Polynomials and Eigenvalues
MinimalPolynomial(A: parameters): Mtrx → RngUPolElt
CharacteristicPolynomial(A: parameters): Mtrx → RngUPolElt
MinimalAndCharacteristicPolynomials(A: parameters): Mtrx → RngUPolElt, RngUPolElt
MCPolynomials(A): Mtrx → RngUPolElt, RngUPolElt
FactoredMinimalPolynomial(A: parameters): Mtrx → [ <RngUPolElt, RngIntElt>]
FactoredCharacteristicPolynomial(A: parameters): Mtrx → [ <RngUPolElt, RngIntElt>]
FactoredMinimalAndCharacteristicPolynomials(A: parameters): Mtrx → [<RngUPolElt, RngIntElt>], [<RngUPolElt, RngIntElt>]
FactoredMCPolynomials(A: parameters): Mtrx → [<RngUPolElt, RngIntElt>], [<RngUPolElt, RngIntElt>]
Eigenvalues(A): Mtrx → { <FldElt, RngIntElt> }
Eigenspace(A, e): AlgMatElt, FldElt → ModTup
- Canonical Forms
- Canonical Forms over General Rings
- Canonical Forms over Fields
PrimaryRationalForm(A): Mtrx → AlgMatElt, AlgMatElt, [ <RngUPolElt, RngIntElt ]
JordanForm(A): Mtrx → Mtrx, AlgMatElt, [ <RngUPolElt, RngIntElt> ]
RationalForm(A): Mtrx → Mtrx, AlgMatElt, [ RngUPolElt ]
PrimaryInvariantFactors(A): Mtrx → [ <RngUPolElt, RngIntElt> ]
InvariantFactors(A): Mtrx → [ RngUPolElt ]
IsSimilar(A, B): AlgMatElt, AlgMatElt → BoolElt, AlgMatElt
HessenbergForm(A): Mtrx → AlgMatElt
FrobeniusFormAlternating(A): AlgMatElt → SeqEnum
Example: Canonical Forms
- Canonical Forms over Euclidean Domains
- Orders of Invertible Matrices
- Numerical Linear Algebra
- Miscellaneous Operations on Matrices