A Fortran 77 package for column reduction of polynomial matrices

Save this PDF as:

Size: px
Start display at page:

Download "A Fortran 77 package for column reduction of polynomial matrices"


1 A Fortran 77 package for column reduction of polynomial matrices AJ Geurts Department of Mathematics and Computing Sciences Eindhoven University of Technology POBox 513, 5600 MB Eindhoven, The Netherlands fax C Praagman 1 Department of Econometrics University of Groningen POBox 800, 9700 AV Groningen, The Netherlands fax: July 10, corresponding author

2 Abstract A polynomial matrix is called column reduced if its column degrees are as low as possible in some sense Two polynomial matrices P and R are called unimodularly equivalent if there exists a unimodular polynomial matrix U such that PU = R Every polynomial matrix is unimodularly equivalent to a column reduced polynomial matrix In this paper a subroutine is described that takes a polynomial matrix P as input and yields on output a unimodular matrix U and a column reduced matrix R such that PU = R, actually PU R is near zero The subroutine is based on an algorithm, described in a paper by Neven and Praagman The subroutine has been tested with a number of examples on different computers, with comparable results The performance of the subroutine on every example tried is satisfactory in the sense that the magnitude of the elements of the residual matrix P U R is about P U EPS, where EPS is the machine precision To obtain these results a tolerance, used to determine the rank of some (sub)matrices, has to be set properly The influence of this tolerance on the performance of the algorithm is discussed, from which a guideline for the usage of the subroutine is derived AMS subject classification: 65F30, 15A23, 93B10, 15A22, 15A24, 15A33, 93B10, 93B17, 93B25 CR subject classification: Algorithms, Reliability, F 21 Computations on matrices, Computations on polynomials, G13Linear systems, G4Algorithm analysis Keywords: Column Reduction, Fortran subroutine

3 1 Introduction Polynomial matrices, ie matrices of which the elements are polynomials (or equivalently polynomials with matrix coefficients), play a dominant role in modern systems theory Consider for instance a set of n variables w =(w 1,,w n ) Suppose that these variables are related by a set of m higher order linear differential equations with constant coefficients: d P 0 w + P 1 dt w + P d 2 2 dt w + +P d q 2 q w =0, (1) dtq where P k, k =0,,q are m n constant matrices Define the m n polynomial matrix P by q P (s) = P k s k, k=0 then this set of equations 1 can be written concisely as P ( d )w =0 (2) dt In the behavioral approach to systems theory equation 2, together with a specification of the function class to which the solutions should belong, describes a system For example (C (R + ),P(d/dt)w = 0) describes a system The behavior of this system consists of all w R n, of which the components are C functions on [0, ), that satisfy equation 2 Many properties of the behavior of the system can be derived immediately from properties of the polynomial matrix P (see Willems [17, 18, 19]) The information contained in P can be redundant, in which case the polynomial matrix can be replaced by another polynomial matrix of lower degree or smaller size without changing the set of trajectories satisfying the equations For several reasons a minimal description can be convenient This could be purely a matter of simplicity, but there are also cases in which a minimal description has additional value For instance if one looks for state space or input-output representations of the system Depending on the goal one has in mind, minimality can have different meanings, but in important situations a row or column reduced description supplies a minimal description For instance in the work of Willems on behaviors one finds the search for a row reduced P that describes the same behavior as equation 2 Other examples that display the importance of column or row reduced polynomial matrices may be found in articles on inversion of polynomial matrices [7, 10, 24], or in papers on a polynomial matrix version of the Euclidean algorithm [4, 16, 21, 23, 25], where a standing assumption is that one of the matrices involved is column reduced Since P is row reduced if and only if its transpose P is column reduced, the problems of row reduction and column reduction are equivalent In this paper a subroutine is presented that determines a column reduced matrix unimodularly equivalent to a given polynomial matrix The algorithm underlying the subroutine has been developed in several stages: the part of the algorithm in which a minimal 1

