1

データの精度が異なる6x6行​​列を使用しています。MATLABでその行列を逆にしようとすると、通常、InfまたはNaNすべてのデータが取得され、MATLABが警告をスローします。

マトリックスは、作業精度に対して特異です。

それを避けて適切な結果を得る方法はありますか?

4

1 に答える 1

2

マトリックスのランクが不足しているようです。フルランクの行列のみを確実に反転できます。
元の単位行列に小さな単位行列を追加することで、問題を回避できます。

 A = rand(6,5);
 A = A*A'; %' symmetric rank 5 matrix
 iA = inv(A); % results with NaNs and infs A is singular
 iAs = inv( A + eye(6)*1e-3 ); % add small (1e-3) elements to diagonal - this should help
于 2013-01-30T14:14:25.633 に答える