我想得到具有质量矩阵M和刚度矩阵K(..mat file -> 下载)的简单机械系统的固有频率:
M_x‘(T)+K_x(T)=0 (x=位置)。
这意味着,基本上,我必须解det(K^2*M)=0。但是,我如何在Matlab中解决这个问题(或者如果必要的话,将其简化为一个标准的特征值问题,然后再进行求解)?矩阵绝对可以用Abaqus (FEM软件)求解,但我必须在Matlab中进行求解。
我尝试了以下方法,但没有成功:det(K^2*M)=0 => det(M^-1*K^2*i)=0 (I :=单位矩阵),但用
sqrt(eigs(K*M^-1)) 传递错误的值和警告:
“矩阵对于工作精度来说是奇异的。 在matlab.internal.math.mpower.viaMtimes中(第35行)“
其他错误的值可以通过det(K^2*M)=0 => det(i/(w^2)-M*K^-1)=0获得。
1./sqrt(eigs(M*K^-1))任何暗示都对我有帮助。提前谢谢。
发布于 2016-04-27 18:57:17
正如@Arpi所提到的,您实际上想要解决广义特征值问题:
K*x = w^2*M*x
由于矩阵K和M显然是单数(或其中之一),所以不可能使用eigs,但必须使用eig
V = eig(K,M);
w = sqrt(V);https://stackoverflow.com/questions/36896212
复制相似问题