4 basis of the right null space of a polynomial matrix is calculated is an adaptation of the algorithm described in Beelen [2] The original idea of the algorithm has been described in Beelen, van den Hurk, Praagman [3], and successive improvements have been reported in Neven [11], Praagman [13, 14] The paper by Neven and Praagman [12] gives the algorithm in its most general form, exploiting the special structure of the problem in the calculation of the kernel of a polynomial matrix The subroutine we describe here is an implementation of the algorithm in the latter paper The algorithm was intended to perform well in all cases But it turned out that the routine has difficulties in some special cases, that in some sense might be described as singular We give examples in section 8, and discuss these difficulties in detail in section 9 A crucial role is played by a tolerance, TOL, used in rank determining steps, which has to be set properly 2 Preliminaries Let us start with introducing some notations and recalling some definitions: Let R[s] denote the ring of polynomials in s with real coefficients, let R n [s] betheset of column vectors of length n with elements in R[s] Clearly R n [s] isafree module over R[s] Remark Recall that, loosely speaking, a set M is called a module over a ring R if any two elements in M can be added, and any element of M can be multiplied by an arbitrary element from R Asetm 1,,m r Mis called a set of generators of M if any element m Mcan be written as a linear combination of the generators: m = r i m i for some r i R The module is free if there exists a set of generators such that the r i are unique Note that if R is a field, then a module is just a vector space Let R m n [s] be the ring of m n matrices with elements in R[s] Let P R m n [s] Then d(p ), the degree of P, is defined as the maximum of the degrees of the elements of P,andd j (P), the j-th column degree of P, as the maximum of the degrees in the j-th column δ(p ) is the array of integers obtained by arranging the column degrees of P in non-decreasing order The leading column coefficient matrix of P,Γ c (P),is the constant matrix, of which the j-th column is obtained by taking from the j-th column of P the coefficients of the term with degree d j (P ) Let P j (s) = d j (P) k=0 P jks k be the j-th column of P, then the j-th column of Γ c (P )equals Γ c (P) j =P jdj (P) Definition 1 Let P R m n [s] P is called column reduced, if there exists a permutation matrix T, such that P =(0,P 1 )T,whereΓ c (P 1 ) has full column rank 2

5 Remark Note that we do not require Γ c (P ) to be of full column rank In the literature there is some ambiguity about column properness and column reducedness We follow here the definition of Willems [17]: P is column proper if Γ c (P ) has full column rank, and column reduced if the conditions in the definition above are satisfied A square polynomial matrix U R n n [s] isunimodular if det(u) R\{0} or, equivalently, if U 1 exists and is also polynomial Two polynomial matrices P R m n [s] and R R m n [s] are called unimodularly equivalent if there exists a unimodular matrix U R n n [s] such that PU = R It is well known that every regular polynomial matrix is unimodularly equivalent to a column proper matrix, see Wolovich [20] Kailath [8] states that the above result can be extended to polynomial matrices of full column rank without changing the proof In fact the proof in [20] is sufficient to establish that any polynomial matrix is unimodularly equivalent to a column reduced matrix Furthermore, Wolovich s proof implies immediately that the column degrees of the column reduced polynomial matrix do not exceed those of the original matrix, see Neven and Praagman [12] Theorem 1 Let P R m n [s], then there exists a U R n n [s], unimodular, such that R = PU is column reduced Furthermore δ(r) δ(p ) totally Although the proof of this theorem in the above sources is constructive, it is not suited for practical computations, for reasons explained in a paper by Van Dooren [15] Example 3 in section 8 illustrates this point In Neven and Praagman [12] an alternative, constructive proof is given on which the algorithm, underlying the subroutine we describe here, is based The most important ingredient of the algorithm is the calculation of a minimal basis of the right null space of a polynomial matrix associated with P Definition 2 Let M be a submodule of R n [s] Then Q R n r [s] is called a minimal basis of M if Q is column proper and the columns of Q span M In the algorithm a minimal basis is calculated for the module ker(p, I m )={v R n+m [s] (P, I m )v =0}, see[3]hereandinthesequeli m will denote the identity matrix of size m The first observation is that if (U, R ) is such a basis, with U R n n [s], then U is unimodular, see [3, 12] Of course, R = PU, but although (U, R ) is minimal and hence column reduced, this does not necessarily hold for R Take for example ( ) 1 s P (s) = 0 1 Then ( U(s) R(s) ) = s 0 1 3

6 is a minimal basis for ker(p, I m ), but R is clearly not column reduced The next observation is that if (U, R ) is a minimal basis for ker(p, I m ), then (U,s b R ) is a basis for ker(s b P, I m ), but not necessarily a minimal basis Especially, if b>d(u), (U,s b R ) is minimal if and only if R is column reduced On the other hand, for any minimal basis (U b,r b ) of ker(s b P, I m ), R b is divisible by sb, and PU b = s b R b In [12] it is proved that for b>(n 1)d(P ), the calculation of a minimal basis of ker(s b P, I m ) yields a pair (U b,r b )inwhichr b is column reduced 3 Linearization The calculation of ker(s b P, I m ) is done in the spirit of the procedure explained in [2]: we calculate a minimal basis of the kernel of the following linearization of (s b P, I m ) Let P be given by P(s) =P d s d +P d 1 s d 1 ++P 0 Define the pencil H b by H b (s) =sa b E b = sp d I m 0 0 sp d 1 si m I m 0 sp 0 si m I m si m I m, where A b,e b R ma na, with m a =(d+b)m, and n a = n + m a With I m 0 0 si m I m C b (s) = 0 s b+d 1 I m si m I m we see that C b (s)h b (s) = sp d I m 0 0 s 2 P d +sp d 1 0 I m 0 s b P (s) 0 I m so if V is a basis of ker(h b ), then ( ) ( U In 0 0 = R 0 0 I m ) V, 4

7 is a basis for ker(s b P, I m ) ([2]) In [12] it is proved that δ(v )=δ((u, R ) )andthatv is minimal if and only if (U, R ) is minimal So the problem is to calculate a minimal basis for ker(h b ) 4 The calculation of a minimal basis A minimal basis is calculated by transforming the pencil H b by orthogonal pre- and posttransformations to a form where E b has not changed and A b is in upper staircase form Definition 3 A matrix A R ma na is in upper staircase form if there exists an increasing sequence of integers s i, 1 s 1 <s 2 < < s r n a, such that A i,si 0andA ij =0if i>ror j<s i The elements A i,si are called the pivots of the staircase form Note that i s i and that the submatrix of the first i rows and the first s i (or more) columns of A is right invertible for 1 i r In [2, 12] it has been shown that there exist orthogonal, symmetric matrices Q 1,Q 2,,Q r such that Ā b = Q r Q 1 A b Q <n> 1 Q <n> r is in upper staircase form The matrices Q k are elementary Householder reflections, and we define Q <n> k =diag(i n, Q k ) Note that E b is not changed by this transformation: We partition Āb as follows: E b = Q r Q 1 E b Q <n> 1 Q <n> r A 11 A 12 A 13 A 1,l+2 0 A 22 A 23 Ā b = 0, 0 A ll A l,l+1 A l,l A l+1,l+2 with A jj R m j m j 1 right invertible and in upper staircase form, j =1,,l,andA j,j+1 a square matrix, for j =1,,l+1 We take m 0 =n Then the dimensions m j,j =1,,l, are uniquely determined and H b = sāb E b = sa 11 sa 12 I sa 13 sa 1,l+2 0 sa 22 sa 23 I 0 0 sa ll sa l,l+1 I sa l,l sa l+1,l+2 I 5

