小编Onu*_*tay的帖子

NumPy和MATLAB之间特征向量的微小差异

我有刚度矩阵和质量矩阵.我想计算我的结构振动形状和周期(特征值/向量),所以我使用NumPy.特征值与MATLAB给出的特征值相同,但是当我将特征向量与MATLAB给出的特征向量进行比较时,我发现了一些小的(小于1E-10)差异.

为什么会这样,我怎样才能使两个结果相等?

我试图提高NumPy的精度,但它没有用.

import numpy as np

#S Stiffness Matrix
#M Mass Matrix

w, f = np.linalg.eig(np.linalg.inv(M)@S)
Run Code Online (Sandbox Code Playgroud)

这是我的结果

来自NumPy的第一个特征向量:

0.0
0.0
0.0
0.631781280460724
-1.4298382510485397e-09
-8.755329688057342e-26
0.7392387400169079
7.709528714838357e-10
1.3560471632542145e-24 # Different sign here
0.23319197867341496
1.88087901696399e-09
-4.7286506166123194e-17 # Different sign here
Run Code Online (Sandbox Code Playgroud)

来自MATLAB的第一个特征向量:

0
0
0
6.317812804607240e-01
-1.429838251048596e-09
-8.755233867348009e-26
7.392387400169076e-01
7.709528714837307e-10
-2.624482888541565e-24 % Different sign here
2.331919786734153e-01
1.880879016947830e-09
8.178753965460107e-17 % Different sign here
Run Code Online (Sandbox Code Playgroud)

python matlab numpy eigenvalue eigenvector

4
推荐指数
1
解决办法
143
查看次数

标签 统计

eigenvalue ×1

eigenvector ×1

matlab ×1

numpy ×1

python ×1