|
|
A055547
|
|
Number of normal n X n matrices with entries {0,1}.
|
|
4
|
|
|
|
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.
|
|
LINKS
|
|
|
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
|
|
AUTHOR
|
|
|
EXTENSIONS
|
|
|
STATUS
|
approved
|
|
|
|