私のコードでは何が起こっていますか?なぜ私は2つの異なる行列を得ているのか理解できません。なぜなら、a^-1 * b^-1 =(a * b)^ - 1は別の言語で書こうとしましたが、同じ不等式が得られます。行列の法則と構文matlab
入力:
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
'equalityCheck'の注意:浮動小数点数を比較するために' == 'を使うべきではありません(浮動小数点演算については、どのプログラマが知っておくべきことがあるのかを見てください)。(http://floating-point-gui.de /))、むしろ数の差が非常に小さい閾値よりも小さいことをチェックする。そうではなく、 'threshold'が' 1e-10'のような小さい数である場合、 'equalityCheck = abs(inverseMult - inverseMatMult)
Dan
注意してください。多項式は、数(スカラー)とスカラー倍加 'A.B'に対してのみ有効です。行列の乗算とベクトルの乗算 'AxB'は** comuitativeではありません。 – Crowley
*靴と靴を履いたら、まず靴を履いてから靴下を取る* – percusse