Why my eigenvalues from (v,d)=eig(k,m) are so close to each other?

Hi All,
My simulation is to compute the natural frequencies of a problem. My method is FEA by Matlab which include assembling of stiffness matrix and mass matrix.
Then i calculate the natural frequencies by using eig() function. Both stiffness and mass matrix are huge (9000 X 9000).
Here are some first few eigenvalues (natural frequencies) i've got from the simulation. My code is too long so i didnt post it.
0.00504924216493406
0.00700586308874820
0.0653914081546258
0.0743584689582256
0.0827517570948079
Did anyone experience the same thing before? Can anyone advice more?
Im still new to Matlab, hope u guys can help.
Regards,
Ben

Antworten (3)

John D'Errico
John D'Errico am 12 Okt. 2019

0 Stimmen

You will have 9000 eigenvalues. Some will be small, some larger. How far apart do you think those that are small can realistically be?
Said differently, yes, this is completely as one should expect.

4 Kommentare

Benedict Teng
Benedict Teng am 12 Okt. 2019
Bearbeitet: Benedict Teng am 12 Okt. 2019
I have read another similar problem, but the eigenvalues seems to converge at a certain number. Which should be the answer. But im really not sure why my values are constantly increasing at every number.
John D'Errico
John D'Errico am 12 Okt. 2019
Bearbeitet: John D'Errico am 12 Okt. 2019
Eigenvalues tend to be generated in a quasi-ordered sequence, due to the way they are estimated. Again, this is completely expected. Nothing you have said is any surprise.
Next, will you tell us that amazingly, the eigenvalues are numbers? :)
My 9000 eigenvalues are from 0-100 with very small intervals in between.
Can you explain more in details how the eigenvalues are generated?
Sorry. That would require a course on numerical linear algebra, something worth taking, but far beyond an answer here. And since it looks like you have little understanding of eigenvalues at all, that explanation would need to go into a great deal of depth, because I would have to start at the very beginning for someone who it seems has little background in linear algebra. There are lots of good books. Start with Cleve's book which I am sure has a good discussion.
You should consider that even if you have 9000 totally arbitrarily distributed numbers in the interval [0,100] what would be an estimate of the average spacing? Hint:
>> (100 - 0)/9000
ans =
0.011111
Now look at the spacing that you have seen.
E = [0.00504924216493406
0.00700586308874820
0.0653914081546258
0.0743584689582256
0.0827517570948079];
>> mean(diff(sort(E)))
ans =
0.019426
Based on a sample of only 5 numbers out of 9000, that seems to be not at all unreasonable.

Melden Sie sich an, um zu kommentieren.

Christine Tobler
Christine Tobler am 28 Okt. 2019

0 Stimmen

Since you mentioned eigenvalues converging at a certain number in the context of FEA analysis: This is usually not the case for the sequence of the eigenvalues of one matrix, but the eigenvalues of several matrices at different discretization levels.
So if you choose three different discretization levels, let's call them 0, 1 and 2, and generate matrices K0, M0 (for example of size 100), K1, M1 (for example of size 800) and K2, M2 (for example of size 9000), then the smallest eigenvalue of each of these matrix pairs should converge from 0 to 1 to 2. If you plot the smallest eigenvalue for a larger set of discretization levels (e.g., with the matrices growing by a factor 2 in each step), you should be able to plot the behavior of the smallest eigenvalue of each of these, and this should converge towards the exact eigenvalue of the original PDE system.
It's been a while since my last PDE course, but as I remember there were many such plots involved, including some theory about the expected speed of convergence based on what elements are used, and what problem you are solving.
MOHD UBAID
MOHD UBAID am 19 Apr. 2020

0 Stimmen

can you please post the code for finding the eigen values?

Produkte

Version

R2019a

Gefragt:

am 12 Okt. 2019

Beantwortet:

am 19 Apr. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by