Sage: Ticket #16653: immediately get all integral/ODE solutions instead of asking for assumption
https://trac.sagemath.org/ticket/16653
<p>
In <a class="new ticket" href="https://trac.sagemath.org/ticket/14976" title="defect: integration with non symbolic bounds broken (new)">#14976</a> charpent suggests to return lists of results from Maxima integral/ODE computations instead of forcing the user to stop, input an assumption, and calculate again. It would be consistent with the output of <code>solve</code> which doesn't shy from multiple solutions and returns a list as well in this case. To have the list members as <code>tuple(assumption,solution)</code> would be natural, and so this modus should be default, and would remove one of the most awkward behaviours of Sage for beginners. It still allows to assume beforehand, and to then get only that solution for the existing assumption. The difference is that, if no assumption exists, there is still immediate output of results.
</p>
en-usSagehttps://trac.sagemath.org/chrome/site/logo_sagemath_trac.png
https://trac.sagemath.org/ticket/16653
Trac 1.1.6rwsSun, 13 Jul 2014 06:55:55 GMTcomponent changed
https://trac.sagemath.org/ticket/16653#comment:1
https://trac.sagemath.org/ticket/16653#comment:1
<ul>
<li><strong>component</strong>
changed from <em>calculus</em> to <em>symbolics</em>
</li>
</ul>
TicketcharpentWed, 16 Jul 2014 18:02:58 GMT
https://trac.sagemath.org/ticket/16653#comment:2
https://trac.sagemath.org/ticket/16653#comment:2
<p>
So, we'd get something a bit like what Maxima's to_poly_solve returns (that Sage somehow is able to digest in certain cases) or Mathematica's Integrate returns (indigestible by sage). So, we'd divde the problem in two :
1) parse the "assumptions" part of the answer, in order to keep it for further computations.
2) ensuring somehow that the "assumption" list/tree is finite. I have seen Maxima start a list of questions about a parameter (say zeta) known as positive, asking if zeta-1 was positive, zeta-2 was positive, zeta-3 was positive, ... until C-c C-c ("Shut the fuck up and stop <strong>that</strong> !" in interactive-Maxima).
</p>
<p>
The first part probably entails a new class of symbolic expressions, which is doable (i has been done by the author of to_poly_solve and by Mathematica's developpers.
</p>
<p>
The second, I do not know. A <strong>human</strong> can catch the repetition pattern, may examine the shape of the proposed solution and possibly set-up a secondary computation in order to prove that the recurrence will solve ,say, for some majorant of zeta, which allows to shortcut the loop (and implicitely uses some hypothetical declaration like "zeta is finite").
</p>
<p>
There <strong>are</strong> algorithms able to detect a circular (i. e. infinite) list/tree/etc... (i.e. anything represented by dotted pairs, a. k. a. Lisp lists) : ask your friendly local graph theorist or Lisp guru (the species is not quite extinct yet...). The problem is to know when to call them. And there might be tygers...
</p>
TicketrwsWed, 16 Jul 2014 18:50:20 GMT
https://trac.sagemath.org/ticket/16653#comment:3
https://trac.sagemath.org/ticket/16653#comment:3
<p>
Mathematicians don't compromise, software engineers do. "List cut off at 100 entries. To get the whole list, use cutoff=False." The human will happily perform the recognition work for me, of course only in this super-rare case.
</p>
Ticketvbraun_spamSun, 10 Aug 2014 16:51:03 GMTmilestone changed
https://trac.sagemath.org/ticket/16653#comment:4
https://trac.sagemath.org/ticket/16653#comment:4
<ul>
<li><strong>milestone</strong>
changed from <em>sage-6.3</em> to <em>sage-6.4</em>
</li>
</ul>
Ticket