8 Let A b be the submatrix of A(k 1) b = Q k 1 Q 1 A b Q <n> 1 Q <n> k 1 obtained by deleting the first k 1 rows, and let s k be the column index of the first nonzero column in A b Then Q k transforms this (sub)column into the first unit vector and lets the first k 1rowsand the first s k 1 columns of A (k 1) b invariant Consequently, post-multiplication with Q <n> k leaves the first n + k 1 columns of A (k 1) b unaltered Because of the staircase form of Hb it is easy to see that the equation H b y =0has m i 1 m i independent solutions of the form y = y 11 y 12 y 1i 0 y 22 y ii 0 0 where y ii R m i 1 is a null vector of A ii,andy jk R m j 1,k = j,,i It is clear that v = Q <n> 1 Q <n> r y is then a null vector of H b and taking the top and bottom part of v yields a column of U b and R b, respectively, of degree i 1 Note that this implies that l b + d +1,since(I n,s b P ) is a basis of ker(s b P, I m ) and the degrees of the minimal bases of ker(h b )andker(s b P, I m ) are the same, see the end of section 3 5 Increasing b 1 s s i 1 The computational effort to calculate a minimal basis for ker(s b P, I m ) increases quickly with the growth of b From experiments, however, we may assume that in many cases a small b already leads to success Therefore the algorithm starts with b = 1 and increases b by one until a column reduced R b has been found With the transition from b to b +1the computations need not start from scratch, as we will explain in this section The transformation of A b into Āb is split up into steps, where in the j-th step the diagonal block matrix A jj is formed, j =1,,l Let µ j denote the row index of the first row of A jj ThenA jj is formed by the Householder reflections Q µj,,q µj+1 1 Let N k R m (n+(d+k)m) denote the matrix (0,,0,I m )Then as well as A b+1 = A b+1 = ( Ab 0 N b 0 ), A N I (b 1)m 0 Observe that the first n columns of A b+1 are just the first n columns of A 1 augmented with zeros Since post-multiplication with any Q <n> does not affect the first n columns, clearly the reflection vectors of the first µ 2 1 Householder reflections of A b+1 (the ones, 6

9 involved in the computation of A 11 ) are the reflection vectors of the first µ 2 1Householder reflections of A 1 augmented with zeros Let K 1;1 = Q µ2 1 Q 1 be the orthogonal transformation of the first step of the transformation for A 1 ThenK 1;b+1 =diag(k 1;1, I bm )is the corresponding transformation for A b+1 and the first step can be described by K 1:1 A 1 K <n> K 1;b+1 A b+1 K 1;b+1 <n> 1;1 0 0 = N 1 K 1;1 <n> I (b 1)m 0 K 1;2 A 2 K <n> 1;2 0 0 = N 2 0 0, 0 I (b 2)m 0 where K 1;j <n> has the obvious meaning From this we see that after the first step the second block column of width µ 2 1, ie the block column from which A 22 will be acquired, is exactly the corresponding block column of A 2 after the first step augmented with zeros, if b 2 In the second step, post-multiplication with the Householder reflections Q <n> k, for k = µ 2,,µ 3 1,does not affect the first n+µ 2 1 columns Therefore, the argumentation for the first step applies, mutatis mutandis, for the second step, if b 3 As a consequence, it can be concluded by induction that the transformations for the j-th step for A b+1 and A b are related by K j;b+1 = diag(k j;b,i m ), j =1,,b and that we can start the algorithm for A b+1 with A b transformed by K j,b, for j =1,,b, augmented with N b K b,b <n> at the bottom and m zero columns on the right 6 Description of the algorithm The algorithm consists of: - An outer loop in b, running from 1 to (n 1)d + 1 at most The termination criterion is that the calculated R b is column reduced -Anintermediateloopini, running from b to b + d +1 at most, in which A ii is determined and the null vectors of H b of degree i 1 are calculated The precondition is that A jj and the null vectors of H b of degree j 1, for j =1,,i 1, have been computed and are available The termination criterion is that the submatrix of computed columns of R b is not column reduced, or that all the null vectors of H b have been found - An inner loop in k, running from n + µ i 1 to n + µ i 1, (µ 0 = n) indexing the columns of A ii Foreachk, either a Householder reflection is generated and applied or a null vector of degree i 1 is computed If a null vector has been found, then U b 7

