-
-
Notifications
You must be signed in to change notification settings - Fork 481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
improve solve_right for some inexact rings #29729
Comments
comment:1
Here's a proof-of-concept (not well tested) for SR. New commits:
|
Branch: u/mjo/ticket/29729 |
Commit: |
comment:2
The SR proof-of-concept passes a ptestlong, at least. As for the ball/interval fields: half of the problem with RBF is that we have a dedicated implementation of
(Note: we should catch that exception and turn it into a For the generic interval solve/check, as a first approximation, maybe we could multiply |
comment:3
It might also be a good idea to factor out the solution check into a separate method, that way we don't have to override all of |
comment:4
Replying to @orlitzky:
The
The literal equality check seemingly works with ball/interval arithmetics. Though, this is probably just a coincidence. If vector equality is implemented by checking whether not any entries are different (as opposed to all entries being equal), for ball fields this means it is checked that no entries are disjoint balls, hence they must intersect.
However, it would be more correct to check that every entry of
I am not very familiar with interval arithmetics either, though. |
Branch pushed to git repo; I updated commit sha1. New commits:
|
comment:6
That last commit should fix the square/nonsingular issue but probably needs some polish. |
comment:7
Replying to @mwageringel:
If we can make
From what I gather, a solution to an interval system Ax = b should be an interval vector x such that for all x in x, there exists some A in A and b in b with Ax = b. So I don't think either suggestion is quite right; mine because Ax can wind up being larger than necessary, and thus too lenient if we intersect it with b. Yours I would imagine is too strict: if everything is nonnegative, we should be able to pair up the left endpoints of x with the left endpoints of A and b and not insist that the right endpoints of A and b work (for the left endpoints of x) as well. |
comment:8
Replying to @orlitzky:
This does not seem quite right to me, as then x could always be shrinkened to just a single point, thus reducing the error to 0. In my naive understanding, as we do not know the exact values of A and b, the solution x of the system Ax = b should satisfy:
Given x and A, let me denote the product by y = Ax. Then y should contain the set
(In particular, this means that ∀ A∈A ∀ x∈x ∃ y∈y such that Ax = y.) Since A is non-empty, we can fix an arbitrary A∈A. Now, given any b∈b, we find an x∈x satisfying Ax=b, and so b∈y. Therefore, under the above assumptions, it would be a necessary condition that b is contained in y. |
comment:9
Replying to @mwageringel:
Come to think of it, this will never hold if A has more rows than columns (and not everything is exact), as then A and b can easily be chosen such that no solution exists. |
comment:10
It looks like all of these definitions of a solution that we've been making up are valid in different contexts (see e.g. Interval linear systems as a necessary step in fuzzy linear systems by Lodwick and Dubois). However, since RBF is documented to be implemented with Arb and since square systems will be solved by Arb, we should probably use the same interpretation of "solution" that Arb uses. So far I've been unable to figure out what that is. I may have to ask on the mailing list. |
comment:12
Sage development has entered the release candidate phase for 9.3. Setting a new milestone for this ticket based on a cursory review. |
Since #12406, the
check
keyword tosolve_right
is ignored over all inexact rings. As discussed on sage-devel, this is a bit too drastic, as the solution can be checked for correctness in some cases.Over
SR
, we can check if all entries are exact and then check whether the solution is correct. This was done in #33159.Over ball and interval fields, we can check the error bounds to determine whether the result is valid.
CC: @aghitza @nbruin
Component: linear algebra
Branch/Commit: u/mjo/ticket/29729 @
22efbc6
Issue created by migration from https://trac.sagemath.org/ticket/29729
The text was updated successfully, but these errors were encountered: