Volume 3, Issue 6 e1212
SPECIAL ISSUE PAPER
Full Access

A collection of efficient tools to work with almost strictly sign regular matrices

Pedro Alonso Velázquez

Pedro Alonso Velázquez

Departamento de Matemáticas, Universidad de Oviedo, Gijón, Spain

Search for more papers by this author
Jorge Jiménez Meana

Corresponding Author

Jorge Jiménez Meana

Departamento de Matemáticas, Universidad de Oviedo, Gijón, Spain

Correspondence Jorge Jiménez Meana, Departamento de Matemáticas, Universidad de Oviedo, C Luis Ortiz Berrocal, s/n. Campus de Gijón, 33203 Gijón (Asturias), Spain.

Email: [email protected]

Search for more papers by this author
Juan Manuel Peña Ferrández

Juan Manuel Peña Ferrández

Departamento de Matemática Aplicada, Universidad de Zaragoza, Zaragoza, Spain

Search for more papers by this author
María Luisa Serrano Ortega

María Luisa Serrano Ortega

Departamento de Matemáticas, Universidad de Oviedo, Gijón, Spain

Search for more papers by this author
First published: 15 November 2021

Abstract

In this work, several algorithms have been implemented with Matlab to obtain an algorithmic characterizations of almost strictly sign regular matrices using Neville elimination.

1 INTRODUCTION

Numerical methods adapted to the structure of several classes of matrices has been an important field of research in recent years. A class of structured matrices very important by its applications is provided by the class of sign regular (SR) matrices, which have all minors of the same order with the same sign. The potential applicability of nonsingular SR matrices comes from their characterization as variation diminishing linear transformations, of great importance in many applications to mathematics, statistics, economy, or computer aided geometric design, among other fields (see References 1-3).

A very important subclass of SR matrices is formed by totally positive (TP) matrices, which are matrices with all their minors nonnegative. A systematic study of TP matrices starts with the work by Schoenberg in 1930 , where this definition was first introduced (see Reference 4). Krein and Gantmacher referred to these matrices as completely nonnegative matrices. Nowadays, there are several denominations for this concept. Here we use TP for matrices whose minors are nonnegative, although other authors call them totally nonnegative matrices (see Reference 5). A deep research on TP matrices can be seen in books written decades ago, such as the book by Gantmacher and Krein, whose first edition in Russian language was published in 1941 and it has an English version of 2002,6 or Karlin's book of 1968.7 Later books are the book edited by Gasca and Micchelli in 19968 and, more recently, Pinkus' book of 20099 and the book by Fallat and Johnson of 2011.10 An influential survey was published by Ando in 1987,1 where he presented many results under a linear algebra view point. In contrast, knowledge on SR matrices is comparatively scarce, due to the greater difficulties arising from their study.

Our aim is the study of another class of SR matrices formed by the almost strictly sign regular (ASSR) matrices. These matrices, introduced in 2012,11 are matrices such that all their nontrivial minors of the same order have the same sign. They generalize the class of nonsingular almost strictly totally positive (ASTP) matrices, introduced in 1992 by Gasca, Micchelli and Peña in Reference 12, which are nonsingular TP matrices such that all their minors formed by consecutive rows and columns are positive if and only if their diagonal entries are positive. Important examples of nonsingular ASTP matrices are provided by the Hurwitz matrices and B-spline collocation matrices. Alternative approaches to ASTP matrices have been developed by Adm et al.13-16

The results presented in this work include several algorithms that allow us to characterize, in an efficient way, ASSR matrices by using their Neville elimination (NE). This research field contains works characterizing SR, TP, or ASTP matrices by NE (see References 12, 17-22).

NE is an alternative elimination method to Gauss elimination and has been very useful when working with SR matrices and their subclasses. Recently some authors, including Alonso, Cortés, Delgado, Gallego, Gasca, Michelli, Mühlbach, and Peña, have carried out a systematic study of this kind of matrices with NE. Starting with Aitken-Neville interpolation formula, Gasca and Mühlbach introduced in References 21, 23 NE because this procedure arises when the Neville interpolation strategy is used to solve the corresponding linear system, analogously as happens with Gauss elimination when the Aitken interpolation strategy is used to solve it. In Reference 19, very nice properties of using NE for TP matrices were shown.

In Reference 17, a characterization of ASSR matrices by the pivots of NE was presented. The corresponding computational cost can be reduced when dealing with some subclasses of matrices, such as almost strictly totally negative or M-banded matrices (see References 17, 24, 25).

