How to find eigenvalues of problem that dont have the form of standard eigenvalue problem?

5 Ansichten (letzte 30 Tage)
Dear Math Professionals in Matlab.
Please Help any way you can.
My problem is exactly in the form of first above equation. Doing above method on my problem in Matlab I am trying to find eigenvalues of my equetion. But, I got several omegas for several LVs(the omegas continuesly increase when LV increases). While I expect my results converge to specific omegas when LV increases to high values.
How I can find the eigenvalues of my problem(first above equation) in Matlab?
How the value of LV must be choosen in above method? I am amazed.
clear
load M11;M11=mat;save M11;clear mat;
load M12;M12=mat;save M12;clear mat;
load M21;M21=mat; save M21; clear mat;
load M22;M22=mat; save M22; clear mat;
load K11;K11=mat;save K11;clear mat;
load K12;K12=mat;save K12;clear mat;
load K21;K21=mat; save K21; clear mat;
load K22;K22=mat; save K22; clear mat;
[M,N]=size(K22);
M22 =zeros(N);
Mt=inv(sqrtm(M11));n=1;
for LV=1:10:1000
A11=Mt*K11*Mt;
A12 = LV*Mt *K12;
A21 = LV*K21 * Mt;
A22 = K22;
AA =[A11, A12;A21, A22];
B=eig(AA);
C=sqrt(B);
D=C*9.598721848;
R=sort(real(D));
F=find(R>0);
result(1,n)=R(F(1));
n=n+1;
end
plot(n,result)
Please help!!!

Akzeptierte Antwort

David Goodmanson
David Goodmanson am 7 Apr. 2017
Bearbeitet: David Goodmanson am 7 Apr. 2017
Hi Mehdi, I can't address whether there would be a successful solution, and there may well be better algorithms available now than this one, but I can comment on the method. The idea is to replace
[M11 0]
[ 0 0]
with
[M11 0]
[ 0 eps*I]
for some small value eps, small enough to perturb the problem only a small amount. Let N = M^(-1/2), multiply your equation on the left by
[N 0]
[ 0 c*I]
and insert the identity matrix in the form
[N 0 ] [N^-1 0]
[0 c*I] [ 0 (1/c)*I]
between the matrices and the eigenvector
[X ]
[lambda].
Multiply it all out blockwise and you get what they got, with
I22 = c^2*eps*I.
You want I22 to be the identity matrix, so
c = 1/sqrt(eps).
c is what they called LV. So how small do you have to make eps to not affect the problem too much? Having no direct experience with this I don't know, but I would hazard a guess of least 10 times smaller than the smallest eigenvalue of M11. In your case the smallest eigenvalue is 3e-11 so you can plan accordingly. It does lead to some pretty big LV numbers. (The largest eigenvalue is 4e-3, so scaling could be a problem). Good luck!
  2 Kommentare
Mehdi
Mehdi am 7 Apr. 2017
Bearbeitet: Mehdi am 7 Apr. 2017
Dear David, Thanks to your kind response, As your first recommendation, do you know other methods to find eigenvalues and eigenvectors of following type of problems regardless my suggested method.
About your comments on my mentioned method, Why not choose LV very large(e.g.10^100)rather than setting eps 10 times smaller than the smallest eigenvalue of M11?
Note my suggested method are in the following paper;
pic of 5Th page of that paper is as follow:
David Goodmanson
David Goodmanson am 7 Apr. 2017
Hi Mehdi, I don't have anything new, except if you have not done so you could always let Matlab have a try at it directly with eig(K,M).

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Mehdi
Mehdi am 6 Apr. 2017
No comment yet???????

Community Treasure Hunt

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

Start Hunting!

Translated by