小编Dar*_*ant的帖子

用于计算错误特征值的c ++的特征

所以我在代码块中使用Eigen for C++来计算我的矩阵的特征值.处理此问题的代码的具体部分如下: -

EigenSolver<MatrixXd> b(B,false);
cout<<" Eigen values are: \n "<<b.eigenvalues()<<"\n"; 
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,为我的矩阵B计算的特征值之一与我在calculator.vhex.net上找到的实际特征值无关.

例如,对于矩阵

1 0 0 x

0 1 x 0

0 x 1 y

x 0 y 1

其中x = -1/sqrt(2)且y = -0.5,特征值为0,0.5,1.5和2.

但是,我的代码将它们计算为-4.25e-016,0.5,1.5和2.

我也试过5x5矩阵,它应该有一个特征值4e-06,但代码计算为1.4413e-017.

这可能是什么原因?它们是近似值吗?我的猜测是内存问题,2的平方根的双重类型值不会完全等于2的平方根,但我不确定这一点.

什么可以解决这个问题?

c++ eigen

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

标签 统计

c++ ×1

eigen ×1