The eigenvalues of eigs change with the input target, Why?

1 Ansicht (letzte 30 Tage)
Jiali
Jiali am 13 Aug. 2021
Beantwortet: Andrew Knyazev am 22 Dez. 2021
Dear all,
My goal is to compute the eigen-vectors of some dynamic system. However, I found that the eigenvalues vary depending on the input target.
For instance, target=1.00, no values other than 1.0 can be found. When target=0.95, the eigen-value 0.6248 can be found while the eigen-vectors seems strange. When target =0.8, the eigen-value 0.6248 can be found with correct eigen-vectors. I did check the condition number of Matrix, cond(P)=1.3422e4, not so big, why the eigenvalues and eigenvectors vary so huge? How can I improve the stability? Please lend me a hand. Thanks a lot.
Nx=17;
Ny=13;
N=Nx*Ny;
load test.mat;
P=[Pxx Pxy; Pyx Pyy];
lambda=1.5e-6;
target=1.0;
beta0=2*pi*(target+1e-3)/lambda;
num=30;
[V,beta2]=eigs(P,num,beta0^2);
condest(P)
beta=sqrt(diag(beta2));
neff=beta/(2*pi/lambda);
[ii,~]=find(abs(neff/target-1)>1e-3);
neff_re=neff(ii);
V_re=V(:,ii);
figure;
imagesc(reshape(abs(V_re(1:N,1)),[Nx,Ny]));

Akzeptierte Antwort

Andrew Knyazev
Andrew Knyazev am 22 Dez. 2021
This may be expected. One can fix it by running with muiltiple targets, collecting all the resulting eigenvectors and writing and running a code for postprocessing. The best and easiest postprocessing could be to orhthogonalize all the collected vectors (to safely handle possible duplicates) and then write the code and run https://en.wikipedia.org/wiki/Rayleigh%E2%80%93Ritz_method#For_matrices

Weitere Antworten (0)

Kategorien

Mehr zu Linear Algebra finden Sie in Help Center und File Exchange

Tags

Produkte


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by