generalized eigen-problom, complex non-symmetric matrix, how to find orthogonal eigenvectors

9 visualizzazioni (ultimi 30 giorni)
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

Risposte (1)

Christine Tobler
Christine Tobler il 12 Giu 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 Commenti
David Goodmanson
David Goodmanson il 13 Giu 2019
Modificato: David Goodmanson il 13 Giu 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

Accedi per commentare.

Categorie

Scopri di più su Eigenvalues in Help Center e File Exchange

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by