{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"
Mission Statement: Create a viable free open source alternative to Magma, Maple, Mathematica, and Matlab.
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### A Brief Overview \n", "\n", "- Created in 2005 by William Stein.\n", "- Free and open, GPL license.\n", "- Includes about 100 open source packages.\n", "- Now has around 500,000+ lines of new code, by several hundred mathematician-programmers.\n", "\n", "Some of the 100 packages includes:\n", "\n", "- [Groups, Algorithms, Programming (GAP)](https://www.gap-system.org/) - group theory\n", "- [PARI](https://pari.math.u-bordeaux.fr/) - rings, finite fields, field extensions, number theory\n", "- [Singular](https://www.singular.uni-kl.de/) - commutative algebra\n", "- [NumPy](http://www.numpy.org/)/[SciPy](https://www.scipy.org/) - numerical linear algebra, scientific computing\n", "- [Integer Matrix Library (IML)](https://cs.uwaterloo.ca/~astorjoh/iml.html) - integer, rational matrices\n", "- [CVXOPT](https://cvxopt.org/) - linear programming, optimization\n", "- [NetworkX](https://networkx.github.io/) - graph theory\n", "- [Pynac](http://pynac.org/) - symbolic manipulation\n", "- [Maxima](http://maxima.sourceforge.net/) - calculus, differential equations\n", "- [R](https://www.r-project.org/) - for statistical computing\n", "- [Ore Algebra](http://kauers.de/software.html) - computations with Ore operators\n", "\n", "Click [**here**](https://www.sagemath.org/links-components.html) to see all software packages that constitute SageMath." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Using Other Non-Commercial Softwares \n", "\n", "As mentioned earlier, [SageMath](http://www.sagemath.org/) includes about 100 open source packages and these packages can be run separately in either a [SageMath](http://www.sagemath.org/) worksheet or in a [Jupyter](https://jupyter.org/) notebook. There are several ways one can use this. I will only demonstrate a few." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Group( [ (1,2), (1,2,3,4,5,6,7,8) ] )" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S_8 = gap('Group( (1,2), (1,2,3,4,5,6,7,8) )'); S_8" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Group([ (1,2), (1,2,3,4,5,6,7,8) ])\n" ] } ], "source": [ "%%gap\n", "\n", "S := Group( (1,2), (1,2,3,4,5,6,7,8) )" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "x^7+x^2+x" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "maxima('lsum(x^i, i, [1, 2, 7])')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "x^7+x^2+x\n" ] } ], "source": [ "%%maxima\n", "\n", "lsum (x^i, i, [1, 2, 7]);" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "