# Generating $3\times 3$ Unitary Matrices close to the Identity

Is there a way to generate uniformly spaced, or better still, to parametrise Unitary Matrices close to Identity. The solution is required primarily for $SU(3)$, but also in general for $SU(n)$.
It might be relevant that I am trying to optimise a function that takes in a unitary matrix as its argument. I am aware of the fact that $SU(n)$ matrices are exponentiated hermitian traceless generators. But that does not quite help me.
The outline of the problem that I am trying to solve is as follows -

I have an equation for the evolution of some unitary matrix. The evolution is constrained by the unitarity of the matrix - and i have the fixed points of this flow by generating the entire spectrum of $SU(3)$ matrices. But now i also have to find out the stability of these fixed points. I would prefer to use a systematic root finding type algorithm to accomplish this - which is where generating unitary matrices close to the identity comes in.
After the initial brute force search in this space, i would also require increased resolution for bisection or Newton-Ralphson to work. I already have a way to generate a uniform distribution of unitary matrices RANDOMLY - refer here. But I cannot use that for the root finding bit.

Hope the explanation helps! I have heard something about using two Householder transformations to do this, but didnt find anything to back it up! Please cite references if you don't have enough time. I will complete the answers and choose the one that leads me to the correct answer.

-
You can try generating an orthonormal base, which will then be the rows or columns of your unitary matrix. – akkkk Apr 17 '12 at 13:34
What do you mean by uniformly spaced? Can't you use $\exp(-i\sum_j c_j H_j)$, where $H_j$ are the Gell-Mann matrices to parametrize your matrices? – draks ... Apr 17 '12 at 13:44
@draks hope the edit answers your question! – Debanjan Basu Apr 17 '12 at 16:26
@auke the problem is to generate an ensemble of unitary matrices for root finding, not just one! – Debanjan Basu Apr 17 '12 at 16:27
@Debanjan This seems to be almost an exact duplicate of your last question (math.stackexchange.com/questions/129911/…), but with emphasis on $SU(3)$. I have posted a modification of my answer from last time below. – Jim Belk Apr 17 '12 at 16:29

If you want to generate random elements of $SU(3)$ close to the identity, it seems to me that the most logical approach would be to generate random elements of the Lie algebra $\mathfrak{su}(3)$, and then exponentiate them.

The Lie algebra $\mathfrak{su}(3)$ consists of all $3\times 3$ matrices $A$ with trace $0$ satisfying $A^\dagger = -A$. Such a matrix can be written as $$A \;=\; \begin{bmatrix}ia_1 & b_1+ic_1 & b_2+ic_2 \\ -b_1+ic_1 & ia_2 & b_3+ic_3 \\ -b_2+ic_2 & -b_3+ic_3 & ia_3\end{bmatrix}$$ where $a_k,b_k,c_k$ are real and $a_1+a_2+a+3 = 0$. Given a matrix $A\in\mathfrak{su}(3)$, the exponential $\exp(tA)$ is a unitary matrix for all $t\in\mathbb{R}$.

There is a standard inner product on $\mathfrak{su}(3)$, namely the negative of the Killing form, which is invariant under the adjoint action. This is given by the formula $$\langle A, A'\rangle = 12\sum_{k=1}^3 \left(\frac{1}{2}a_ka_k' + b_kb_k' + c_kc_k'\right)$$ If we drop the factor of $12$, then we can easily find an orthonormal basis for $\mathfrak{su}(3)$ with eight elements:

$$M_1=\begin{bmatrix}1 & 0 & 0 \\ 0 & -1 & 0 \\ 0 & 0 & 0\end{bmatrix}, \quad M_2=\frac{1}{\sqrt{3}}\begin{bmatrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 2\end{bmatrix}$$ $$M_3=\begin{bmatrix}0 & 1 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 0\end{bmatrix}, \quad M_4=\begin{bmatrix}0 & 0 & 1 \\ 0 & 0 & 0 \\ -1 & 0 & 0\end{bmatrix}, \quad M_5=\begin{bmatrix}0 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & -1 & 0\end{bmatrix},$$ $$M_6=\begin{bmatrix}0 & i & 0 \\ i & 0 & 0 \\ 0 & 0 & 0\end{bmatrix}, \quad M_7=\begin{bmatrix}0 & 0 & i \\ 0 & 0 & 0 \\ i & 0 & 0\end{bmatrix}, \quad M_8=\begin{bmatrix}0 & 0 & 0 \\ 0 & 0 & i \\ 0 & i & 0\end{bmatrix},$$ These are known as the Gell-Mann matrices.

These eight matrices are like the standard basis of unit vectors for $\mathfrak{su}(3)$. For example, if you want a random point on the sphere in $\mathfrak{su}(3)$ of radius $0.1$, the thing to do is to choose eight random coordinates $(x_1,\ldots,x_8)$ such that $x_1^2 + \cdots + x_8^2 = 0.1^2$, and then compute $$M \;=\; x_1M_1 + \cdots + x_8 M_8.$$ This will be a random matrix at a distance of $0.1$ from the zero matrix in $\mathfrak{su}(3)$.

To get a random matrix in $SU(3)$, you simply exponentiate: $$\exp(M) \;=\; I + M + \frac{1}{2}M^2 + \frac{1}{3!}M^3 + \frac{1}{4!}M^4 + \cdots$$ Then $\exp(M)$ will be a random matrix in $SU(3)$ at a distance of $0.1$ from the identity.

Note: The only part I haven't explained yet is how to pick a random point $(x_1,\ldots,x_8)$ on the sphere of radius $0.1$ in $\mathbb{R}^8$. Here is a standard algorithm:

1. Pick eight random numbers $(r_1,\ldots,r_8)$ between $-1$ and $1$.

2. If $r_1^2 + \cdots + r_8^2 > 1$, throw the numbers out and go back to step 1. Keep picking until you choose one that satisfies $r_1^2 + \cdots + r_8^2 \leq 1$

3. Now we have a randomly chosen tuple $(r_1,\ldots,r_8)$ such that $r_1^2 + \cdots + r_8^2 \leq 1$. Then let $$(x_1,\ldots,x_8) \;=\; \frac{0.1}{\sqrt{r_1^2+\cdots+r_8^2}}(r_1,\ldots,r_8)$$

-
in step 2 of choosing random point in $\mathbb{R}^8$, why do we have to throw out the numbers if the euclidean distance squared is > 1? Infact we wouldn't require step 2 at all. – Debanjan Basu Apr 17 '12 at 16:46
@Debanjan If you don't throw out the tuples I suggest, the distribution won't be uniform on the sphere -- you will more often select points near the "corners" than near the sides. See the following paper for a discussion of some other algorithms for picking points uniformly on a sphere: www-alg.ist.hokudai.ac.jp/~jan/randsphere.pdf. – Jim Belk Apr 17 '12 at 17:59
@Debanjan By the way, if you want to generate a regular pattern of points on the 8-sphere (instead of random points), one possible method would be to use the vertices of a uniform 8-polytope (see en.wikipedia.org/wiki/Uniform_8-polytope). – Jim Belk Apr 17 '12 at 18:09

To parametrise unitary matrices close to the identity, we can use the fact that $SU(n)$ is a Lie group, of Lie algebra $\mathfrak{su}(n)=\{A\in\mathcal{M}_n(\mathbb{C})|A^*+A=0\}$, and that the exponential is a continuous mapping from $\mathfrak{su}(n)$ to $SU(n)$. Then the unitary matrices close to the identity are parametrized by the complex matrices satisfying $A^*+A=0$ that are close to zero.

To clarify, the exponential of a matrix is exactly the same as for a number : if $X$ is a matrix, $\exp(X)=\sum_{n=0}^\infty X^n/n!$. Beware, though, that it is no longer true that $\exp(X+Y)=\exp(X)\exp(Y)$.

-
I might've not made myself clear the first time around! Please look at the edited question again. – Debanjan Basu Apr 17 '12 at 15:31