10 and R b are extended with one column and R b is checked on column reducedness The loop is terminated after k = n + µ i 1 or if the extended R b is not column reduced The algorithm uses a tolerance to determine the rank of the diagonal blocks A ii from which the null vectors of H b and consequently the computed solution is derived An appropriate tolerance is needed to find the solution But the value of the tolerance does not influence the accuracy of the computed solution 7 The implementation The algorithm has been implemented in the subroutine COLRED The subroutine is written according to the standards of SLICOT, see [22], with a number of auxiliaries It is based on the linear algebra packages BLAS [9, 5] and LAPACK [1] The complete code of an earlier (slightly different) version of the routines and an example program are included in a report by the authors [6] COLRED takes a polynomial matrix P as its input, and yields on output a unimodular matrix U, and a column reduced polynomial matrix R such that PU R is near zero Rank determination plays an important role in the algorithm, and the user is asked to specify on input a parameter TOL, that sets a threshold value below which matrix elements, that are essential in the rank determination procedure, are considered zero If TOL is set too small, it is replaced by a default value in the subroutine Concerning the numerical aspects we like to make the following remark: The algorithm used by the routine involves the construction of a special staircase form of a linearization of (s b P (s), I) with pivots considered to be non-zero when they are greater than or equal to TOL These pivots are then inverted in order to construct the columns of ker (s b P (s), I) The user is recommended to choose TOL of the order of the relative error in the elements of P (s) If TOL is chosen too small, then a very small element of insignificant value may be taken as pivot As a consequence, the correct null-vectors, and hence R(s), may not be found In the case that R(s) has not been found and in the case that the elements of the computed U(s) and R(s) are large relative to the elements of P (s) the user should consider trying several values of TOL 8 Examples In this section we describe a few examples All examples were run on four computers, a VAX-VMS, a VAX-UNIX, a SUN and on a 486 personal computer The numerical values that we present here were produced on the VAX-VMS computer Its machine precision is Unless explicitly mentioned, the examples were run with TOL = 0, forcing the subroutine to take the default value (see section 7) for the tolerance The first example is taken from the book of Kailath [8], and has been discussed before in [3] and [12] 8

11 Example 1 The polynomial matrix P is given by ( s P (s) = 4 +6s 3 +13s 2 +12s+4 s 3 4s 2 5s 2 0 s+2 ) In Kailath [8], page 386, we can find (if we correct a small typo) that PU 0 = R 0, with ( ) 1 0 U 0 (s) =, s+2 1 R 0 (s)= ( 0 (s 3 +4s 2 +5s+2) s 2 +4s+4 s+2 ), Clearly R 0 is column reduced, and U 0 unimodular This example was also treated in [3] The program yields the following solution: ( ) α βs γ U(s) = α(s +2) βs 2, δs ( 0 2γ(s R(s) = 3 +4s 2 ) +5s+2) α(s 2 +4s+4) ( βs 2, δs)(s +2) with α = , β= s, γ = and δ =2β+γ If we define P as the maximal absolute value of all coefficients of the polynomial matrix P, and introduce the notation P 10 p if 10 p 1 < P < 10 p, then it is easily checked that PU R Furthermore U is clearly unimodular: U(s) = ( 1 0 s+2 1 )( α βs γ 0 2γ This solution has been found without iterations, ie for b = 1, and equals the solution found in [3] As already mentioned in [3] one of the main motivations for the iterative procedure, ie starting with b = 1 and increasing b until the solution is found, is the (experimental) observation that in most examples increasing b is not necessary The following example, also treated in [3, 12], is included to show that sometimes a larger b is required ) Example 2 P (s) = s 4 s 2 s 6 +1 s 2 1 s Note that this matrix is unimodular and hence unimodularly equivalent to a constant, invertible matrix The program yields no column reduced R for b 4 For b = 5 the resulting U and R are 9

