Is there an iterative procedure that pushes the singular values of a matrix toward unity? Consider a square matrix $A = U \Sigma V^T$.  I want to find $B = UV^T$ — however, it seems wasteful to compute the whole SVD just to re-multiply the two orthogonal matrices.
Does there exist some stable procedure I can use to "push" the entries in the diagonal matrix $\Sigma$ toward ones?
 A: Set $A_0=A$ and $A_n = (1/2)(A_{n-1}+(A_{n-1}^T)^{-1})$. I claim $A_n \to UV$, and does so rapidly.
Define $f(x) = \frac{x+x^{-1}}{2}$. Suppose $A=UDV$ where the diagonal entries of $D$ are $\sigma_1$, $\sigma_2$, ..., $\sigma_k>0$. Then induction shows that $A_n = U D_n V$ where $D$ is diagonal with entries $f^{(n)}(\sigma_j)$. (Here $f^{(n)}$ means iterate $f$ for $n$ times.) For any $\sigma>0$, $f^{(n)}(\sigma) \to 1$, and does so quite rapidly: $|f^{(n)}(\sigma)-1|$ shrinks like $1/\exp(c \cdot 2^n)$.
Disclaimer: I have not tested this method.
A: David , 1. Note that $x\rightarrow (x+1/x)/2$ is the Newton iteration for the calculation of an approximation of $\sqrt{1}$. If $\sigma =1000\approx 2^{10}$, one needs more that $10$ iterations.


*What is the interest ? Each matricial iteration has complexity $\sim n^3$; compare with the cost of the calculation of the SVD (in $O(n^3)$) and the multiplication $UV^T$ ($\sim n^3$).

*The OP assumes (if I correctly understand his question) that the singular values are unknown. How do you write your iteration ? Anyway, the calculation of the singular values is also in $O(n^3)$.

*The couple $U,V$ is not unique but I think that $UV^T$ is unique.
