how to find eigenvectors using cholsky decomposition?

8 visualizaciones (últimos 30 días)
zyad
zyad el 2 de Dic. de 2017
Comentada: zyad el 2 de Dic. de 2017
my question concerns matrix decompositions and their cpu consumed time. Suppose we have a square matrix Y*Y' (Y' is the the Y transpose).
--------------------------Using SVD-----------------------------------------
if we want to find eigenvectors U of Y*Y' we can apply SVD on Y and find: YY'=USV'. this method takes time.
--------------------------Using QR-----------------------------------------
1) we decompose Y in Y=QR.
2) after that YY'=QRR'Q'.
3)we apply the economic SVD on R' => R'=UDV'
4) include step 3 in 2 gives: YY'=QVDV'Q' => QV is eigenvectors of YY'. this method takes less time than SVD.
How to apply cholsky to accelerate the process?

Respuestas (1)

John D'Errico
John D'Errico el 2 de Dic. de 2017
Editada: John D'Errico el 2 de Dic. de 2017
Why would you possibly want to do so?
1. Cholesky will cost you accuracy, because in order to form the Cholesky factors, you need to form Y'*Y.
2. QR, applied to Y is both fast and accurate. (Use the economy QR.)
BTW, how is this even a MATLAB question at all?
But, if you insist on the use of Cholesky, since you did all of the above linear algebra, surely you see that forming the economy svd of the cholesky factor of Y'*Y gives you what you want, even if it is a bad idea in the first place.
That is, if
Y'Y = L'*L
then just take the svd of L and see what happens in the linear algebra.
As I said, a bad idea in terms of accuracy. The smaller eigenvalues/vectors will potentially be complete crap.
  1 comentario
zyad
zyad el 2 de Dic. de 2017
thank you for the answer. Why would I possibly want to do cholsky decomposition? By trying this, I want to compare the performance of SVD, QR and cholsky decompositions in term of accuracy and rapidity. can you be more precise in how to find these eigenvectors?

Iniciar sesión para comentar.

Categorías

Más información sobre Linear Algebra en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by