Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Are Mathematica, Sage and other algebra software worth it?
12 points by in9 on Feb 1, 2024 | hide | past | favorite | 13 comments
Folks, I got accepted into a master's degree in statistics. It was harsh progress since I was out of school for a while, and in my country, the master's programs tend to be tough to prepare students for Ph.D.s in other countries.

Now, during my entrance exam studies, I saw in the Casella and Berger book a recommendation to learn Mathematica (or something equivalent).

I already program quite well (Python, R, Go, Lisp some C) so no challenge on that side.

I'm somewhat insecure with my algebraic manipulations (takes me a few tries to find the correct way to solve a few problems).

So, I'm wondering if those types of symbolic manipulation software are something I should take some time to learn. I don't know anyone that uses them so I don't have anyone to ask.

If it makes sense, do you guys know of a nice introduction resource I could use?




As a student, I say just try everything you can and decide for yourself. Mathematica is basically a huge collection of already-implemented scientific algorithms. So, no more hunting for Python packages that may or may not work. The main downside is most people outside academia avoid proprietary languages -- and it's expensive for commercial use.

I'd say out of the box Mathematica has ... nicer visualizations, more available functions, better symbolic math, etc. It might be possible to get some similar functionality in Python, but it would be a hassle. On the other hand, Python will have the bleeding-edge latest implementations since more people code in it.

That said, Mathematica does keep up to date. For example, the latest version auto-imports neural net/LLM weights, visualizes their structure, and lets you capture values from anywhere in the circuit. IMO it's great for learning how they work. And it has some neat ChatGPT integrations, auto-runs code, etc.

- This is my favorite intro Mathematica book (for programmers/academic-minded people): https://www.amazon.com/Mathematica%C2%AE-Problem-Centered-Ap....

- There are also good free tutorials like their Fast Intro for Programmers: https://www.wolfram.com/language/fast-introduction-for-progr...


Thank you for the resources! Given that I already can handle myself around viz and algorithmic necessities, I can see the benefit of a centralized source of algorithms and plots. (But, after working a buck with Python and R I still can't find a better plotting library than ggplot2 :D)

My main interest is in algebraic manipulations. like trying to integrate symbolically or mapping between complicated sets, some optimization, etc. But I'm ahead of myself... I should check those resources you sent me, and then form a better notion of what it is that I want :D

Thank you for those, btw!!


ggplot2 is not the best visualization solution. It is simple, easy to learn and provides majority of plots you will need. But it cannot do everything and is not best in everything.


If you already program quite well, then I expect that you will find this software quite easy to learn. Sage, in particular, is built on top of Python.

That doesn't mean the math you implement in this software will be easy! But I expect that the programming itself won't prove to be much of an obstacle.

I definitely recommend you learn one or more of these languages -- but not necessarily to the scale where you're writing large and complicated programs. I use PARI/GP, a software package similar to Sage which is well suited for number theory in particular -- and my particular use case is a 40-to-150 line program that carries out some particular computation I'm interested in. Usually it will just be simple functions, array manipulations, for loops, computations, library calls -- programming at the level you'd master by the end of an intro CS course.


Uuu, wasn't aware that Sage is built on top of Python. This seems promising :D

Yeah. I don't think I'll be after achieving a dense knowledge of the language. I'm at the age (and mindset) for some pragmatics in my choice of learning tools.


I suggest staying away from proprietary systems like Mathematica or Maple.

What to use depends on what kinds of problems you need to solve. SymPy is really good for a lot of things, very simple to use, and just a Python library. Sage is more powerful in some areas (which may be irrelevant for your needs), but a much bigger beast. There are several old, powerful, clunky CASs like Maxima, Axiom, FriCAS, that you probably don't need.

I suggest starting with SymPy. Working on getting better at doing things by hand will be useful even if you mostly use a CAS in practice, since knowing how to do it by hand will mean you know what to tell the CAS to do.


I've dabbled with SymPy in the past. Maybe I should follow the Cassela and Berger appendix with both side by side. Might help me understand if there is some value in it.

And yeah. Proprietary software sucks. I suggested Mathematica because its what is mentioned in the book, and I don't hear much from others.


Last time, I tried to do some moderately challenging symbolic differentiation with SymPy, it threw NotImplementedException at me. Mathematica, on the other hand, chews through everything with no complaints.


Sage, Maxima, Fricas, etc. should also cope. I'm surprised SymPy gave you a NotImplementedError for differentiation; I think I've only met them in integration and DE solving.


Yes, I have a PhD in a mathy STEM field despite also not being that good at algebraic manipulation. Mathematica is much better at that than I am, I used a lot for my course work and research. Recommend you get a free student copy and just try it out, I don’t know any good resources I just dove in.


> Recommend you get a free student copy

The only free version I‘m aware of is the Raspberry Pi installation.


Many universities will have a portal where students and professors can get free or heavily discounted versions of software, such as Mathematica.


Not only discounted but free too.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: