# Complex least-squares problem

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.

-

That should be $u_{i}^{H}b$ rather than $u_{i}^{T}b$. – Brian Borchers Feb 19 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 at 7:32

## 2 Answers

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?

-

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

-

But OP only wants to solve for the real part? – OscarB Feb 21 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 at 16:36
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 15, "mathjax_display_tex": 2, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.18, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9441178441047668, "perplexity_flag": "head"}