12 U(s) = 1 1 αs 2 s 2 s 4 + s 2 α( s 6 + s 4 1) 0 1 αs 2 R(s) = α 1 0 0, where α = The residual matrix satisfies PU R The above examples behave very well, in fact they are so regular that also the algorithm based on Wolovich s proof of Theorem 1 (from now on called the Wolovich algorithm) yields reliable answers In a forthcoming paper we will compare the results of both algorithms to a greater extent Here we restrict ourselves to two more examples, for which the Wolovich algorithm is likely to meet numerical difficulties Example 3 We take for P : P (s) = s 3 +s 2 εs s s with ε a small parameter Calculation by hand immediately shows that, taking U equal to, U(s) = δs 2 δ 0 δs 2 δ 1 with δ = ε 1, yields an R (equal to PU)givenby: R(s)= s 2 s 1 2s s Clearly R is column reduced, and U unimodular Note that U contains large elements as ε is small, a feature that will also be seen in the answers provided by the program If we take ε =10 2 and set the tolerance to 10 14, COLRED yields: U(s) =,, 0 0 2β 0 3αδ βδ(2s 2 + s) δ αs β((2δ 1)s 2 +2δs), 10

13 R(s) = δ α(2s +3δ) βδs δ α(s 3δ) β(5s 2 δs) δ α(s 3δ) β(5s 2 + δs) with α = and β = With a simple additional unimodular transformation the large elements in R can be removed, namely with U 1 (s) = 0 0 2β 0 3αδ βδ(2s 2 + s) 1 α(s +3δ) β((2δ 1)s 2 + δs) the corresponding column reduced R becomes R 1 (s) = 1 2αs 0 1 αs 5βs 2 1 αs 5βs 2 = U(s), ε 3α βs It is not possible to get rid of the large elements of U as well For smaller ε the default value of TOL, which is actually ,istoosmallandthe program ends with IERR = 2 To get results the tolerance has to be chosen approximately ε 1 In all cases PU R P U In the next section we will analyze this example in more detail An obvious thought is that the occurrence of the small parameter ε is the cause of the problem, but the next example shows that this is not necessarily the case Example 4 In this example we take for P: s 3 +s 2 +2s+1 εs 2 +2s+3 s 2 +s+1 s 1 s 1 s+2 2s P (s) = 2 +s 1 2s+1 s+3 2s 1 s 2 2s+1 s 2, 1 1 3s+1 3 with ε a small parameter By hand calculation we find the following solution:, U(s) = R(s) = s 2 εs 1 0 s 3 εs 2 s 1, 3s 2 +4s+2 (4 ε)s+6 2s+1 s 1 s 2 +2s 2 ( 2+ε)s+4 1 2s+1 s 2 +2s+6 (4 ε)s 2 1 s 2 s 2 +2 εs

14 We observe that neither U, nor Rcontains large elements It turns out that the same holds for U and R computed by the routine For instance, with ε =10 8 the computed U and R are and U(s) = ε ε ε ε ε ε s3, + s + s2 + R(s) = ε ε ε s2 + s + For other choices of ε the results are approximately the same In all cases the residual matrix PU R In the next section we also revisit this example We also investigated the sensitivity of the algorithm to perturbations in the data The conclusion, based on a number of experiments, is that if the tolerance is chosen such that 12

15 the perturbations lie within the tolerance, then the program retrieves the results of the unperturbed system This is well in agreement with our expectation We give one example Example 5 P (s) = s 3 +s 2 +s s s 3 +2s 2 +3s s 2 1 s 3 +3s 2 +s+1 s Perturbing P with quantities in the order of 10 8 leads to the result that the perturbed P is column reduced if the tolerance is less than 10 8 Setting the tolerance to 10 7 gives the solution: U(s) = s + s 2 + s 3 + s 4 R(s) = s + s 2, in accordance with the unperturbed case 13

