Complex-Symmetric Matrix SVD with Matlab: Conjugate Relationship Not Seen

  • Context: MATLAB 
  • Thread starter Thread starter Heavytortoise
  • Start date Start date
  • Tags Tags
    Matlab Svd
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 15K views
Heavytortoise
Messages
1
Reaction score
0
For a square, complex-symmetric matrix ##A##, the columns of the right and left matrices ##U## and ##V## of the singular value decomposition should be complex conjugates, since for [tex]A=A^T, A\in{\mathbb C}^{N\times N}[/tex],
[tex] A = U\Sigma V^H, A^T=(U\Sigma V^H)^T[/tex]
so that
[tex] U\Sigma V^H=(V^H)^T\Sigma U^T.[/tex]
Then we have [tex]U=(V^H)^T[/tex], right? So why isn't this the case when I run a few experiments with Matlab? The magnitudes of the elements of ##U## and ##V## are equal, but they aren't conjugates. The expected relationship holds for real ##A##, where ##U## and ##V## are real-valued, but not for complex symmetric matrices. Who's screwed up here, me or Matlab?
 
Last edited by a moderator:
Physics news on Phys.org
This question has gone a long time without being answered.

I don't have a solution to your question but some insight.

Note that the documentation for Matlab's svd() command does not mention complex valued matrices.

The command will accept complex-valued input and produce results U, Sigma, and V. And you can use U*Sigma*VT to get back the same A.

The functions like svd() in Matlab are numeric processes.

I can confirm that the open-source Octave produces similar results as Matlab.

It's likely that searching the Mathworks forum will get an answer from someone familiar with the inner workings of Matlab's svd() function.

https://www.mathworks.com/matlabcentral/content/communities.html
 
Reply
  • Like
Likes   Reactions: Greg Bernhardt
I don't have Matlab available right now, but the svd decomposition is not unique. In particular the U and V define the unit vectors that are being mapped to each other, and in complex land you can scale the unit vectors on each side by complex numbers of norm 1 in an appropriate way and get another svd representation. I'm guessing this is causing the problem, the algorithm doesn't guarantee if picks a specific choice of representation.
 
Reply
  • Like
Likes   Reactions: Greg Bernhardt and scottdave