On Tue, Jan 4, 2011 at 3:40 PM, Aaron S. Meurer <asmeu...@gmail.com> wrote: > Hi! > > This is an interesting question. I think it will take the whole community to > answer it, because there isn't anybody who knows everything of what SymPy can > do in every category. Rather, there are those who are up to date with the > quantum stuff, those who do a lot with the polys and simplification/solving, > those who do the numerical stuff, etc. > > So here is my view. I don't own Mathematica, but I do own Maple, so I can > compare to that. It may be a little slanted towards the things that I > use/have implemented in SymPy. > > Well, I could point out a dozen functions that do not even exist in Maple or > Mathematica (like subresultants), but I don't think that so much indicates > the strength of a computer algebra system. Rather, I think we should look at > more broad topics and see how they compare. > > With the new polys that are coming in the release, SymPy has moved very far > ahead of where it was with regard to simplification and, to some extent, > equation solving. Actually, I think solve() is one of the weaker points of > SymPy right now, because it can't handle some very simple non-polynomial > equations. For example solve((2**exp(y**2/x) + 2)/(x**2 + 15), y) from issue > 1572. This doesn't seem to be very trivial until you realize that y only > appears in the expression once. I believe things are improving on this front > in development branches, though. > > Another things that needs improvement is non-polynomial type simplification. > Polynomial type simplification (such as factoring, canceling, etc.) is very > strong with the new polys, but some kinds of transcendental simplification > could be improved (actually, in my experience, Maple can have trouble with > these things too, so maybe it isn't so bad in comparison). > > Is your friend solving differential equations symbolically or numerically? > Symbolic ODE solving is pretty strong (though not nearly as strong as it is > in Maple) thanks to my Google Summer of Code project from two years ago. > > Numerical things in SymPy are perhaps its strongest point, since we use the > excellent mpmath library to do numerical calculations. It is also (from what > I understand) pretty easy to link into numpy and scipy using the lambdify > function. > > integrate() is currently strong enough to be useable in a general > environment, but it is slow and doesn't always return a solution. This > should change soon after I finish implementing the Risch Algorithm, which > from my tests, seems to be on par with Maple as far as speed. > > Matrices are usable, but need to be improved in the same way that the polys > were. > > If we ever get the new assumptions in, they should be comparable to Maple or > Mathematica for things that aren't too complicated (they have some pretty > complex thing implemented, but for most things, it should be doable in SymPy). > > Others will have to tell you about the physics stuff. > > Another weakness of SymPy is that you can currently only run it in the > command line, which can discourage some people who aren't command line > people. But Ondrej is trying to rectify this. > > Finally, we need better documentation in many places. We also have a lot of > documentation that is good, but it only exists in docstrings (i.e., it is not > imported into the Sphinx docs), which isn't very helpful to new users. This > is actually a general problem that I have seen with Python projects. > > Are there any things I have forgotten here? Anything you want to more about? > > Overall, I would say that SymPy is a pretty strong computer algebra system.
The fact that it is not only open source, but that it is written in Python I think gives it a lot of momentum, because people find it very easy to get in the code and hack it and fix it or extend it. In fact, if you are going to do any kind of programming or extending of the system at all, then I would say that SymPy is by far the best, because it uses Python, rather than some strange invented language like Maple or Mathematica use. And the source is also the easiest to hack from any open source project I have ever seen, because it is in Python. The hackability of of sympy is one of its key strengths. This has really been evident with the quantum stuff we have been doing. It would be almost impossible to do the types of things are are able to do in a language like Mathematica or Matlab. I heartily agree with Aaron on this one. Cheers, Brian You don't have to worry about all the memory nonsense from C, and it's not unintelligible like lisp (have you ever tried reading the Maxima source?). And if you already know Python (which is more and more people these days, as it is being used as an introductory programming language more often), then learning how to use SymPy is very easy, because you just need to have a basic understanding of how it uses some of the Python features (like methods, tuples, etc.). So for that reason alone I would say that it has a better syntax than any other system. Other systems can invent any syntax they want, and this is sometimes abused with syntactic sugar that is hard to learn. Because we are restricted to use legal Python syntax (which is pretty strong nonetheless), we don't surprise/confuse the user as much. > > Aaron Meurer > > On Jan 4, 2011, at 3:40 PM, Sebastian Haase wrote: > >> Hi all, >> hi Ondrej, hi Aaron ! >> >> I am still not using sympy for anything yet, but I'm following the >> list and sympy's development in general with great interest. >> Just recently a friend of mine started having to do some differential >> equations for her PhD thesis and got (back) into using Mathematica for >> it. >> >> I remember, some time (years?) ago, Ondrej wrote a post here on the >> list, mentioning how he was browsing through an oldish Mathematica >> book noticing how many (little?) things there were left, where sympy >> could (or: would have to) improve on... >> I think at the time sympy started being able (using mpmath) to compute >> 1mio decimals of pi in a few seconds... >> >> So: How would you describe the state of sympy - maybe compared to >> Mathematica - today ? I guess, there a areas where sympy is already >> "better" than M. - quantum mechanics ... ? >> Could one say that the syntax is nicer ? >> Obviously, (I think) Mathematica's notebook is unsurpassed - but I >> guess, for that one could use Sage ... >> >> Thanks, >> Sebastian Haase > > -- > You received this message because you are subscribed to the Google Groups > "sympy" group. > To post to this group, send email to sy...@googlegroups.com. > To unsubscribe from this group, send email to > sympy+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/sympy?hl=en. > > -- Brian E. Granger, Ph.D. Assistant Professor of Physics Cal Poly State University, San Luis Obispo bgran...@calpoly.edu elliso...@gmail.com -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to sy...@googlegroups.com. To unsubscribe from this group, send email to sympy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.