solving eigenvalue problem AX=c BX

조회 수: 10(최근 30일)
ahmed kaffel
ahmed kaffel 2013년 12월 6일
댓글: sanjlee rathi 2020년 4월 7일
I was wondering to solve a general complex eigenvalue problem AX=c BX for a pencil (A, B) with A and B are complex not symmetric; B not definite positive singular and or defective. If B is singular then we have one, or more, infinite eigenvectors. From qz we can probably see one, or more, nearly zero diagonal elements (beta in the MATLAB 'help qz' notation). When using matlab commands like eig, qz etc.. to solve such ill-posed problem, roundoff error arises from rounding results of floating-point operations during the algorithm.
The complex matrices A and B have size 500x500, and formed by bloc matrices
A=[A1 A1; Zeros(N,N) eye(N)]; B=[zeros(N,N) B2; eye(N) zeros(N,N)]; with A1; A2, B2 are general complex matrices 250x250. B2 has only one row non zero and all other terms of B2 are zero.
A and B are not Hermitian, singular and/or defective with det(B)=0
I look for all the eigenvalues or the first five eigenvalues with the large value of the imaginary part to study stability problem.
when I use qz or eig I get infinite eigenvalues and spurious modes and get message that the matrices are ill conditionned I got this message when using eig or qz
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 3.566073e-020.
I would sincerely appreciate your help.
Best regards Ahmed


Yokesh 2019년 5월 9일
편집: Yokesh 2019년 5월 9일
warning off MATLAB:nearlySingularMatrix
A = rand(500,500);
B = rand(500,500);
Eig = eigs(A,B,5,'li'); %Outputs 5 Eigenvalues with largest imaginary part
Irrespective of the nature of A and B matrices, this function works just fine. Include the warning off message incase you haven't. Also, I suggest you to take a look at the link here.
  댓글 수: 1
sanjlee rathi
sanjlee rathi 2020년 4월 7일
What is the syntax to find smallest real eigenvalue?

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by