generalized eigen-problom, complex non-symmetric matrix, how to find orthogonal eigenvectors
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I want to solve eigen problem
with normalization condition
My code is
[U,D] = eig(B\A)
[W,D2] = eig(B.'\A.')
I use some code to rank the eigenvalue and shift the eigenvector in U and W accrodingly.
say now we have U_new, W_new
is not diagonal, in fact it's almost diagonal with some non-diagonal elements when two eigenvector share same eigenvalue.
What should i do to get
0 commentaires
Réponses (1)
Christine Tobler
le 12 Juin 2019
There's an easier way to compute both U and W:
[U, D, W] = eig(A, B);
This will make sure that the eigenvectors U(:, i) and V(:, i) belong together. It's also going to be more accurate because B does not need to be inverted.
I'm not sure that this will satisfy your requirement that W'*A*U is diagonal, though. I tried to construct an example matrix, but couldn't find one where it wasn't diagonal, but I couldn't find a clear statement that this will always be the case, either.
6 commentaires
David Goodmanson
le 13 Juin 2019
Modifié(e) : David Goodmanson
le 13 Juin 2019
Hi Christine & QZ,
As for computing Wt instead of W' in eig, let
[U1 D1 W1] = eig(conj(A), conj(B))
and take
U = conj(U1)
D = conj(D1)
W = W1
Then if you do the algebra I believe you get
A*U = B*U*D
Wt*A = D*Wt*B
Voir également
Catégories
En savoir plus sur Eigenvalues dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!