MATLAB Answers

solving eigenvalue problem AX=c BX

45 views (last 30 days)
ahmed kaffel
ahmed kaffel on 6 Dec 2013
Commented: sanjlee rathi on 7 Apr 2020
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

Answers (1)

Yokesh on 9 May 2019
Edited: Yokesh on 9 May 2019
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 Comment
sanjlee rathi
sanjlee rathi on 7 Apr 2020
What is the syntax to find smallest real eigenvalue?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!