Timeline for Determine if solution to linear system exists
Current License: CC BY-SA 3.0
13 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Aug 29, 2015 at 14:19 | history | edited | J. M.'s missing motivation♦ | CC BY-SA 3.0 |
added 12 characters in body
|
Sep 27, 2012 at 14:42 | comment | added | Daniel Lichtblau | @J.M. Yes, a condition number check is fine too. As best I recall those are estimated for the various norms supported, but in ways that tend to reliably show when a matrix is effectively singular. | |
Sep 27, 2012 at 8:32 | comment | added | J. M.'s missing motivation♦ | @Daniel, "check singular values for zeros" - or check the condition number of the matrix, as in my answer. | |
Sep 27, 2012 at 8:23 | history | edited | Vitaliy Kaurov | CC BY-SA 3.0 |
added 104 characters in body
|
Sep 27, 2012 at 4:18 | comment | added | Vitaliy Kaurov | @rm-rf good idea, will do. | |
Sep 27, 2012 at 3:57 | comment | added | rm -rf♦ | @VitaliyKaurov There is no need to delete this answer. You can edit your answer to make a note of Daniel's and whuber's concerns and address them if you can. You can always improve the answer — deleting is a nuclear option. Probably also alert the OP to your updated answer. | |
Sep 27, 2012 at 1:35 | comment | added | whuber |
A third problem is that computing a determinant works only when there are exactly as many equations as variables. There is a generalization (implementable via Minors ), but it is likely to be relatively inefficient (there can be a lot of minors to compute and store).
|
|
Sep 27, 2012 at 1:34 | comment | added | Daniel Lichtblau | ... in the exact case, e.g. integers, Det computation can be slower than actual solving. Example:In[22]:= n = 2^10; mm = RandomInteger[{-1, 1}, {n, n}]; vec = RandomInteger[{-1, 1}, n]; In[27]:= AbsoluteTiming[sol = LinearSolve[mm, vec];] Out[27]= {11.3440000, Null} In[28]:= AbsoluteTiming[Det[mm] == 0] Out[28]= {53.7370000, False} | |
Sep 27, 2012 at 1:34 | comment | added | Daniel Lichtblau | This has two problems. For approximate matrices it is not numerically sound. Far safer is to check singular values for zeros below some tolerance. Else you can get a false positive, that is, a claim of solvability when the matrix is singular or nearly so. The other problem is that (to be cont'd) | |
Sep 26, 2012 at 19:12 | vote | accept | arshajii | ||
Sep 26, 2012 at 17:53 | comment | added | Vitaliy Kaurov | @george2079 the benchmark i posted is pretty general and the system is pretty large. Of course, some specific systems may show a different result. | |
Sep 26, 2012 at 17:47 | comment | added | george2079 | I suspect the performance trade may fall the other way depending on the size and character of the system. The most efficient methods for solving large systems usually do not involve directly computing the determinant. (LinearSolve automatically picks an efficient method..) | |
Sep 26, 2012 at 17:37 | history | answered | Vitaliy Kaurov | CC BY-SA 3.0 |