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?"