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.
  • #36
wrongusername said:
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].

use the Join[] command

a = RandomInteger[10, {3, 3}]
b = RandomInteger[10, {3, 3}]
c = Join[a, b, 2]

The '2' in Join, means to join them side-by-side horizontally.
To Join them on top of each others, use '1' in place of '2'.

--Nasser
 
Physics news on Phys.org
  • #37
I use mathcad and maple. i tried to learn mathamtic and MATLAB but i could'n
in my opinion mathcad is easier to learn from the others.
 
  • #38
PerennialII said:
. 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. .
This is not true. judging from that statement, I have a feeling that you have not even seen Mathcad, not used it. In our University, it's the program used by Engineers ( including 99.9% of chemical engineers), chemists, chemical physics to do serious chemical (kinetics etc) simulations etc. It's a very powerful program.
PerennialII said:
. I prefer Matlab in numerical number crunching tasks over Mathematica, but everything else I do pretty much with Mathematica.
Mathcad does all that plus other stuff faster than mathematica , MATLAB etc.
 
  • #39
mccoy1 said:
This is not true. judging from that statement, I have a feeling that you have not even seen Mathcad, not used it. In our University, it's the program used by Engineers ( including 99.9% of chemical engineers), chemists, chemical physics to do serious chemical (kinetics etc) simulations etc. It's a very powerful program.

Mathcad does all that plus other stuff faster than mathematica , MATLAB etc.

Eh, I prefer Mathematica now after using it so much at UCLA. It's got a sort of Python/C++ feel to it. Here, it's the program that the physics department uses.

But I'm intrigued. Would it be easy to simulate, say, a number of particles bumping around in a box?
 
  • #40
I say that Mathcad is easier to learn not good or bad.
I'm using Mathcad and Maple
 
  • #41
I use MATLAB and there are its advantages and disadvantages:
Advantages:
It let's you work in Matrices easily. It let's you do some complicated calculations quickly, without having to write a whole program or spreadsheet. Tons of add-ons and workbenches available to do a variety of tasks.

Disadvantages:
Just about everything else: horrible syntax, horrible development environment, dynamic types, not OO, a software development nightmare. It wasn't developed from a software development perspective, and it shows. Every lesson learned from the 30+ years of software development has been lost on this application, which forces users to do things that make any sensible software developer cringe
 
  • #42
daceymathers said:
I use MATLAB and there are its advantages and disadvantages:
Advantages:
It let's you work in Matrices easily. It let's you do some complicated calculations quickly, without having to write a whole program or spreadsheet. Tons of add-ons and workbenches available to do a variety of tasks.

Disadvantages:
Just about everything else: horrible syntax, horrible development environment, dynamic types, not OO, a software development nightmare. It wasn't developed from a software development perspective, and it shows. Every lesson learned from the 30+ years of software development has been lost on this application, which forces users to do things that make any sensible software developer cringe

From my limited experience with Matlab, I wholeheartedly agree with this. Matrices are so much easier to enter in, etc, than in Mathematica. But I hate the way it works.
 
  • #43
I am a bit discontent with this thread.
It would be nice for someone who knows all three programs to sum up their respective capabilities.
I have worked with both Maple and Mathematica, but >5 years ago. I used to do analytic or symbolic computations and computed e.g. high order Pade approximants which required the ability to calculate with floating numbers of high precision.
At least at that time, I perceived MATLAB as a program to do numerical, especially matrix operations, and more taylored towards engineering needs.
I preferred to code matrix operations manually using lapack and the like, so I did not see a need to cope with matlab.
How are the symbolic capabilities of MATLAB today, e.g. like finding an asymptotic expansion of the Macdonalds function with complex index?
 
  • #44
daceymathers said:
I use MATLAB and there are its advantages and disadvantages:
Advantages:
It let's you work in Matrices easily. It let's you do some complicated calculations quickly, without having to write a whole program or spreadsheet. Tons of add-ons and workbenches available to do a variety of tasks.

