Diagonalization in eigs with Generalized Eigenvalue Problem with Positive Semidefinitive matrix

조회 수: 7 (최근 30일)
After I execute an eigs command in Matlab 2020b, using as input matrix A and B, i.e. a generalized eigenvalue problem, and 'SM' as sigma, it appears that unstable eigenvectors are obtained when A is a positive semidefinitive matrix, eventhougth the output eigenvalues are fine. The function I use is:
[V, D] = eigs(A, B, ArbitraryNumberOfEigenvalues, 'SM');
In short, the mathematical problem I'm coding is to model the response of a Finite Element Method Vibro-Acoustic problem, hence if we normalize the eigenvectors in respect to the B matrix and diagonalize the A matrix, we should be obtaining again the eigenvalues.
%% Normalization
nm = size(D, 1);
for j = 1 : nm
fm = V(:, j).' * B * V(:, j);
V(:, j) = V(:, j) / sqrt(fm);
end
%% Diagonalization
D = V.' * A * V;
But, as I said, the curve becomes really unstable:
Now, if I impose a boundary condition to the matrices, as example, excluding the rows and collums from 49th to 72th, A matrix becomes Positive Definite and the curve congerve smoothly:
I believe both curves should converge smoothly. Unfortunalety, I can't just use the output eigenvalues matrix, because I will use the eigenvectors to multiply with other matrices. Is this instability expected ? Is there any workaround ?
Thanks.
  댓글 수: 5
Bohan
Bohan 2025년 2월 15일
What is the output created by eig or eigs in Matlab if the B matrix is not strictly positive definite? I tried some examples and there are output but I am not sure what this means.
Torsten
Torsten 2025년 2월 15일
Could you be more explicit ? Please include the examples and explain what you don't understand.

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

채택된 답변

Thiago Morhy
Thiago Morhy 2020년 11월 22일
Cristine Tobler's comment answered my problem.
Yes, eigs was giving me an alert of singularity of matrix A. Using, now, the command:
sigma = -100;
[V, D] = eigs(A, B, ArbitraryNumberOfEigenvalues, sigma);
I obtain the following curve of eigenvalues:
It converges flawlessly. And as the lower eigenvalue is approximately zero, a -1 sigma works as well. Thanks for the help.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by