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
Click For Summary
SUMMARY

The discussion centers on the singular value decomposition (SVD) of complex-symmetric matrices in Matlab, specifically addressing the expectation that the left and right matrices, U and V, should be complex conjugates. The user finds that while the magnitudes of U and V are equal, they are not conjugates, which contradicts the theoretical expectation for complex symmetric matrices. Insights reveal that Matlab's svd() function does not explicitly document its behavior with complex matrices, and similar results are observed in Octave. The non-uniqueness of SVD representations is highlighted as a potential reason for the discrepancies observed.

PREREQUISITES
  • Understanding of singular value decomposition (SVD)
  • Familiarity with complex-symmetric matrices
  • Knowledge of Matlab's svd() function and its documentation
  • Basic concepts of unit vectors and their transformations in complex spaces
NEXT STEPS
  • Research the behavior of Matlab's svd() function with complex-valued matrices
  • Explore the mathematical properties of complex-symmetric matrices
  • Investigate the SVD implementation in GNU Octave
  • Learn about the non-uniqueness of SVD representations and its implications
USEFUL FOR

Matlab users, mathematicians, and engineers working with complex-symmetric matrices and singular value decomposition, as well as those seeking to understand numerical methods in linear algebra.

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
 
  • 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.
 
  • Like
Likes   Reactions: Greg Bernhardt and scottdave

Similar threads

  • · Replies 4 ·
Replies
4
Views
7K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 12 ·
Replies
12
Views
3K
Replies
5
Views
8K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 3 ·
Replies
3
Views
20K
  • · Replies 1 ·
Replies
1
Views
5K
  • · Replies 2 ·
Replies
2
Views
5K