Mathcad vs MATLAB vs Maple vs Mathematica

In summary, experts recommend Matlab, while novices prefer Maple. Mathematica is seen as having the best graphical capability and being the fastest numerical program available.
  • #1
Entropia
1,474
2
What are the advantages and disadvantages of MATHCAD, MATLAB, maple and mathematica?

Which one do you use, and why?
 
Physics news on Phys.org
  • #2
I like Matlab best and it has a student version for $50 that does everything most people need. The syntax is similar to C so if you know C it is easy to program. The documentation is not so good but I find Matlab easier to use than Mathcad. Most people learn it by modifying other peoples files.

Experts swear by Mathematica but novices swear at it. I am told it can do things that Matlab cannot but I have not yet discovered what that might be (twelve years use so far).

I have zero experience with maple but it is popular at some universities.
 
  • #3
Having tried Maple and Mathcad, I much prefer maple. I found it easier to manipulate equations etc.
 
  • #4
Originally posted by mmwave
I like Matlab best and it has a student version for $50 that does everything most people need. The syntax is similar to C so if you know C it is easy to program. The documentation is not so good but I find Matlab easier to use than Mathcad.

I'm a MatLab fan myself too. And mmwave says it just right. I tryed MathCad before that and I found it a bit difficult.
MatLab has a very good communications library and cool image processing functions.
I also heard good things about Maple...
 
  • #5
I use Matlab almost exclusively for my assignments. It has enormous capabilities, and is very simple to figure out the basics.

The only other software package which you listed that I have seen was Maple. I didn't get very deep into it... the hyperstringent syntax requirements really put me off to it.
 
  • #6
Matlab actually uses Maple as its 'Symbolic Toolbox.'

I used to prefer Matlab for numerical computation, and Maple for symbolic computation. Mathematica has, IMO, very unusual and sometimes very cumbersome syntax, but does everything Matlab and Maple do all in one place.

Mathematica is also generally regarded as having the best graphical capability, and being the fastest numerical program available.

Overall, I prefer Mathematica, but end up spending a lot of time in help files trying to remember the right syntax for rarely used functions.

Another oddity is that all of the computer algebra programs are prone to occassionally producing bad equations that, well, look right! We often end up running the same caclulations on Matlab and Mathematica side-by-side to see if the two packages agree on the solution. The ODE solver was almost always the culprit. Mathematica version 5 (hot off the press) is supposed to have a totally redesigned and reimplemented ODE solver, so perhaps it will behave better.

- Warren
 
  • #7
I use MAPLE and MATLAB, and love them both like my children.

I use MAPLE as an expensive calculator, usually when I want to check things I've worked out. I use MATLAB for project work. I like MAPLE since it's easy just to type something up and see what pops out. Not used any of the others listed.
 
  • #8
What are any advantages and disadvantages of this other software compared to MATHCAD?

I have been a MATHCAD user for years. I have been thinking about expanding my horizons.
 
  • #9
Hi!
I am a user of mathematica and I can imagine why novices/matlab find the syntaxes a bit of a letdown. Heres what i do all the time.

1) No need to remember function names
All mathematica functions start with capital letters, so you always know that if you want to integrate you need to begin with the letter "I". Next hold down the control key and press "k" (ctrl + k). All the functions starting with I appear right under your fingers! Keep typing (e.g: integr...) and you will see that the list keeps on filtering. Or you can just select the function from the drop down list you were looking for and hit enter. You don't even need to type the name of the function yourself.

2) No need to remember syntaxes
After completing the the name of the function press "shift+control+K". The whole syntax will pop up! As a bonus dummy parameters are in place too! :surprise:

Also, you can always type ?FunctionName to get help on a function (right inside your notebook).

I don't remember when I last left a Mathematica notebook on which I am working to open the help and look for syntaxes (literally). Everything is presented to you under your cursor.

Take care
buffer
 
Last edited:
  • Like
