relation between principal eigenvector and principal generalized eigenvector
Show older comments
Hello,
why this function:
[v, d] = eigs(A, B, 1);
and
[v2, d2] = eigs(B\A, 1);
return different results ? I thought that the difference between v and v2 should have been only a scaling factor..
Thank you!
Accepted Answer
More Answers (1)
Christine Tobler
on 9 Aug 2018
0 votes
What may be causing the differences you see is that eigs(A, B, k) first checks if the matrix B is symmetric positive definite. In that case, it computes the Cholesky factorization R'*R = B, and solves the eigenvalue problem R^(-T)*A*R^(-1)*x = lambda*x instead. The advantage of this is that, if A is symmetric, that symmetry is preserved. If B is not SPD, EIGS solves B^(-1) * A * x = lambda * x.
Independent of this, one difference is that EIGS doesn't compute (B\A)*x, it instead computes B\(A*x), since this is typically much cheaper (B\A for sparse matrices A and B it often be a dense matrix). This will result in slight numerical differences between the two cases, and the scaling of eigenvectors can easily be affected by these small differences.
As long as A*v - B*v*d is small, the result is still correct, even though each column of v may be scaled differently.
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!