LinearMultivariateMatrixPencil R¶
linpen.spad line 9 [edit on github]
R: Ring
Author: Konrad Schrempf <schrempf@math.tugraz.at> Date Created: Mit 2016-02-03 17:20 Date Changed: Sam 2018-09-01 10:37 Basic Functions: Related Constructors: Matrix Also See: FreeDivisionAlgebra AMS Classifications: Keywords: References: Description:
- *: (%, Matrix R) -> %
p * U
column transformation …
- *: (Matrix R, %) -> %
T * P
row transformation …
- =: (%, %) -> Boolean
p = q
entrywise equality.
- addColumns!: (%, NonNegativeInteger, NonNegativeInteger, R) -> %
addColumns!(p, i, j, alpha)
adds alpha*column(i
) to column(j
) in all matrices of the linear pencilp
.
- addRows!: (%, NonNegativeInteger, NonNegativeInteger, R) -> %
addRows!(p, i, j, alpha)
adds alpha*row(i
) to row(j
) in all matrices of the linear pencilp
.
- append!: (%, NonNegativeInteger) -> %
append!(p, l)
appendsl
matrices to the linear pencil.
- append: (%, NonNegativeInteger) -> %
append(p, l)
appendsl
matrices to the linear pencil.
- blockElimination: (%, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger) -> List Matrix R if R has Field
blockElimination(p, rsrc, rdst, rext, csrc, cdst, cext)
r___ rows, c___ columns _src source, _dst destination, _ext extra (zeros) Uses a linear system of equations to determine row and column transformation matrices to eliminate the entries in rdst+rext times cdst+cext and returns an empty list if there is no solution.
- coerce: % -> OutputForm
coerce(p)
prints the linear pencilp
in list form.
- copy: % -> %
copy(p)
returns a copy of the linear pencilp
.
- diagonal?: (%, NonNegativeInteger) -> Boolean
diagonal?(p, l)
is the matrixl
diagonal?
- diagonal: (%, NonNegativeInteger) -> List R
diagonal(p, l)
returns the entries along the diagonal in a list.
- eliminationEquations: (%, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger) -> List Matrix Polynomial R if R has Field
eliminationEquations(p, row_P, col_P, row_Q, col_Q, rdst, cdst)
returns a list of matrices with equations to eliminate the entries in rows/columns rdst/cdst.
- eliminationEquations: (%, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger) -> List Matrix Polynomial R if R has Field
eliminationEquations(p, row_P, col_P, row_Q, col_Q, rdst, cdst, rex1, cex1, rex2, cex2)
returns a list of matrices with equations to eliminate the entries in rows/columns rdst/cdst,rex1/cex1
andrex2/cex2
.
- eliminationEquations: (%, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger) -> List Polynomial R if R has Field
eliminationEquations(p, row_P, col_P, row_Q, col_Q, rdst, cdst, rex1, cex1, rex2, cex2)
returns a list of equations with equations to eliminate the entries in rows/columns rdst/cdst,rex1/cex1
andrex2/cex2
, including det(P
)-1
and det(Q
)-1
.
- eliminationGroebner: (%, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger) -> List Polynomial R if R has Field
eliminationGroebner(p, row_P, col_P, row_Q, col_Q, rdst, cdst, rex1, cex1, rex2, cex2)
computes a Groebner–Shirshov basis for the ideal generated by the equations from eliminationEquations(…) using the domain DistributedMultivariatePolynomial.
- eliminationSolve: (List Polynomial R, List R, List List Equation Polynomial R) -> List List Equation Polynomial R if R has Field
eliminationSolve(lst_eqn, lst_val, lst_sub)
computes all solutions of the first equation oflst_eqn
by trying the values oflst_val
for undetermined variables with respect to given subsolutions lst_sub and return those which fulfill all other equations inlst_eqn
.
- eliminationSolve: (Polynomial R, List R) -> List List Equation Polynomial R if R has Field
eliminationSolve(eqn, lst_val)
computes all solutions of equationeqn
by trying the values of lst_val for undetermined variables.
- eliminationSolve: (Polynomial R, List R, List Equation Polynomial R) -> List List Equation Polynomial R if R has Field
eliminationSolve(eqn, lst_val, sub)
computes all solutions of equationeqn
by trying the values oflst_val
for undetermined variables with respect to given subsolution sub.
- eliminationSolve: (Polynomial R, List R, List List Equation Polynomial R) -> List List Equation Polynomial R if R has Field
eliminationSolve(eqn, lst_val, lst_sub)
computes all solutions of equationeqn
by trying the values oflst_val
for undetermined variables with respect to given subsolutions lst_sub.
- eliminationSolve: List Polynomial R -> List List Equation Polynomial R if R has Field
eliminationSolve(lst_eqn)
calls eliminationSolve(lst_eqn
, [0,1], []).
- eliminationTransformations: (%, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger) -> List Matrix Polynomial R if R has Field
eliminationTransformations(p, row_P, col_P, row_Q, col_Q)
returns a pair of transformation matrices with commutative variables ‘a[i
] in rows/columns row_P/col_P respectively'b
[i
] in rows/columns row_Q/col_Q.
- eliminationTransformations: (%, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List NonNegativeInteger, List Equation Polynomial R) -> List Matrix R if R has Field
eliminationTransformations(p, row_P, col_P, row_Q, col_Q, sol)
Uses eval to set the values in sol into the variables in the transformation matrices.
- eliminationTransformations: (%, List NonNegativeInteger, List NonNegativeInteger, Symbol, List NonNegativeInteger, List NonNegativeInteger, Symbol) -> List Matrix Polynomial R if R has Field
eliminationTransformations(p, row_P, col_P, sym_P, row_Q, col_Q, sym_Q)
returns a pair of transformation matrices with commutative variablessym_P
[i
] in rows/columns row_P/col_P respectively sym_Q[i
] in rows/columns row_Q/col_Q.
- elt: (%, NonNegativeInteger, NonNegativeInteger) -> List R
elt(p, i, j)
returns the elements (i
,j
) from the linear pencilp
as a list.
- elt: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> R
elt(p, i, j, l)
returns the element (i
,j
) in matrixl
of the linear pencilp
.
- equal?: (%, List NonNegativeInteger, %, List NonNegativeInteger) -> Boolean
equal?(p, pos_p, q, pos_q)
checks, if the matricespos_p
inp
are equal to the pos_q inq
. Not spacified matrices have to be zero.
- insertRowsColumns: (%, List NonNegativeInteger, List NonNegativeInteger) -> %
insertRowsColumns(p, lst_row, lst_col)
returns a new pencil with additional rows and columns after the specified indices. addRowsColumns(p
, [0,0,1], [0,0,3]) would insert 2 rows and columns at the beginning an one row and column between rows 1 and 2 and columns 3 and 4 respectively.
- leftIdentity: % -> Matrix R
leftIdentity(p)
returns the left identity matrix.
- matrix: (%, NonNegativeInteger) -> Matrix R
matrix(p, l)
returns matrixl
in the linear pencilp
.
- multiplyColumn!: (%, NonNegativeInteger, R) -> %
multiplyColumn!(p, j, alphat)
multiplies column(j
) by alpha.
- multiplyRow!: (%, NonNegativeInteger, R) -> %
multiplyRow!(p, i, alpha)
multiplies row(i
) by alpha.
- ncols: % -> NonNegativeInteger
ncols(p)
returns the number of columns.
- nelem: % -> NonNegativeInteger
nelem(p)
returns the number of elements.
- nrows: % -> NonNegativeInteger
nrows(p)
returns the number of rows.
- qaddColumns!: (%, NonNegativeInteger, NonNegativeInteger, R) -> %
addColumns!(p, i, j, alpha)
adds alpha*column(i
) to column(j
) in all matrices of the linear pencilp
. (no index check)
- qaddRows!: (%, NonNegativeInteger, NonNegativeInteger, R) -> %
qaddRows!(p, i, j, alpha)
adds alpha*row(i
) to row(j
) in all matrices of the linear pencilp
(no index check). (no index check)
- qcolumnIndices: (%, NonNegativeInteger) -> List List NonNegativeInteger
qcolumnIndices(p, off)
returns a list of column indices for nozero elements for every row starting at the specified offset. (no range check)
- qcolumnIndices: (%, NonNegativeInteger, NonNegativeInteger) -> List List NonNegativeInteger
qcolumnIndices(p, off, l)
returns a list of column indices for nonzero elements in matrixl
for every row starting at the specified offset. (no range check)
- qcolumnIndices: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> List NonNegativeInteger
qcolumnIndices(p, off, i, l)
returns a list of column indices for nonzero elements in the specified row of matrixl
for starting at the specified offset. (no range check)
- qdiagonal?: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean
qdiagonal?(p, k_min, k_max, l)
is the matrixl
diagonal betweenk_min
and k_max? (no range check)
- qdiagonal: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> List R
qdiagonal(p, k_min, k_max, l)
returns the entries along the diagonal betweenk_min
andk_max
. (no range check)
- qelt: (%, NonNegativeInteger, NonNegativeInteger) -> List R
elt(p, i, j)
returns the elements (i
,j
) from the linear pencilp
as a list (no check).
- qelt: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> R
elt(p, i, j, l)
returns the element (i
,j
) in matrixl
of the linear pencilp
(no index-check).
- qequal?: (%, List NonNegativeInteger, %, List NonNegativeInteger, NonNegativeInteger) -> Boolean
qequal?(p, pos_p, q, pos_q, offset)
checks, if the matrices are equal starting at offset.
- qmultiplyColumn!: (%, NonNegativeInteger, R) -> %
multiplyColumn!(p, j, alphat)
multiplies column(j
) by alpha.
- qmultiplyRow!: (%, NonNegativeInteger, R) -> %
qmultiplyRow!(p, i, alpha)
multiplies row(i
) by alpha. (no index check)
- qnew: (NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> %
qnew(m, n, l)
creates an empty linear pencil withl
matrices withm
rows andn
columns.
- qnilpotent?: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean
qnilpotent?(p, k_min, k_max, l)
ist the matrixl
nilpotent with respect to the specified block? (no range check)
- qrowIndices: (%, NonNegativeInteger) -> List List NonNegativeInteger
qrowIndices(p, off)
returns a list of row indices for nonzero elements for every column starting at the specified offset. (no range check)
- qrowIndices: (%, NonNegativeInteger, NonNegativeInteger) -> List List NonNegativeInteger
qrowIndices(p, off, l)
returns a list of row indices for nonzero elements in matrixl
for every column starting at the specified offset. (no range check)
- qrowIndices: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> List NonNegativeInteger
qrowIndices(p, off, j, l)
returns a list of row indices for nozero elements in columnj
in matrixl
(no range check)
- qscaleBlock!: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, R) -> %
qscalesubMatrix!(p, i_min, i_max, j_min, j_max, l, alpha)
multiplies the entries in the specified block of matrixl
with alpha.
- qsemizero?: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean
qsemizero?(p, i_min, i_max, j_min, j_max, l)
checks, if the specified submatrix is zero except for matrixl
(no index check).
- qsetelt!: (%, NonNegativeInteger, NonNegativeInteger, List R) -> List R
qsetelt!(p, i, j, lst)
sets the element (i
,j
) in the matrices of the linear pencilp
according to the elements inlst
.
- qsetelt!: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, R) -> R
qselelt!(p, i, j, l, alpha)
sets the element (i
,j
) in matrixl
of the linear pencilp
to alpha.
- qswapColumns!: (%, NonNegativeInteger, NonNegativeInteger) -> %
qswapColumns!(p, i, j)
exchanges columnsi
andj
in all matrices of the linear pencilp
(no index check)
- qswapRows!: (%, NonNegativeInteger, NonNegativeInteger) -> %
qswapRows!(p, i, j)
exchanges rowsi
andj
in all matrices of the linear pencilp
(no index check).
- quppertriangular?: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean
quppertriangular?(p, k_min, k_max, l)
is the matrixl
upper triangular with respect to the specified block? (no range check)
- qzero?: (%, NonNegativeInteger, NonNegativeInteger) -> Boolean
qzero?(p, i, j)
checks if all the entries (i
,j
) of the linear pencilp
are zero. (no index check)
- qzero?: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean
qzero?(p, i_min, i_max, j_min, j_max)
checks if the specified block of the linear pencilp
is zero for all matrices. (no index check)
- qzero?: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Boolean
qzero?(p, i_min, i_max, j_min, j_max, l)
checks if the specified block of matrixl
of the linear pencilp
is zero (no index check)
- removeRowsColumns: (%, List NonNegativeInteger, List NonNegativeInteger) -> %
removeRowsColumns(p, lst_row, lst_col)
returns a new pencil with submatrices specified by the complement of the list of rows and columns.
- rightIdentity: % -> Matrix R
rightIdentity(p)
returns the right identity matrix.
- setelt!: (%, NonNegativeInteger, NonNegativeInteger, List R) -> List R
setelt!(p, i, j, lst)
sets the element (i
,j
) in the matrices of the linear pencilp
according to the elements inlst
.
- setelt!: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, R) -> R
selelt!(p, i, j, l, alpha)
sets the element (i
,j
) in matrixl
of the linear pencilp
to alpha.
- setsubMatrix!: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, Matrix R) -> Matrix R
setsubMatrix!(p, i, j, l, a)
sets the matrix a into the matrixl
ofp
in position (i
,j
).
- setsubPencil!: (%, NonNegativeInteger, NonNegativeInteger, %) -> %
setsubPencil!(p, i, j, q)
sets the matrices of pencilq
into the matrices ofp
in position (i
,j
).
- subMatrix: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> Matrix R
subMatrix(p, r_min, r_max, c_min, c_max, l)
returns the specified submatrixl
of the linear pencilp
.
- subPencil: (%, List NonNegativeInteger, List NonNegativeInteger) -> %
subPencil(p, lst_row, lst_col)
returns a pencil with submatrices specified by a list of rows and columns.
- subPencil: (%, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger, NonNegativeInteger) -> %
subPencil(p, r_min, r_max, c_min, c_max)
returns a pencil with the specified submatrices.
- swapColumns!: (%, NonNegativeInteger, NonNegativeInteger) -> %
swapColumns!(p, i, j)
exchanges columnsi
andj
in all matrices of the linear pencilp
.
- swapRows!: (%, NonNegativeInteger, NonNegativeInteger) -> %
swapRows!(p, i, j)
exchanges rowsi
andj
in all matrices of the linear pencilp
.
- transformColumns!: (%, Matrix R) -> %
transformColumns!(p, U)
multiplies the matrices of the linear pencil from the right byU
.
- transformRows!: (%, Matrix R) -> %
transformRows!(p, T)
multiplies the matrices of the linear pencil from the left byT
.
- uppertriangular?: (%, NonNegativeInteger) -> Boolean
uppertriangular?(p, l)
is the matrixl
upper triangular?
- zero?: (%, NonNegativeInteger, NonNegativeInteger) -> Boolean
zero?(p, i, j)
checks if all the entries (i
,j
) of the linear pencilp
are zero.