Eigenvalue problem, singular matrix

6 次查看(过去 30 天)
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
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 个评论
Jan
Jan 2013-5-30
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 个)

类别

Help CenterFile Exchange 中查找有关 Linear Algebra 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by