# How to draw a random normal matrix?

I would like to pick a random real normal (i.e. commuting with its transpose) matrix and I wonder if it can be done easily. I thought whether it would be possible to use a similar trick to drawing a symmetric matrix by first generating an arbitrary matrix A, and then setting $A=(A+A^T)/2$. Is there any similar normalization trick for matrices. I'd be grateful for any help.

• "Random" only makes sense when you specify a probability distribution. Which one do you want? There isn't any canonical choice, AFAIK. – Nate Eldredge Aug 31 '17 at 20:54
• There are many papers about "random normal matrices". Have you googled this? – Marcel Aug 31 '17 at 20:57
• @Marcel --- I presume these papers you are referring to all interpret "normal" as "Gaussian" --- which is a different kettle of fish --- for complex normal matrices I would just draw a random unitary $U$ and a random diagonal matrix $D$ and write $A=UDU^\dagger$ --- no idea how to impose the constraint that $A$ is real... – Carlo Beenakker Aug 31 '17 at 21:07
• @CarloBeenakker What is the distribution of the coefficients of this? – Igor Rivin Aug 31 '17 at 22:00
• @CarloBeenakker no, the papers I mean interpret "normal" in the sense of the question (although I think the ensembles are indeed Gaussian). Also, to make your $A$ real one just draws random orthogonal matrices, no? – Marcel Aug 31 '17 at 22:57

Any real normal matrix $M$ can be written as $M=O\,\mathrm{diag}(B_1,\ldots,B_\ell)\,O^t$ where $O$ is orthogonal and where the blocks $B_j$ are either $1\times 1$ real numbers or $2\times2$ matrices of the form: $$\left[\begin{matrix} a & b \\- b& a\end{matrix}\right],\qquad a\in\mathbb R,\qquad b>0.$$ This provides a way to sample a real $n\times n$ normal matrix whose associated measure has the full space of real normal matrices for support:
$\bullet$ Sample $O$ according to the Haar measure on the $n$-orthogonal group
$\bullet$ Randomly pick the number of blocs which will be of size $2\times 2$ between $0$ and $\lfloor \tfrac n2\rfloor$ uniformly
$\bullet$ Sample each free parameter of the blocks the blocks $B_j$'s according to, say, i.i.d standard Gaussian random variables for the real parameters and exponential $\mathcal E(1)$ random variables for the positive parameters.