矩阵定律和语法matlab

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)
Run Code Online (Sandbox Code Playgroud)

输出:

   -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
Run Code Online (Sandbox Code Playgroud)

Pau*_*l R 9

您假设身份不正确 - 它应该是:

(A*B)^-1 = B^-1 * A^-1
Run Code Online (Sandbox Code Playgroud)

(请参阅此处有用的可逆矩阵标识列表.)

所以,如果你改变这一行:

inverseMatMult = (A*B)^(-1);
Run Code Online (Sandbox Code Playgroud)

至:

inverseMatMult = (B*A)^(-1);
Run Code Online (Sandbox Code Playgroud)

那么你应该得到预期的结果.(请注意,由于舍入错误,相等性检查可能仍会失败,但您应该看到两个结果矩阵与有效数字的有效数字相同.)