Matching of eigenvalues of 2 matrices
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Omar Kamel
il 29 Apr 2019
Commentato: Omar Kamel
il 3 Mag 2019
Hello Everybody,
Suppose I have 2 matrices with same size: . is a slight change of in the form of: . I do eigenvalue analysis on both matrices:
lambda_1 = eig(A_1);
lambda_2 = eig(A_2);
and want to do a comparison between eigenvalues of each matrix. How can I find the matching eigenvalue for the original , i.e. how can I identify each eigenmode from to its equivalent in ?
0 Commenti
Risposta accettata
Christine Tobler
il 29 Apr 2019
With R2018a, there is a new function matchpairs which might be useful for this. Basically, it takes a matrix of similarities between two sets, and matches these sets up in pairs.
Here's an example:
>> X = randn(100);
>> d = eig(X);
>> d2 = eig(X + randn(100)*1e-2);
>> max(abs(d - d2))
ans =
17.9169
>> m = matchpairs(abs(d - d2.'), 1e-1); % The columns of m map the elements of d to those of d2
>> max(abs(d(m(:, 1)) - d2(m(:, 2))))
ans =
0.1569
The second input to matchpairs gives a cutoff: If two values have a difference larger than 1e-1, they would not be matched at all, and would show up as a new eigenvalue and a disappeared eigenvalues instead.
Più risposte (1)
KSSV
il 29 Apr 2019
A1 = rand(2) ;
[v1,d1] = eig(A1) ;
Columns of v1 gives eigen vectors.........diagonal (diag(d1)) gives you eignvalues. To compare them use isequal. Or you may substract them and get the difference.
5 Commenti
Vedere anche
Categorie
Scopri di più su Linear Algebra in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!