Return if No Solution

11 ビュー (過去 30 日間)
Allison Bushman
Allison Bushman 2019 年 9 月 13 日
コメント済み: Walter Roberson 2019 年 9 月 13 日
I am asked to solve the equation: Ax = B for two randomly generated matrices. Furthermore, I am instructed that the script should return if no solution is found.
Here is my code:
n=100;
A=randn(n);
B=randn(n);
x = A\B;
I believe I know how to solve the equation, but don't know how to return if no solution is found. Is there a different way that I should be writing this? If not, how to I return if no solution is found?
  1 件のコメント
the cyclist
the cyclist 2019 年 9 月 13 日
Can you be more specific as to what you mean by "no solution"?
Do you mean if
x = A\B;
returns an error message, or something else?

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

採用された回答

Walter Roberson
Walter Roberson 2019 年 9 月 13 日
You can test rank(A) . If it is < n then no solution is possible.
However, there are full rank matrices for which the matrix is too ill-conditioned for an inverse to be calculated. You can example cond() or rcond() and make a decision as to whether the matrix is too badly conditioned to proceed on.

その他の回答 (1 件)

David Hill
David Hill 2019 年 9 月 13 日
If A will always be a square matrix, then if the det(A)==0 then return (no solution).
  1 件のコメント
Walter Roberson
Walter Roberson 2019 年 9 月 13 日
det()==0 is not as good a test as rank() because det() is more prone to round-off error.

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

カテゴリ

Help Center および File ExchangeNumeric Solvers についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by