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.