This one can also be done if you call trigsimp on the input first. Aaron Meurer
On Tue, Apr 30, 2013 at 5:01 PM, Aaron Meurer <[email protected]> wrote: > All integrate() hanging is due to heurisch(), which means that none of > the other algorithms could do the integral. There is some hope that > when the matrices and the new polys are reworked by Mateusz that > heurisch will become faster, but ultimately, I would like to > completely replace it with better algorithms. > > The risch algorithm can handle trigonometric functions, but they are > not implemented yet. However, it can integrate exponentials, so if > you first do .rewrite(exp) to convert it to complex exponentials, it > will integrate instantly. In this case, rewriting back to sin and > simplifying gives a nice answer. In general, it doesn't, though, so we > still need to work on that. > > In [6]: integrate((sin(pi*(x - S(1)/2))**2).rewrite(exp), > x).rewrite(cos).simplify() > Out[6]: > 2⋅π⋅x + sin(2⋅π⋅x) > ────────────────── > 4⋅π > > Another option that is really easy, even if you don't know anything > about the Risch algorithm, is to extend David Li's new > manualintegrate, which just integrates the function as you would by > hand. In this case, the way you integrate sin**2 or cos**2 is to first > rewrite them using the double angle formula. So you should add this > rule to manualintegrate.py. The other benefit of this is that rules > in manual integrate translate directly to step-by-step integration > like at https://github.com/sympy/sympy_gamma/pull/11 (see for example > http://sympy-gamma-li.appspot.com/input/?i=integrate%28x*exp%28x%29%2C+x%29). > > Aaron Meurer > > On Tue, Apr 30, 2013 at 4:43 PM, Ondřej Čertík <[email protected]> > wrote: >> Hi, >> >> Today I needed to do some 3d integral, and it hangs [1], but I managed >> to isolate the problem >> to this very simple example: >> >> integrate(sin(pi*(x - S(1)/2))**2, x) >> >> The correct solution is not complicated [2]. Any ideas how to fix this >> simple problem? >> It will probably also fix the more difficult and messy 3D integral >> from [1], but even if it doesn't, it'd be nice to be able to do this >> simple integral anyway. >> >> Thanks, >> Ondrej >> >> >> [1] http://code.google.com/p/sympy/issues/detail?id=3793 >> [2] >> http://www.wolframalpha.com/input/?i=integrate%28sin%28pi*%28x+-+1%2F2%29%29**2%2C+x%29 >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" 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/sympy?hl=en-US. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> -- You received this message because you are subscribed to the Google Groups "sympy" 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/sympy?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.
