用c++特征库求解线性最小二乘方程(动态分配)

Linear least square equation solving using c++ eigen library (dynamic allocation)

本文关键字:小二 方程 动态分配 线性 特征 c++      更新时间:2023-10-16

我正在尝试求解类型Ax=b的一个简单的最小二乘。c++特征库提供了一些关于这方面的功能,我在这里看到了一些解决方案:用复杂元素和下三角平方矩阵的线性最小二乘方式求解系统Ax=b,这里:线性代数方程Ax= By的最小二乘解我想做的是使用矩阵A和b的动态版本。矩阵A的元素在我的情况下是浮点数,有3列,但数据项(即行)的数量将是动态的(在循环内)。这将有助于有一个简短的代码片段的基本声明a, b和填写值。

如果您需要动态矩阵/向量,只需使用:

MatrixXd m1(5,7); // double
VectorXd v1(23);  // double
MatrixXf m2(3,5); // floating
VectorXf v2(12);  // floating

这些变量将全部保存在堆中。

如果你需要固定大小的方阵或向量(但要小心,它们不是动态的!),使用以下语法:

Matrix3d m3; // double, size 3x3
Vector3d v3; // double, size 1x3
Matrix4d m4; // double, size 4x4
Vector4d v4; // double, size 1x4