The eigenvalues of eigs change with the input target, Why?
Show older comments
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]));
Accepted Answer
More Answers (0)
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!