我想通过以下方式从向量 b 计算对称矩阵 A:A = b * b'。
Eigen 库是否自动考虑到它不需要进行所有计算来获得 A(因为重复大多数矩阵条目的对称性)?
如果没有,我可以利用对称性并编写自己的计算函数。
我想通过以下方式从向量 b 计算对称矩阵 A:A = b * b'。
Eigen 库是否自动考虑到它不需要进行所有计算来获得 A(因为重复大多数矩阵条目的对称性)?
如果没有,我可以利用对称性并编写自己的计算函数。
这是实际存储矩阵没有意义的典型情况。相反,将矩阵视为一个运算符,其中
如果你需要乘以它,即形成, 你做反而
如果你需要访问一个元素,而是将其计算为.
换句话说,知道什么是,您不应该将其存储为矩阵,而应仅将其存储为单个向量。你不能指望图书馆为你做这些事情,但你应该自己做。
Eigen 库无法先验地“知道”乘积b*b'是否会产生对称矩阵,因此您可以编写自己的方法(尽管如果不使用大型矩阵,它会有些无用)
但是,在一些线性求解器中使用了一个名为 的例程isSymmetric来检查输入矩阵是否对称,但当然,这不能满足您的需要。