Matching of eigenvalues of 2 matrices
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Omar Kamel
am 29 Apr. 2019
Kommentiert: Omar Kamel
am 3 Mai 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 Kommentare
Akzeptierte Antwort
Christine Tobler
am 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.
Weitere Antworten (1)
KSSV
am 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 Kommentare
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!