#14976: integration with non symbolic bounds broken
-------------------------------+--------------------------
Reporter: burcin | Owner:
Type: defect | Status: new
Priority: critical | Milestone: sage-5.12
Component: symbolics | Resolution:
Keywords: integration | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Dependencies:
Stopgaps: |
-------------------------------+--------------------------
Comment (by charpent):
Replying to [comment:4 nbruin]:
> Replying to [comment:3 charpent] :
> > So ? If this was tre source of the error, it shouldn't happen with
symbolic lower and upper bounds (see my slightly generalized example), but
it does. Furrthermore, declaring the bounds as real allows for completing
the task (bothh from maxima and from sage)...
> It's the source of the errors reported in the ticket. The problems
reported in the ticket arise without interaction with maxima.
You might be right. I tend to think too much like a physician and tend to
attach all symptoms to the same cause (it is rare that a patient has
symptoms caused by two different diseases with onset at the same time...).
> You're diagnosing a different problem, that integration with certain ''
symbolic'' bounds is '' also'' broken. Compare: sage: var('x,t,a,b')
(x, t, a, b) sage: function('f') f sage: function('g') g sage:
integrate(f(x),x,a,b) integrate(f(x), x, a, b) sage:
integrate(f(x),x,sin(t),b) integrate(f(x), x, sin(t), b) sage:
integrate(f(x),x,sin(1+i*t),b) !RuntimeError : ECL says: Error executing
code in Maxima: defint: lower limit of integration must be real; found
sin(%i*t+1) sage: integrate(f(x),x,g(t),b) !RuntimeError : ECL says: Error
executing code in Maxima: defint: lower limit of integration must be real;
found g(t)Indeed, for definite integrals, maxima seems to want to know if
the integration bounds are real. However, Maxima seems to assume quite
happily by itself that `a,b,sin(t)` are real, but doesn't think
`sin(1+i*t)` is real and for some reason refuses to assume anything
about `g(t)` . Your workaround is interesting in that it shows that
maxima's "assume" facility can be of some help to nudge maxima into the
desired direction. It seems to me the problem you're diagnosing is best
addressed by working mainly on maxima. As far as I've seen, sage is
offering reasonable input to maxima.
Hmmm... Maxima's "assume" also has serious limitations. Many questions
Maxima may ask during a computation cannot be prevented by previous
assumptions, since those cannot use expressions. For example, during an
(unrelated) integration, maxima asked "`Is (m/s) an integer ?`". I checked
that maxima does *not* allow for "`assume(m/s, noninteger);`".
Furthermore, sage noes not (currently) allows for interaction during such
a computation. Instead, it spits out an error suggesting to use assume...
So we have *two* limitations : Maxima's assumption system, which is indeed
maxima-specific, *AND* sage's non-use of interactions.
IIRC, Mathematica, when confronted with such a question, does not interact
with user but tries to generate a list (a tree ?) of possible questions
and gives a list of answers along a set of conditions. Of course, there is
no guarantee that such a tree is finite...
Any thoughts ? I reported the gist of the problem to Maxima's mailing
list. Should I file a bug abainst Maxima's assume ?
--
Ticket URL: <http://trac.sagemath.org/ticket/14976#comment:6>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.