On Fri, Jan 24, 2014 at 11:39 AM, Anurag Sharma <anurag...@gmail.com> wrote:
> Hi Aaron
> Thanks for your reply. I have got hold of Bronstein book and the tutorial. I
> find the tutorial much more accessible right now. I think I will go through
> it first and worry about the correctness of algorithms later.
>
> I don't find all the algorithms being implemented in sympy (eg Bernoulli,
> Hermite Reduction etc. ). And I guess we done need them when we have better
> ones available.

The rational algorithms are implemented in rationaltools.py. The
polynomial algorithms (that have nothing to do with integration) are
buried in the polys module. The risch algorithms are in risch.py,
rde.py, and prde.py.

Aaron Meurer

> Expect some queries and doubts related to maths involved in next couple of
> days while I read on.
>
> Cheers
> Anurag
>
> On Friday, January 24, 2014 5:18:52 AM UTC+5:30, Aaron Meurer wrote:
>>
>> On Thu, Jan 23, 2014 at 4:19 AM, someone <some...@bluewin.ch> wrote:
>> >> > 3. I have skimmed through the first chapter of Bronstein's book.
>> >> > Algebraic Preliminaries. Nothing new there. But the second chapter
>> >> > introduces algorithms which I have never implemented and some of
>> >> > them I had not even heard of. I would be really glad if you could
>> >> > tell me what sort of mathematical background is required to
>> >> > contribute efficiently to this part of the project.
>> >>
>> >> Well really Bronstein's book is self-contained. The unfortunate thing
>> >> for you is that half of it is already implemented, so the
>> >> prerequisites are really more like "the first half of Bronstein's
>> >> book". I think you have a good opportunity to catch up, especially
>> >> since you are still early. You should read through chapter 2. This
>> >> gives a more algorithmic introduction to abstract algebra than you may
>> >> have seen before. Chapter 3 gives a good understanding of the rational
>> >> algorithm, but it is not necessary to understand all the algorithms
>> >> there, except the Lazard-Rioboo-Trager, which is the one actually
>> >> used. This is important because the full algorithm is just an
>> >> extension of this algorithm, so understanding the basics of how it
>> >> works is important. Chapter 4 is entirely theoretical. You should get
>> >> an understanding of differential algebra, but a deep understanding of
>> >> chapter 4 is not fully required. Most of it is just there to prove the
>> >> theorems, particularly the Liouville theorem. A lot of it is there
>> >> only to prove the algebraic case, which is not even described in the
>> >> book.
>> >
>> > We all miss the volume II he wanted to write :-(
>> >
>> >> It really depends on how you learn, though. If you feel you
>> >> learn better by really understanding all the mathematics, then you
>> >> should read chapter 4 more carefully.
>> >>
>> >> Chapter 5 is the most important. This you should read and understand
>> >> (with the possible exception of the proof of Liouville's theorem,
>> >> assuming I remember correctly that it's in this chapter). This is the
>> >> "base" algorithm. Most of it is already implemented, in risch.py.
>> >>
>> >> Chapters 6, 7, and 8 are nitty-gritty details of the sub-algorithms.
>> >> You really don't need to worry so much about the parts that are
>> >> already implemented. It depends on what you plan to do in your project
>> >> too, but in many cases you can worry about things when you get to them
>> >> too.
>> >>
>> >> Chapter 9 is more heavy on the math than what you really need to know
>> >> to implement it.
>> >>
>> >> I recommend starting with chapter 2. Try to find the implementation in
>> >> SymPy of the algorithms as you go through them, and play with them
>> >> using your own inputs. This will help you learn SymPy and the polys
>> >> module as well (the polys module can be a bit confusing so let us know
>> >> if you can't figure stuff out with it).
>> >>
>> >> You should also try to follow the Risch code, say for some simple
>> >> inputs, alongside the pseudocode in Bronstein. Don't worry too much
>> >> about the code in DifferentialExtension to start with.
>> >>
>> >> > I would be really glad if you could link me to some literature on
>> >> > net which explains the Risch algorithm and implementation issues.
>> >> > In the meanwhile I'll try to procure the mentioned text from my
>> >> > college library.
>> >>
>> >> Read Bronstein's "symbolic integration tutorial"
>> >
>> > Yes, this a great "short version".
>> > There is also a Thesis called "Symbolic Integration"
>> > by BJÖRN TERELIUS. (You should be able to find this on
>> > the net, otherwise I'll send you a copy.)
>>
>> There is also some paper that I found pretty useful for understanding
>> the extension tower concept. I can't remember who wrote it or what
>> it's called. It might not even be a paper, just a chapter from a
>> textbook on computer algebra, but I do remember that it has the
>> example from https://code.google.com/p/sympy/issues/detail?id=2010#c1.
>>
>> There are also a ton of references in Bronstein's book.
>>
>> But I would always start with Bronstein, because his writing is the
>> best, and then fill the gaps with other resources.
>>
>> Aaron Meurer
>>
>> >
>> > --
>> > 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 sympy+un...@googlegroups.com.
>> > To post to this group, send email to sy...@googlegroups.com.
>> > Visit this group at http://groups.google.com/group/sympy.
>> > 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 sympy+unsubscr...@googlegroups.com.
> To post to this group, send email to sympy@googlegroups.com.
> Visit this group at http://groups.google.com/group/sympy.
> 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 sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to