Eigenvalue problem, singular matrix

Hello everyone! I have a mass matrix M and a stiffness matrix K generated by FEM (ANSYS) imported to Matlab and I want to calculate the eigenfrequencies and natural modes of the corresponding structure. The matrices are sparse. I tried the command:
[U,V] = eigs(K,M)
but it only gives:
Error using eigs/checkInputs/LUfactorB (line 1001) B is singular. Unable to compute the specified eigenvalues because infinite eigenvalue(s) exist
When I specify, that I only want the 50 lowest frequencies:
[U,V] = eigs(K,M,50,'sm')
it works, although they seem suspiciously high. The problem is that it wasn't me who generated the FEM model and also that I have almost no experience in the field. But I thought that if the FEM model has n rigid body motion degrees of freedom, then the structure will have n zero natural frequencies. Here Matlab complains about the opposite, namely infinite frequencies. Please do you somebody see what is happening? Thank you! Jan

 采纳的回答

Matt J
Matt J 2013-3-31

1 个投票

Because your M matrix is singular, there are infinite eigenvalues. Imagine for example if M=zeros(n). Then any vector in null(K) is an eigenvector and any scalar is a corresponding eigenvalue. The bottom line is that you have bad 'M' data.

1 个评论

Not that it would take me two months to figure out, but yes, the data was indeed faulty. I just forgot to accept your answer. Thank you!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Eigenvalues & Eigenvectors 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by