Computational Science Stack Exchange is a question and answer site for scientists using computers to solve scientific problems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Having a matrix $\mathbf{A} \in \mathcal{C}^{m\times n}$ I solve following least-squares problem $$Re(\mathbf{A}^H \mathbf{A})x=Re(\mathbf{A}^H\mathbf{b}).$$ If the matrix $\mathbf{A}$ was a real matrix, the solution to the equation above could have been written as $$\mathbf{x} = \sum_{i=1}^{rank(\mathbf{A})} \frac{\mathbf{u}_i^T\mathbf{b}}{s_i}\mathbf{v}_i,$$ where $\mathbf{u}_i$ and $\mathbf{v}_i$ are corresponding left and right singular vectors and $s_i$ is an $i$th singular value.

My question is whether the solution to the least-squares problem stated in the first equation can be written in a similar way given the SVD of $\mathbf{A} = \mathbf{U}\mathbf{S}\mathbf{V}^H$?

I know that one could split matrix $\mathbf{\tilde A} = [Re(\mathbf{A});~Im(\mathbf{A})]$ and equivalently solve the real problem, but the condition to stay within the complex SVD of the original matrix is of main concern here.

Thank you.

share|improve this question
That should be $u_{i}^{H}b$ rather than $u_{i}^{T}b$. – Brian Borchers Feb 19 '13 at 22:33
@BrianBorchers: thanks, but somehow I can't edit it... Have you got any idea how to write this equation given the complex SVD so that it solves stated normal eqs? – Alexander Feb 20 '13 at 7:32

I can't see how it can be done, but others might be able to help you further. I get, with $A=USV^H$, $A^H=VS^H U^H$,

$Re(A^H A)x = Re(A^H b) => Re(V S^H U^H U S V^H) x = Re(V S^H U^H b) => Re(V S^H S V^H) x = Re(V S^H U^H b)$

Normally, you would now reduce $V S^H$ away, but since they are inside the real part, and since $Re(V S^H S V^H) \neq Re(V S^H) Re(S V^H)$, I am not sure how to proceed. Can anyone else get an idea?

share|improve this answer

Check out the LAPACK routines ZGELLS or ZGELLD. They solve the LS problem using SVD. See the official LAPACK documentation for the routine.

share|improve this answer
But OP only wants to solve for the real part? – OscarB Feb 21 '13 at 13:37
@OscarB: that is not what I read in the OP's post. He has a matrix with complex entries and wants to solve the complex LS problem... – GertVdE Feb 21 '13 at 16:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.