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

12 views (last 30 days)

Show older comments

Mehdi
on 5 Apr 2017

Commented: David Goodmanson
on 7 Apr 2017

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!!!

##### 0 Comments

### Accepted Answer

David Goodmanson
on 7 Apr 2017

Edited: David Goodmanson
on 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 Comments

David Goodmanson
on 7 Apr 2017

### More Answers (1)

### See Also

### Categories

### Community Treasure Hunt

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

Start Hunting!