Sage Reference


What is Sage?

From the sagemath.org website:
SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers.
Put simply, Sage is among the most powerful and sophisticated mathematical software - and it's free! Not only that, but you can contribute. If there's a feature you find missing, you can write your own code to be included in the software that's available to mathematicians everywhere. Sage is built on Python, so some basic Python knowledge is helpful.

Some notable facts about Sage:
  • Sage first appeared in 2005, and was developed by William Stein, a mathematician at the University of Washington.
  • Sage contains a wide number of mathematics packages to accomplish just about any task. Most of these packages were written specifically for Sage, while others were included from other open source software such as GAP, Maxima, and Magma.
  • New versions of Sage are released frequently, so new updates are never far behind. Releases are dated at most one month apart.
  • SageMathCloud was released in 2013, and already has over 30,000 users. It can be used to run Sage/Python code, as well as code written in R, C++, Java, Perl, Ruby, among others. There is also a full LaTeX editor.
  • Files and projects created in SageMathCloud can be shared and collaborated on in real time.

How to Use Sage

There are several options for using Sage:

Installing on your machine

The advantage here is that you can use your own computer's power to perform computations even if you don't have an internet connection, but you still have access to Sage's server if your machine is online. A disadvantage is that Sage is difficult to install on a Windows machine - Mac and Linux users should have no problem, so if you have a Mac or would like to experiment with Linux, I would highly recommend installing Sage locally. Again, it's free, and is fairly "lightweight" in terms of disk usage and system requirements.

If you'd like to install Sage, go to the Sage website and click Download. You'll be presented with a list of possible servers from which to download the package. Choose one closest to you (any in North America should be fine), and install as usual.

The old online Sage Notebook

This was my preferred flavor of Sage until recently, but new users are unable to create an account, and the Notebook is no longer supported. I would not recommend this option now, but if you are curious about what Sage used to look like, here's the old sign in page. I'm only including the Notebook on the list for historical reasons - this was the first GUI for Sage; before Notebook, Sage was run entirely in the terminal. Even though it ran in a browser, no internet connection was required.

Sage Cells

This is a very useful, often overlooked option, though it's not meant for large projects or work that needs to be saved. Sage 'cells' can be embedded in any web page, like this one. Click the 'Evaluate' button below to find the value of \(f(x) = 3x^2-\sqrt{x}+1\) when \(x = 4\). Note, you may have to accept the terms of use the first time you run a cell on your machine - you will not need to keep doing this.

Not impressed? The cell isn't 'programmed' to only handle this simple example. Change the text in the cell to any Python or Sage code you like, and evaluate again. Try something as silly as 1+2, or something like plot(x^3) if you'd like to see a nice picture. There are also many options for customizing the cells, if you plan to use them in your own web pages. The tutorials in these pages will make frequent use of cells.

Sage Cloud

Sage Cloud is by far the easiest way to get started with Sage, and is getting better all the time. You'll need an account (free!), and you'll be able to create as many projects and files as you like. The learning curve has flattened out a bit, and Sage Cloud now includes lots of "helper" features like basic structure and syntax templates, examples of mathematical object definitions and methods, and more. You can use Sage Cloud for more than Sage too - it's also a great way to try programming in a variety of languages (including basic Python, of course) and even typesetting languages like HTML and LaTeX.

To try Sage right now, go to cloud.sagemath.org.