On Thu, Jan 23, 2014 at 4:19 AM, someone <someb...@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+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