MATLAB Answers

Difference between eigs and svds

2 views (last 30 days)
Orr Streicher
Orr Streicher on 6 Jun 2021
Edited: Paul on 6 Jun 2021
Hi,
Im trying to find the 6 smallest eigenvalues and thier coresponding eigevectors of a matrix L.
i tried the 2 following commands:
[V1,S1]=eigs(L,6,'smallestabs')
[U2,S2,V2]=svds(L,6,'smallest')
but i found that V1 in not equal to V2 (and also not equal to U2).
can someone explain what is the difference between the two commands?

Accepted Answer

Manas Minnoor
Manas Minnoor on 6 Jun 2021
Hi Orr,
eigs returns the eigenvalues while svds returns the singular values of the matrix.
If the matrix is not a real symmetric N*N matrix with positive eigenvalues, the singular values and eigenvalues may not coincide. This may be your issue.
You may refer to the following link for more clarity:
Hope this helps.

More Answers (1)

Paul
Paul on 6 Jun 2021
Edited: Paul on 6 Jun 2021
eigs returns eigenvalues and eigenvectors. svds resturns singular valuese and singular vectors. Why would there be an expectation that these two functions return the same quantities (except perhaps for special cases)?
Can you edit your question to add an example?

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by