RE: [math-fun] ??? maple, mathematica, matlab ???
Hi, I can only compare Mathematica and Matlab/Octave. In short: for pure mathematics only Mathematica. for applied mathematics it depends. ;-) Syntax: Matlab is a programming language like C or Fortran with extensions to matrix computations. You can quite easily write big simulation programs. Mathematica is more list-oriented, I would call it. The syntax of Mathematica is more complicated. If you are interested in symbolics: only Mathematica is worth considering (it offers an incredible amount of built-in functions from nearly all fields of mathematics. you will need some time to get into using it. if you do complicated things, it is worth it). Regarding numerics: For a long time it was said that Mathematica is not as efficient in doing numerics as Matlab, sometimes with a factor of 100 or so less. I think this changed a lot in the last versions when Mma integrated LAPACK routines. The debug possibilities of Mathematica are not good in my oppinion. If you just want to test the syntax of Matlab, you can go for the open source GNU clone Octave http://www.octave.org. The plotting capabilities of Octave are not sufficient in my oppinion (only command line interface, no zooming...). Here you would need Matlab. If we have more info what you would actually like to do with the program we could give you more help. bye Christoph
I find Mathematica better with lists, matrices, vectors. I find Maple better when writing nested loops, the syntax is easier. In maple you would write "for i from 1 to 10 do print(i) end do;" It's easy to put a while statement inside that. In mathematica you have to write "For[i=1,i<4,i++, Print[i]]" which gets complicated when nesting one inside another. A least for someone as bad at programming as me. Gary McGuire
Gary>I find Maple better when writing nested loops, the syntax is easier.
In maple you would write "for i from 1 to 10 do print(i) end do;"
In Macsyma, just "for i thru 10 do print(i)" If you don't need the index, "thru 10 do ..."
It's easy to put a while statement inside that.
"for i while i^3<1111 do print(i)" or "for i:2 unless integerp(sqrt(fib(i))) and not primep(i) do print(i-1)" or "for i:x^4+14 step -1 unless operatorp(factor(i),"*") do print(15+x^4-i)" or "for i:1 next 4*i while i<10^6 do print(logb(4,4*i))" . Macsyma's help is better, too. --rwg
participants (3)
-
Gary McGuire -
Pacher Christoph -
R. William Gosper