私はC++でdgesvおよびdgemmfortranサブルーチンを使用して、いくつかの単純な行列の乗算と左除算を行っています。
ランダム行列AとBの場合、次のようにします。
A\(A\(A*B));
ここで、*はdgemmを使用して定義され、\はdgesvを使用して定義されます。明らかに、この式は単位行列に単純化する必要があります。私はMATLABに対して答えをテストしていて、対角線上で多かれ少なかれ1を取得していますが、他のエントリは非常にわずかにずれています(数値はe-15のオーダーであるため、すでに0に近いです) 。
この結果が期待できるのかどうか疑問に思っていますか?私がこのようなことをすると:
C = A+B;
D = A*B;
D\(C\(C*C));
結果は教義と聖約に出てくるはずです。基本的に、C(C * C)は非常に正確です(MATLABと完全に一致します)が、2番目にD \ CIを実行すると、e-1またはe+00でさえずれているものが得られます。私はそれが起こるはずではないと思いますか?