matlab 求det(k-w^2*M)=0 K =1.0e+008 *0.1531 -0.0000 0.0000 0.0000 0.3317 0.0000-0.0000 0.1531 0.0000 -0.3317 -0.0000 -0.00000.0000 0.0000 0.7384 -0.0000 0.0000 -0.00000.0000 -0.3317 -0.0000 1.3549 0.0000 -0.00000.3317 -0.0000 0.0000 0.0000 1.3549 -0

来源:学生作业学帮网 编辑:学帮网 时间:2024/04/26 03:11:07

matlab 求det(k-w^2*M)=0
K =
1.0e+008 *
0.1531 -0.0000 0.0000 0.0000 0.3317 0.0000
-0.0000 0.1531 0.0000 -0.3317 -0.0000 -0.0000
0.0000 0.0000 0.7384 -0.0000 0.0000 -0.0000
0.0000 -0.3317 -0.0000 1.3549 0.0000 -0.0000
0.3317 -0.0000 0.0000 0.0000 1.3549 -0.0000
0.0000 -0.0000 -0.0000 -0.0000 -0.0000 0.5275
M=diag([6000 6000 6000 6250 8125 14125])
求w
W 也是个6*6的矩阵

不能求,不是方阵

给你一个参考.
syms x
K=[2,3;6,2];
M=diag([1,2]);
double(solve(det(K-x^2*M)))
之所以没用你的数据.因为你的K这个数据,有一些不准(就是这个屏幕上的值,跟你的MATLAB中的值可能不等,因为显示的话,只显示小数点后四位,而你的K的量级是10^8,也就是如果你的真实值是999的话,这里显示成0.00...

全部展开

给你一个参考.
syms x
K=[2,3;6,2];
M=diag([1,2]);
double(solve(det(K-x^2*M)))
之所以没用你的数据.因为你的K这个数据,有一些不准(就是这个屏幕上的值,跟你的MATLAB中的值可能不等,因为显示的话,只显示小数点后四位,而你的K的量级是10^8,也就是如果你的真实值是999的话,这里显示成0.0000*10^8)
你自己适当改一下,运行吧,不过有虚数解,你自己看要不要取这些虚数解。
=================
M=diag([6000 6000 6000 6250 8125 14125])
你这样写,M就是6*6的矩阵.只不过它是对角阵
你改成方阵(非对角阵),程序也是一样的,可解.

收起

可以

用matlab应该不行,matlab没强大到那种程度。

w应该是一个实数,不是矩阵,最后列出的矩阵只是罗列了整数解而已。