eigs for generalized eigenvalue problem ( [V,D] = eigs(A,B) ) with spars matrix

7 visualizaciones (últimos 30 días)
Hi,
I know that there is a bug in the eisg command when we get eigenvalues = 0 (zero)
For standard eigenvalue problem ( [V,D] = eigs(A) ) there is a patch to fix the problem, however I do not find a solution in case of generalized eigenvalue problem ( [V,D] = eigs(A,B) ) with sparse matrix.
Do you know if a solution to this problem exist? , Do you have any idea/suggestion on how to solve the problem?
Thank you

Respuestas (1)

Christine Tobler
Christine Tobler el 20 de Dic. de 2019
A bug was introduced in R2017b in eigs for matrices with exact zero eigenvalues. This bug has been fixed in R2019a, the fix applies to both simple and generalized eigenvalue problems.
sigma = 1; % Any value which is not an exact eigenvalue of A
[U, D] = eigs(sp_matrix - sigma*speye(size(sp_matrix)), 1, 'smallestreal');
D = D + sigma*speye(size(D)); % Revert the shift
can be adapted to a generalized problem (A, B) as follows:
sigma = 1; % Any value which is not an exact eigenvalue of (A, B)
[U, D] = eigs(A - sigma*B, 1, 'smallestreal');
D = D + sigma*B; % Revert the shift
  1 comentario
Giuseppe Abbiati
Giuseppe Abbiati el 29 de Dic. de 2019
I think there is something wrong in the proposed bug fix. I am interested in solving the following modal analysis problem:
K*U = M*U*D
where K and M are stiffness and mass matrices of a structural system computed e.g. with the finite-element method. Both K and M are full matrices. K is positive or semi-positive definite while M is positive definite. U is a generic eigenvector and D is the corresponding eigenvalue (greater or equal than zero). K corresponds to A while M corresponds to B in your example.
In case sigma is greater than zero, the non-diagonal mass matrix M would be added to the diagonal matrix of eigenvalue D to revert the shift, which makes no sense. Or maybe I miss something.
Moreover, in case the structural system described by M and K has no rigid body modes (no zero eigenvalues) a value of sigma = 0 is allowed. However, in this case, the calculation of eigenvalues completely ignores the mass distribution determined by the matrix M. Again, it seems not to make sense. Or maybe I miss something.
Thanks a lot for your help!

Iniciar sesión para comentar.

Categorías

Más información sobre Linear Algebra en Help Center y File Exchange.

Productos


Versión

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by