login
A055547
Number of normal n X n matrices with entries {0,1}.
4
2, 8, 68, 1124, 36112, 2263268, 281249824, 70329901860, 35546752694048
OFFSET
1,1
COMMENTS
A complex matrix M is normal if M^H M = M M^H, where H is conjugate transpose.
Let M be an n X n complex matrix with eigenvalues l_1, ..., l_n. The following are equivalent:
(a) M is normal;
(b) There is a unitary matrix U such that U^H M U is diagonal;
(c) Sum_{i,j = 1..n} |M_{i,j}|^2 = |l_1|^2 + ... + |l_n|^2; and
(d) M has an orthonormal set of n eigenvectors.
If a normal matrix M is split into the symmetric and antisymmetric matrices M=A+S with S=(M+M^H)/2 and A=(M-M^H)/2, M^H the transpose of M, A must be a generalized Tournament matrix. (For Tournament matrices each row and each column sums to zero.) The "generalization" is that zeros (indicating a tie between the players) may occur outside the main matrix diagonal. A is therefore a member of the set of the antisymmetric ternary matrices (elements -1,0,+1) counted in A007081(n), because there is a 1-to-1 mapping of the Tournament matrix onto the labeled edge-oriented Eulerian graphs. - R. J. Mathar, Mar 22 2006
REFERENCES
G. H. Golub and C. F. van Loan, Matrix Computations, Johns Hopkins, 1989, p. 336.
R. A. Horn and C. R. Johnson, Matrix Analysis, Cambridge, 1988, Section 2.5.
W. H. Press et al., Numerical Recipes, Cambridge, 1986; Chapter 11.
FORMULA
a(n) >= 2^[n*(n+1)/2] = A006125(n+1) because all symmetric binary matrices (which have n*(n+1)/2 independent elements) are normal. - R. J. Mathar, Mar 22 2006
MATHEMATICA
Options[NormalMatrixQ]={ ZeroTest->(#===0&) };
Matrices[n_, l_List:{0, 1}] := Partition[ #, n]&/@Flatten[Outer[List, Sequence@@Table[l, {n^2}]], n^2-1]
NormalMatrixQ[a_List?MatrixQ, opts___] := Module[ { b=Conjugate@Transpose@a, zerotest=ZeroTest/.{opts}/.Options[NormalMatrixQ] }, (zerotest/@And@@Flatten[a.b-b.a])||Dimensions[a]=={1, 1} ]
Table[Count[Matrices[n, {0, 1}], _?NormalMatrixQ], {n, 4}]
PROG
(PARI) NormaQ(a, n) = { local(aT) ; aT=mattranspose(a) ; if( a*aT == aT*a, 1, 0) ; } combMat(no, n) = { local(a, noshif) ; a = matrix(n, n) ; noshif=no ; for(co=1, n, for(ro=1, n, if( (noshif %2)== 1, a[ro, co] = 1, a[ro, co] = 0) ; noshif = floor(noshif/2) ; ) ) ; return(a) ; } { for (n = 1, 5, count = 0; a = matrix(n, n) ; for( no=0, 2^(n^2)-1, a = combMat(no, n) ; count += NormaQ(a, n) ; ) ; print(count) ; ) } \\ R. J. Mathar, Mar 15 2006
CROSSREFS
KEYWORD
nonn,more,hard
EXTENSIONS
Entry revised by N. J. A. Sloane, Jan 15 2004
a(5) from R. J. Mathar, Mar 15 2006
a(6) from R. J. Mathar, Mar 22 2006
Statement (c) corrected. - Max Alekseyev, Oct 18 2008
a(7) from Georg Muntingh, Feb 03 2014
a(8) and a(9) from Brendan McKay, May 09 2019
STATUS
approved