The new forums will be named Coin Return (based on the most recent vote)! You can check on the status and timeline of the transition to the new forums here.
The Guiding Principles and New Rules document is now in effect.
I am a math undergrad at university, and I don't really have any experience working with math programming languages or anything. So, I figured I should learn some. I've heard that Mathematica, MatLab, and Maple are the big 3 math programs. I don't really want to learn all three in depth, so I was thinking of picking just one. My university's computers have all three, so I have access to all three. Most of my study is in calculus/real analysis and especially probability and stochastic calculus. In terms of programming experience, I learned a little C++ years ago and I've forgotten it all, but I'm confident I can pick up syntax pretty quickly. I've heard that MatLab is the best, so I am leaning towards that, but I was interested to hear the forum's opinion.
My engineering proram is heavily invested in Matlab, so I don't know much about the other two. So far Matlab has gotten things done for me quite well, but it loves its matrices. I haven't had much luck doing calculus with it, but that may be due to lack of trying.
Well... my opinion is extremely biased because I haven't used Mathematica in years and have never used Maple. However, I use Matlab in my daily job and I'd recommend it.
The syntax is similar to C (and dozens of other languages), so if you have some programming experience you should be able to pick it up easily. At the basic level writing scripts is as simple as putting a bunch of Matlab commands into a file that you can call. Making it a function that takes specific inputs and returns a value is basically adding one more line of code to that file. There are many functions for reading/writing data in whatever format you happen to have it in.
Many math functions (especially on matrices as it's very matrix heavy) are easy to perform. There's a wide variety of visualization options for plotting/graphing, and there are many toolboxes (frequently open source) for dealing with specific tasks (neural networks, genetic algorithms, EEG and fMRI data analysis, ICA/PCA, signal processing, etc).
Of course, honestly most of what I said could probably just as easily be applied to Mathematica or Maple, I'm not really sure.
MATLAB is very powerful, from simple scripts to full on object-oriented stuff using MATLAB. It is very robust. However, MATLAB is a computational language, though with the appropriate toolbox it can do symbolic work as well. Maple is very very good at symbolic stuff. I know very few people that deal with Mathematica anymore, but ymmv. Out of the three, I'd go MATLAB. It's the most versatile, even if Maple does symbolic stuff a lot better. Also, MATLAB lets you brush up on your coding skills, though to be honest if fosters quite a few bad programming habits.
In my experience (which should be qualified with the fact that I haven't used Mathematica in probably 6 years), Matlab is better for data analysis/statistics type stuff, whereas Mathematica was better for pure math - type stuff (integration/equation solving/etc). However, I never really tried to do pure math in Matlab, so I shouldn't comment too much on it... I think my theoretical math phd friend does more Maple, but I've never personally used it
I mainly use MATLAB in my grad school math courses, with an occasional smattering of Maple. However, I mainly used Maple in my undergrad courses (particularly my diff equations classes). I've never used Mathematica.
In my experience (which should be qualified with the fact that I haven't used Mathematica in probably 6 years), Matlab is better for data analysis/statistics type stuff, whereas Mathematica was better for pure math - type stuff (integration/equation solving/etc). However, I never really tried to do pure math in Matlab, so I shouldn't comment too much on it... I think my theoretical math phd friend does more Maple, but I've never personally used it
This is correct. Mathematica will let you do some very possible stuff not possible in MATLAB. However, most of this you will not find common use for in most applications, hence why people here keep bringing up MATLAB. However...
Also, MATLAB lets you brush up on your coding skills, though to be honest if fosters quite a few bad programming habits.
This could go up as one of the biggest understatements ever. Engineers love MATLAB because it lets them code an idea VERY QUICKLY to see if it will work. But WORKING code doesn't mean good code for a number of reasons. MATLAB lets you do many things that any software engineer will tell you is retarded.
Edit: Reread OP. Just learn MATLAB. But bear in mind that in the future being able to code well in C++, Java, etc. could help you as a math major. So consider trying to take some CS courses while in school.
I think the deal is that each program is tailored towards a different discipline; I know that the engineers love Matlab. Do some reading (Wikipedia will probably help) as to finding the software that suits what you want to do.
In terms of LEARNING MATH, I don't think MatLab is going to help you. It is extremely powerful and has tons of great libraries, but you really need to know what you want to do before you do it. Mathematica is much more about symbolic manipulation (it has been a few years since I have used either) and would lend itself to teaching moreso than Matlab.
It really depends on what you're looking to get out of it. Matlab is the only one of the three that really counts as a marketable skill, so if you'll be getting a job straight out of undergrad, I'd pick Matlab. If you plan on going to grad school, pick Matlab if you plan on specializing in numerical approximation, otherwise you'll be more likely to use one of the other two. Which of the other two is pretty much a matter of personal opinion.
There are some things Mathematica does better, some things Maple does better. There are differences in terms of how they work as programming languages (Maple is procedural, Mathematica is functional), in their GUIs, how they implement algorithms. Basically, try to learn the basics of both, and go with whichever seems to click better, or seems more useful.
The physics program I just graduated from really loved Mathematica. It's very versatile and the graphics outputs are quite useful. However, as someone who also uses C and Ruby, I hate using Mathematica as anything but a differential equation solver- it's as slow as an interpreted language and yet still manages to be finicky as hell.
Posts
The syntax is similar to C (and dozens of other languages), so if you have some programming experience you should be able to pick it up easily. At the basic level writing scripts is as simple as putting a bunch of Matlab commands into a file that you can call. Making it a function that takes specific inputs and returns a value is basically adding one more line of code to that file. There are many functions for reading/writing data in whatever format you happen to have it in.
Many math functions (especially on matrices as it's very matrix heavy) are easy to perform. There's a wide variety of visualization options for plotting/graphing, and there are many toolboxes (frequently open source) for dealing with specific tasks (neural networks, genetic algorithms, EEG and fMRI data analysis, ICA/PCA, signal processing, etc).
Of course, honestly most of what I said could probably just as easily be applied to Mathematica or Maple, I'm not really sure.
This is correct. Mathematica will let you do some very possible stuff not possible in MATLAB. However, most of this you will not find common use for in most applications, hence why people here keep bringing up MATLAB. However...
This could go up as one of the biggest understatements ever. Engineers love MATLAB because it lets them code an idea VERY QUICKLY to see if it will work. But WORKING code doesn't mean good code for a number of reasons. MATLAB lets you do many things that any software engineer will tell you is retarded.
Edit: Reread OP. Just learn MATLAB. But bear in mind that in the future being able to code well in C++, Java, etc. could help you as a math major. So consider trying to take some CS courses while in school.
PSN: TheScrublet
I think the deal is that each program is tailored towards a different discipline; I know that the engineers love Matlab. Do some reading (Wikipedia will probably help) as to finding the software that suits what you want to do.
There are some things Mathematica does better, some things Maple does better. There are differences in terms of how they work as programming languages (Maple is procedural, Mathematica is functional), in their GUIs, how they implement algorithms. Basically, try to learn the basics of both, and go with whichever seems to click better, or seems more useful.
But MATLAB is, I believe, far more powerful.