A和B是已知的矩阵,求解AX=B。
在python中,一般使用
X =numpy.linalg.solve(A, B)
但这里要求A是方阵。
若X是m*n的形状,当m>n时,可能出现无解的情况。
在这种情况下,希望求X,使|AX-B|越小越好。
python中可以使用
X = np.dot(np.linalg.pinv(A), B)
上面的代码等价于c++中:
#include <Eigen/Dense>
Eigen::Vector3f X = A.colPivHouseholderQr().solve(B);
若AX=B有解,则给出准确解,否则求出的X,使|AX-B|最小。