********** Introdução ********** Este tutorial leva no máximo de 3 a 4 horas para ser percorrido. Você pode lê-lo em versão HTML ou PDF, ou a partir do Notebook Sage (clique em ``Help``, então clique em ``Tutorial`` para percorrer o tutorial de forma interativa). Embora grande parte do Sage seja implementado em Python, nenhum conhecimento de Python é necessário para a leitura deste tutorial. Você vai querer aprender Python (uma linguagem muito divertida!) em algum momento, e existem diversas opções gratuitas disponíveis para isso, entre elas [PyT]_ e [Dive]_ (em inglês). Se você quiser experimentar o Sage rapidamente, este tutorial é o lugar certo para começar. Por exemplo: :: sage: 2 + 2 4 sage: factor(-2007) -1 * 3^2 * 223 sage: A = matrix(4,4, range(16)); A [ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15] sage: factor(A.charpoly()) x^2 * (x^2 - 30*x - 80) sage: m = matrix(ZZ,2, range(4)) sage: m[0,0] = m[0,0] - 3 sage: m [-3 1] [ 2 3] sage: E = EllipticCurve([1,2,3,4,5]); sage: E Elliptic Curve defined by y^2 + x*y + 3*y = x^3 + 2*x^2 + 4*x + 5 over Rational Field sage: E.anlist(10) [0, 1, 1, 0, -1, -3, 0, -1, -3, -3, -3] sage: E.rank() 1 sage: k = 1/(sqrt(3)*I + 3/4 + sqrt(73)*5/9); k 36/(20*sqrt(73) + 36*I*sqrt(3) + 27) sage: N(k) 0.165495678130644 - 0.0521492082074256*I sage: N(k,30) # 30 "bits" 0.16549568 - 0.052149208*I sage: latex(k) \frac{36}{20 \, \sqrt{73} + 36 i \, \sqrt{3} + 27} .. _installation: Instalação ========== Se você não tem o Sage instalado em um computador e quer apenas experimentar alguns comandos, use o Sage através do site http://sagecell.sagemath.org. Veja o guia de instalação do Sage na seção de documentação na página principal do Sage [SA]_ para instruções de como instalar o Sage no seu computador. Aqui faremos apenas alguns comentários. #. O arquivo para instalação do Sage vem com "baterias incluídas". Em outras palavras, embora o Sage use o Python, IPython, PARI, GAP, Singular, Maxima, NTL, GMP, e uma série de outros programas, você não precisa instalá-los separadamente pois eles estão incluídos no Sage. Todavia, para usar alguns recursos, por exemplo, o Macaulay ou o KASH, você precisa instalar pacotes de software adicionais ou ter os programas necessários já instalados no seu computador. O Macaulay e o KASH estão disponíveis como pacotes adicionais do Sage (para uma lista de pacotes adicionais, digite ``sage -optional``, ou visite a seção "Download" na página do Sage na internet). #. A versão pré-compilada do Sage (disponível na página do Sage na internet) pode ser mais fácil e rápida para instalar do que a versão obtida compilando o código fonte. #. Se você quiser usar o pacote SageTeX (que permite inserir cálculos do Sage em um arquivo LaTeX), você deve tornar o SageTex disponível para a sua distribuição TeX. Para fazer isso, consulte a seção "Make SageTex known to TeX" no `Sage installation guide `_. O procedimento é bem simples; você precisa apenas definir algumas variáveis no seu sistema ou copiar um arquivo para um diretório onde o TeX poderá encontrá-lo. A documentação para usar o SageTex está disponível em ``$SAGE_ROOT/local/share/texmf/tex/latex/sagetex/``, onde ``$SAGE_ROOT`` refere-se ao diretório onde você instalou o Sage -- por exemplo, ``/opt/sage-4.2.1``. Formas de usar o Sage ===================== Você pode usar o Sage de diversas formas. - **Interface gráfica Notebook:** veja a seção sobre o Notebook em :ref:`section-notebook`, - **Linha de comando interativa:** veja :ref:`chapter-interactive_shell`, - **Programas:** escrevendo programas interpretados e compilados em Sage (veja :ref:`section-loadattach` e :ref:`section-compile`), e - **Scripts:** escrevendo scripts em Python que usam a biblioteca do Sage (veja :ref:`section-standalone`). Objetivos do Sage a longo prazo =============================== - **Útil**: O público alvo do Sage são estudantes de matemática (desde o ensino médio até a pós-graduação), professores, e pesquisadores em matemática. O objetivo é fornecer um software que possa ser usado para explorar e experimentar construções matemáticas em álgebra, geometria, teoria de números, cálculo, computação numérica, etc. O Sage torna mais fácil a experimentação com objetos matemáticos de forma interativa. - **Eficiente:** Ser rápido. O Sage usa software bastante otimizado como o GMP, PARI, GAP, e NTL, e portanto é muito rápido em certas operações. - **Gratuito e de código aberto:** O código fonte deve ser amplamente disponível e legível, de modo que os usuários possam entender o que o software realmente faz e possam facilmente estendê-lo. Da mesma forma que matemáticos ganham entendimento sobre um teorema lendo cuidadosamente a sua demonstração, as pessoas que fazem cálculos deveriam poder entender como os cálculos são feitos lendo o código fonte e seus comentários. Se você usar o Sage para fazer cálculos em um artigo que seja publicado, você pode ter certeza que os leitores sempre terão livre acesso ao Sage e seu código fonte, e você tem até mesmo permissão para arquivar e redistribuir a versão do Sage que você utilizou. - **Fácil de compilar:** O Sage deve ser fácil de compilar a partir do código fonte para usuários de Linux, OS X e Windows. Isso fornece mais flexibilidade para os usuários modificarem o sistema. - **Cooperação:** Fornecer uma interface robusta para outros sistemas computacionais, incluindo PARI, GAP, Singular, Maxima, KASH, Magma, Maple e Mathematica. O Sage foi concebido para unificar e estender outros softwares de matemática existentes. - **Bem documentado:** Tutorial, guia de programação, manual de referência, e how-to, com inúmeros exemplos e discussão sobre conceitos matemáticos relacionados. - **Estensível:** Ser capaz de definir novos tipos de dados ou derivá-los a partir dos tipos de dados existentes, e usar programas escritos em diversas outras linguagens. - **Fácil de usar:** Deve ser fácil entender quais recursos estão disponíveis para um determinado objeto e consultar a documentação e o código fonte.