In this work, an algorithmic characterization of ASSR matrices by NE is presented. For this, several algorithms (functions) have been implemented using Matlab. The article is organized as follows. Section 2 includes basic concepts and algorithms related to type-I or type-II staircase matrices. Section 3 presents the algorithms corresponding to the characterization of the matrices.

2 BASIC CONCEPTS

For k , n , with 1 k n , Q k , n denotes the set of all increasing sequences of k natural numbers not greater than n. If A is a real n × n matrix and α = ( α 1 , , α k ) , β = ( β 1 , , β k ) Q k , n , then A [ α | β ] is by definition the k × k submatrix of A containing rows α 1 , , α k and columns β 1 , , β k of A. In particular, when α = β , A [ α ] : = A [ α | α ] is the corresponding principal submatrix. Besides, Q k , n 0 denotes the set of increasing sequences of k consecutive natural numbers not greater than n and if α Q k , n 0 , then det A [ α ] is a principal minor.

From now on, it will be frequently used the backward identity matrix n × n , P n , whose element ( i , j ) is defined as
1 if i + j = n + 1 , 0 otherwise .
Throughout this document, we will work with matrices whose zero and nonzero entries are grouped in certain positions. Then we introduce the type-I and type-II staircase matrices (see Reference 11).

Definition 1.A real matrix A = ( a i j ) 1 i , j , n is called type-I staircase matrix if it satisfies simultaneously the following conditions:

  • (a)

    a i i 0 , i { 1 , , n } ;

  • (b)

    a i j = 0 , i > j a k l = 0 , if l j , i k ;

  • (c)

    a i j = 0 , i < j a k l = 0 , if k i , j l .

Definition 2.A matrix A is called type-II staircase if P n A is a type-I staircase matrix.

To work with a type-II staircase matrix, we consider the auxiliary matrix P n A and apply all the procedures to it:

  • function [A Pn Type2] = Check_Type2(A,n)

  • % This function check if the matrix A has elements a_11 or a_nn equal zero,

  • % in this case, the matrix can not be staircase type I and then it can be

  • % only staircase type II, so it returns P_n*A in order to apply the type I

  • % algorithms to this matrix.

  • % Input arguments:

  • %    A ……. a square matrix

  • %    n …….. the order of the matrix A (optional)

  • % Output arguments:

  • %    A …….. the candidate matrix to be staircase type I A or P_n*A

  • %    P_n …… the backward identity matrix

  • %    Type2 …. 1 if the function performs the transformation P_n*A

  • if nargin < 2; n = size(A,2); end

  • Pn = 0;

  • Type2 = 0;

  • if A(1,1) == 0 || A(end,end) == 0

  •    Pn = eye(n);

  •    Pn = Pn(end:-1:1,:);

  •    A = Pn*A;

  •    Type2 = 1;

  • end

Conditions introduced in Definitions 1 and 2 produce a staircase structure for the zero pattern, which is set through the following indices (see References 17, 26):

For a matrix A = a i j 1 i , j n , type-I staircase, we define
i 0 = 1 , j 0 = 1 , ()
and for k = 1 , , :
i k = max i / a i j k 1 0 + 1 ( n + 1 ) , ()
j k = max j i k / a i k j = 0 + 1 ( n + 1 ) , ()
where l is given in this recurrent definition by j = n + 1 .

To obtain these indices we have these two functions:

The first function gives a vector indicating the last element of the corresponding column different from zero and check that the rest of elements are zeros.

  • function [s1,s0] = Check_Lower_Shadow(A,n)

  • % Function which computes the number of elements different from zero

  • % of each column and check that the matrix is staircase type I with

  • % 1's above the main diagonal

  • % Input arguments:

  • %   A …….. a matrix with 1's or 0's

  • %   n …….. the number of columns of the matrix A (optional)

  • % Output arguments:

  • %   s1 …… a vector with the number of elements

  • %           different from zero of each column

  • %   s0 …… 0 if A is staircase Type 1 bellow the main diagonal

  • if nargin < 2; n = size(A,2); end

  • s1 = sum(A);

  • s0 = 0;

  • if (all(s1(1:end-1) <= s1(2:end))); s0 = 1;end

  • for k=1:n;

  •     s0 = sum([s0;A(s1(k)+1:end,k)]);

  • end

Example 1.Given the matrix A, we generate the matrix B 2 with ones above the main diagonal and in the main diagonal and bellow it the element is 1 if a i j 0 and 0 if it is zero.

