Computational Performance and Accuracy Comparison of Standard Eigenvalue Problem eig(A) and Generalized Eigenvalue Problem eig(A,B)

5 vues (au cours des 30 derniers jours)
I have been thinking about generalized eig(A) and standard eigenvalue eig (A,B) problem. I did a finite element convergence study in MATLAB using both these two methods by increasing the number of elements upto 1500. I compared both method in MATLAB for a shaft system with gyroscopic effect and without gyroscopic effect (0 speed). I have found that standard eigenvalue problem is giving exactly same result in state space form for 0 zero speed form compared with eig(K,M). However, generalized eigenvalue problem can give randomly wrong modes after 360 number of element. On the other hand, standard eigenvalue problem is so faster than generalized eigenvalue problem. For 1200 elements, generalized takes 10 hours whereas standard takes 42 minutes.
Does anyone have an idea about this phenomenon? How can MATLAB give different results when using standard and generalized eigenvalue? I found that using standard eigenvalue problem gives better result than generalized eigenvalue problem in terms of computational efficiency and accuracy.
  9 commentaires
Ali Tatar
Ali Tatar le 9 Juin 2017
Modifié(e) : Ali Tatar le 9 Juin 2017
By the way, I checked the absRes, relRes values of generalized eigenvalue solution for 300 number of elements, which gives the right result and closest value to the 360 number of elements. Something is happening when it becomes large eigenvalue problem.
Nel 300 Standard Eigenvalue Solution
absRes =
0.2527
relRes =
4.8100e-04
In my opinion it can be a numerical issue of solution routine. Unfortunately, I am not able to send the matlab script. I can say that it is a finite element code for a beam. It automatically divides whole beam into the elements. If you have a finite element code, you can easily run this analysis using generalized eigenvalue solution.
Christine Tobler
Christine Tobler le 9 Juin 2017
Sorry I couldn't help you more, there is not much to be done when operating blindly. While an issue with the EIG function is not impossible, I think it's much more likely that the input to EIG is badly conditioned.
A possible problem with finite element code can be if boundary conditions are not removed in the correct way: This will make the problem eig(A, B) have no solution - but with numeric errors, it can make it just practically unsolvable, and EIG will try its best to return something.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Linear Algebra dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by