Skip to content

Latest commit

 

History

History
233 lines (180 loc) · 17.9 KB

index.md

File metadata and controls

233 lines (180 loc) · 17.9 KB
CurrentModule = MatrixPencils
DocTestSetup = quote
    using MatrixPencils
end

MatrixPencils.jl

DocBuild Code on Github.

The Kronecker-canonical form of a matrix pencil M − λN basically characterizes the right and left singular structure and the eigenvalue structure of the pencil. The computation of the Kronecker-canonical form may involve the use of ill-conditioned similarity transformations and, therefore, is potentially numerically unstable. Fortunately, alternative staircase forms, called Kronecker-like forms (KLFs), allow to obtain basically the same (or only a part of) structural information on the pencil M − λN by employing exclusively orthogonal similarity transformations. Various KLFs can serve to address, in a numerically reliable way, the main applications of the Kronecker form, such as the computation of minimal left or right nullspace bases, the computation of eigenvalues and zeros, the determination of the normal rank of polynomial and rational matrices, computation of various factorizations of rational matrices, as well as the solution of linear equations with polynomial or rational matrices.

This collection of Julia functions is an attemp to implement high performance numerical software to compute a range of KLFs which reveal the full or partial Kronecker structure of a matrix pencil. The KLFs are computed by performing several pencil reduction operations on a reduced basic form of the initial pencil. These operations efficiently compress the rows or columns of certain submatrices to full rank matrices and simultaneously maintain the reduced basic form. The rank decisions involve the use of rank revealing QR-decompositions with colum pivoting or the, more reliable, SVD-decompositions. The overall computational complexity of all reduction algorithms is O(n^3), where n is the largest dimension of the pencil.

The implemented basic pencil reduction operations are described in [1] and [2], and form the basis of the implemented PREDUCE procedure described in [3].

A set of functions is provided to address pencil manipulation problems for structured matrix pencils M − λN of the forms [A - λE B; C D] or [A-λE B-λF; C-λG D-λH]. Matrix pencils with these structure frequently arise from the linearization of polynomial or rational matrices. The computation of least order linearizations is based on algorithms described in [3]-[9].

A set of functions is available for the manipulation of polynomial matrices specified via their coefficient matrices in a monomial basis. All funtions also support matrix, vector or scalar of elements of the Polynomial type provided by the Polynomials package. Several linearization functions are available which allow the extension of pencil manipulation techniques to matrix polynomials. Some straightforward applications are covered such as the computation of finite and infinite eigenvalues, zeros and poles, the determination of the normal rank, the determination of Kronecker indices and finite and infinite eigenvalue structure, checks of regularity and unimodularity. The implementations follow the computational framework and results developed in [10] and are described in [11].

Balancing techniques for matrix pencils can significantly enhance the reliability of computations and improve the accuracy of computed eigenvalues and zeros. Balancing approaches relying on the Sinkhorn-Knopp algorithm have been proposed in [15] and served as basis for several functions for balancing matrix pencils.

The available functions in the MatrixPencils.jl package cover both real and complex numerical data. The current version of the package includes the following functions:

Manipulation of general matrix pencils

Function Description
pbalance! Balancing arbitrary matrix pencils.
pbalqual Evaluation of the balancing quality of a matrix pencils.
preduceBF Reduction to the basic condensed form [B A-λE; D C] with E upper triangular and nonsingular.
klf Computation of the Kronecker-like form exhibiting the full Kronecker structure
klf_right Computation of the Kronecker-like form exhibiting the right and finite Kronecker structures
klf_rightinf Computation of the Kronecker-like form exhibiting the right and infinite Kronecker structures
klf_left Computation of the Kronecker-like form exhibiting the left and finite Kronecker structures
klf_leftinf Computation of the Kronecker-like form exhibiting the left and infinite Kronecker structures
klf_rlsplit Computation of the Kronecker-like form exhibiting the separation of right and left Kronecker structures

Manipulation of structured matrix pencils of the form [A-λE B; C D]

Function Description
sreduceBF Reduction to the basic condensed form [B A-λE; D C] with E upper triangular and nonsingular.
sklf Computation of the Kronecker-like form exhibiting the full Kronecker structure
sklf_right Computation of the Kronecker-like form exhibiting the right Kronecker structure
sklf_left Computation of the Kronecker-like form exhibiting the left Kronecker structure
gsklf Computation of several row partition preserving special Kronecker-like forms

Manipulation of regular matrix pencils

