Hi. Thanks for starting this discussion. My personal use of SymPy outside of developing for it has been in the math courses I have taken. Last semester, I used it a lot in my PDEs course, and occasionally in my linear algebra course. In both cases, I used it to do difficult computation, like Matrix multiplication or integration. Ironically, one of the modules that I find myself using the most when I use SymPy for school is the ODE module that I wrote. SymPy is generally sufficient for what I want to do, and I only turn to Maple when I want to do something more numeric, like plotting.
Two semesters ago, I had a mathematical modeling course. The course involved a lot of group work, and the work was done mostly in Maple or Matlab, with a presentation given in class. By the end of the class, we got quite a few people to use Octave instead of Matlab, since quite a few people (myself included) did not want to pay for Matlab, especially since at least in my case it would be something that I would never use again. We also went from only myself and another person in the class even knowing what Beamer was to about a third to a half of the class using it for the presentations (everyone else used PowerPoint). So I encourage those of you who are students to encourage your classmates to use open source software over the closed source alternatives, including SymPy. As for how to make SymPy more popular among undergraduates, I think one of the best ways to do it would be to create a nice interface to SymPy, like some kind of GUI. This would have to be something that runs in Windows. Most people are Windows users who do not know Python and aren't good enough or patient enough to install all the prerequisites for SymPy (like Python itself if you are on Windows). If there were a nice GUI that was friendly, like easy access to docs, automatic sympification (so no one gets caught by 1/2 problems), pretty printing, etc., then it would make SymPy more accessible to more people. I say this because most people that I know who use Maple are like this. Most of these people hate programming (or at least think they do because they were introduced to it with C and have never tried Python). Finally, I just want to remind everyone of the saying "if you build it, they will come." If you include behavior that would be useful to *someone*, those people will end up using SymPy because the behavior will be there. Aaron Meurer On Thu, May 12, 2011 at 1:25 PM, Tim Lahey <[email protected]> wrote: > On Thu, May 12, 2011 at 1:56 PM, Luke <[email protected]> wrote: >> This was pretty much my experience as well. I was introduced to >> Python in a graduate course and made the migration from Matlab over to >> Python over the course of a couple of years. In engineering there are >> few people using open source tools, I think mostly because people get >> used to doing things a certain way and don't want to change, and the >> vast majority of the software taught in engineering curriculum is >> proprietary. This makes it really hard to use open source tools and >> collaborate with other people in engineering because they often simply >> aren't willing to invest the time in learning new tools. In some >> cases, there isn't a viable open source tool to do the job, but often >> this isn't the case. Companies like Mathworks have gotten into bed >> with engineering departments and designed the course curriculum to be >> centered around tools like Matlab, so the level of entrenchment is >> quite deep. > > There are two reasons I see Matlab used a lot in engineering > departments. The first is that it's used a lot in industry. The second > is that it has quite a bit of functionality that's not available in > open source programs. The collection of toolboxes means it can do a > whole lot more. > > I'm still looking for an equivalent to the System Identification > toolbox. Parts of the functionality are in an Octave add-on, but it > doesn't look like anybody has bothered to implement ETFE (empirical > transfer-function estimate). Without that, I can't switch since I use > that function as part of some modal analysis code. Similarly, there > are a lot of toolboxes for control and the support for taking a model > and outputting embedded code to run on various hardware platforms. > That's a step up from just outputting C based upon a set of equations. > > I would quite like to completely switch away from Maple and Matlab, > but I can't. I've been trying the easier one first, Maple. One problem > is I already have a lot of Maple code I've written to support my work > so I need to convert that over to Sympy before I could do real work. I > don't have that time, so I've been sticking with Maple for the most > part, while trying to learn Sympy better. > > To switch from Matlab to Scipy, I'd have to recreate the Splines > Toolbox and parts of the System ID toolbox (my two main Matlab > toolboxes). The Splines Toolbox could be handled mostly by wrapping > the appropriate parts of the SLATEC library from Netlib, but the > System ID toolbox is much more work. > > Cheers, > > Tim. > > -- > Tim Lahey > PhD Candidate, Systems Design Engineering > University of Waterloo > http://about.me/tjlahey > > -- > 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.
