用C++ Boost进行矩阵划分 现在我想用C++ Boost来求解矩阵函数:a*p= x,p= a\x.我有矩阵A和矩阵X,所以我需要做p= a\x来获得矩阵p .这是一个矩阵划分问题,对吗?p> < >我的C++代码是 #include "stdafx.h" #include <boost\mat2cpp-20130725/mat2cpp.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> using namespace boost::numeric::ublas; using namespace std; int main() { using namespace mat2cpp; matrix<double> x(2,2); // initialize a matrix x(0, 0) = 1; // assign value x(1, 1) = 1; matrix<double> y(2, 1); y(0, 0) = 1; y(1, 0) = 1; size_t rank; matrix<double> z = matrix_div(x, y, rank); }

用C++ Boost进行矩阵划分 现在我想用C++ Boost来求解矩阵函数:a*p= x,p= a\x.我有矩阵A和矩阵X,所以我需要做p= a\x来获得矩阵p .这是一个矩阵划分问题,对吗?p> < >我的C++代码是 #include "stdafx.h" #include <boost\mat2cpp-20130725/mat2cpp.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> #include <boost/numeric/ublas/io.hpp> using namespace boost::numeric::ublas; using namespace std; int main() { using namespace mat2cpp; matrix<double> x(2,2); // initialize a matrix x(0, 0) = 1; // assign value x(1, 1) = 1; matrix<double> y(2, 1); y(0, 0) = 1; y(1, 0) = 1; size_t rank; matrix<double> z = matrix_div(x, y, rank); },c++,boost,C++,Boost,但是它有错误,请帮助我!谢谢 首先,矩阵除法是不存在的。若你们有这个方程A*P=X,你们想找到P,那个么解是:invA*A*P=invA*X,其中invA是矩阵的逆。因为我们知道invA*A等于单位矩阵,所以我们可以得出P=invA*X的结论 现在你们的问题是计算矩阵的逆。有几种方法可以做到这一点,我的建议是使用LU分解 老实说,我不知道boost库是否有mat2cpp这样的东西。如果您想使用boost,我建议您使用boost/numeric/ublas/matrix.hpp。在我的boost发

但是它有错误,请帮助我!谢谢

首先,矩阵除法是不存在的。若你们有这个方程A*P=X,你们想找到P,那个么解是:invA*A*P=invA*X,其中invA是矩阵的逆。因为我们知道invA*A等于单位矩阵,所以我们可以得出P=invA*X的结论

现在你们的问题是计算矩阵的逆。有几种方法可以做到这一点,我的建议是使用LU分解


老实说,我不知道boost库是否有mat2cpp这样的东西。如果您想使用boost,我建议您使用boost/numeric/ublas/matrix.hpp。

在我的boost发行版1.63中找不到boost\mat2cpp-20130725/mat2cpp.hpp的可能副本。你使用的是什么版本?谷歌找到了三个3页的字符串mat2cpp-20130725。其中之一就是这个问题。另外两个建议这个目录不是boost的一部分。回答得好。我想加上计算逆。。。如果存在的话。此外,Boost还包含一个名为的库,我最近用它来计算一个小矩阵的逆。