Uma interface gráfica para revisão e reutilização de entradas e saídas anteriores, incluindo gráficos e anotações de texto. Compatível com os navegadores Firefox, Opera, Konqueror e Safari. Os cadernos podem ser acessados localmente ou remotamente, e a conexão pode ser assegurada com HTTPS.
Ao invés de reinventar a roda, o SageMath (que é escrito principalmente em Python e Cython) integra vários softwares de matemática em uma interface comum, para que um utilizador necessite saber apenas Python.[4] Tanto estudantes quanto profissionais auxiliam no desenvolvimento do SageMath. O desenvolvimento do SageMath é mantido por trabalhos voluntários e doações.[5]
Histórico de lançamentos
Apenas os maiores lançamentos estão listados abaixo. O Sage segue o conceito "liberação rápida e frequente", lançando novas versões com diferença de poucas semanas ou meses. No total, houve mais de 300 novas versões lançadas, embora a frequência de atualizações tenha diminuído.[6]
Versão
Data de lançamento
Descrição
0.1
Janeiro de 2005
Inclui PARI, mas não GAP ou Singular
0.2 - 0.4
Março a Julho de 2005
Banco de dados do Cremona, polinômios multivariados, campos finitos grandes e mais documentação
0.5 - 0.7
Agosto e Setembro de 2005
Espaços vectoriais, anéis, símbolos modulares e janelas de utilização
Um live CD contendo o sistema operacional inicializável Linux também está disponível. Isto permite a utilização do SageMath sem a instalação do Linux.
Embora a Microsoft estivesse patrocinando uma versão nativa do SageMath para o sistema operacionalWindows,[10] até 2012 não havia planos para o desenvolvimento de uma versão nativa, e os utilizadores do Windows têm actualmente que utilizar máquinas virtuais, como o VirtualBox, para poderem executar o SageMath.[11] As distribuições Linux em que o SageMath está disponível como um pacote são Ubuntu, Debian, Fedora, Arch Linux e NixOS. O SageMath pode ser instalado em qualquer distribuição Linux.
Pacotes de software contidos no SageMath
A filosofia do SageMath é a utilização de bibliotecas de softwares de código aberto, onde quer que existam. Por isso, utiliza muitas bibliotecas de outros projectos.
t=var('t')# define a variable tx=function('x',t)# define x to be a function of that variableDE=lambday:diff(y,t)+y-1desolve(DE(x(x=t)),[x,t])# returns (c + e^t)*e^(-t)
Álgebra linear
A=Matrix([[1,2,3],[3,2,1],[1,1,1]])y=vector([0,-4,-1])A.solve_right(y)# returns (-2, 1, 0)A.eigenvalues()# returns [5, 0, -1]B=Matrix([[1,2,3],[3,2,1],[1,2,1]])B.inverse()# returns'''[ 0 1/2 -1/2] [-1/4 -1/4 1] [ 1/2 0 -1/2]'''# Call NumPy for the Moore-Penrose pseudo-inverse, since Sage does not support that yet.importnumpyC=Matrix([[1,1],[2,2]])matrix(numpy.linalg.pinv(C.numpy()))# returns'''[0.1 0.2] [0.1 0.2]'''
Teoria dos números
prime_pi(1000000)# returns 78498, the number of primes less than one millionE=EllipticCurve('389a')# construct an elliptic curve from its Cremona labelP,Q=E.gens()7*P+Q# returns (24187731458439253/244328192262001 : 3778434777075334029261244/3819094217575529893001 : 1)