1. Introduction
The generalized Schur algorithm (GSA) allows computing well-known matrix decompositions, such as
and
factorizations [
1]. In particular, if the involved matrix is structured, i.e., Toeplitz, block-Toeplitz or Sylvester, the GSA computes the
R factor of the
factorization with complexity of one order of magnitude less than that of the classical
algorithm [
2], since it relies only on the knowledge of the so-called
generators [
2] associated to the given matrix, rather than on the knowledge of the matrix itself. The stability properties of the GSA are described in [
3,
4,
5], where it is proven that the algorithm is weakly stable provided the involved hyperbolic rotations are performed in a stable way.
In this manuscript, we first show that, besides the efficiency properties, the GSA provides new theoretical insights on the bounds of the entries of the R factor of the factorization of some structured matrices. In particular, if the involved matrix is a symmetric positive definite (SPD) Toeplitz or a Sylvester matrix, we prove that all or some of the diagonal entries of R monotonically decrease in absolute value.
We then propose a faster implementation of the algorithm described in [
6] for computing the rank of a Sylvester matrix
whose entries are the coefficients of two polynomials of degree
m and
n, respectively. This new algorithm is based on the GSA for computing the
R factor of the
factorization of
The proposed modification of the GSA-based method has a computational cost of
floating point operations, where
and
r is the computed numerical rank.
It is well known that the upper triangular factor R factor of the factorization of a matrix is equal to the upper triangular Cholesky factor of up to a diagonal sign matrix D, i.e., In this manuscript, we assume, without loss of generality, that the diagonal entries of R and are positive and since the matrices are then equal, we denote both matrices by R.
Finally, we propose a GSA-based approach for computing a null-space basis of a polynomial matrix, which is an important problem in several systems and control applications [
7,
8]. For instance, the computation of the null-space of a polynomial matrix arises when solving the column reduction problem of a polynomial matrix [
9,
10].
The manuscript is structured as follows. The main features of the GSA are provided in
Section 2. In
Section 3, a GSA implementation for computing the Cholesky factor
R of a SPD Toeplitz matrix is described, which allows proving that the diagonal entries of
R monotonically decrease. In
Section 4, a GSA-based algorithm for computing the rank of a Sylvester matrix
S is introduced, based on the computation of the Cholesky factor
R of
In addition, in this case, it is proven that the first diagonal entries of
R monotonically decrease. The GSA-based method to compute the null-space of polynomial matrices is proposed in
Section 5. The numerical examples are reported in
Section 6 followed by the conclusions in
Section 7.
2. The Generalized Schur Algorithm
Many of the classical factorizations of a symmetric matrix, e.g.,
and
can be obtained by the GSA. If the matrix is Toeplitz-like, the GSA computes these factorizations in a fast way. For the sake of completeness, the basic concepts of the GSA for computing the
R factor of the
factorization of structured matrices, such as Toeplitz and block-Toeplitz matrices, are introduced in this Section. A comprehensive treatment of the topic can be found in [
1,
2].
Let
be a symmetric positive definite (SPD) matrix. The semidefinite case is considered in
Section 4 and
Section 5. The
displacement of
A with respect to a matrix
Z of order
is defined as
while the
displacement rank k of
A with respect to
Z is defined as the rank of
If
Equation (
1) can be written as the sum of
k rank-one matrices,
where
is the inertia of
and the vectors
are called the
positive and the
negative generators of
A with respect to
respectively, conversely, if there is no ambiguity, simply the positive and negative generators of
A. The matrix
is called the
generator matrix.
The matrix
Z is a nilpotent matrix. In particular, for Toeplitz and block-Toeplitz matrices, the matrix
Z can be chosen as the shift and the block shift matrix
respectively.
The implementation of the GSA relies only on the knowledge of the generators of
A rather than on the knowledge of the matrix itself [
1].
Since
then, adding all members of the left and right-hand sides of Equation (
2) yields
which expresses the matrix
A in terms of its generators.
Exploiting Equation (
2), we show how the GSA computes
R by describing its first iteration. Observe that the matrix products involved in the right-hand side of Equation (
2) have their first row equal to zero, with the exception of the first product,
.
A key role in GSA is played by
J-orthogonal matrices [
11,
12], i.e., matrices
satisfying
Any such matrix
can be constructed in different ways [
11,
12,
13,
14]. For instance, it can be considered as the product of Givens and hyperbolic rotations. In particular, a Givens rotation acting on rows
i and
j of the generator matrix is chosen if
Otherwise, a hyperbolic rotation is considered. Indeed, suitable choices of
allow efficient implementations of GSA, as shown in
Section 4.
Let
and
be a
J-orthogonal matrix such that
and
be the
ith column of the identity matrix. Furthermore, let
and
be the first and last
rows of
respectively, i.e.,
From Equation (
4), it turns out that the first column of
is zero. Let
be the matrix obtained by deleting the first row and column from
J. Then, Equation (
2) can be written as follows,
where
that is,
is obtained from
by multiplying
with
and
If
A is a Toeplitz matrix, this multiplication with
Z corresponds to displacing the entries of
one position downward, while it corresponds to a block-displacement downward in the first generator if
A is a block-Toeplitz matrix.
Thus, the first column of is zero and, hence, is the first row of the R factor of the factorization of The above procedure is recursively applied to to compute the other rows of
The
jth iteration of GSA,
involves the products
and
. The former multiplication can be computed in
operations [
11,
12], and the latter is done for free if
Z is either a shift or a block–shift matrix. Therefore, if the displacement rank
k of
A is small compared to
the GSA computes the
R factor in
rather than in
operations, as required by standard algorithms [
15].
For the sake of completeness, the described GSA implementation is reported in the following
matlab style function. (The function
givens is the
matlab function having as input two scalars,
and
and as output an orthogonal
matrix
such that
The function
Hrotate computes the coefficients of the
hyperbolic rotation
such that, given two scalars
and
The function
Happly applies
to two rows of the generator matrix. Both functions are defined in [
12]).
functionGSA
fori = 1 : n,
for j = 2 : k1,
givens
end % for
for j = k1 + 2 : k1 + k2,
Θ = govens(G(k1 + 1, i), G(j, i));
G([k1 + 1, j], i : n) = Θ ∗ G[k1 + 1, j], i : n);
end % for
[c1, s1] = Hrotate(G(1, i), G(k1 + 1, i));
G([1, k1 + 1], i : n) = Happly(c1, s1, G([1, k1 + 1], i : n), n − i + 1);
R(i, i : n) = G(1, i : n);
G(1, i + 1 : n) = G(1, i : n − 1); G(1, i) = 0;
end % for
The GSA has been proven to be weakly stable [
3,
4], provided the hyperbolic transformations involved in the construction of the matrices
are performed in a stable way [
3,
11,
12].
3. GSA for SPD Toeplitz Matrices
In this section, we describe the GSA for computing the R factor of the Cholesky factorization of a SPD Toeplitz matrix A, with R upper triangular, i.e., Moreover, we show that the diagonal entries of R decrease monotonically.
Let
and
be a SPD Toeplitz matrix and a shift matrix, respectively, i.e.,
and let
Then,
i.e.,
is a symmetric rank-2 matrix. Moreover, the generator matrix
G is given by
In this case, the GSA can be implemented in matlab-like style as follows.
functionGSA_chol
fori = 1 : n,
[c1, s1] = Hrotate(Gi − 1(1, i), G(i)(2, i)); Gi − 1(:, i : n) = Happly(c1, s1, Gi − 1(:, i : n), n − i + 1);
R(i, i : n) = Gi − 1(1, i : n);
Gi(1, i + 1 : n) = Gi − 1(1, i : n − 1); Gi(2, i + 1 : n) = Gi − 1(2, i + 1 : n − 1);
end % for
The following lemma holds.
Lemma 1. Let A be a SPD Toeplitz matrix and let R be its Cholesky factor, with R upper triangular. Then, Proof. At each step
i of
GSA_chol,
first a hyperbolic rotation is applied to
in order to annihilate the element
Hence, the first row of
becomes the row
i of
Finally,
is obtained displacing the entries of the first row of
one position right, while
is equal to
Taking into account that
the diagonal entries of
R are
□
4. Computing the Rank of Sylvester Matrices
In this section, we focus on the computation of the rank of Sylvester matrices. The numerical rank of a Sylvester matrix is a useful information for determining the degree of the greatest common divisor of the involved polynomials [
6,
16,
17].
A GSA-based algorithm for computing the rank of
S has been recently proposed in [
6]. It is based on the computation of the Cholesky factor
R of
with
R upper triangular, i.e.,
Here, we propose a more efficient variant of this algorithm that allows proving that the first entries of R monotonically decrease.
Let
and let
Denote by
and
two univariate polynomials,
Let
be the Sylvester matrix defined as follows,
with
and
band Toeplitz matrices.
We now describe how the GSA-based algorithm proposed in [
6] for computing the rank of
S can be implemented in a faster way. This variant is based on the computation of the Cholesky factor
of
with
R upper triangular, i.e.,
Defining
the generator matrix
G of
with respect to
Z is then given by [
6]
where
with
the
jth vector of the canonical basis of
and
.
The algorithm proposed in [
6] is based on the following GSA implementation for computing the
R factor of the
factorization of
functionGSA_chol2
fori = 1 : n,
Θ1 = givens(G(1, i), G(2, i)); Θ2 = givens(G(3, i), G(4, i));
G(1 : 2, i : n) = Θ1G(1 : 2, i : n); G(3 : 4, i : n) = Θ2G(3 : 4, i : n);
[c1, s1] = Hrotate(G(1, i), G(3, i));
G([1,3], i : n) = Happly(c1, s1, G([1,3], i : n), n − i + 1);
R(i, i : n) = Gi(1, i : n);
G(1, i + 1 : n) = G(1, i : n − 1)ZT; G(2, i + 1 : n) = G(2 : 4, i + 1 : n − 1);
end % for
At the ith iteration of the algorithm, the Givens rotations and are computed and applied, respectively, to the first and second generators, and to the third and fourth generators, to annihilate and Hence, the hyperbolic rotation is applied to the first and the third row of G to annihilate Finally, the first row of G becomes the ith row of R and the first row of G is multiplied by
Summarizing, at the first step of the
ith iteration of GSA, all entries of the
ith column but the first one of
G, are annihilated. If the number of rows of
G is greater than
this can be accomplished in different ways (see [
5,
14]).
Analyzing the pattern of the generators in Equation (
8), we are able to derive a different implementation of
that costs
, with
. Moreover, this implementation allows proving that the first
l diagonal entries of
R are monotonically decreasing.
We observe that the matrix
in Equation (
6) is the SPD Toeplitz matrix
with
Since
if
from Equation (
9), it turns out that
Moreover, the rows
and
have their first entry equal to zero and differ only in their entry in column
This particular pattern of
G is close to the ones described in [
13,
14,
18], allowing to design an alternative GSA implementation with respect to that considered in [
6], and thereby reducing the complexity from
to
, where
r is the computed rank of
S and
Since the description of the above GSA implementation is quite cumbersome and similar to the algorithms reported in [
13,
14,
18], we omit it here. The corresponding
matlab pseudo–code can be obtained from the authors upon request.
If the matrix
S has rank
at the
st iteration, it turns out that
in exact arithmetic [
6]. Therefore, at each iteration of the algorithm we check whether
where
is a fixed tolerance. If Equation (
10) is not satisfied, we stop the computation considering
k as the computed numerical rank of
The R factor of the factorization of S is unique if the diagonal entries of R are positive. The considered GSA implementation, yielding the rank of S and based on computing the R factor of the factorization of S, allows us to prove that the first l entries of the diagonal of R are ordered in a decreasing order, with In fact, the following theorem holds.
Theorem 1. Let be the Cholesky factorization of with S the Sylvester matrix defined in Equation (6) with rank Then, Proof. Each entry i of the diagonal of R is determined by the ith entry of the first row of G at the end of iteration for Let us define and consider the following alternative implementation of the GSA for computing the first l columns of the Cholesky factor of
for
givens
Hrotate
Hrotate
end % for
We observe that, for , is the only entry in the first column of different from Hence, and the first iteration amounts only to shifting one position rightward, i.e.,
At the beginning of iteration
the second and the fourth row of
are equal Equation (
8). Hence, when applying a
Givens rotation to the first and the second row in order to annihilate the entry
and when subsequently applying a hyperbolic rotation to the first and fourth row of
in order to annihilate
it turns out that
and
are then modified but still equal to each other, while
remains unchanged. The equality between
and
is maintained throughout the iterations
Therefore, the second and the fourth row of do not play any role in computing and can be neglected. Hence, the GSA for computing reduces only to applying a hyperbolic rotation to the first and the third generators, as described in the following algorithm.
for
Hrotate
end % for
Since at the beginning of iteration
then the involved hyperbolic rotation
is such that
where the updated
is equal to
Therefore,
and thus
□
Remark 1. The above GSA implementation allows to prove the inequality Equation (11). This property is difficult to obtain if the factorization is performed via Householder transformations or if the classical Cholesky factorization of is used. 5. GSA for Computing the Null-Space of Polynomial Matrices
In this section, we consider the problem of computing a polynomial basis
of the null-space of an
polynomial matrix of degree
and rank
As described in [
8,
19,
20], the above problem is equivalent to that of computing the null-space of a related block-Toeplitz matrix. Algorithms to solve this problem are proposed in [
8,
19] but they do not explicitly exploit the structure of the involved matrix. Algorithms to solve related problems have also been described in the literature, e.g., in [
8,
19,
21,
22].
In this paper, we propose an algorithm for computing the null-space of polynomial matrices based on a variant of the GSA for computing the null-space of a related band block-Toeplitz matrix [
8].
5.1. Null-Space of Polynomial Matrices
A polynomial vector
is said to belong to the null-space of (
12) if
The polynomial vector
belongs to the null-space of
iff
is a vector belonging to the null-space of the band block-Toeplitz matrix
where
with
the number of block columns of
that can be determined, e.g., by the algorithm described in [
8]. Hence, the problem of computing the null-space of the polynomial matrix in Equation (
12) is equivalent to the problem of computing the null-space of the matrix in Equation (
13). To normalize the entries in this matrix, it is appropriate to first perform a QR factorization of each block column of
T:
and to absorb the upper triangular factor
U in the vector
. The convolution equation
then becomes an equation of the type
but where the coefficient matrices
of
form together an orthonormalized matrix.
Remark 2. Above, we have assumed that there are no constant vectors in the kernel of . If there are, then, the block column of matrices has rank less than n and the above factorization will discover it in the sense that the matrix U is nonsquare and the matrices have less columns than This trivial null-space can be eliminated and we therefore assume that the rank was full. For simplicity, from now on, we also assume that the coefficient matrices of the polynomial matrix were already normalized in this way and the norm of the block columns of T are thus orthonormalized. This normalization proves to be very useful in the sequel.
Denote by
where
is the null–matrix of order
If
and
i.e.,
and
then also
In this case, the vector
is said to be a
generator vector of a chain of length
of the null-space of
The proposed algorithm for the computation of the null-space of polynomial matrices is based on the GSA for computing the
R factor of the
-factorization of the matrix
T in Equation (
13) and, if
R is full column rank, its inverse
.
Let us first assume that the matrix
T is full rank, i.e.,
Without loss of generality, we suppose
If
the algorithm still computes the
R factor in trapezoidal form [
23]. Moreover, in this case, we compute the first
rows of the inverse of the matrix obtained appending the last
rows of the identity matrix of order
to
Let us consider the SPD block-Toeplitz matrix
whose blocks are
Notice that, because of the normalization introduced before, we have that
and
. This is used below. The matrix
can be factorized in the following way,
where
is the factor
R of the
-factorization of
i.e., the Cholesky factor of
Hence,
R and its inverse
can be retrieved from the first
columns of the matrix
The displacement matrix and the displacement rank of
W with respect to
are given by
and
respectively, with
Then, taking the order n of the matrices into account, it turns out that
Hence, Equation (
18) can be written as the difference of two matrices of rank at most
n, i.e.,
Since
the construction of
G does not require any computation: it is easy to check that
G is given by
Remark 3. Observe that increasing with the structures of W and do not change due to the block band structure of the matrix W. Consequently, the length of the corresponding generators changes but their structure remains the same since only and are different from zero in the first block row.
The computation by the GSA of the
R factor of
T and of its inverse
is made by only using the matrix
G rather than the matrix
T. Its implementation is a straightforward block matrix extension of the GSA described in
Section 2.
Remark 4. By construction, the initial generator matrix has the first block rows and the block row different from zero. Therefore, the multiplication of by the J-orthogonal matrix does not modify the structure of the generator matrix.
Let At each iteration i (for ), we start from the generator matrix having the blocks (of length n) and different form zero. We then look for a J-orthogonal matrix such that the product has in position and a nonsingular upper triangular and zero matrix, respectively.
Then,
is obtained from
by multiplying the first
n columns with
i.e.,
The computation of the J-orthogonal matrix at the ith iteration of the GSA can be constructed as a product of n Householder matrices and n hyperbolic rotations
The multiplication by the Householder matrices modifies the last n columns of the generator matrix, annihilating the last n entries but the st in the row while the multiplication by the hyperbolic rotations acts on the columns i and annihilating the entry in position
Given
a hyperbolic matrix
can be computed
such that
The modification of the sparsity pattern of the generator matrix after the first and
ith iteration of the GSA are displayed in
Figure 1 and
Figure 2, respectively.
The reliability of the GSA strongly depends on the way the hyperbolic rotation is computed. In [
4,
5,
24], it is proven that the GSA is weakly stable if the hyperbolic rotations are implemented in an appropriate manner [
3,
11,
12,
24].
As previously mentioned, GSA relies only on the knowledge of the generators of W rather than on the matrix itself. Its computation involves the product which can be accomplished with flops. The ith iteration of the GSA involves the multiplication of n Householder matrices of size n times a matrix of size Therefore, since the cost of the multiplication by the hyperbolic rotation is negligible with respect to that of the multiplication by the Householder matrices, the computational cost at iteration i is . Hence, the computational cost of GSA is .
5.2. GSA for Computing the Right Null-Space of Semidefinite Block Toeplitz Matrices
As already mentioned in
Section 5.1, the number of desired blocks
of the matrix
T in Equation (
13) can be computed as described in [
8]. For the sake of simplicity, in the considered examples, we choose
large enough to compute the null-space of
The structure and the computation via the GSA of the
R factor of the
factorization of the singular block Toeplitz matrix
T with rank
is considered in [
23].
A modification of the GSA for computing the null-space of Toeplitz matrices is described in [
25]. In this paper, we extend the latter results to compute the null-space of
T by modifying GSA.
Without loss of generality, let us assume that the first
columns of
T are linear independent and suppose that the
th column linearly depends on the previous ones. Therefore, the first
principal minors of
are positive while the
th one is zero. Let
be the spectral decomposition of
with
orthogonal and
with
and let
with
with
Hence,
Let
be the Cholesky factor of
with
upper triangular, i.e.,
Then,
On the other hand,
where
Hence, as
the last column of
becomes closer and closer to a multiple of
the eigenvector corresponding to the 0 eigenvalue of
Therefore, given
we have that
We observe that column
of the generator matrix is not involved in the GSA until the very last iteration, since only its
th entry is different from
At the very last iteration, the hyperbolic rotation
with
is applied to the
th and
st rows of
i.e., to the
nth row of
and the first one of
. Since
is singular, it turns out that
(see [
23,
25]). Thus,
where
We observe that, as
Since a vector of the right null-space of
T is determined except for the multiplication by a constant, neglecting the term
such a vector can be computed at the last iteration as the first column of the product
When detecting a vector of the null-space as a linear combination of row
n of
and row one of
the new generator matrix
G for the GSA is obtained removing the latter columns from
G [
23,
25].
The implementation of the modified GSA for computing the null-space of band block-Toeplitz matrices in Equation (
13) is rather technical and can be obtained from the authors upon request.
The stability properties of the GSA have been studied in [
4,
5,
24]. The proposed algorithm inherits the stability properties of the GSA, which means that it is weakly stable.