Matching of eigenvalues of 2 matrices

10 ビュー (過去 30 日間)
Omar Kamel
Omar Kamel 2019 年 4 月 29 日
コメント済み: Omar Kamel 2019 年 5 月 3 日
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 ?

採用された回答

Christine Tobler
Christine Tobler 2019 年 4 月 29 日
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.
  1 件のコメント
Omar Kamel
Omar Kamel 2019 年 5 月 3 日
Thanks a lot Christine for your elaborate answer.

サインインしてコメントする。

その他の回答 (1 件)

KSSV
KSSV 2019 年 4 月 29 日
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 件のコメント
KSSV
KSSV 2019 年 4 月 29 日
So sort them and keep them in order.....
Omar Kamel
Omar Kamel 2019 年 4 月 29 日
It is not about sorting the list. It is about matching of the eigenvalues and eigenvectors to their equivalent in the other system, to know if any eigenmodes appeared or another eigenmodes disappeared.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by