solving eigenvalue problem AX=c BX
조회 수: 10(최근 30일)
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.