#!/usr/bin/python
x = np.linalg.solve(A, B)
上面的内容可以计算Ax = B]的根,这里,A是一个3×3矩阵,而B是3×1向量。我想在Eigen Library中使用the same function而不是Python Numpy Library找到一个函数。使用Python Numpy linalg.solve(),结果x是正确的。矩阵A和B如下所示:
A: 64 256 1024 48 256 1280 24 192 1280 B: -9 0 0
但是,我选择以下代码(C ++ Eigen)解决相同的问题,该错误显示给我。
// C++ with Eigen Library auto x = A.colPivHouseholderQr().solve(B)
上面的代码在运行时间上有错误:
frenet: /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h:546: void Eigen::ColPivHouseholderQR<MatrixType>::_solve_impl(const RhsType&, DstType&) const [with RhsType = Eigen::Matrix<double, -1, 1>; DstType = Eigen::Matrix<double, -1, 1>; _MatrixType = Eigen::Matrix<double, -1, -1>]: Assertion `rhs.rows() == rows()' failed.
我不知道会发生什么。希望您能尽快帮助我!
#!/ usr / bin / python x = np.linalg.solve(A,B)上面的内容可以计算Ax = B的根,这里,A是3×3矩阵,B是3×1向量。我想在Eigen Library中使用...
如果在编译时已知A
为3x3,我建议直接计算逆值(如果需要多次则仅计算一次)