non linear eigen value problem

7 ビュー (過去 30 日間)
rakesh kumar
rakesh kumar 2023 年 3 月 19 日
回答済み: Christine Tobler 2023 年 3 月 27 日
I want to find the eigen values of
k0=magic(2);
k1=1e-3*k0;
c1=[1 0;0 1]
c1 = 2×2
1 0 0 1
c2=[0 1;1 0]
c2 = 2×2
0 1 1 0
B=kron(c1,k0)+kron(c2,k1)
B = 4×4
1.0000 3.0000 0.0010 0.0030 4.0000 2.0000 0.0040 0.0020 0.0010 0.0030 1.0000 3.0000 0.0040 0.0020 4.0000 2.0000
syms lambda1a lambda1b lambda2a lambda2b
x = sym('x',[size(B,2),1])
x = 
l1=[lambda1a;lambda1b ]
l1 = 
l2=[lambda2a;lambda2b ]
l2 = 
% lambda1 is 2 by 1 matrix and lambda2 is 2 by 1 matrix
% I want to solve the problem
B*x
ans = 
(kron(diag(l1),c1)+kron(diag(l2),c2))*x
ans = 
%I ant to find l1 and l2
  3 件のコメント
rakesh kumar
rakesh kumar 2023 年 3 月 19 日
(kron(diag(l1),c1)+kron(diag(l2),c2))
Walter Roberson
Walter Roberson 2023 年 3 月 19 日
l1 and l2 are each 2 x 1 matrices. You cannot take the eigenvalues of non-square matrices.
If you take eig(diag(l1)) and eig(diag(l2)) so that you are making them into 2 x 2 diagonal matrices, then the eigenvalues are just the contents of l1 and l2

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

回答 (1 件)

Christine Tobler
Christine Tobler 2023 年 3 月 27 日
This isn't the standard definition of a nonlinear eigenvalue problem, where you would have only one scalar lambda.
Am I understanding correctly that you are looking for four scalar values lambda... for which there exists an non-zero vector x which satisfies
B*x == (kron(diag(l1),c1)+kron(diag(l2),c2))*x
In that case, I would take this to the symbolic toolbox, by trying to solve for values of lambda... for which
det(B == (kron(diag(l1),c1)+kron(diag(l2),c2))) == 0
(using DET is fine for symbolic calculations, we only run into trouble using it when subjected to round-off error).

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by