MATLAB? Mathematica? MAPLE? Other?

P

pibbur who

Guest
I'm going to buy a math software package. For recreational use/personal studies (when I retire). All these packages have cheap home editions. But what to choose?

MATLAB has a lot of DLCS's for specific purposes, among others for solving differential equations, which are one of the things I'm going to have fun with. I suppose the others have similar expansions, but perhaps not as many.

Tools/APIs for C/C++/C# would be nice.

Recommendations (other than "don't waste money on math")?

pibbur who at the moment have problems differentiating between the packages.
 
I'm going to buy a math software package. For recreational use/personal studies (when I retire). All these packages have cheap home editions. But what to choose?

MATLAB has a lot of DLCS's for specific purposes, among others for solving differential equations, which are one of the things I'm going to have fun with. I suppose the others have similar expansions, but perhaps not as many.

Tools/APIs for C/C++/C# would be nice.

Recommendations (other than "don't waste money on math")?

pibbur who at the moment have problems differentiating between the packages.

FORTRAN is all you need!

Jokes aside have look at http://www.sagemath.org/. Its open source and free.
 
Joined
Oct 8, 2009
Messages
4,425
Location
UK
Where I work, we have switched from Matlab to Python. Python has all the various modules available for free, which combined offer a similar functionality as Matlab.
It is apparently also faster in execution time.
 
Joined
Aug 30, 2006
Messages
11,223
Depending on what you want to do:

Matlab: mostly for general numerical analysis and (C-like) programming, and includes easy to use plotting and analysis features. Because it is a scripting language it is easy to use and flexible. Excellent for fast vectorisation and array manipulation. Has built-in GUI development tools. Toolboxes (cashgrab) are very useful (signal processing, image processing, control, .. etc) for specific branches of science and engineering.

If you want to see how it works, you can download Octave - which is an open-source and free software that functions similarly (but less powerful) than Matlab, and includes multitude of free toolboxes.

Mathematica: one of the very few and best tools for analytical mathematics (solving equations, PDEs, ODEs .. etc analytically). It also has numerical solvers of course. Programming/scripting is not as simple as Matlab and does not have that breadth in science and engineering toolboxes. The ideal mathematician tool.

I only tried Maple for a short while, and it functions similarly (and maybe faster) than Mathematica, but is becoming less popular now. There is not much difference between Maple and Mathematica in terms of purpose and function, and their use is based on preference/cost/.. etc.
 
Joined
Feb 2, 2011
Messages
2,818
Location
United Kingdom
Vaguely I think I remember Maple being easier to use than matlab as well as less expensive but that was a *long time ago* in a galaxy far far away. I haven't kept up with any of these packages as I haven't had a need for them. python is a programming language - and I think it depends upon your needs. I've not used python math libraries but a long long long (even before mathlab/maple days) I used fortrans libraries and they were both easy and pain. In all cases the problem was graphical presentation. These days my requirements would be simple enough that I would use a spread-sheet or a simple C program to generate output for a spread-sheet which can then graph the data.
--
From a 30 seconds peak it looks like sagemath (linked above) is a python program that combines the basic math libraries with graphic libraries to make life easy (so you don't have to program); but i haven't used it so no real or useful comments :)
--
Btw if you run linux (like myself); there is a package for sagemath.
 
Joined
Oct 20, 2006
Messages
7,758
Location
usa - no longer boston
Thanks for the advice.

I will for try open source/free SW, maybe that's good enough for my … purposes.

One thing of special interest to me is image processing. My master's degree thesis was about image processing of electron microscopic images from serial sections. I'd like to take up things like that again, and MATLAB has a very useful package for that. For HOME users the expansions aren't that expensive, about 45 USD/package (MATLAB itself cost 165 USD).

But anyhow, I'll see what I can do with free software first.

@you;: MAPLE personal license cost a bit more (240USD) that MATLAB Home. But maybe that package include more than the standard MATLAB edition. I'll check.

pibbur whose edges have become a bit sharpened now that retirment approaches.
 
I used to swear by Mathematica a lifetime ago. Such a powerful tool.

But it really comes down to your support structure (if you have one). Do you know anyone who uses one of those who could help you when you get stuck? Are there any instructional classes on any of them in your area?
 
Joined
Nov 10, 2008
Messages
5,978
Location
Florida, USA
I tried sagemath for about 10 minutes since it is easy enough to install on my linux computer (apt-get install sagemath). Anyway i don't have much of need for these sort of things and don't have a clue what you intend to do but following the manual i could solve simple equations and plot them - but the technical side of me screamed wrapper. The syntax is very code friendly ;). Not necessary a bad thing esp if it meets your need but don't expect a professional package with the trimming. Then again take anything i say with a very long grain of rice as I don't normally use these sort of things.
-
Btw if you want me to test something on sagemath let me know; then again if you install it yourself as you said above you would then .... good luck and report back !
 
Joined
Oct 20, 2006
Messages
7,758
Location
usa - no longer boston
I taught Matlab to engineers (civil, mechanical, etc. - electrical and computer engineers took computer science) because the reliance on abstract concepts in C++ right away overwhelmed them (the while loop was always difficult).

We needed to get these people to stop using spreadsheets which their engineering profs were no help on. In the end the end they always went back to the comfort of the spreadsheets anyway for crying out loud.

But they were great students. They worked hard, kept their mouth shut, and didn't have all the drama of comp sci students in general, like complaining they had to work in a group.

Matlab is really good for its built in linear algebra functionality. There's no need for building iterative loops. I also like its inline capabilities at the console.

Its only weakness was its reliance on third party algorithms. The open nature of all the contributions lead to a mess of inconsistency. But a student copy is a lot cheaper than Mathematica. At the time Fortran was trying to make some inroads as a new object oriented version of itself but no one bought into it.

