我的代码中发生了什么?我不明白为什么我得到2个不同的不同矩阵当^ -1 * b ^ -1 =(a * b)^ - 1我尝试用另一种语言写作但是我一直得到相同的不等式。 / p>
输入:
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
答案 0 :(得分:9)
您假设身份不正确 - 应该是:
$(document).ready(function(){
$('.custom-select').change(function(){
if($(".custom-select option:selected").index() == 1){
$('#std-list').show();
}else{
$('#std-list').hide();
}
});
});
(参见有用的可逆矩阵标识列表here。)
所以如果你改变这一行:
(A*B)^-1 = B^-1 * A^-1
为:
inverseMatMult = (A*B)^(-1);
然后你应该得到预期的结果。 (请注意,由于舍入错误,相等性检查可能仍会失败,但您应该看到两个结果矩阵与有效数量的有效数字相同。)
答案 1 :(得分:1)
您可能需要重新检查等式。
可能是因为(a * b)^ - 1 =(b)^ - 1 *(a)^ - 1;
function [t2,t3,t4]= matrixidentity()
a = [3 5 2; 2 1 -1; 1 2 2];
b = [6 -2 4; 6 4 -12; 12 2 8];
t=a^-1;t1=b^-1;
t2=(a*b)^-1;
t3=t1*t;
t4=t*t1;
end
t2 =
-0.0317 0.0615 0.0694
0.1190 -0.2619 -0.1667
-0.0357 -0.0089 0.0625
t3 =
-0.0317 0.0615 0.0694
0.1190 -0.2619 -0.1667
-0.0357 -0.0089 0.0625
t4 =
-0.4038 -0.0863 0.1974
0.3224 0.0923 -0.1478
-0.1518 -0.0804 0.0804
在这里你可以看到t2 == t3,因此等式(a * b)^ - 1 =(b)^ - 1 *(a)^ - 1成立,而
(a * b)^ - 1 =(a)^ - 1 *(b)^ - 1不成立。
希望它有所帮助!!