Likes Ragnar OK
  • #10
umm.. you don't need any of that stupidity in Matlab.

in MATLAB you just press int and click tab twice, and it will give you all possible functions

and if you don't know how to use it, type 'help int' and it will give you the syntax with examples.

matlab's beauty is in simple, yet very powerful set of tools.

ive tried maple and mathematica and i must say they both suck just for those reason - they are overly complex

go with MATLAB - you won't regret it
 
  • #11
My school strictly uses Mathmatica, and, as you said, the students swear at it. I, on the other hand, don't have much of a problem with it. I've thought about buying it but haven't decided if it's worth shelling out $135 for it.
 
  • #12
It's also from my experience that Mathematica doesn't have standard syntax. Often when loading an external package, such as Graphics`, you'll find that it's rather difficult to plot vectors compared to plotting vector fields because of the syntax issues.

Another Mathematica gripe is the way it treats matrices. Matrices are treated as lists, and in order to get a list to look like a matrix you must add an annoying "MatrixForm."
 
  • #13
matlab is the industry standard. Maple is what engineers and physics individuals use, cause its easier. then when they get to gradschool, they got to use something stronger. I don't know a single person who uses mathcad, I don't even know if it really exist. Mathematica is simply and faster then MATLAB when you are doing simply things. Programing is like C.
 
  • #14
I can see people feeling mathematica to be a bit complex syntax wise ... probably its greatest weakness is to get started. Of these 4 I've used Maple the least primarily because Mathematica does all that it does, and I've found it to be numerically a bit more efficient in my appls. Mathcad IMO is an extended scientific calculator ... the other 3 are meant for real scientific stuff and in such respect superior, but in simpler cases can be overly complex. I prefer Matlab in numerical number crunching tasks over Mathematica, but everything else I do pretty much with Mathematica.
 
  • #15
There's a very good article in the January/February issue of http://cise.aip.org/cise/ that looks at the origins and target users of Matlab, Maple and Mathematica. I imagine most university libraries ought to have a subscription to it. The issue isn't online just yet though.

I've used Mathematica and Octave (Matlab clone) and each has their strength and weaknesses and is geared toward a particular type of user and application.

I think Mathematica tends to be better at doing symbolic things, which Matlab doesn't do. But Matlab does do matrix things extremely well. Deciding which one is better will depend on what you want to do with it.
 
Last edited by a moderator:
  • Like
Likes Ackbach
  • #16
I've got a question about extracting a subset of an array within Mathcad. For instance, I've got two arrays - X, Y. I want to plot only the portion of Y where X is such that X > x1 and X < x2. How do I do that?

Thanks.

SC
 
  • #17
Travelling Sales Person

Does anyone have any websites to recommend on how to start MATLAB programming for Travelling Sales Person(tsp) problem?
 
  • #18
I know that Maple can export graphs as .dxf files only if they are 3D, which sucks! Can Mathematica do that also with 2D graphs?
 
  • #19
TSN79 said:
I know that Maple can export graphs as .dxf files only if they are 3D, which sucks! Can Mathematica do that also with 2D graphs?

".dxf" are 3D files... why would you want to export a 2D graph into a 3D file?
 
  • #20
Because .dxf is the only export format that AutoCAD can read...but I don't want a 3D graph, I only need 2D. But I solved this problem long ago, never mind.
 
  • #21
scasey1960 said:
I've got a question about extracting a subset of an array within Mathcad. For instance, I've got two arrays - X, Y. I want to plot only the portion of Y where X is such that X > x1 and X < x2. How do I do that?

Thanks.

SC
i think in MATLAB you could try using the function find(blabla), i am not sure how to use it.
or you could try the for loops for example you are given X[m,n] and Y[m,n] and you want to plot only those values of Y for which corresponding X is <x1 & >x2:
z=[];

for i=1:m
for j=1:n
if x(i,j)<x1 & x(i,j)>x2
z=[z;y(i,j];
end
end
end
plot(z)
 
  • #22
Matlab is best

Well the main advantage of MATLAB is, if you read any job discription for tech or science you will see MATLAB in rquired fields, ... maple and mathcad no where to be seen. The other big advantage is the MATLAB help is more easily available on internet, like on mathworks file exchange or kluid(http://www.kluid.com" ) both very good and dedicated MATLAB forums.

Matlab is way to go,

Irene


Entropia said:
What are the advantages and disadvantages of MATHCAD, MATLAB, maple and mathematica?

Which one do you use, and why?
 
Last edited by a moderator:
  • Like
Likes FactChecker
  • #23
solving system of nonlinear equations,

Hi All,

I have a system of 4 nonlinear equations with 4 unknowns.
Unfortunately since I use the MATLAB "syms", they are in very bad form (polynomial), something like
-------------
0 = 5/6*a-5/6*b-2/3*c+5/12*d+11/24*b*a^2+2/3*d*a^2+1/6*(-a+b-d-b*a^2)*a^2+1/3*b^2*a-1/4*d*(b^2+a*(-a+b-d-b*a^2))+ 1/4*(-b-c-d+d*a^2)*a*b+3/8*(-b-c-d+d*a^2)*a^2+1/6*(-a+b-d-b*a^2)*a*b+1/12*(-1/2*a-1/2*b*a^2+1/2*b+1/2*c-1/2*d*a^2-1/2*(-a+b-d-b*a^2)*a^2-b^2*a)*a^2 ...
0 = 5/6*a+5/12*b+1/2*c+d+2/3*b*a^2 ...
0 = -1/2*a+2*d*a*b-7/6*b+7/12 ...
0 = 5/6*a-5/6*b-2/3*c+5/12*d+11/24*b*a^2 …
[the equations are quite long]
--------------

Please help me with

1) How to convert these burdensome equations into the right form of usual polynomials?

2) What are the MATLAB commands used to solve these painful equations? I tried "solve/fsolve" but they could not handle the job (symbolic:solve:warnmsg3','Explicit solution could not be found').


Thank you very much,
 
  • #24
ZZTus - in this situation, you should use a symbolic solver, like Maple
 
  • #25
I'll come to the defense of MATHCAD.
I have been using Mathcad professionally for 20 years, and have done complex simulations in DSP and complex board simulations.
I have briefly used Maple V ( I thought it was very cumbersome at the time. Maybe they improved their interface ? ), and have to use Matlab a little lately ( The company I have been with for the past 4 years is officially "matlab" , but they let me use Mathcad).
Around me everybody is a MATLAB user, except 3 hardcore Mathcad users. From my own experience, the people are using MATLAB because in my field it is what they are used to from university, and they don't want to change ( I understand that ). I read somebody say that he still have to see something that he cannot do with Matlab, same for me with Mathcad... and I could argue that there are some design tasks that I can do faster with Matcad than my colleagues can do with matlab...
From everything that I have read, I retain one valid argument: Matlab is good because it is the standard... All the other arguments against Mathcad are obviously coming from people who never used Mathcad.
Mathcad is difficult to use ? Probably true for somebody who is very familiar with Matlab and is used to a given syntax. But in general completely false: That is Mathcad strength: More intuitive, no need to constantly refer to the documentation , drag and paste capability, more pleasant and easier to read formats etc...
Mathcad is bonified calculator: Nonsense. Of course it can be use as a calculator, But I can do complex simulations too, do good amount of Symbolic ( without having to pay extra for a separate module ), call Excel , Matlab or even a "C" function from within Mathcad.
I hear : Oh but Matlab can do matrices well... Who prevents you from doing the same in Mathcad ?
I have both mathcad and Matlab on my computer , I wrote some simple loops benchmark to test for speed... One to test log10 in a loop, one to test 4x4matrices multiplications, one to test fft. In each case MATLAB is quite slower.
Especially the log10 function in MATLAB that seemed to have been very poorly written in my MATLAB version...
Another nice thing: Mathcad is very interactive. If you have a long simulation Mathcad is smart enough to realize that if you only change the value of one single parameter anywhere in the page, it only needs to recalculate the functions and graphs dependent on that particular value... Saves lots of time sometime...
And Mathcad is cheaper comparatively than other programs...
Well there are some disadvantages to Mathcad:
1) It is not the standard... and my colleagues let me know that often !
2) It is now owned by a CAD company, whose main product is not mathcad.
So trying to get any help from them is not fun to say the least.
3) The mass of information around is likely to be small compared to what is available for matlab. But their forum is not that bad... and there is a fair amount of work and examples that have been made available by some smart people.
 
  • #26
I use maxima and octave(both in win32[I don't use it often] and Linux on amd64[my main os]) and I'm quite happy
 
  • #28
HI...I used Matlab 7 for about 4 years in ChemPhys calculations...and I had a colleague doing similar calculations in MathCad11 ...with about the same CPU power.
I can tell you that the other guy was a smiling more than I was!...the main impression that I had was that in MATLAB the calculations would require much more time...sometimes hours in plus and that the graphics looked better...the equations were much easier to visualize and the immediately ready for paper inclusion...while in MATLAB I had to redo the equations in a text processor.

overall Mathcad gave him much more free time for beer ...and that is VERY IMPORTANT!

I'm in the process of stopping from using MATLAB and I'm trying to get into Mathcad or Mathematica ...I'm sick of writing lines an lines of code just to calculating some damn angles! :)
So most probably I'll give a try to MathCad or Mathematica ...I'll check the price and I'll flip a coin! :)
 
  • #29
I'd also look into Sage since I've heard it's good for doing symbolic math among other things. That and Octave both run on multiple OS's.

When I get time in the next few days I'm going to put Linux on my performance laptop, and use it as a calcuating and graphing machine. If only I could find drivers for my Xerox printer for Linux.

pp_muscimol said:
HI...I used Matlab 7 for about 4 years in ChemPhys calculations...and I had a colleague doing similar calculations in MathCad11 ...with about the same CPU power.
I can tell you that the other guy was a smiling more than I was!...the main impression that I had was that in MATLAB the calculations would require much more time...sometimes hours in plus and that the graphics looked better...the equations were much easier to visualize and the immediately ready for paper inclusion...while in MATLAB I had to redo the equations in a text processor.

overall Mathcad gave him much more free time for beer ...and that is VERY IMPORTANT!

I'm in the process of stopping from using MATLAB and I'm trying to get into Mathcad or Mathematica ...I'm sick of writing lines an lines of code just to calculating some damn angles! :)
So most probably I'll give a try to MathCad or Mathematica ...I'll check the price and I'll flip a coin! :)
 
  • #30
Matlab is good for numerical calculations. Matlab commands are easier to learn and its expressions are less cryptic than Mathematica. You can save sequences of commands and build functions using .m files. Matlab then allows you to run these .m files like you would run an interpreted program. Many toolboxes are available with Matlab. These toolboxes contain many special functions and save a lot of time and coding. Symbolic calculation with Matlab is weak, graphics/plotting is ok.

I like Mathematica for its strong symbolic calculation and graphics/plotting abilities. Mathematica has the look a feel of a worksheet or spreadsheet. Files are saved as notebooks. Mathematica allows you to use pallets and special characters that give the look and feel of equation writing on a piece of paper. For instance, an integral symbol looks like a hand written integral symbol. Matrices can look like hand written matrices. Greek letter characters are available. In addition, Mathematica can directly solve 2nd order ODEs numerically. Matlab and Mathcad require reduction to 1st order ODEs for numerical solutions.

Mathcad is the weakest offering of the three IMHO. Its main strength is ease of use and its use of symbols that look like real math symbols (integral symbols, derivative symbols, matrices et.) Mathcad makes documenting calculations a breeze.

I have done projects using all three. My choice is usually Mathematica for symbolic and plotting intensive projects. I like Matlab for larger numerical applications.

None of these software packages has the speed and/or data handling capability of a compiled computer language such as Fortran or C++. They certainly are easier to use though.

jsc
 
  • #31
Typing equations.

How do I write equations for the web, especially for these forums (fora?).

thank you
 
  • #32
Yes Virginia, there is a Mathcad

Hi All: I know I'm in the minority here, but I've used Mathcad all day everyday for the last 20 years. I started because it was cheap ($99 in 1992 dollars) and the upgrades stayed mostly cheap. I never use the symbolic stuff. For the most part I do modelling and DSP work developing algorithms from basic principles and lab data. You can easily pop from freq domain to time domain with a function call, and I've processed lab data captured on a high speed scope and created optimized models by computing, inverting and applying the 14x14 covariance matrix of the data ... that took a dozen lines of code. It is very easy to plot results. I also use simulink, which is much better for problems cast as signal flow graphs, but more awkward when I try to process and display data Which is probably because I don't know Matlab code. But I do write Veriloga and C extensively. In conclusion, in professional circles as in life in general, you need to pick your battles and pick your software. Learning Matlab and Mathematica are somewhere on my list, right after I brush up on my jazz sax skills.
 
  • #33
I love you response pixchips!

You have a tool that works for you and you know it well. Life is about more than just learning technology for technologies sake.

I just finished a take home final in quantum mechanics. It was a bear. I think this weekend I will get back to playing my guitar.

jsc
 
  • #34
Excellent question, I have used Mathcad, MATLAB, and Maple extensively, so i can answer for 3 out of the 4:

MATLAB:

most powerful for solving unique problem that require a great deal of iteration, loop manipulation, coding from the ground up. I like programming in MATLAB using M code, which is like C++ except more math related prewritten functions and less instruction needed to handle memory allocation. Also, the most extensive and powerful array/data struct handling capabilities I'm aware of.

I would use it to study discrete problems, heavy plug and chug problems, unique geometries that do not have close form solutions, neural network or other n dimensional curve fitting problems...MATLAB has an absolutely impressive library of functions that can do many jobs for you when supplied the necessary inputs/outputs. And if its not exactly what you want, you can usually look at the M code and modify to fit your problem!


Mathcad:

huge advantage over MATLAB is your mathematics look like mathematics!

all the calculus operators and formulation match the classical format and this makes it easy to explain your method to a friend, professor, boss, etc.

easier to read for sure. you can move your calculations around in free space however you want so it looks nice. the downside is its more difficult to see and manipulate arrays/data structs acting behind the scenes, not set up for more computer science application problem like image processing, etc


Maple:

if you're a math major then Maple, along with mathmatica I am assuming, will be very important. good for more advanced mathematics of continuous functions like Fourier series, diff eqs, etc where you want to find solutions to your eqn(s) and formulate derivations. also the math is easier to read than MATLAB, similar in this way to Mathcad, although you must enter calculation steps in a more rigid line by line manner than Mathcad.


Overall:

I use Mathcad to do moderately difficult homework problems in grad school where the analytical solution is given/known. I use Maple to derive/explain the mathematics behind analytical solution when its form is unknown/unclear. Finally, I use MATLAB to work on deep unsolved research problem where no solution is known, and perhaps the approach is not yet fully developed.

To all those who are reading, I hope this helps!
 
  • #35
Perhaps it's just my own stupidity, but I've just tried Mathematica out and I still haven't found a way to augment 2 matrices A and B together, which in Matlab would have been simply been [A B].
 

Similar threads

Replies
5
Views
2K
Replies
1
Views
2K
Replies
10
Views
2K
Replies
1
Views
2K
Replies
12
Views
3K
Back
Top