matlab eig 给出所有的特征向量,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)

这是我的结果

来自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

来自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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值