I understand that https://www.wolframalpha.com/ is becoming a problem for grade school teachers. Kids keep looking this stuff up on their phones in class.
 
Joined
Oct 19, 2006
Messages
5,212
Location
The Uncanny Valley
… Do you know anyone who uses one of those who could help you when you get stuck?…

Stuck?

pibbur who pretends not to understand the question.

PS: I have people I can consult. But finding out things is part of the fun, and after all, fun is why I want to get this. BTW, back in my second University days (1990) I created a spreadsheet I could use for visualization and numerical solutions to different problems. I made it in Quattro, and I've no idea where it is now. DS.

PPS: Come to think of it, I also implemented a Turing machine in Quattro. Now that's what I call fun!!! DS.
 
Last edited:
BTW, Both Matlab and Mathematica sems to offer trial versions, so I can take a closer look at them - if I'm not happy with the OS packages.
 
Er - this does not compute. What sort of Eng student doesn't understand the concept of while bored write posts ? I mean it just isn't that difficult. I suppose if it had been expressed as "when not working write posts while at computer" it might be a tad more difficult to grab but whatever....

(the while loop was always difficult).
 
Joined
Oct 20, 2006
Messages
7,758
Location
usa - no longer boston
Er - this does not compute. What sort of Eng student doesn't understand the concept of while bored write posts ? I mean it just isn't that difficult. I suppose if it had been expressed as "when not working write posts while at computer" it might be a tad more difficult to grab but whatever….

I kind of understand it. You always teach them for loops first. When I was 12 learning to program they did the same thing to me. I don't believe while loops were even a thing in BASIC - you used goto loops and you conditioned your way out of them - which is all a while loop really is (and even a for loop).

After teaching four sets of Engr'g students I did see the struggle - it had nothing to do with smarts - it had everything to do with the fact that they were literal thinkers. If it wasn't solid enough you couldn't wrap your knuckles against it, it didn't exist.

So my method was to give them analogies. The first thing I said was, "I don't believe in software. Software does not exist. Its all hardware."

I would teach a for loop like it was a river running into a dam with a sluice gate. Once it got to 100m the sluice would open to let the water out.

Then I correlated the current of the river to an electrical current and the sluice gates in a computer were binary switch (literally a switch - I would draw it) of say 5v (1) and 3v (0).

So if they saw the condition as a literal switch that would help. I even recommended they draw a flow chart. Even then, too often I saw them try to write a for loop where a while loop made more sense.

I didn't teach them recursion.
 
Joined
Oct 19, 2006
Messages
5,212
Location
The Uncanny Valley
I know, right. Comp Sci and Engr stundents were two completely different animals. It was like putting the art students in with the business college.

Q: Are all odd numbers prime?

  • Comp Sci: 3 is prime, 5 is prime, 7 is prime, 7 is prime, 7 is prime….
  • Eng: 3 is prime, 5 is prime, 7 is prime, 9 is prime, 11 is prime… Seems like the answer is yes.
  • Art student: 2 is prime, 4 is prime, 6 is prime, 8 is prime…..
pibbur who doesn't consider 1 prime, and knows what a mathematician would answer.
 
Q: Are all odd numbers prime?

  • Comp Sci: 3 is prime, 5 is prime, 7 is prime, 7 is prime, 7 is prime….
  • Eng: 3 is prime, 5 is prime, 7 is prime, 9 is prime, 11 is prime… Seems like the answer is yes.
  • Art student: 2 is prime, 4 is prime, 6 is prime, 8 is prime…..
pibbur who doesn't consider 1 prime, and knows what a mathematician would answer.

Too funny. That actually makes some sense.
 
Joined
Oct 19, 2006
Messages
5,212
Location
The Uncanny Valley
I would think that you have a minor bug in your program Pibbur; as it would never end as presented. I think you meant:

pibbur(object who){while(who) pibbur(not who);}

but maybe I have no clue and you had it correct the first time.

Ouch!


Ouch!

pibbur(object who) {while(true) pibbur(who);}
 
Joined
Oct 20, 2006
Messages
7,758
Location
usa - no longer boston
I would think that you have a minor bug in your program Pibbur; as it would never end as presented. I think you meant:

pibbur(object who){while(who) pibbur(not who);}

but maybe I have no clue and you had it correct the first time.

while(true) { things to do; } is a common algorithm for infinite loops in C++ like languages because they don't have a specific flow control to do that. for(;;) was the old way and just looking at the syntax you can see why it was abandoned. while(true) { if(foo) break; } is the preferred method of while loops in python over while(foo != true) { things to do } for some reason - I suspect because its less work for the compiler (which IMO violates the "principal of least confusion" and is difficult to debug if you can't find or have many breaks).

Q: Are all odd numbers prime?

  • Biz: 2.00 is prime, 2.10 is prime, 2.21 is prime, 2.32 is prime, 2.43 is prime, 2.55 is prime….
 
Joined
Oct 19, 2006
Messages
5,212
Location
The Uncanny Valley
I know very well what an infinite loop is and that is find and dandy; however, infinite recursion is problematic.... Btw I prefer do { } while (true);

while(true) { things to do; } is a common algorithm for infinite loops in C++ like languages because they don't have a specific flow control to do that. for(;;) was the old way and just looking at the syntax you can see why it was abandoned. while(true) { if(foo) break; } is the preferred method of while loops in python over while(foo != true) { things to do } for some reason - I suspect because its less work for the compiler (which IMO violates the "principal of least confusion" and is difficult to debug if you can't find or have many breaks).
 
Joined
Oct 20, 2006
Messages
7,758
Location
usa - no longer boston
Back
Top Bottom