image

Then we apply the function to B 2 .

  • ≫ [s1,s0] = Check_Lower_Shadow(B_2)

s 1 = 2 , 2 , 5 , 6 , 6 , 6 , s 0 = 0 ,
and we can see in the matrix A the meaning of this vector.

The second function gives the indices defined in (1)–(3).

  • function [I,J,s1,s0] = Find_Lower_Pattern(A,n)

  • % Function which finds the lower zero pattern of a matrix A

  • % Input arguments:

  • %   A …… a square matrix

  • %   n ……. the order of the matrix A (optional)

  • % Output arguments:

  • %   I ……. lower zero pattern vector I=(i_0,i_1,…,i_s)

  • %   J ……. lower zero pattern vector J=(j_0,j_1,…,j_s)

  • %   s1 …… a vector with the row index of the last element

  • %           different from zero of each column

  • %   s0 …… 0 if A is staircase Type 1 bellow the main diagonal

  • if nargin < 2; n = size(A,2); end

  • B = (A==0);

  • B = tril(B);

  • B2 = 1-B;

  • [s1,s0] = Check_Lower_Shadow(B2,n);

  • s2 = sum(B.');

  • I = union(0,s1)+1;

  • J = union(s2,n)+1;

Example 2.Given A the matrix of the Example 1, the output of the command

  • ≫ [I,J,s1,s0] = Find_Lower_Pattern(A)

I = { 1 , 3 , 6 , 7 } , J = { 1 , 3 , 4 , 7 } , s 1 = 2 , 2 , 5 , 6 , 6 , 6 , s 0 = 0 .

Analogously we define
j ^ 0 = 1 , i ^ 0 = 1 ()
and for k = 1 , , r :
j ^ k = max j / a i ^ k 1 j 0 + 1 ( n + 1 ) , ()
i ^ k = max i j ^ k / a i j ^ k = 0 + 1 ( n + 1 ) , ()
where i ^ r = n + 1 .
Finally, we denote by I, J, I ^ , and J ^ the following sets of indices
I = i 0 , i 1 , , i , J = j 0 , j 1 , , j , I ^ = i ^ 0 , i ^ 1 , , i ^ r , J ^ = j ^ 0 , j ^ 1 , , j ^ r ,
thereby defining the zero pattern in the matrix A.

To obtain I ^ , J ^ we only need to find the I and J of the transpose, so:

  • function [I,J,Ih,Jh,s1,st1] = Find_Pattern(A,n)

  • % Function which finds the zero pattern of a matrix A

  • % Input arguments:

  • %   A …….. a square matrix

  • %   n …….. the order of the matrix A (optional)

  • % Output arguments:

  • %   I …….. lower zero pattern vector I=(i_0,i_1,…,i_s)

  • %   J …….. lower zero pattern vector J=(j_0,j_1,…,j_s)

  • %   Ih ……. upper zero pattern vector Ih=(ih_0,ih_1,…,ih_r)

  • %   Jh ……. upper zero pattern vector Jh=(jh_0,jh_1,…,jh_r)

  • %   s1 ……. a vector with the row index of the last element

  • %           different from zero of each column

  • %   st1 …… a vector with the column index of the last element

  • %           different from zero of each row

  • % if A is NOT staircase type I then I,J,Ih,Jh,s1,st1 will be []

  • if nargin < 2; n = size(A,2); end

  • [I,J,s1,s0] = Find_Lower_Pattern(A);

  • [Jh,Ih,st1,st0] = Find_Lower_Pattern(A.');

  • if s0 = 0 || st0 = 0

  • I = []; J = []; Ih = []; Jh = []; s1 = []; st1 = [];

  • end

This function also returns the vectors s 1 and s 1 t which are useful for others algorithms (functions). If the matrix is not staircase then the function returns the empty set for all variables [].

Example 3.Given A the matrix of the Example 1, the output of the command

  • ≫ [I,J,Ih,Jh,s1,st1] = Find_Pattern(A)

I = { 1 , 3 , 6 , 7 } , J = { 1 , 3 , 4 , 7 } , I ^ = { 1 , 2 , 3 , 4 , 7 } , J ^ = { 1 , 3 , 5 , 6 , 7 } , s 1 = 2 , 2 , 5 , 6 , 6 , 6 , s 1 t = 2 , 4 , 5 , 6 , 6 , 6 .

Now, we highlight some entries of the matrix of the Example 1 in two different ways

image

In the first representation, the framed numbers correspond with the positions given by the lower zero pattern and the numbers with grey background correspond with the positions given by the upper zero pattern (which is the lower zero pattern of the transpose). In the second representation, it can be observed the interpretation of the vectors s 1 and s 1 t .

So, if A is a type-II staircase matrix, then the zero pattern of A is the zero pattern of P n A .

To mark the positions of the matrix in which a new echelon starts, we define the following indices.

Let A be a real n × n matrix, type-I staircase, with zero pattern I, J, I ^ , and J ^ . Let be 1 i , j n . If j i we define
j t = max j s / 0 s k 1 , j j s i i s , ()
being k the unique index satisfying that j k 1 j < j k , and if i < j
i ^ t = max i ^ s / 0 s k 1 , i i ^ s j j ^ s , ()
being k the only index satisfying that i ^ k 1 i < i ^ k .

To find theses indices we have implemented the next function:

  • function [it jt] = Find_jt(i,j,I,J)

  • % Given a matrix A of order n with zero pattern I J and two numbers i, j

  • % such that 1<=j<=i<=n this function returns the indices i_j and j_t

  • % Input arguments:

  • %   i …….. row position of the element a_ij

  • %   j …….. column position of the element a_ij

  • %   I …….. lower zero pattern vector I=(i_0,i_1,…,i_s)

  • %   J …….. lower zero pattern vector J=(j_0,j_1,…,j_s)

  • % Output arguments:

  • %   it ……. the index i_t

  • %   jt ……. the index j_t

  • k = find(j<J,1);

  • t = find(j-i <= J(1:k-1)-I(1:k-1),1,'last');

  • it = I(t); jt = J(t);

Example 4.Given A the matrix of the Example 1, the output of the command

  • ≫ [it jt]=Find_jt(5,4,I,J)

i t = 3 , j t = 3 .
  • ≫ [it jt]=Find_jt(6,6,I,J)

i t = 3 , j t = 3 .
  • ≫ [it jt]=Find_jt(5,3,I,J)

i t = 3 , j t = 3 .

The geometrical interpretation of this concept is the following, we fix the position ( 5 , 4 ) and draw the diagonal that passes through this position ( j i = 4 5 ); starting at this position, to the left, is the first position of the lower zero pattern ( i t , j t ) which lies above this diagonal. In the next graph we can observe this interpretation

image

3 ALMOST STRICTLY SIGN REGULAR MATRICES

Next, we define ASSR matrices, which are matrices whose nontrivial minors of the same order have all the same strict sign. To store the sign we are going to define the vector of signatures.

Definition 3.Given a vector ε = ( ε 1 , ε 2 , , ε n ) n , we say that ε is a signature sequence, or simply, is a signature, if ε i { + 1 , 1 } for all i n .

ASSR matrices form a subclass of SR matrices. A matrix is SR if all its minors of the same order have the same sign. That is:

Definition 4.A real matrix A = ( a i j ) 1 i , j , n is said to be SR, with signature ε = ( ε 1 , ε 2 , , ε n ) , if all its minors satisfy that

ε m det A [ α | β ] 0 , α , β Q m , n , m n . ()

In a staircase matrix there are some minors which are trivially zero due to the position of their zero entries. We are going to distinguish those minors from those that do not verify that condition.

Definition 5.Let A = a i j 1 i , j n be a type-I (type-II) staircase matrix. A submatrix A [ α | β ] , with α , β Q m , n , is said to be nontrivial if all its main diagonal (secondary diagonal) elements are nonzero.

The minor associated to a nontrivial submatrix ( A [ α | β ] ) is called nontrivial minor ( det A [ α | β ] ).

The nontrivial minors play an important role in ASSR matrices.

Definition 6. ([11])A real matrix A = ( a i j ) 1 i , j n type-I or type-II staircase is said to be ASSR, with signature ε = ( ε 1 , ε 2 , , ε n ) , if all its nontrivial minors det A [ α | β ] satisfy that

ε m det A [ α | β ] > 0 , α , β Q m , n , m n . ()

Remark 1.Observe that an ASSR matrix is SR, since the trivial minors are zero and the nontrivial minors satisfy the strict inequality (9). Observe also that an ASSR matrix is nonsingular.

Next, we present the characterization given in Reference 11 for ASSR matrices (see theorem 10).

Theorem 1.Let A be a real n × n matrix and ε = ( ε 1 , ε 2 , , ε n ) be a signature. Then A is ASSR with signature ε if and only if A is a type-I or type-II staircase matrix, and all its nontrivial minors with α , β Q m , n 0 , m n , satisfy

ε m det A [ α | β ] > 0 . ()

A characterization of the ASSR matrices using the pivots of NE is given in Reference 17. To carry out the Neville process (see Reference 19), we have implemented the following algorithm:

  • function [A Piv Ak] = Neville(A,n)

  • % Function to apply the Neville elimination method to a square matrix.

  • % Input arguments:

  • %   A …….. a square matrix

  • %   n ……… the order of the matrix A (optional)

  • % Output arguments:

  • %   A ……… the matrix we obtain at the end of the process

  • %   Piv ……. Matrix with the pivots of the NE algorithm

  • %   Ak …….. A 3-dimensional array with all the matrices A_k

  • %             of the procedure A_1=Ak(:,:,1), A_2=Ak(:,:,2),…

  • if nargin < 2; n = size(A,2); end

  • Piv = zeros(n,n);

  • for j = 1:n

  • Ak(:,:,j) = A;

  • [I,bnd] = Pivoting(A(j:end,j),j,n);

  • A = A(I,:);

  • Piv(j:end,j) = A(j:end,j);

  • for i = bnd:-1:(j+1)

  • A(i,:) = A(i,:)-A(i,j)/A(i-1,j)*A(i-1,:);

  • end

  • end

For simplicity we obtain a function to apply the pivoting strategy, that is, by moving to the bottom the rows with a zero entry:

  • function [I bnd] = Pivoting(v,j,n)

  • % Function to apply pivoting strategy

  • % Input arguments:

  • % v ……… a column vector with the elements (a_jj,a_{j+1j},…,a_nj)

  • % j …….. index of the column we are applying the method

  • % n ……… order of the matrix

  • % Output arguments:

  • % I ……… the new order to put the zero entries down

  • % bnd ……. the position of the last element different from zero

  • vv = ones(n,1);

  • vv(j:n) = abs(v)/max(abs(v)) = 0;%We can use (>10k*eps) instead of (=0)

  • [vv I] = sort(vv,'descend');

  • bnd = find(vv,1,'last');

Although all the output arguments are not necessary, the function returns the final matrix, all the intermediate matrices and the pivots of the process with the realignment.

This characterization uses the following results:

Theorem 2.Let B = ( b i j ) 1 i , j n be a nonsingular type-I staircase matrix, with zero pattern defined by I, J, I ^ , and J ^ . If B is ASSR with signature ε = ( ε 1 , ε 2 , , ε n ) , then the NE of B can be performed without row exchanges and the pivots p i j satisfy, for 1 j i n ,

p i j = 0 b i j = 0 , ()
ε j j t ε j j t + 1 p i j > 0 b i j 0 , ()
where ε 0 = 1 and j t is defined in (7).

Theorem 3.Let B = ( b i j ) 1 i , j n be a nonsingular type-II staircase matrix, with zero pattern defined by I, J, I ^ , and J ^ . If B is ASSR with signature ε = ( ε 1 , ε 2 , , ε n ) , then the NE of B T can be performed without row exchanges and the pivots q i j satisfy, for 1 i < j n ,

q i j = 0 b i j = 0 , ()
ε i i ^ t ε i i ^ t + 1 q i j > 0 b i j 0 , ()
where ε 0 = 1 and i ^ t is defined in (8).

Remark 2.Using this theorems it is easy to verify that ε j j t ε j j t + 1 p i j = ε j 1 ε j p i j and ε i i ^ t ε i i ^ t + 1 q i j = ε i 1 ε i q i j

To check the pivot conditions of Theorem 2 we have implemented the function:

  • function PSignat = Check_p_ij_Cond(Piv,s1,PSignat,n)

  • % This function check that the pivots Piv of the Neville Elimination of

  • % a matrix A verifies the conditions:

  • % ep_{j-1}*ep_j*p_ij > 0 if a_ij = 0 and p_ij == 0 if a_ij == 0

  • % Input arguments:

  • % Piv ……. matrix with the pivots of the NE of the matrix

  • % s1 …….. a vector with the row index of the last element

  • % different from zero of each column

  • % PSignat … vector with the products of consecutive elements (optional)

  • % of the signature (ep_0*ep_1,ep_1*ep_2,….,ep_{n-1}*ep_n)

  • % PSignat = [sign(p_11),sign(p_22),…,sign(p_nn)]

  • % n ……… the order of the matrix (optional)

  • % Output arguments:

  • % PSignat …. PSignat if the conditions are verified or 0 otherwise

  • if nargin < 4; n = size(Piv,2); end; if nargin < 3; PSignat=[]; end;

  • if isempty(PSignat)

  • PSignat = sign(diag(Piv)).';

  • elseif PSignat == 0

  • return

  • end

  • M = Piv*diag(PSignat(1:n));

  • for j = 1:n

  • if all(M(j:s1(j),j) > 0); PSignat = 0; return;end

  • end

If we want to verify the conditions of Theorem 3, it is enough to apply the previous function the matrix A t .

From now on, we will denote by A h = A [ h , , n ] . Note that A 1 = A and A n = ( a n n ) .

Remark 3.Let A be a type-I (type-II) staircase matrix. Then, in relation to A h ( A h T ) matrices, the next results are verified:

  1. A h and A h T are also type-I (type-II) staircase matrix for all h { 1 , 2 , , n } .
  2. If the zero pattern of A is given by I = { i 0 , , i } , J = { j 0 , , j } , I ^ = { î 0 , , î r } , J ^ = { ĵ 0 , , ĵ r } , then the zero pattern of A h matrices is given by I h = { 1 , i a h + 1 , , i l h + 1 } , J h = { 1 , j a h + 1 , , j l h + 1 } , I ^ h = { 1 , î b h + 1 , , î r h + 1 } , J ^ h = { 1 , ĵ b h + 1 , , ĵ r h + 1 } , where a = min { s / j s h + 1 2 } and b = min { s / î s h + 1 2 } .
  3. If A is ASSR matrix with signature ε = ( ε 1 , ε 2 , , ε n ) then A h and A h T are ASSR matrices with signature ε = ( ε 1 , ε 2 , , ε n h + 1 ) .

To obtain the zero pattern of the matrices A h from the zero pattern of A we have the function:

  • function [I_h J_h] = Lower_Zero_Pattern_Of_A_h(I,J,h)

  • % Given a matrix A with zero pattern I J this function returns the lower

  • % zero pattern of the submatrix A_h

  • % Input arguments:

  • % I ……… lower zero pattern vector I=(i_0,i_1,…,i_s)

  • % J ……… lower zero pattern vector J=(j_0,j_1,…,j_s)

  • % h ……… index of the matrix A_h we are checking

  • % Output arguments:

  • % I_h ……. lower zero pattern vector I_h of A_h

  • % J_h ……. lower zero pattern vector J_h of A_h

  • I_h = I-h+1; J_h = J-h+1;

  • J_h = [1 J_h(J_h > 1)];

  • hh = length(J_h);

  • I_h = [1 I_h(end-hh+2:end)];

By checking the compatibility of the signature needed for the last condition of the previous result, we need only a function to check bellow the main diagonal because to check above the main diagonal we can apply this one to the transpose, that is:

  • function PSignat = Check_Signature_Lower_Compatibility(I,J,h,PSignat)

  • % Given a matrix A with zero pattern I J, we study the compatibility of the

  • % signature for the indices of the submatrices A_h bellow the main diagonal,

  • % that is, if ih >= jh and ih - jh == ih_t - jh_t then

  • % ep_{jh - jh_t}·ep_{jh - jh_t+1} ==ep_{jh - 1}·ep_{jh}

  • % Input arguments:

  • % I ……… lower zero pattern vector I=(i_0,i_1,…,i_s)

  • % J ……… lower zero pattern vector J=(j_0,j_1,…,j_s)

  • % h ……… index of the matrix A_h we are checking

  • % PSignat … vector with the products of consecutive elements of

  • % the signature (ep_0*ep_1,ep_1*ep_2,….,ep_{n-1}*ep_n)

  • % Output arguments:

  • % PSignat … PSignat if the conditions are verified or 0 otherwise

  • if PSignat == 0; return; end

  • [I J] = Lower_Zero_Pattern_Of_A_h(I,J,h);

  • n = (I(end)-1);

  • IJ = [I(2:end-1); J(2:end-1)];

  • for ij = IJ

  • for i = ij(1):n

  • j = ij(2) + i - ij(1);

  • [it jt] = Find_jt(i,j,I,J);

  • if (i-j == it-jt) && PSignat(j-jt+1) = PSignat(j)

  • PSignat = 0; return;

  • end

  • end

  • end

Finally, in the following result (theorem 5 of Reference 17) a characterization of ASSR matrices, with ε 2 = 1 , is presented:

Theorem 4.A nonsingular matrix A = a i j 1 i , j n is ASSR with signature ε = ( ε 1 , ε 2 , , ε n ) , with ε 2 = 1 if and only if for every h = 1 , , n 1 the following properties hold simultaneously:

  • a)

    A is type-I staircase;

  • b)

    the NE of the matrices A h = A [ h , , n ] and A h T can be performed without row exchanges;

  • c)

    the pivots p i j h of the NE of A h satisfy conditions corresponding to (12), (13), and the pivots q i j h of the NE A h T satisfy (14) and (15);

  • d)

    for the positions ( i h , j h ) of matrix A h :

    • if i h j h and i h j h = i t h j t h then ε j h j t h ε j h j t h + 1 = ε j h 1 ε j h ,

    • if i h < j h and i h j h = i ^ t h j ^ t h then ε i h i ^ t h ε i h i ^ t h + 1 = ε i h 1 ε i h ,

    where indices i t h , j t h , i ^ t h , j ^ t h are given by conditions corresponding to (7) and (8).

The final function, which computes the signature and return it if the matrix is ASSR using this characterization theorem is:

  • function Signat = Signature(A)

  • % Function to check if a matrix A is ASSR, if so, finds the signature

  • % Input arguments:

  • %   A ……… an square matrix

  • % Output arguments:

  • % Signat …. the signature of A if it is ASSR, 0 otherwise.

  • n = size(A,1);

  • Signat = [];

  • [A Pn Type2] = Check_Type2(A,n);

  • [I,J,Ih,Jh,s1,st1] = Find_Pattern(A,n);

  • if isempty(I); Signat = 0; return; end

  • for h = 1:n

  • A_h = A(h:end,h:end);

  • [B Piv Ak] = Neville(A_h,n-h+1);

  • Signat = Check_p_ij_Cond(Piv,s1(h:end)-h+1,Signat,n-h+1);

  • Signat = Check_Signature_Lower_Compatibility(I,J,h,Signat);

  • if Signat == 0; return; end

  • [Bt Piv Ak] = Neville(A_h.',n-h+1);

  • Signat = Check_p_ij_Cond(Piv,st1(h:end)-h+1,Signat,n-h+1);

  • Signat = Check_Signature_Lower_Compatibility(Jh,Ih,h,Signat);

  • if Signat == 0; return; end

  • end

  • [A Signat] = Recover_A_And_Obtain_Signature(A,Signat,Pn,Type2,n);

  • end

An auxiliary function we use in the function Signature is defined bellow:

  • function [A Signat] = Recover_A_And_Obtain_Signature(A,PSignat,Pn,Type2,n)

  • % This is an auxiliary function of the Signature function, in the signature

  • % function we work with the vector PSignat and with this function we

  • % recover the signature vector and, if the matrix is staircase type II then

  • % we apply the signs relationship to obtain the Signature

  • % Input arguments:

  • % A …….. a square matrix

  • % PSignat … vector with the products of consecutive elements

  • % of the signature (ep_0*ep_1,ep_1*ep_2,….,ep_{n-1}*ep_n)

  • % P_n ……. the backward identity matrix

  • % Type2 ….. 1 or 0

  • % n ……… the order of the matrix A (optional)

  • % Output arguments:

  • % A ……… A or Pn*A

  • % Signat …. the signature of A if it is ASSR, 0 otherwise.

  • if nargin < 2; n = size(A,2); end

  • Signat(1)=PSignat(1);

  • for i = 2:n

  • Signat(i) = Signat(i-1)* PSignat(i);

  • end

  • if Type2 == 1

  • i = 1:n;

  • k = i.*(i-1)/2;

  • A = Pn*A;

  • Signat = Signat.*[(-1).k];

  • end

  • end

Next, a simple example to show the efficiency of the function Signature is presented.

Example 5.Given the matrices

M = 0 0 0 28 176 259 0 0 9 42 172 176 0 0 30 48 42 28 0 0 21 30 9 0 2 6 6 8 0 0 1 2 0 0 0 0 , N = 0 0 0 28 176 259 0 0 9 42 172 176 0 0 30 48 42 45 0 0 21 30 9 0 2 6 6 8 0 0 1 2 0 0 0 0 .
If we apply the function Signature we obtain that M is ASSR and N is not.
  • ≫ epsilon = Signature(M)

ε = ( 1 , 1 , 1 , 1 , 1 , 1 ) .
  • ≫ epsilon = Signature(N)

ε = 0 .

The second matrix fails because, as we know, the matrix is staircase type II so we must to multiply by the identity backward matrix N = P n N and apply the Theorem 4 to N . So the NE process of the matrices N 1 and N 1 t throws these pivots

image

The pivot q 56 = 203 2 > 0 and it must be negative.

We finish with a interesting example:

Example 6.Let A be the matrix

A = 1110 1459 8486 411 8623 5837 4748 176 4212 1809 1523 3574 7473 2860 9848 1766 .
By applying function Neville to A 1 and A 1 t , the pivots p i j and q i j (we represent all in one matrix P 1 where p i j = p i j if i j and p i j = q i j if i j ) and the signs of the pivots are,
P 1 = 1110 1459 8486 411 8623 5497 . 2 29201 . 816 53 . 9585 4212 1042 . 1 10801 . 264 3516 . 9 7473 349 . 5577 7412 . 9 8531 . 4 , S 1 = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 .
Attending to the signs of the pivots, a candidate to be the signature is ε 1 = ( 1 , 1 , 1 , 1 ) .

Now, if we apply the function Neville to A 2 and A 2 t , the pivots p i j and q i j and the signs of the pivots are,

P 2 = 5837 4748 176 1809 51 . 5023 3517 . 5 2860 7440 . 2 512314 . 169 , S 2 = 1 1 1 1 1 1 1 1 1 .
Attending to the signs of the pivots, a candidate to be the signature is ε ( 2 ) = ( 1 , 1 , 1 ) which must be coherent with ε ( 1 ) , that is, must be equal to the first three elements of ε ( 1 ) , but it is not ε 2 ( 1 ) = 1 1 = ε 2 ( 2 ) . Clearly, this matrix is not ASSR because the following minors of order 2 have different signs:
A [ ( 1 , 2 ) | ( 1 , 2 ) ] = 1110 1459 8623 5837 , det ( A [ ( 1 , 2 ) | ( 1 , 2 ) ] ) = 6101887 , A [ ( 2 , 3 ) | ( 2 , 3 ) ] = 5837 4748 1809 1523 , det ( A [ ( 2 , 3 ) | ( 2 , 3 ) ] ) = 300619 .

ACKNOWLEDGMENT

This work has been partially supported by the Spanish Research Grants PGC2018-096321-B-I00, TIN2017-87600-P, MTM2017-90682-REDT and by Gobierno de Aragón (E41_20R).

    Biographies

    • biography image

      Pedro Alonso Velázquez received the M.Sc degree in Mathematical Sciences, from the University of Zaragoza (Spain) and the Ph.D. degree in Mathematical Sciences (Cum Laude) at the University of Oviedo (Spain). Currently, he is a full professor in Applied Mathematics at the University of Oviedo. His research areas are framed in the Numerical linear algebra, error analysis, study of algorithms (complexity, performance, stability, convergence, error, etc.), as well as in different aspects of fuzzy logic.

    • biography image

      Jorge Jiménez Meana received the M.Sc degree in Mathematical Sciences, from the University of Salamanca (Spain) and the Ph.D. degree in Mathematical Sciences (Cum Laude) at the University of Valladolid (Spain). Currently, he is professor in Applied Mathematics at the University of Oviedo. His research areas are framed in the Numerical linear algebra, parallel algorithms, cryptography, and algebraic structures in fuzzy sets.

    • biography image

      Juan Manuel Peña Ferrández is a Full Professor at the Department of Applied Mathematics of the University of Zaragoza (Spain). He received a M.Sc degree and a Ph.D. degree in Mathematical Sciences from the University of Zaragoza. He is author of more than 300 published research papers. His current research interests are Numerical Linear Algebra, Total Positivity, Nonnegative Matrices, Structured Matrices, Numerical Analysis, Approximation Theory, Shape Preservation and Computer-Aided Geometric Design.

    • biography image

      María Luisa Serrano Ortega received the M.Sc degree in Mathematical Sciences, from the University of Valencia (Spain) and the Ph.D. degree in Mathematical Sciences (Cum Laude) at the University of Oviedo (Spain). Currently, she is professor in Applied Mathematics at the University of Oviedo. His research areas are framed in the Numerical linear algebra.

      The full text of this article hosted at iucr.org is unavailable due to technical difficulties.