1. 最佳求解方案
Most efficient way to solve a system of linear equations
求解形如
- 将 A 分解为三角矩阵,
A=M1⋅M2 - 通过
M1⋅y=b 求解y ,使用 back substitution 通过
M2⋅x=y 求解x ,使用 back substitution- 如果
A 为方阵,步骤 1 可以使用 LU 分解; - 如果
A 非方阵,步骤 1 可以使用 QR 分解; - 如果 A 是正定且不稀疏,步骤 1 可以使用 Cholesky 分解(这也是 matlab 在解线性方程组时,会进行的判断);
- 如果
2. C++ 下可用的矩阵运算的库
System of linear equations in C++?
- Eigen
- Boost:也有部分线性代数的 api