16 9 Discussion First we examine example 3 of section 8, namely P ε (s) = s 3 +s 2 εs s s The U ε and R ε that will result from the algorithm, if calculations are performed exactly, are 0 0 2β U ε (s) = 0 3αδ βδ(2s 2 + s), δ αs β((2δ 1)s 2 +2δs) R ε (s) =, δ α(2s +3δ) βδs δ α(s 3δ) β(5s 2 δs) δ α(s 3δ) β(5s 2 + δs) with α = 1 6 6, β = andδ=ε 1 In section 8 we saw that the tolerance for which this result is obtained by the routine is proportional to ε 1 Close examination of the computations reveals that the computed  b (see section 4) gets small pivots, which cause growing numbers in the computation of the right null vectors until overflow occurs, and a breakdown of the process if the tolerance is too small Scaling of a null vector, which at first sight suggests itself, may suppress the overflow and thereby hide the problem at hand In this example the effect of scaling is that, if ε tends to zero, then U ε tends to a singular matrix and R ε to a constant matrix of rank 1 Is there any reason to believe that there exists an algorithm which yields an R continuously depending on ε in a neighborhood of 0? Observe that -det(p ε )(s) = 5εs 3,soP ε is singular for ε =0; - δ(r ε )=(0,1,2) if ε 0andδ(R 0 )=( 1,0,3) (We use the convention that the zero polynomial has degree 1) We conclude that the entries of U ε and R ε do not depend continuously on ε in a neighborhood of ε = 0 Even stronger: There do not exist families {V ε }, {S ε }, continuous in ε =0 such that for all ε, V ε is unimodular, S ε column reduced, and P ε V ε = S ε This is what we call a singular case Example 4, though at first sight similar, is quite different from example 3 Due to the fact that the third column of P minus s times its fourth column equals (2s+1, 1, 1, 1) t, the term εs 2 in the element P 12 is not needed to reduce the first column As a consequence, the elements of U ε and R ε depend continuously on ε and no large entries occur This is 14,

17 also shown in the solution found by hand calculations This feature is not recognized by the Wolovich algorithm That is why we suspect the Wolovich algorithm to behave badly on this type of problems Perturbation of P ε, for instance changing the (4,4) entry from 3 to 3 + η, destroys this property The resulting matrix behaves similar to example 3 To compare examples 3 and 4 we observe that in example 4: -det(p ε,η ) 0 for all values of ε and η So this property is not characteristic; - in the unperturbed case, η =0,δ(R ε )=(1,1,1,2) for all ε If η 0,thenδ(R ε )= (1, 1, 2, 2) for ε 0and(1,1,1,3) if ε = 0 Here again we conclude that in this case no algorithm can yield U ε,η, R ε,η continuous in ε = 0 So for η = 0 the problem is regular and for η 0 the problem is singular Remark Singularity in the sense just mentioned may appear in a more hidden form For instance, if in example 4 the third column is added to the second, resulting in P 12 =(1+ε)s 2 + 3s+ 4, we get a similar behavior depending on the values of η and ε Though ε in P 12 is likely to be a perturbation, its effect is quite different from the effects of the perturbations in example 5 For perturbations as in example 5 the tolerance should at least be of the magnitude of the uncertainties in the data to find out whether there is a non-column-reduced polynomial matrix in the range of uncertainty In cases like example 5 it may be wise to run the algorithm for several values of the tolerance 10 Conclusions In this paper we described a subroutine which is an implementation of the algorithm developed by Neven and Praagman [12] The routine asks for the polynomial matrix P to be reduced, and a tolerance The tolerance is used for rank determination within the accuracy of the computations Thus the tolerance influences whether or not the correct solution is found, but does not influence the accuracy of the solution We gave five examples In all cases the subroutine performs satisfactorily, ie the computed solution has a residual matrix PU R, that satisfies PU R <K P U EPS, where EPS is the machine precision, and K =((d(p)+1)m) 2 Normally the tolerance should be chosen in agreement with the accuracy of the elements of P, with a lower bound (default value) of the order of EPS times K P In some cases the tolerance has to be set to a larger value than the default value in order to get significant results Therefore, in case of failure, or if there is doubt about the correctness of the solution, the user is recommended to run the program with several values of the tolerance At this moment we are optimistic about the performance of the routine The only cases for which we had some difficulties to get the solution were what we called singular cases As we argued in the last section, the nature of this singularity will frustrate all algorithms We believe, although we cannot prove it at this moment, that the algorithm is numerically stable in the sense that the computed solution satisfies PU R <K P U EPS 15

