2
マトリックスを反転することが良くない理由の実際的な例
行列を反転して線形システムを解くことは、システムを直接解くか、LU、Cholesky、またはQR分解を使用するほど正確で効率的ではないため、お勧めできません。 しかし、実際の例ではこれを確認できませんでした。このコードを試しました(MATLABで) M = 500; A = rand(M,M); A = real(expm(1i*(A+A.'))); b = rand(M,1); x1 = A\b; x2 = inv(A)*b; disp(norm(b-A*x1)) disp(norm(b-A*x2)) 残差は常に同じ次数(10 ^ -13)です。 inv(A)* bがA \ bよりもはるかに不正確ではない実用的な例を提供できますか? ------質問の更新------ ご回答ありがとうございます。ただし、システム倍を解く必要があるとします。ここで、は常に同じ行列です。それを考慮してくださいnnnA x = bAバツ=bAx = bAAA -満杯であるため、と同じメモリ・ストレージが必要。AAAA− 1A−1A^{-1}AAA 条件数が小さいため、を正確に計算できます。AAAA− 1A−1A^{-1} その場合、LU分解を使用するよりもを計算する方が効率的ではないでしょうか?たとえば、私はこのMatlabコードを試しました:A− 1A−1A^{-1} %Set A and b: M = 1000; A …