Constructor for Laurent Polynomial Matrices
lpolm.Rd
lpolm
objects represent Laurent polynomial matrices of the form
$$a(z) = a_{-q} z^{-q} + \cdots + a_{-1} z^{-1} + a_0 + a_1 z + \cdots + a_p z^p$$
If \(a(z)\) is an \((m,n)\) dimensional Laurent polynomial matrix
(i.e. the coefficients \(a_i\) are \((m,n)\) dimensional real or complex valued matrices),
then the lpolm
object stores the coefficients in
an (m,n,q+p+1)
-dimensional (numeric or complex) array \(a_{-q}, \ldots, a_{-1}, a_{0}, a_{1}, \ldots, a_{p}\),
together with a class attribute c("lpolm","ratm")
.
The constructor function lpolm(a, min_deg)
takes an integer min_deg
(default is zero) and
a (numeric or complex) vector, matrix or 3-dimensional array and returns an lpolm
object.
Arguments
- a
either a (numeric or complex) vector, matrix or 3-D array. A vector is coerced to a scalar (i.e. \((1,1)\)-dimensional) polynomial and a matrix gives a Laurent polynomial matrix whose only coefficient matrix is of degree
min_deg
.- min_deg
Integer. Default set to zero. Smallest degree in the Laurent polynomial. Negative for Laurent polynomials which cannot be coerced to
polm
objects (as.polm
throws an error).
Value
An object of class c("lpolm", "ratm")
.
When non-negative, the object is still of this class.
However, it can then be coerced to an object of class c("polm", "ratm")
using as.polm
Details
Any of the dimensions of the 3-dimensional array may also be zero.
In particular, if the third dimension is zero, then the lpolm
object is interpreted as the zero Laurent polynomial.
This class is special in the sense that it is not possible to upgrade it to an lmfd
, rmfd
, stsp
, or pseries
object.
For important methods and functions for this class have a look at the "see also" section.
Note that some functions are only written for polm
objects: degree
, col_end_matrix
, normal forms like snf
, hnf
, whf
.
See also
polm
.test_lpolm
generates random polynomials.checks:
is.lpolm
prune
discards leading and trailing zero matrices of Laurent polynomials.get_bwd
discards all coefficient matrices pertaining to negative powers and returns a polm object.get_fwd
discards all coefficient matrices pertaining to positive powers. It returns thus an lpolm object.polm2fwd
performs the transformation \(p(z) \rightarrow p(z^{-1})\) on a polm object and returns an lpolm object.
Examples
# (1 x 1) Laurent polynomial matrix a(z) = 3z^{-2} + 2z^{-1} + 1
lpolm(3:1, min_deg = -2)
#> ( 1 x 1 ) Laurent polynomial matrix with degree <= 0, and minimal degree >= -2
#> z^-2 [,1] z^-1 [,1] z^0 [,1]
#> [1,] 3 2 1
# Non-negative minimal degrees are allowed too (no implicit coercion to polm object)
lpolm(3:1, min_deg = 2)
#> ( 1 x 1 ) Laurent polynomial matrix with degree <= 4, and minimal degree >= 2
#> z^2 [,1] z^3 [,1] z^4 [,1]
#> [1,] 3 2 1
lpolm(matrix(1:4,2,2), min_deg = -2)
#> ( 2 x 2 ) Laurent polynomial matrix with degree <= -2, and minimal degree >= -2
#> z^-2 [,1] [,2]
#> [1,] 1 3
#> [2,] 2 4