Matlab:将二阶矩阵微分方程简化为标准特征问题



我想获得具有质量矩阵 M 和刚度矩阵 K 的简单机械系统的固有频率(.mat-file -> 下载):

M x'

'(t)+K x(t)=0 (x= Position).

基本上,这意味着我必须解决det(K-w^2*M)= 0。但是我如何在 Matlab 中解决它(或者如有必要,将其简化为标准特征值问题并解决它)?矩阵绝对可以用Abaqus(FEM软件)求解,但我必须在Matlab中解决它。

我尝试了以下内容但没有成功:det(K-w^2*M)=0 => det(M^-1*K-w^2*I)=0 (I := unity matrix)但是用

sqrt(eigs(K*M^-1)) 

提供错误的值和警告:

"矩阵对于工作精度至关重要。

In matlab.internal.math.mpower.viaMtimes(第 35 行)"

其他错误值可以通过 det(K-w^2*M)=0 => det(I/(w^2)-M*K^-1)=0 获得:

1./sqrt(eigs(M*K^-1))

任何提示都会对我有所帮助。提前谢谢。

正如@Arpi提到的,你实际上想解决广义的特征值问题:

K*x = w^2*M*x

由于矩阵 K 和 M 显然是单数(或只是其中之一),因此无法使用 eigs ,但您必须使用 eig

V = eig(K,M);
w = sqrt(V);

最新更新