Disadvantages:
Just about everything else: horrible syntax, horrible development environment, dynamic types, not OO, a software development nightmare. It wasn't developed from a software development perspective, and it shows. Every lesson learned from the 30+ years of software development has been lost on this application, which forces users to do things that make any sensible software developer cringe

You can do OO in matlab. the syntax is a lot like c except that its not hardtyped.
 
  • #45
Hi, folks,

I'm looking to put together a toolset outside of Excel that will be used for risk analysis, forecasting, and eventually developing machine-learning algorithms for a financial services company. Excel is undeniably entrenched in ours, as in most, businesses, and that's fine. It's useful, and I think the best Microsoft product. But I'd really like to be able to work at a deeper level, both logistically and analytically, as we try to do more with our data, and as I learn how.

I'm a fan of Python though still basically a neophyte. I've similarly been a fan of the Sage project (http://www.sagemath.org/) for a while and puttered around with it. I'm not sufficiently committed to nor proficient in either, nor any other particular platform that might be used for data analysis.

Which is to say I'm in a position to need some more power tools and while I'm slightly predisposed to trying Python (using, perhaps, the pandas and scikit-learning libraries as well as Sage, which is developed in Python also) I'm not beholden to any particular system. I've just looked at Mathematica for the first time in a while, and considering how broad its reach is now (e.g., all of periodictable.com--built by Wolfram Research co-founder Theodore Gray--is generated with Mathematica) I'm intrigued. Matlab seems perhaps more focused on the functionality generally collected under the umbrella "data analysis". Either is, I'm sure, more than capable for beginner-to-intermediate sophistication. There are, of course, a variety of other options to consider as well.

Buying into Matlab and Mathematica, though, is buying into some amount of proprietary technology. Conversely, starting with Python or R or other open-source tools probably means building more infrastructure by hand. Each sounds interesting, and there's some potential for overlap as they can talk to one another. But we'll be (I hope) building a department around this functionality and I'd like to start us out on solid footing.

I would defer to what our tech platform uses, but we're a small business that lives on Microsoft Office, Google Apps, and a bespoke PHP application, so there's not much constraint there.

Thoughts?
 
  • #46
DrDu said:
How are the symbolic capabilities of MATLAB today, e.g. like finding an asymptotic expansion of the Macdonalds function with complex index?

Matlab is not the first choice for symbolics. I've come to love it for numerical simulations, data visualization, and data crunching. I personally love the syntax with regard to flow control: it's very simple and straightforward, like python.

Edit: we use maple for abstract algebra and I think it's tops for that, but their numerics aren't as well thought out as something like matlab, imo.
 
  • #47
muraii said:
Hi, folks,

I'm looking to put together a toolset outside of Excel that will be used for risk analysis, forecasting, and eventually developing machine-learning algorithms for a financial services company. Excel is undeniably entrenched in ours, as in most, businesses, and that's fine. It's useful, and I think the best Microsoft product. But I'd really like to be able to work at a deeper level, both logistically and analytically, as we try to do more with our data, and as I learn how.

I'm a fan of Python though still basically a neophyte. I've similarly been a fan of the Sage project (http://www.sagemath.org/) for a while and puttered around with it. I'm not sufficiently committed to nor proficient in either, nor any other particular platform that might be used for data analysis.

Which is to say I'm in a position to need some more power tools and while I'm slightly predisposed to trying Python (using, perhaps, the pandas and scikit-learning libraries as well as Sage, which is developed in Python also) I'm not beholden to any particular system. I've just looked at Mathematica for the first time in a while, and considering how broad its reach is now (e.g., all of periodictable.com--built by Wolfram Research co-founder Theodore Gray--is generated with Mathematica) I'm intrigued. Matlab seems perhaps more focused on the functionality generally collected under the umbrella "data analysis". Either is, I'm sure, more than capable for beginner-to-intermediate sophistication. There are, of course, a variety of other options to consider as well.

Buying into Matlab and Mathematica, though, is buying into some amount of proprietary technology. Conversely, starting with Python or R or other open-source tools probably means building more infrastructure by hand. Each sounds interesting, and there's some potential for overlap as they can talk to one another. But we'll be (I hope) building a department around this functionality and I'd like to start us out on solid footing.

I would defer to what our tech platform uses, but we're a small business that lives on Microsoft Office, Google Apps, and a bespoke PHP application, so there's not much constraint there.

Thoughts?

I don't know about the others, but MATLAB works great with Excel. I would say if you want all the packages and technical support are willing to pay for it, go with matlab. But if you have the time to write your own scripts, hunt down non-standard packages, and learn to use them without tech support, then python is the cheaper option.
 
  • #48
Pythagorean said:
I don't know about the others, but MATLAB works great with Excel. I would say if you want all the packages and technical support are willing to pay for it, go with matlab. But if you have the time to write your own scripts, hunt down non-standard packages, and learn to use them without tech support, then python is the cheaper option.

Hi, Pythagorean, and thanks for the response. Interoperability with Excel is pretty key, as we'll never get rid of it. Especially if we can tie whichever CAS/numerical system into a high-end backend for Excel, it should be a good option. I'd like to remove a lot of the grunt work we now do in Excel to something such that Excel is a dumb terminal to the CAS/numerical system, albeit a dumb terminal with some light analytical tools.

Looking at Mathematica, they (predictably) also have Excel-facing functionality. However, it's an additional package costing US$249. Is Matlab's support more native?

If this fits better in a separate thread, I'm happy to take that up, but I figured so many people ask about these packages (thus this sticky thread) that I'd keep it here.
 
  • #49
The functions are called xlswrite and xlsread and I'm fairly sure they're standard. Matlab also has an open file exchange where you can download free usermade packages and functions.
 
  • #50
Hi friends,

First of all, sorry if my question sounds a bit elementary.
I am have just started to use the 'ScientificErrorAnalysis' package in maple 17.
I have some functions like:
f:=Quantity(10+2*x+x^3,0.4*x)
and I want to have the derivative of them.
When doing diff(f, x), maple give me

(D[1](`ScientificErrorAnalysis:-Quantity`))(x^3+2*x+10, .4*x)*(3*x^2+2)+.4*(D[2](`ScientificErrorAnalysis:-Quantity`))(x^3+2*x+10, .4*x)

What does it mean by D[1] or D[2]?!
Is it right if I just put
Quantity(2+3*x^2,0.4)
instead of diff(f,x) ?

Sorry, but I am always so confused with all these error functions! :(
 
  • #51
plot streamline for this equation y=(ψ-ax3 –cx)/b

hi

Please I need your help to plot in wolfram mathematica to plot streamline for this equation

To plot streamlines, we solve the given equation for either y as a function of x and c, or x as a function of y and c. In this case, the former is easier and we have

Equation for a streamline:
y=(ψ-ax3 –cx)/b
A=0.5
B=-2
C=-1.5

Thanks
 
  • #52
I've used all of these. Different tools for different purposes.
Matlab is for number crunching. It's better for efficiently loading, analyzing, and plotting real data sets. By efficiently, I mean in terms of time spent writing code. Everything is a matrix, so it gets more clumsy when working with things which aren't matrices.
Mathematica is better for symbolic math, and for plotting continuous functions (as opposed to tabulated functions).
Mathcad seems to have a weird purpose, when demonstrating the calculation to someone else is important. It is kind of interesting since it has the appearance of working on a piece of paper, which perhaps makes it better for presenting the calculation and results to an audience. The audience doesn't have to read code to appreciate and understand what you have done. Since you can arrange expressions anywhere on the paper, you have artistic freedom in making it presentable.
 
  • Like
Likes FactChecker and (deleted member)
  • #53
wrongusername said:
Eh, I prefer Mathematica now after using it so much at UCLA. It's got a sort of Python/C++ feel to it. Here, it's the program that the physics department uses.

But I'm intrigued. Would it be easy to simulate, say, a number of particles bumping around in a box?

I haven't tried a project like that yet. One may have to develop a way to tell the particles to reverse the normal component of the velocity when it collides or hits a wall, and in the algorithm I have in mind, would involve continuously comparing the locations of the particles, and performing the reversal if the appropriate conditions are met. This may be a little tricky to implement with the conditional functions available in Mathematica. For instance, but correct me if I'm wrong, Mathematica doesn't have conditional "blocks" of code which execute together, something you'd commonly see in C++/Python.

On the other hand, you could easily set up equations of motion through Hamiltonian mechanics and solve them numerically, but that would limit you to conservative potentials. It seems like a stretch, but maybe you could use delta functions as potentials? Prof. Corbin taught us how to simulate N-bodies which interact via gravity during one of his workshops. It is definitely good for certain simulations.
 
  • #54
cryora said:
For instance, but correct me if I'm wrong, Mathematica doesn't have conditional "blocks" of code which execute together, something you'd commonly see in C++/Python.

Do you mean like so?
C:
if (condition) {
   //Do some stuff that needs multiple functions
}else{
   //Do other stuff with multiple functions
}

You can do that with Mathematica using semi-colons

Code:
If[ condition,
     (* Condition evaluates as true *)
     temp = Table[ i, {i,1,100}];
     tempSquared = Table[i^2, {i,1,100}];
     tempSum=Sum[temp,{i,1,100}];
     tempSumSquared = Sum[ tempSquared, {i,1,100}];
     difference = tempSumSquared-tempSum; ,
     (* Else block *)
     temp = Table[ i, {i,1,100}];
     tempCubed = Table[i^3, {i,1,100}];
     tempSum=Sum[temp,{i,1,100}];
     tempSumCubed = Sum[ tempCubed, {i,1,100}];
     difference = tempSumCubed-tempSum;
]

It is harder to read in a notebook though.
 
  • #55
JorisL said:
Do you mean like so?
C:
if (condition) {
   //Do some stuff that needs multiple functions
}else{
   //Do other stuff with multiple functions
}

You can do that with Mathematica using semi-colons

Code:
If[ condition,
     (* Condition evaluates as true *)
     temp = Table[ i, {i,1,100}];
     tempSquared = Table[i^2, {i,1,100}];
     tempSum=Sum[temp,{i,1,100}];
     tempSumSquared = Sum[ tempSquared, {i,1,100}];
     difference = tempSumSquared-tempSum; ,
     (* Else block *)
     temp = Table[ i, {i,1,100}];
     tempCubed = Table[i^3, {i,1,100}];
     tempSum=Sum[temp,{i,1,100}];
     tempSumCubed = Sum[ tempCubed, {i,1,100}];
     difference = tempSumCubed-tempSum;
]

It is harder to read in a notebook though.

Yes, thanks for the correction. I didn't know you could do that. Does Mathematica have a simple way to implement more than two cases (in other words an equivalent to C++ "else if")?
 
  • #56
As far as I know it doesn't exist. You should read the docs to make sure I didn't forget something.
You could define a similar function yourself though.

Thinking about it for a while you could hack something together using the Which-function from the docs.
This discussion should be a separate topic.
 
  • #57
cryora said:
Yes, thanks for the correction. I didn't know you could do that. Does Mathematica have a simple way to implement more than two cases (in other words an equivalent to C++ "else if")?
Since Mathematica executes different code depending on whether the condition is true or false,
the functionality of "else if" can be implemented by nested if's:
Code:
If [ , , If [ , , ] ]
 
  • #58
I have been using octave instead of matlab. For the user, they seem almost the same, but octave is free software and MATLAB is proprietary.
 
  • Like
Likes proteo
  • #59
I use Matlab for numerical calculations. The language is very easy. It is on the other side very expensive. I use Maple for symbolic calculations.
 
  • #60
In the field I was in (embedded control laws), MATLAB was a must. We advised students that a working knowledge of MATLAB was an advantage when job hunting. It worked with Simulink and could auto-generate C code that ran on the on-board computers.
 
  • #61
I believe that Matlab scribts are more functional than Mathematica and maple. But I am also octave user.
 

Similar threads

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