18 Acknowledgements We would like to thank Herman Willemsen (TUE) for testing the routines on different computers References [1] Anderson ea, E LAPACK, Users Guide SIAM, Philadelphia, 1992 [2] Beelen, T New algorithms for computing the Kronecker structure of a pencil with applications to systems and control theory PhD thesis, Eindhoven University of Technology, 1987 [3] Beelen, T, van den Hurk, G, and Praagman, C A new method for computing a column reduced polynomial matrix Systems and Control Letters 10 (1988), [4] Codenotti, B, and Lotti, G A fast algorithm for the division of two polynomial matrices IEEE Transactions on Automatic Control 34 (1989), [5] Dongarra, J, Du Croz, J, Hammarling, S, and Hanson, R An extended set of Fortan Basic Linear Algebra Subprograms ACM TOMS 14 (1988), 1 17 [6] Geurts, A, and Praagman, C A Fortran subroutine for column reduction of polynomial matrices SOM, Research Report 94004, Groningen and EUT-Report 94- WSK-01, Eindhoven, 1994 [7] Inouye, I An algorithm for inverting polynomial matrices International Journal of Control 30 (1979), [8] Kailath, T Linear systems Prentice-Hall, 1980 [9] Lawson, C, Hanson, R, Kincaid, D, and Krogh, F Basic Linear Algebra Subprograms for Fortran Usage ACM TOMS 5 (1979), [10] Lin, C-A, Yang, C-W, and Hsieh, T-F An algorithm for inverting rational matrices Systems & Control Letters 26 (1996), to appear [11] Neven, W Polynomial methods in systems theory Master s thesis, Eindhoven University of Technology, 1988 [12] Neven, W, and Praagman, C Column reduction of polynomial matrices Linear Algebra and its Applications (1993), Special issue on Numerical Linear Algebra Methods for Control, Signals and Systems 16

19 [13] Praagman, C Inputs, outputs and states in the representation of time series In Analysis and Optimization of Systems (Berlin, 1988), A Bensoussan and J Lions, Eds, INRIA, Springer, pp Lecture Notes in Control and Information Sciences 111 [14] Praagman, C Invariants of polynomial matrices In Proceedings of the First ECC (Grenoble, 1991), I Landau, Ed, INRIA, pp [15] Van Dooren, P The computation of Kronecker s canonical form of a singular pencil Linear Algebra and its Applications 27 (1979), [16] Wang, Q, and Zhou, C An efficient division algorithm for polynomial matrices IEEE Transactions on Automatic Control 31 (1986), [17] Willems, J From time series to linear systems: Part 1,2,3 Automatica 22/23 (1986/87), , , [18] Willems, J Models for dynamics Dynamics reported 2 (1988), [19] Willems, J Paradigms and puzzles in the theory of dynamical systems IEEE Trans Automat Control 36 (1991), [20] Wolovich, W Linear multivariable systems Springer Verlag, Berlin, New York, 1978 [21] Wolovich, W A division algorithm for polynomial matrices IEEE Transactions on Automatic Control 29 (1984), [22] Working Group on Software (WGS) SLICOT: Implementation and Documentation Standards, vol of WGS-report WGS, Eindhoven/Oxford, May 1990 [23] Zhang, S The division of polynomial matrices IEEE Transactions on Automatic Control 31 (1986), [24] Zhang, S Inversion of polynomial matrices International Journal of Control 46 (1987), [25] Zhang, S, and Chen, C-T An algorithm for the division of two polynomial matrices IEEE Transactions on Automatic Control 28 (1983),