A Hermitian matrix of dimension $N$ has $N^2$ real parameters. However, in the answer by rcollyer I see a larger number of parameters in the form of complex numbers (which means the representation isn't unique). In Heike's solution (which is from the documentation for HermitianMatrixQ) we have to write Re[n] on the diagonal which is OK in principle but creates the impression as if n as a complex number has significance, which of course it doesn't.
So one should be able to specify the real-valuedness of the diagonal elements as an assumption instead. That's what I'm testing below:
Clear[h]; mat = Table[If[i <= j, h[i, j], Conjugate[h[j, i]]], {i, 3}, {j, 3}]; MatrixForm[mat] $\left( \begin{array}{ccc} h(1,1) & h(1,2) & h(1,3) \\ h(1,2)^* & h(2,2) & h(2,3) \\ h(1,3)^* & h(2,3)^* & h(3,3) \\ \end{array} \right)$
The documentation states that HermitianMatrixQ[mat] is "effectively" equivalent to ConjugateTranspose[mat] == mat. Let's see if that is true:
Assuming[{Apply[And, Map[# ∈ Reals &, Diagonal[mat]]]}, Simplify[ConjugateTranspose[mat] == mat]] (* ==> True *) Assuming[{Apply[And, Map[# ∈ Reals &, Diagonal[mat]]]}, Simplify[HermitianMatrixQ[mat]]] (* ==> False *) It is not the same. So it may be that the problems of the OP have to do with this inconsistency. My suggestion therefore would be to avoid using HermitianMatrixQ as a test, and use the first variant instead.
Edit
Since HermitianMatrixQ appears to be used internally, we're stuck with it and need to follow Heike's answer, or the one I give below.
The key word in the documentation is that the matrix passed to HermitianMatrixQ must be explicitly hermitian. This means that although it does evaluate its arguments, it doesn't evaluate properly with $Assumptions when attempting to Simplify. That appears to severely limit the extent to which one can do symbolic matrix manipulations. I just checked that the same behavior also happens for SymmetricMatrixQ.
To me this looks like an inconsistent behavior, but legalistically speaking one may not be ableEdit 2: a new solution without Re[...]
This seems to call it a bug because ofbe the wordgeneral policy for "effectively"all.. conditionals that end in ...Q: the test is performed syntactically without using assumptions.
To get a neat representation of a hermitian matrix that is manifestly hermitian, one could use the following definition:
dimension = 3; Clear[h]; diagonal = Table[Unique["h"], {dimension}]; Map[(# /: Conjugate[#] = #) &, diagonal]; mat = Table[ If[i <= j, h[i, j], Conjugate[h[j, i]]], {i, dimension}, {j, dimension}]; mat = mat - DiagonalMatrix[Diagonal[mat]] + DiagonalMatrix[diagonal]; MatrixForm[mat] $\left( \begin{array}{ccc} \text{h3} & h(1,2) & h(1,3) \\ h(1,2)^* & \text{h4} & h(2,3) \\ h(1,3)^* & h(2,3)^* & \text{h5} \\ \end{array} \right)$
HermitianMatrixQ[mat]
True
Here I wonder if anyone has additional insight asdid not have to why thisforcibly use real parts Re on the diagonals. Instead, I used TagSet to define the complex conjugate of each diagonal element to be equal to itself. That is happeningsufficient to convince Mathematica that it is a real number.