On Fri, Mar 27, 2020 at 10:51 AM Ondřej Čertík <
ond...@certik.us> wrote:
>
> Hi Jackson and Oscar,
>
> Indeed, fixing this would be the main goal of the project. Let's brainstorm the possible approaches.
>
> 1) One is to work on the integrate() function, and make it return distributions (delta functions) where appropriate. One way to do that is using pattern matching, similar to Rubi. One would match the typical integrals that occur, and return the correct answer. One would probably write a dedicated function for that, say, integrate_distributions, and then somehow hook it up into integrate.
I think this is the right approach. We already have a pattern matching
integrator called manualintegrate that this can be added to. We can
also investigate if the meijerg algorithm can be improved to work in
these cases. If it can, then that will enable a lot more than we could
get by naive pattern matching. In each case, I would investigate
meijerg first. If it can be improved (and is fast), then that is
enough. It is only if it can't that we should add a table lookup. In
some cases, meijerg can work but it needs some better pre-processing
(like calling apart() first so it can operate on a partial fraction
decomposition).
The benefit of improving integrate is that things will work regardless
of whether they call fourier_transform or just create the integral of
a Fourier transform. As you probably know, integrals that look like
common transforms appear all the time even when you aren't necessarily
thinking in terms of that transform.
By the way, since you mentioned RUBI, I don't think even it would help
here, since, unless I am mistaken, it doesn't deal with definite
integrals.
Aaron Meurer
> To view this discussion on the web visit
https://groups.google.com/d/msgid/sympy/ec797a11-e354-48a5-9ce9-f0b5617d7099%40www.fastmail.com.