Function Description
regbalance! Balancing regular matrix pencils
isregular Checking the regularity of a pencil
isunimodular Checking the unimodularity of a pencil
fisplit Finite-infinite eigenvalue splitting
sfisplit Special finite-infinite eigenvalue splitting
fihess Finite-infinite eigenvalue splitting in a generalized Hessenberg form
fischur Finite-infinite eigenvalue splitting in a generalized Schur form
fischursep Finite-infinite eigenvalue splitting in an ordered generalized Schur form
sfischursep Special finite-infinite eigenvalue splitting in an ordered generalized Schur form
fiblkdiag Finite-infinite eigenvalue splitting based block diagonalization
gsblkdiag Finite-infinite and stable-unstable eigenvalue splitting based block diagonalization
ssblkdiag Stable-unstable eigenvalue splitting based block diagonalization
saloc Spectrum alocation for the pairs (A,B) and (A-λE,B)
salocd Spectrum alocation for the dual pairs (A,C) and (A-λE,C)
salocinf Infinite spectrum alocation for the pair (A-λE,B)
salocinfd Infinite spectrum alocation for the dual pair (A-λE,C)
ordeigvals Order-preserving computation of eigenvalues of a Schur matrix or a generalized Schur pair.

Some applications of matrix pencil computations

Function Description
pkstruct Determination of the complete Kronecker structure
prank Determination of the normal rank
peigvals Computation of the finite and infinite eigenvalues
pzeros Computation of the finite and infinite zeros

Some applications to structured matrix pencils of the form [A-λE B; C D]

Function Description
spkstruct Determination of the complete Kronecker structure
sprank Determination of the normal rank
speigvals Computation of the finite and infinite eigenvalues
spzeros Computation of the finite and infinite zeros

Manipulation of linearizations of polynomial or rational matrices

Function Description
lsbalance! Scaling of a descriptor system based linearization
lsbalqual Evaluation of the scaling quality of descriptor system based linearizations
lsminreal Computation of irreducible descriptor system based linearizations
lsminreal2 Computation of irreducible descriptor system based linearizations (potentially more efficient)
lpsminreal Computation of strongly minimal pencil based linearizations
lsequal Checking the equivalence of two descriptor system based linearizations
lpsequal Checking the equivalence of two pencil based linearizations
lseval Evaluation of the value of the rational matrix corresponding to a descriptor system based linearization
lpseval Evaluation of the value of the rational matrix corresponding to a pencil based linearization
lps2ls Conversion of a pencil based linearization into a descriptor system based linearization

Manipulation of polynomial matrices

Function Description
poly2pm Conversion of a polynomial matrix used in Polynomials package to a polynomial matrix represented as a 3-dimensional matrix
pm2poly Conversion of a polynomial matrix represented as a 3-dimensional matrix to a polynomial matrix used in Polynomials package
pmdeg Determination of the degree of a polynomial matrix
pmeval Evaluation of a polynomial matrix for a given value of its argument.
pmreverse Building the reversal of a polynomial matrix
pmdivrem Quotients and remainders of elementwise divisions of two polynomial matrices
pm2lpCF1 Building a linearization in the first companion Frobenius form
pm2lpCF2 Building a linearization in the second companion Frobenius form
pm2ls Building a descriptor system based structured linearization [A-λE B; C D] of a polynomial matrix
ls2pm Computation of the polynomial matrix from its descriptor system based structured linearization
pm2lps Building a pencil based structured linearization [A-λE B-λF; C-λG D-λH] of a polynomial matrix
lps2pm Computation of the polynomial matrix from its pencil based structured linearization
spm2ls Building a descriptor system based structured linearization [A-λE B; C D] of a structured polynomial matrix [T(λ) U(λ); V(λ) W(λ)]
spm2lps Building a pencil based structured linearization [A-λE B-λF; C-λG D-λH] of a structured polynomial matrix [T(λ) U(λ); V(λ) W(λ)]

Some applications to polynomial matrices

Function Description
pmkstruct Determination of the Kronecker and infinite zero-pole structure using companion form based linearizations
pmeigvals Computation of the finite and infinite eigenvalues using companion form based linearizations
pmzeros Computation of the finite and infinite zeros using companion form based linearizations
pmzeros1 Computation of the finite and infinite zeros using pencil based structured linearization
pmzeros2 Computation of the finite and infinite zeros using descriptor system based structured linearization
pmroots Computation of the roots of the determinant of a regular polynomial matrix
pmpoles Computation of the (infinite) poles using companion form based linearizations
pmpoles1 Computation of the (infinite) poles using pencil based structured linearization
pmpoles2 Computation of the (infinite) poles using descriptor system based structured linearization
pmrank Determination of the normal rank
ispmregular Checking the regularity of a polynomial matrix
ispmunimodular Checking the unimodularity of a polynomial matrix

Manipulation of rational matrices

