Calculate eigenvalues in certain range for very large sparse matrices
Show older comments
Hello everyone,
I am currently solving the following Finite Element problem:
As I asume my solution are harmonic in time, I can transform it to the following problem:
Where ω is the angular frequency of my excitation. As my frequencies are very high, my mesh is very fine and the size of my problem is substantially big and I can't solve it with my current resources. Nonetheless, I want to calculate the natural modes
and the natural frequencies
of my problem, and approximate the solution of my problem as the sum of the natural modes multiplied by its corresponding weight
based on the forcing term projection on the natural modes of my problem (
).
As my matrices K and M are sparse, I use the eigs command to calculate the eigenmodes and the eigenfrequencies of my problem. Nonetheless, I can only get a reduced number of eigenfrequencies and close to the exictation frequency, and I would like to solve this problem iteratively for different frequencies
. So, in order to reduce calculus time, I would like to calculate all the eigenvalues between a certain range
.
I have a couple of questions about this problem:
- Is there a possibility to calculate all the eigenvalues and eigenmodes of a frequency range using eigs or, at least, for spare matrices?
- May it be faster, instead of calculate all the eigenfrequencies in a range, calculate the eigenfrequencies closer to the different excitation frequencies?
- Is there another way to compute eigenmodes and eigenfrequencies in a more faster and efficient way?
Sorry for being too long or too specific, it is the first question I post.
Thank you in advice for your help and your time. If you want me to specify more some aspects I may have missed, please ask it to me.
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!