non linear eigen value problem
5 次查看(过去 30 天)
显示 更早的评论
I want to find the eigen values of
k0=magic(2);
k1=1e-3*k0;
c1=[1 0;0 1]
c2=[0 1;1 0]
B=kron(c1,k0)+kron(c2,k1)
syms lambda1a lambda1b lambda2a lambda2b
x = sym('x',[size(B,2),1])
l1=[lambda1a;lambda1b ]
l2=[lambda2a;lambda2b ]
% lambda1 is 2 by 1 matrix and lambda2 is 2 by 1 matrix
% I want to solve the problem
B*x
(kron(diag(l1),c1)+kron(diag(l2),c2))*x
%I ant to find l1 and l2
3 个评论
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
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).
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!