Function Description
rm2lspm Representation of a rational matrix as a linearization of its strictly proper part plus its polynomial part
rmeval Evaluation of a rational matrix for a given value of its argument.
rm2ls Building a descriptor system based structured linearization [A-λE B; C D] of a rational matrix
ls2rm Computation of the rational matrix from its descriptor system based structured linearization
rm2lps Building a pencil based structured linearization [A-λE B-λF; C-λG D-λH] of a rational matrix
lps2rm Computation of the rational matrix from its pencil based structured linearization
lpmfd2ls Building a descriptor system based structured linearization [A-λE B; C D] of a left polynomial matrix fractional description
rpmfd2ls Building a descriptor system based structured linearization [A-λE B; C D] of a right polynomial matrix fractional description
lpmfd2lps Building a pencil based structured linearization [A-λE B-λF; C-λG D-λH] of a left polynomial matrix fractional description
rpmfd2lps Building a pencil based structured linearization [A-λE B-λF; C-λG D-λH] of a right polynomial matrix fractional description
pminv2ls Building a descriptor system based structured linearization [A-λE B; C D] of the inverse of a polynomial matrix
pminv2lps Building a pencil based structured linearization [A-λE B-λF; C-λG D-λH] of the inverse of a polynomial matrix

Some applications to rational matrices

Function Description
rmkstruct Determination of the Kronecker and infinite zero-pole structure using descriptor system based structured linearization
rmzeros Computation of the finite and infinite zeros using descriptor system based structured linearization
rmzeros1 Computation of the finite and infinite zeros using pencil based structured linearization
rmpoles Computation of the finite and infinite poles using descriptor system based structured linearization
rmpoles1 Computation of the finiet and infinite poles using pencil based structured linearization
rmrank Determination of the normal rank

A complete list of implemented functions is available here.

Future plans

Functional enhancements of some functions will be performed if the need arises.

Main developer

Andreas Varga

License: MIT (expat)

References

[1] C. Oara and P. Van Dooren. An improved algorithm for the computation of structural invariants of a system pencil and related geometric aspects. Syst. Control Lett., 30:39–48, 1997.

[2] A. Varga. Computation of irreducible generalized state-space realizations. Kybernetika, 26:89–106, 1990.

[3] A. Varga, Solving Fault Diagnosis Problems – Linear Synthesis Techniques, Vol. 84 of Studies in Systems, Decision and Control, Springer International Publishing, 2017.

[4] P. Van Dooreen, The generalized eigenstructure problem in linear system theory, IEEE Transactions on Automatic Control, vol. AC-26, pp. 111-129, 1981.

[5] P. Van Dooren and P. Dewilde, The eigenstructure of an arbitrary polynomial matrix: computational aspects, Linear Algebra Appl., 50 (1983), pp. 545–579.

[6] F.M. Dopico, M.C. Quintana and P. Van Dooren, Linear system matrices of rational transfer functions, to appear in "Realization and Model Reduction of Dynamical Systems", A Festschrift to honor the 70th birthday of Thanos Antoulas", Springer-Verlag. arXiv: 1903.05016

[7] G. Verghese, B. Lévy, and T. Kailath, A generalized state-space for singular systems, IEEE Trans. Automat. Control, 26 (1981), pp. 811–831.

[8] G. Verghese, P. Van Dooren, and T. Kailath, Properties of the system matrix of a generalized state- space system, Int. J. Control, 30 (1979), pp. 235–243.

[9] G. Verghese, Comments on ‘Properties of the system matrix of a generalized state-space system’, Int. J. Control, Vol.31(5) (1980) 1007–1009.

[10] F. De Terán, F. M. Dopico, D. S. Mackey, Spectral equivalence of polynomial matrices and the Index Sum Theorem, Linear Algebra and Its Applications, vol. 459, pp. 264-333, 2014.

[11] A. Varga, On computing the Kronecker structure of polynomial and rational matrices using Julia, 2020, arXiv:2006.06825.

[12] A. Varga. A Schur method for pole assignment. IEEE Trans. on Automatic Control, vol. 26, pp. 517-519, 1981.

[13] A. Varga. On stabilization methods of descriptor systems. Systems & Control Letters, vol. 24, pp.133-138, 1995.

[14] B. Kågström and P. Van Dooren. Additive decomposition of a transfer function with respect to a specified region. In M. A. Kaashoek, J. H. van Schuppen, and A. C. M. Ran (Eds.), Signal Processing, Scattering and Operator Theory, and Numerical Methods, Proc. of MTNS 1989, Amsterdam, The Netherlands, vol. 3, pp. 469–477. Birhhäuser, Boston, 1990.

[15] F.M.Dopico, M.C.Quintana and P. van Dooren, "Diagonal scalings for the eigenstructure of arbitrary pencils", SIMAX, 43:1213-1237, 2022.