6 ms·
Mathematica is cool but I haven’t found much of a space for it in my career. As a physics student I think I used it a total of one time to help solve a difficu
by mmmBacon 5y ago
Mathematica is cool but I haven’t found much of a space for it in my career. As a physics student I think I used it a total of one time to help solve a difficult integration that I couldn’t find in Gradshteyn and Ryzhik. In my professional life, I’ve tended to solve things numerically first with Matlab, then with Python and Numpy. Mathematica is still a cool tool.
- burntoutfire 5y ago+1. It's perhaps a good tool for pure mathematicians or theoretical physicists, but applied problems are usually to messy to nicely integrate/differentiate and you quickly have to resort to numeric methods or, more recently, to automatic differentiation. I for one bought the licence and was later very disappointed by how useless the tool was for the domain I intented to use it for (computer vision/3d reconstruction/SLAM).
- s0rce 5y agoI've been using it for 20 years and really like the ability to quickly analyze data. Mostly, I'm just used to the style and with a bit more practice could probably do these things in Python. I've occasionally also used it for difficult integrals. I really do like their documentation compared to what is most often available for Python packages.
- leephillips 5y agoThe problem with using it in research is that it’s a black box. This is not good for transparency or reproducibility. Science is moving toward open-source tools, open data, etc. for good reason.
- jiggawatts 5y agoIt’s still significantly better in practice than, say, Python where you need to resort to containers to have any hope of another person being able to run your data science stack successfully. Mathematica has this perception of being a black box, but much of its algorithms actually ship as plain text libraries. Its design also makes it trivial to cross-check results calculated with different algorithms. Their algorithms are also designed to be robust to numerical errors, and are professionally verified against various sources such as textbooks and research papers. Worse is better: people prefer to duct-tape random maths libraries together with Python from the Internet not because it’s better but because they feel more involved in the process. Even if Wolfram open-sourced Mathematica tomorrow, nothing would change.
- leephillips 5y ago> It’s still significantly better in practice than, say, Python where you need to resort to containers Just because it’s open doesn‘t mean it‘s easy. > Mathematica has this perception of being a black box, but much of its algorithms actually ship as plain text libraries. Still a black box. Unless everything is open—open language, open interpreter, open compiler—then it’s not open. > Worse is better Better is better. Avoiding black boxes is better for science. > Even if Wolfram open-sourced Mathematica tomorrow, nothing would change. I think this would be huge, and a lot would change. Many people would use it who avoid it now. It’s really innovative technology. Here’s one example of what I’m thinking about: Suppose I read your paper and you have a nice plot of what you say is a numerical solution to an ODE, using algorithm ABC as implemented in v.XXX of Mathematica, Rich PI Edition. I want to get solutions for some different parameters, so I start by checking that I can reproduce yours. I code the ABC algorithm up (in Julia, of course (or actually I don’t have to: look, it‘s already in DifferentialEquations.jl. Damn that Rackauckas is prolific.)). Anyway, my result is different from yours. What do I do now? Where are the details that might explain the difference? Have we implemented ABC in exactly the same way? You can‘t tell me.
- Rayhem 5y ago> Still a black box. Unless everything is open—open language, open interpreter, open compiler—then it’s not open. Then literally nothing is open because no one is doing any significant computing on a fully-open hardware stack.
- leephillips 5y agoProbably true, but is it relevant? I think the crucial question would be: is there any reasonable chance that the hidden microcode, or whatever is closed at the hardware level, affects the results of a numerical calculation? Because the details of how a compiler translates source to machine code can affect those results.
- jiggawatts 5y agoFirst of all, differential equations can generally be verified to be valid solutions by evaluating the solution functions. So you don't have to cross-validate to check the output. Mathematica does this for you. If it can't, it'll complain that the solutions are incomplete or are likely invalid due to numerical error somewhere. Chaos theory is highly relevant here -- there is no way to directly compare two numerical solutions to many ODEs if anything is different. Unless the code is literally the same down to the machine instruction levels, all bets are off. Even floating point rounding error will result in sufficient noise to cause divergence. Mathematica -- like most of mathematics -- is not designed to operate in a vacuum, outputting solutions that are simply published as-is. Everything you do with it should be rigorously proven and/or verified in some way to make sure that it makes sense. This ought to be the same with any tool. You don't necessarily need to know all of its internal details in order to do this. Like I said, run the equations forwards, substitute solutions, use symbol and numerical methods, graph the results and make sure they make sense, etc...