- #1
keenPenguin
- 21
- 3
Hi,
I have always been in love with computers and started programing early. When I started my studies in Physics like three years ago, people often recommended Matlab. I spent a lot of my spare time playing with it (e.g. solving ODEs, plotting solution, animating, plotting and evaluating experimental data, ... pretty much anything except for simulink). I also used Mathematica from the start (nobody really recommended it, but I already loved CAS at school and figured Mathematica was the most powerful).
Right now, I am completing my Bachelor thesis, and I programmed like 95% in Mathematica. Now I believe that for most tasks (except perhaps for very matrix-related tasks), Mathematica is more intuitive and easier and more powerful for most tasks, e.g.:
What I'm saying is: Mathematica is an incredibly powerful tool for analytical manipulation (for which it was originally designed). But "secondary" features like plotting and numerical computation are so powerful now that I see only few areas in which Matlab (having no analytical manipulation functionality of its own) can compete.
What do you think of this? Do you also feel Matlab is widely overrated for Physics, whereas Mathematica should get more attention? Why do you think so many people use Matlab and ignore Mathematica?
I have always been in love with computers and started programing early. When I started my studies in Physics like three years ago, people often recommended Matlab. I spent a lot of my spare time playing with it (e.g. solving ODEs, plotting solution, animating, plotting and evaluating experimental data, ... pretty much anything except for simulink). I also used Mathematica from the start (nobody really recommended it, but I already loved CAS at school and figured Mathematica was the most powerful).
Right now, I am completing my Bachelor thesis, and I programmed like 95% in Mathematica. Now I believe that for most tasks (except perhaps for very matrix-related tasks), Mathematica is more intuitive and easier and more powerful for most tasks, e.g.:
- ODEs: I can't really say which system is more powerful, but Mathematica worked better for me. I had to compute huge amounts of ODEs with slightly varying initial conditions and a Table[NDSolve[...]] construct is much, much faster than a Matlab ode45 (or so) embedded in a for loop.
- Plotting: I think Mathematica is inarguably more powerful. There are many e.g. parametric plot commands (in 2D, 3D) which work both for continuous and discrete datasets and which Matlab does not have.
- Interpolation: Mathematica is incredibly versatile with interpolation. E.g., NDSolve[] returns an interpolating function instead of discrete data. First this confused me, but now I have learned to use it to my advantage. In my thesis, I made intersections between interpolated data and continuous curves (using FindRoot). These kind of tasks would have been very difficult to solve if one had no interpolation but only discrete data.
- Programming: Matlab is way better for doing tasks which need to be solved with classical, imperative programming. If one cannot wrap one's task into standard (and very fast) Mathematica constructs, one has a problem. However, Matlab is very slow unless one uses its constructs.
- Experimental Data: Both have curve fitting, allow easy plotting of the solutions, and there is standard deviation stuff etc. in either of them. Matter of taste.
What I'm saying is: Mathematica is an incredibly powerful tool for analytical manipulation (for which it was originally designed). But "secondary" features like plotting and numerical computation are so powerful now that I see only few areas in which Matlab (having no analytical manipulation functionality of its own) can compete.
What do you think of this? Do you also feel Matlab is widely overrated for Physics, whereas Mathematica should get more attention? Why do you think so many people use Matlab and ignore Mathematica?