Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Matlab vs mathematica vs maple?

  1. Jul 4, 2005 #1
    I currently don't know how to use any such programs like this. I took a C++ class along time ago but barely remember it. I am a junior undergrad and feel like it is very important that I learn to use some such program like one of these.

    Does anyone have any suggestions on what would be the best program to learn might be, the best method, the best book or website or anything that could help me learn this stuff on my own?

    How important is this sort of stuff for a physicist? I know it's a stupid question but I figured I'd ask anyways.
  2. jcsd
  3. Jul 4, 2005 #2
  4. Jul 4, 2005 #3

    Dr Transport

    User Avatar
    Science Advisor
    Gold Member

    One of my colleagues has called MatLab "C Light" because the syntax is very similar. On a further note, there is a gnu program called Octave which is a free Matlab clone. The little I have looked at it really impresses me and I am working on learning it.
  5. Jul 4, 2005 #4
    you could prolly get a student edition to matlab... as for tutorials...look to your schools textbook/courseware and look for the Numerical Analysis/Numerical Methods/mathematical methods classes they will tend to be taught in matlab(sometimes even if taught from teh cs dept).
  6. Jul 4, 2005 #5
    To stir the pot I will throw my vote in for Mathematica, I like it better than matlab but thats just my personal opinion, you can't go wrong with either. I would d/l trials for both and do some simple stuff in them and see which one you like best.
  7. Jul 4, 2005 #6
    Octave is good stuff indeed. I use it at home and matlab at school/work. What it lacks is the useful tools for fitting functions into measurement data you can find in matlab's optimization toolbox. But then again if you need those you can try to program them yourself.
  8. Jul 4, 2005 #7
    I have some experience with Matlab/Octave.

    The main feature is its simple syntax in dealing with arrays and matrices, in C++ you must write a routine operating on each element, then, you always have to declare variables and you cannot work on the data you get as soon as the are in your hands since you have to compile an exe, with matlab these problems are overcome:

    A=[] (you initialize an empty array, the length is not necessary)

    if you wanted to delete one of the elements of B with C++ you'd have to work quite hard, with matlab it is enough for you to write:
    and the result is that B becomes [1,4,-2]

    or, for instance you can easily use operations like:
    A.^2, and every element of A gets squared (whereas A^2 is only defined for matrices nxn and represents the usual product)

    Anyway, the most of the Phisicists, as far as I know, is used to programming in old glorious Fortran.
  9. Jul 4, 2005 #8
    the other advantage of matlab is the addon toolboxes like the neuralnets which the others i believe lack. and you can't really do any 3D graphics with any of the 3.
  10. Jul 4, 2005 #9
    For a (67-page) technical comparison of these programs please see this file, but it might be a little outdated:
    For a more up-to-date and comprehensive comparison, please read the following articles from this years "Computing in Science & Engineering":

    Maple, Mathematica, and Matlab: the 3M's without the tape
    Chonacky, N.; Winch, D.;
    Computing in Science & Engineering [see also IEEE Computational Science and Engineering]
    Volume 7, Issue 1, Jan.-Feb. 2005 Page(s):8 - 16

    Reviews of Maple, Mathematica, and Matlab: Coming Soon to a Publication Near You
    Chonacky, N.; Winch, D.;
    Computing in Science & Engineering [see also IEEE Computational Science and Engineering]
    Volume 7, Issue 2, March-April 2005 Page(s):9 - 10

    3Ms for Instruction: Reviews of Maple, Mathematica, and Matlab
    Chonacky, N.; Winch, D.;
    Computing in Science & Engineering [see also IEEE Computational Science and Engineering]
    Volume 7, Issue 3, May-June 2005 Page(s):7 - 13

    These actually is an on-going series of articles on this topic in the journal "Computing in Science & Engineering", so keep checking. And if you don't have access to the journal, please PM me and I'll be happy to send you the articles.

    Hope this answers some of your questions. I personally suggest Mathematica and the "Mathematica Book" comes with the software as the best resource for learning how to use the program. (After you finish reading the Book if you still want to learn more, try Michael Trott)
  11. Jul 4, 2005 #10
    Here is my experience with the three:

    Mathematica is used mostly by our math department. They like it okay, but all of the Math people in the Center for Nonlinear and Dynamical Studies use MATLAB. The engineering programs swear by MATLAB, and I'm fairly sure MATLAB is the best for hardcore number crunching. Maple has the smallest learning curve, and is useful if you're doing a lot of analytic work, since Maple is very good with algebraic manipulation and symbolic stuff. So I guess it depends on what you're working with.

    I use Maple when I'm checking some gross integral or want to make some really quick 3-D plots of things, and MATLAB when I'm doing really large numerical work (on my system it runs 100,000 iterations on a simple recursion relation I programmed in about two minutes). I have almost no exposure to Mathematica.
  12. Jul 5, 2005 #11


    User Avatar
    Staff Emeritus
    Science Advisor

    I have only been exposed to an old version of Maple - but I like it a lot. It is very useful for very complex symbolic manipulations all by itself. You can, for instance, write down complex Lagrangians or Hamiltonians and symbolically do all the necessary differentiation. You can find oddball intergals. If you can't solve a problem analytically, it has routines to solve the problem numerically. You can generate plots of equations, or of numerical solutions to equations.

    Maple also very useful with the free program "GRTensorII" for working with tensors, especially (but not limited to) the tensors found in GR. There is a lmited version of GRTensorII which works with Mathematica called GRTensorM, but I've never used it.

    In the freeware department, "Maxima" has some of the symbolic capabilities of Maple, but it's not nearly as powerful or complete, and seems harder to use.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook