はぁ。人々は、A*X=B の解は X=inv(A)*B を形成することであると学校で習ったからといって、これを行うべきだと考えています。はい、あなたの教科書はそうするように言いました。驚くべきことに、そのようなことをあなたに教えようとしている人々がたくさんいます。悲しいことに、彼らは間違っており、他の人に間違ったことを教えるように教え、それを本に載せることさえしています。この愚かさは広がり、終わりがないように見えます。また、教科書の著者が理論上は inv(A)*B よりも A\B の方が優れていることを知っていたとしても、逆行列形式で書く方が簡単です。
警告: 逆行列を作成したくありません。ガウスの消去法を使用したくありません。(プロにコンパイル済みツールでそのようなコーディングをさせてください。) 代わりに、MATLAB でバックスラッシュを使用してください。これは効率的でよく書かれています。
X = A\B;
同じシステムを頻繁に解く場合は、LU のような因数分解を使用します。さらに良いのは、多くの右辺を B の列として使用して、すべてのシステムを一度に解くことです。確かに、マトリックスが常に変化している場合、これはオプションではありませんが、それでもバックスラッシュが最適です。
(なぜ inv は良い考えではないのですか? ゼロがほとんどない、本質的に完全な行列を作成します。これは、バックスラッシュなどよりも遅く、数値的に安定していません。)
そして最後に、あなたのマトリックスがそれほどスパースである場合、なぜ神の名において、マトリックスにスパースストレージを使用しないのですか? スパース行列の場合、バックスラッシュは非常に高速になります。