Re: Comparison between Mathematica and other symbolic systems
- To: mathgroup at smc.vnet.net
- Subject: [mg92521] Re: Comparison between Mathematica and other symbolic systems
- From: Szabolcs Horvát <szhorvat at gmail.com>
- Date: Thu, 2 Oct 2008 18:47:48 -0400 (EDT)
- Organization: University of Bergen
- References: <gbt2q3$lcv$1@smc.vnet.net>
Paolo Bientinesi wrote: > Hi everybody, > > As part of a presentation to students, I will have to support the > claim that "Mathematica is better than other systems when it comes to > symbolic computations". Some experts in other systems will be > giving a 15 min presentation to convince the audience of the contrary, > and then it will be my turn. > > At this point I am quite clueless on how to make my point across. > First of all, I am not at all familiar with any other system's > symbolic toolboxes, so I don't know what are the weaknesses. Also, I > am not sure what kind of demo could really make an impression on > graduate students and colleagues. > > Has any of you any experience on this? Ideas? Suggestions? I expect that you already got several replies off-list, but here are a few more random tips (I won't attempt *comparing* Mathematica with other programs, I'll just highlight its strong points): 1. Don't present Mathematica as simply a computer algebra system. There are other areas it is very good at. In particular, it is very good at processing/transforming complex data sets, and it has very good plotting capabilities. Here's a non-CAS oriented comparison of programs that also includes some benchmarks: http://www.scientificweb.com/ncrunch/ 2. Make sure that you focus on Mathematica's powerful pattern matching capabilities. This is equally useful for both data processing and computer algebra. Here's a demo on the latter: http://reference.wolfram.com/mathematica/tutorial/AnExampleDefiningYourOwnIntegrationFunction.html You can also mention that Mathematica primarily (but not exclusively) uses the functional programming paradigm. But 15 minutes are just not enough to explain what this means and why it is advantageous for certain tasks. 3. Talk about how easy it is to create custom graphics. Unlike in some other systems, where one uses instructions such as "draw a line from point 1 to point 2", graphics are defined declaratively. Just list a set of graphics primitives. Here's a demo: rotate90[{x_, y_}] := {-y, x} koch[p1_, p2_, n_] := {koch[p1, p1 + (p2 - p1)/3, n - 1], koch[p1 + (p2 - p1)/3, (p1 + p2)/2 + Sqrt[3]/6 rotate90[p2 - p1], n - 1], koch[(p1 + p2)/2 + Sqrt[3]/6 rotate90[p2 - p1], p2 - (p2 - p1)/3, n - 1], koch[p2 - (p2 - p1)/3, p2, n - 1]} koch[p1_, p2_, 0] := Line[{p1, p2}] Manipulate[ Graphics[koch[{0, 0}, {1, 0}, n]], {n, 1, 5, 1} ] Graphics are expressions, too. They can be transformed like any other expression: Graphics[koch[{0, 0}, {1, 0}, 3]] /. Line[{p1_, p2_}] :> Circle[(p1 + p2)/2, Norm[p2 - p1]] 4. Depending on your audience it might be a good or a bad idea to show that Mathematica is a fun program: It can generate sounds as waveforms or even MIDI music: http://demonstrations.wolfram.com/topic.html?topic=Music&limit=100 5. And of course browse the demonstrations to come up with ideas! http://demonstrations.wolfram.com/ I am sure that everyone will appreciate Manipulate[].