我有两个矩阵:
A = [ -1 0 0;
1 1 -1;
0 -1 1 ];
B = [-1; 0; 1];
我想解下列方程:
Ax=B
当我使用mldivide
函数时,我得到一个 NaN 矩阵
X = mldivide(A,B)
X =
NaN
NaN
NaN
知道该问题有多种解决方案,我手动测试了其中一种,即[1;0;1]
返回B
:
A*[1; 0; 1]
并且,正如预期的那样,我确信它是多个解决方案之一。所以我的问题是:为什么mldivide
返回错误的解决方案?
您的矩阵 A 是奇异的。MATLAB 文档指出,在这些情况下,mldivide 不可靠(“... 使用病态矩阵时,可能会产生不可靠的解决方案...”),并建议改用 lsqminnorm( ) 或 pinv( )(参见“提示”)。例如,