可参考文涛,基于Matlab语言的多自由度振动系统的固有频率及主振型计算分析,2007
对于无阻尼系统
[VEC,VAL]=eig(inv(A)*K)
对于有阻尼系统,参考振动论坛计算程序
输入M,D,K
function [v,w,zeta]=vbr_sf(m,d,k)
%vbr_sf vbr_sf(m,d,k)
% [v,w,zeta]=vbr4(m,d,k)
% function vbr_sf finds the mode shapes and natural frequencies of
% a linear second order matrix equation. 有阻尼二阶矩阵方程
% [v,w]=vbr_sf(m,k) finds the mode shapes and natural frequencies
% for the undamped case.
if nargin==2
k=d;
[v,w]=eig(m\k);
w=sqrt(w);
end
if nargin==3
if norm(d/m*k-k/m*d) < 1e-8*norm(k/m*d)
%disp('Damping is proportional, eigenvectors are real.')
[v,w]=eig(m\k);
w=sqrt(w);
zeta=(v'*m*v)\(v'*d*v)/2/w;
else<