Opened 4 years ago

Last modified 3 years ago

#27314 new defect

Can't solve symbolic equations containing inexact (e.g. RIF, RBF) numbers

Reported by: Ricardo Buring Owned by:
Priority: major Milestone:
Component: symbolics Keywords: RIF, RBF, solve
Cc: Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges


There are (undocumented?) symbolic wrappers around RIF, RBF objects, but solving equations with them

sage: var('x')
sage: solve(x + RIF(0.999,1.001) == 0, x)

fails because the inexact objects cannot be converted to Maxima objects.

This is confusing to new users; see Ask SageMath: long traceback when calling solve().

Specifying algorithm='sympy' gives a solution but loses information about precision.

The least thing that could be done is for solve(eqn, x) to check eqn.is_exact() and give a warning.

Change History (3)

comment:1 Changed 4 years ago by Emmanuel Charpentier

One notes that numerical root seeking via find_root also fails for both RIF and RBF :

sage: u=RIF(0.99,1.01);u
sage: s=find_root(x+u,-3,3);s
sage: type(s)
<type 'float'>
sage: v=RBF(v);v
sage: v=v.add_error(0.01);v
[1.0 +/- 0.0101]
sage: s2=find_root(x+v,-3,3);s2
sage: type(s2)
<type 'float'>

Extending find_root to handle RIF and RBF expressions would allow to handle the cases where no explicit form of a root solution is known (e. g. implicit expressions resulting of solve), where find_root allows to compute a numerical approxomation.

This would certainly be handy (but is probably a significant project in itself !).

It might also be useful to check which of the optimization functions in Sage support such uncertainty handling...

Last edited 4 years ago by Emmanuel Charpentier (previous) (diff)

comment:2 Changed 4 years ago by Erik Bray

Milestone: sage-8.7sage-8.8

Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually)

comment:3 Changed 3 years ago by Erik Bray

Milestone: sage-8.8

As the Sage-8.8 release milestone is pending, we should delete the sage-8.8 milestone for tickets that are not actively being worked on or that still require significant work to move forward. If you feel that this ticket should be included in the next Sage release at the soonest please set its milestone to the next release milestone (sage-8.9).

Note: See TracTickets for help on using tickets.