0

As an example in MATLAB

[U,S,V]=svd(randn(3,2)+1j*randn(3,2))
assert(isreal(V(1,:)))

Why is the first row of V purely real?

pheon
  • 117

2 Answers2

1

Quoting from the Wikipedia entry:

Non-degenerate singular values always have unique left- and right-singular vectors, up to multiplication by a unit-phase factor $e^{i \phi}$ (for the real case up to a sign).

(my emphasis).

So it seems, in this case, that the MatLab team have chosen to rotate the singular vectors so that the first element of each is real.

Paul Aljabar
  • 1,519
1

Paul Aljabar has the right answer. But just to expand on it a little. The SVD is not unique. The singular values are unique but the singular vectors are not.

If the SVD of $A$ is $U \Sigma V'$ then $ A = \sum_j \sigma_j u_j v_j^*$ where $u_j$ and $v_j$ are the $j$-th columns of $U$ and $V$ respectively. Given a set of unit-phase factors $a_j = e^{i\phi_j}$ then $a_j a_j^* =1$ and so $ A = \sum_j a_j a_j^* \sigma_j u_j v_j^* = \sum_j \sigma_j u'_j {v'_j}^*$ where $ u'_j = a_j u_j $ and $ v'_j = a_j v_j $. The matrices $\{U'\}$ and $\{V'\}$ are still unitary.

pheon
  • 117