kin*_*ull 2 math matlab matrix
我的代码中发生了什么?我不明白为什么我得到2个不同的不同矩阵当^ -1*b ^ -1 =(a*b)^ - 1我尝试用另一种语言写作但是我一直得到相同的不等式.
输入:
A = [3 5 2; 2 1 -1; 1 2 2]; 
B = [6 -2 4; 6 4 -12; 12 2 8];
inverseA = A^(-1);
inverseB = B^(-1);
inverseMult = inverseA * inverseB;
inverseMatMult = (A*B)^(-1);
equalityCheck = inverseMult == inverseMatMult;
disp(inverseMult)
disp(inverseMatMult)
disp(equalityCheck)
输出:
   -0.4038   -0.0863    0.1974
    0.3224    0.0923   -0.1478
   -0.1518   -0.0804    0.0804
   -0.0317    0.0615    0.0694
    0.1190   -0.2619   -0.1667
   -0.0357   -0.0089    0.0625
    0     0     0
    0     0     0
    0     0     0
您假设身份不正确 - 它应该是:
(A*B)^-1 = B^-1 * A^-1
(请参阅此处有用的可逆矩阵标识列表.)
所以,如果你改变这一行:
inverseMatMult = (A*B)^(-1);
至:
inverseMatMult = (B*A)^(-1);
那么你应该得到预期的结果.(请注意,由于舍入错误,相等性检查可能仍会失败,但您应该看到两个结果矩阵与有效数字的有效数字相同.)