フィルターのクリア

solving linear equations in a loop

2 ビュー (過去 30 日間)
Krzysztof
Krzysztof 2014 年 3 月 21 日
編集済み: Matt J 2014 年 3 月 21 日
The documentation for inv says:
A frequent misuse of inv arises when solving the system of linear equations Ax = b. One way to solve this is with x = inv(A)*b. A better way, from both an execution time and numerical accuracy standpoint, is to use the matrix division operator x = A\b.
The above taken for granted, is it nevertheless reasonable to precalculate invA = inv(A) in front of a loop containing (A\Xi), especially one that necessarily sequential?

採用された回答

Matt J
Matt J 2014 年 3 月 21 日
編集済み: Matt J 2014 年 3 月 21 日
No. Make the different Xi the columns of matrix, X and just do A\X.
  2 件のコメント
Krzysztof
Krzysztof 2014 年 3 月 21 日
In case you did not have time to have a look at the algorithm: X(i+1) depends on A\X(i).
Matt J
Matt J 2014 年 3 月 21 日
編集済み: Matt J 2014 年 3 月 21 日
Probably better, then to pre-compute the LU decomposition
[L,U]=lu(A);
and then solve the system for each Xi using (U\(L\Xi)). You might improve things still further with an L,U,P decomposition.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by