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 件のコメント

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 件)

カテゴリ

ヘルプ センター および File ExchangeLinear Algebra についてさらに検索

質問済み:

Jan
2013 年 3 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by