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

Which program is best for me to learn?

  1. Jan 20, 2013 #1
    Hi, I'm in my third year of a physics program, and lately I have really been struggling to figure out what program would be best for me to learn.

    There are so many options out there. Octave, Scilab, Freemat, Matlab and then Maxima, Mathematica, Maple, etc.

    So my understanding is that the first group I listed is quite different from the second, and it's best for someone to learn one from each catagory?

    Right now, what's important to me most is just doing stuff like plotting graphs and solving equations. I guess mostly for my math classes. I have been using octave as like a general purpose calculator, but that's about it.

    Is the second group more useful for me for what I need to do right now? The other day I was trying to check my work for differential equations. I basically had a family of ODE's and I could not figure out how to get maxima to find the solution to the ODE (I was trying to make the bifurcation diagram).

    So I guess my question is "which of these two programs should I commit to learning as an undergraduate student with NO prior experience, or do I only need to learn one?"
  2. jcsd
  3. Jan 20, 2013 #2


    Staff: Mentor

    ok so since you want to plot stuff and may need to learn MATLAB then I suggest FREEMAT since its a MATLAB clone supporting the MATLAB core language and core functions.

    Its what I used to do Comp Physics projects. It was really great at generating simple charts. Eventually though you may need to go to MATLAB but delays paying the $100 until you really need it.

    For other kinds of programming theres Processing at Processing.org for java based graphics apps. Easy to use.
  4. Jan 20, 2013 #3
    Does your program recommend one or just leave it to you?

    Do you require a symbolic solution to your ODEs or is a numeric solution sufficient? Most applications should be able to generate a numeric solution (I know Matlab and Mathematica can).

    Another application to consider is Mathcad; it allows you to write many problems in near standard mathematical notation and plot the solution / inspect values on the same worksheet that you program. The first image below shows a simple ODE (Van der Pol) worksheet - define, solve, plot, all live and exactly as shown; changing a parameter results in the solution being updated and the plot updated accordingly. The second image shows a logistic map bifurcation generated by iteration.

    You should be able to download or otherwise obtain trial versions of Mathcad and Mathematica.



    Attached Files:

  5. Jan 20, 2013 #4
    holy smokes. That second image you posted is exactly the kind of thing I was trying to do. Is that mathcad?

    Yes I am looking for a symbolic solution sometimes. I have the understanding that octave, matlab etc do not do this
  6. Jan 20, 2013 #5
    Yes, it is Mathcad (Mathcad 15).

    Matlab has a Symbolic Toolbox (it's an extra not standard), Mathcad has symbolic capabilities built-in that are good enough for many purposes, Mathematica is probably the best one for overall symbolic capability. Sage may be worth looking at (I haven't tried it, though) www.sagemath.org/

    The image below is also Mathcad and took me about 2 minutes to implement. Mathcad uses ":=" to define variables/functions, "=" to numerically evaluate them and "->" (right arrow) to symbolically evaluate them. The standard numerical evaluation uses conventional IEEE floating point (in fact, it calls the processor's built-in floating point processing unit (FPU), as do standard Matlab and Excel) whereas symbolic evaluation is based on the MuPad engine and handles arbitrary size numbers (bignums). The calculus and other operators are 'drawn' by selecting them from a toolbar or using a keyboard shortcut.

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook