it's probably mostly a question for Mateusz --- how should our
algorithm be improved to handle integrating things like:
In [1]: integrate(x*sqrt(1+2*x), x)
Out[1]:
⌠
⎮ ⎽⎽⎽⎽⎽⎽⎽⎽⎽
⎮ x⋅╲╱ 1 + 2⋅x dx
⌡
I think this is so easy that sympy should be able to do it. Should we
parse sqrt() and then use couple known tricks how to do it, or can it
be hooked into our Risch algorithm?
See here for all the issues related to integration:
http://code.google.com/p/sympy/issues/list?q=label:Integration
Thanks,
Ondrej
On Wed, Apr 22, 2009 at 03:58:22AM -0700, Ondrej Certik wrote:
>
> Hi,
>
> it's probably mostly a question for Mateusz --- how should our
> algorithm be improved to handle integrating things like:
>
> In [1]: integrate(x*sqrt(1+2*x), x)
> Out[1]:
> ⌠
> ⎮ ⎽⎽⎽⎽⎽⎽⎽⎽⎽
> ⎮ x⋅╲╱ 1 + 2⋅x dx
> ⌡
>
>
> I think this is so easy that sympy should be able to do it. Should we
> parse sqrt() and then use couple known tricks how to do it, or can it
> be hooked into our Risch algorithm?
>
integration of algebraic expressions is quite complicated, especially
in general setting. For simple cases we can use a bag of tricks, like
integration by parts, etc. (if only our pattern matching routines had
more features and were more reliable).
Of course, "the right" way :) is Risch algorithm, but that's a lot of
work. Some methods for algebraic rational functions (no transcendental
functions) were described in Bronstein's integration tutorial. I also
know that there are some specialized routines e.g. using Groebner bases.
--
Mateusz