On Nov 27, 2:16 am, kcrisman <[email protected]> wrote:
> Here's this in Sage. See the end of this post for a solution you
> might like better than the ramblings in between :)
>
> ----------------------------------------------------------------------
> | Sage Version 4.7.2, Release Date: 2011-10-29 |
> | Type notebook() for the GUI, and license() for information. |
> ----------------------------------------------------------------------
> sage: var('m r a R')
> (m, r, a, R)
> sage: assume(2*m-3==0)
> ^[[A^[ integrate(1/r^(2*m+2)*(2*(r/a)^2-(r/a)^4),r)
> -2*r^(-2*m + 1)/((2*m - 1)*a^2) - log(r)/a^4
> sage: forget()
> sage: assume(2*m-1<0)
> sage: integrate(1/r^(2*m+2)*(2*(r/a)^2-(r/a)^4),r)
> -2*r^(-2*m + 1)/((2*m - 1)*a^2) + r^(-2*m + 3)/((2*m - 3)*a^4)
>
> Just to make the point that this is something we can't really avoid,
> using Maxima as the default integration engine.
>
> Maxima 5.25.0http://maxima.sourceforge.net
> using Lisp SBCL 1.0.24
> Distributed under the GNU Public License. See the file COPYING.
> Dedicated to the memory of William Schelter.
> The function bug_report() provides bug reporting information.
> (%i1) integrate(1/r^(2*m+2)*(2*(r/a)^2-(r/a)^4),r);
> Is 2 m - 3 zero or nonzero?
>
> zero
> ;
> 1 - 2 m
> 2 r log(r)
> (%o1) ------------ - ------
> 2 4
> a (1 - 2 m) a
> (%i2) integrate(1/r^(2*m+2)*(2*(r/a)^2-(r/a)^4),r);
> Is 2 m - 3 zero or nonzero?
>
> nonzero;
> Is 2 m - 1 zero or nonzero?
>
> nonzero;
> 1 - 2 m 3 - 2 m
> 2 r r
> (%o2) ------------ - ------------
> 2 4
> a (1 - 2 m) a (3 - 2 m)
>
> "Bottom line, sage currently has to be coddled excessively via
> assumptions into giving any result at all, verses system which give
> results which may happen to be incorrect for certain values. "
>
> But that sounds dangerous to me, at least for this particular
> example. How is it different from this example?
>
> sage: var('n')
> n
> sage: integrate(x^n,x)
> ValueError: Computation failed since Maxima requested additional
> constraints; using the 'assume' command before integral evaluation
> *may* help (example of legal syntax is 'assume(n+1>0)', see `assume?`
> for more details)
> Is n+1 zero or nonzero?
>
> If anything, we've probably been too cavalier with our use of Maxima's
> fine-grained simplification and other routines at times; it seems
> dangerous to go the other way.
>
> At the same time, we have
>
> sage: integrate(x^n,x,algorithm='sympy')
> x^(n + 1)/(n + 1)
>
> which will at least sometimes do what you are interested in. See
> the PS for the fact that it doesn't always do so.
>
> - kcrisman
>
> PS to devs:
>
> However
>
> sage: integrate(1/r^(2*m+2)*(2*(r/a)^2-(r/a)^4),r,algorithm='sympy')
> ---------------------------------------------------------------------------
> AttributeError Traceback (most recent call
> last)
> v, a, b)
> 37 else:
> 38 result = sympy.integrate(ex, (v, a._sympy_(),
> b._sympy_()))
> ---> 39 return result._sage_()
> 40
> 41 def mma_free_integrator(expression, v, a=None, b=None):
>
> AttributeError: 'Integral' object has no attribute '_sage_'
>
> That looks like a bug in our sympy interface. Any takers?
Note that:
sage: var('m r a')
(m, r, a)
sage: f=expand(1/r^(2*m+2)*(2*(r/a)^2-(r/a)^4))
sage: f.integrate(r,algorithm="sympy")
-2*r^(-2*m + 1)/((2*m - 1)*a^2) + r^(-2*m + 3)/((2*m - 3)*a^4)
Andrzej Chrzeszczyk
--
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org