所以我想测试一下 C++ 与 Matlab 求解线性方程组的速度。为此,我创建了一个随机系统,并在 Visual Studio 上使用 Eigen 测量解决它所需的时间:
#include <Eigen/Core>
#include <Eigen/Dense>
#include <chrono>
using namespace Eigen;
using namespace std;
int main()
{
chrono::steady_clock sc; // create an object of `steady_clock` class
int n;
n = 5000;
MatrixXf m = MatrixXf::Random(n, n);
VectorXf b = VectorXf::Random(n);
auto start = sc.now(); // start timer
VectorXf x = m.lu().solve(b);
auto end = sc.now();
// measure time span between start & end
auto time_span = static_cast<chrono::duration<double>>(end - start);
cout << "Operation …Run Code Online (Sandbox Code Playgroud)