Actually, this has nothing to do with the algorithm I implemented.
The Risch algorithm is accessible in my branch through the
risch_integrate() function, and it only works with a limited class of
functions that does not include this one.
By the way, this integral works in master:
In [70]: integrate(1/sqrt(1+x*x/(c*c)),x)
Out[70]:
⎛x⎞
c⋅asinh⎜─⎟
⎝c⎠
This is because of the new integration algorithm that was implemented
last summer using Meijer G-Functions. Unlike the Risch algorithm,
this is a heuristic, and works with a much broader class of functions
(also unlike Risch, the Meijer G algorithm works particularly well on
definite integrals). The power of the Risch algorithm over this one
is that it works on more complex functions, so long as they are within
the acceptable class, since it's an actual algorithm and not a
heuristic.
And yes, I should merge my branch already, even what you tried wasn't
really demonstrating the power of it. Play around with
risch_integrate() with functions with exp() and log(), and you'll see
it's power. integrate() in that branch is just the normal old
integrate() from 0.7.0 (which is less powerful than integrate in
master, but you can still see the difference if you compare there
too). Hopefully I'll have time this summer along with managing GSoC
and getting a 0.7.2 release out.
Aaron Meurer
On Wed, Mar 14, 2012 at 3:23 PM, john.hoebing <[email protected]> wrote:
> Wow! You really made some progress and I can't believe it hasn't been
> merged into the main code. I had given up on sympy for a lot of my
> work because the integration starts to break on really simple
> integrals, for instance from the latest 0.7.1.rc1:
>
> In [1]: c=symbols('c')
>
> In [2]: integrate(1/sqrt(1+x*x),x)
> Out[2]: asinh(x)
>
> In [3]: integrate(1/sqrt(1+x*x/(c*c)),x)
> Out[3]:
> ⌠
> ⎮ 1
> ⎮ ────────────── dx
> ⎮ ⎽⎽⎽⎽⎽⎽⎽⎽
> ⎮ ╱ 2
> ⎮ ╱ x
> ⎮ ╱ 1 + ──
> ⎮ ╱ 2
> ⎮ ╲╱ c
> ⌡
>
> In [4]:
>
> where I've just tried to divide the function 'x*x' by a constant
> 'c*c'. That should have been easy!
>
> Here's the output from your (2 year old!) Risch'd tree:
>
> In [1]: c=symbols('c')
>
> In [2]: integrate(1/sqrt(1+x*x),x)
> Out[2]: asinh(x)
>
> In [3]: integrate(1/sqrt(1+x*x/(c*c)),x)
> Out[3]:
> ⎛x⎞
> c⋅asinh⎜─⎟
> ⎝c⎠
>
> In [4]:
>
>
> Much better! A merge of this code should be a very high priority, and
> I'm willing to help out.
>
> John Hoebing
>
>
>
> On Mar 11, 11:01 pm, Aaron Meurer <[email protected]> wrote:
>> I worked on the Risch algorithm for GSoC over the summer of 2010. The
>> work hasn't been merged yet, but you can find it
>> athttps://github.com/asmeurer/sympy/tree/integration3, and details of
>> what was done are
>> athttps://github.com/sympy/sympy/wiki/GSoC-2010-Risch-Integration-Report,
>> and in blog posts I made throughout the summer at my blog
>> (http://asmeurersympy.wordpress.com/). Let me know if you have any
>> questions.
>>
>> Aaron Meurer
>>
>>
>>
>>
>>
>>
>>
>> On Sun, Mar 11, 2012 at 9:51 PM, Raman Garg <[email protected]>
>> wrote:
>> > Hi,
>> > I am a second year student of Netaji Subhas Institue of
>> > Technology(under Delhi University),India.My major is Instrumentation
>> > and Control engineering.I am good in "Data Structures and
>> > Algorithms",as for the current project.Besides this I am good in
>> > Linux,CSS etc..
>>
>> > I am programming for the past five years and have experience in C/C+
>> > +.In my day to day life I spend a lot of time in cracking computing
>> > puzzles and won various awards in my college.
>>
>> > Idea for the GSOC:
>> > I liked "SYMBOLIC COMPUTATION OF INTEGRALS BY RECURRENCE" ,and am
>> > interested in implementing the same.I first saw this idea on project
>> > ideas page.
>>
>> > I have gone through the concept of the above idea,but don't know how
>> > much of it is implemented before.Okay coming to the point ,how should
>> > I start writing codes for it and what to study next as I have studied
>> > its algorithm.
>>
>> > thanks
>> > Raman Gupta
>>
>> > --
>> > You received this message because you are subscribed to the Google Groups
>> > "sympy" group.
>> > 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
>> > athttp://groups.google.com/group/sympy?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> 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/sympy?hl=en.
>
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
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/sympy?hl=en.