"Sage é um software matemático gratuito e open-source, desenvolvido sob a licença GPL por uma comunidade de programadores e matemáticos, que busca ser uma alternativa para os principais sistemas proprietários de software matemático como o Magma, Maple, Mathematica e Matlab. Ele engloba e se utiliza de pacotes pré-existentes como Maxima, GAP, Pari/GP, softwares de renderização de imagens e outros, integrando-os em uma interface única, amigável e de fácil assimilação."
Neste blog divulgarei o meu progresso de aprendizagem no Sage e tentarei aplicá-lo, na medida do possível, na minha principal área de interesse, que é a Física.
Conheça mais sobre o software em: http://www.sagemath.org/

quarta-feira, 12 de setembro de 2012

Tutorial do Sage - 01


Seguindo o tutorial oficial do Sage vamos começar!



Atribuição, igualdade e aritmética 


Pra quem já conhece Python, vai ficar fácil, o Sage usa as expressões dessa linguagem nas construções matemáticas, mas quem não conhece, é fácil aprender. Para atribuições usamos o  = em comparações, usamos ==,  <=, >=, < e >, Ex:

Atribuindo o valor 3 para variável a:

sage: a = 3
sage: a
3

(Depois de atribuir, quando é digitado a variável o Sage fornece o seu valor como resposta.)

Fazendo comparações entre números:

sage: 3>2
True
sage: 5<=5
True
sage: 1<0
False
sage: 7==2
False

(O Sage fornece como resultado das comparações as palavras True (verdadeiro) e False (falso).)

Operações matemáticas:

sage: 4**2
16
sage: 4^2
16

(para exponenciação, tanto faz utilizar o ** ou o ^)

sage: 10%4
2

(o operador % para argumentos inteiros fornece o resto da divisão dos números)


sage: 8/6
4/3
sage: 8//6
1

(o operador / fornece a divisão dos números. Quando duplicado, em argumentos inteiros o // retorna o coeficiente inteiro da divisão.)

A ordem de precedência (da menor para a maior) dos operadores matemáticos é:
+, - adição, subtração *, /, % multiplicação, divisão, resto **, ^ exponenciação. Assim

sage: 2*3^2+4%3
19

O Sage calcula primeiro 3^2, depois multiplica 2*9 depois obtém o resto de 4%3 e, por fim, faz a soma 18+1.

Algumas funções matemáticas:

sage: sqrt(5.2)
2.28035085019828

(raiz quadrada de 5.2)

sage: sin(4.1)
-0.818277111064410

(seno de 4.1. Vale frisar que o argumento é em radianos)

O Sage fornece respostas 'exatas' em vez de aproximações numéricas, quando possível. Ex.

sage: sin(pi/3)
1/2*sqrt(3)
sage: exp(2)
e^2

Existem duas formas de obter uma aproximação numérica com o Sage: usando a função n( ) ou o método .n( ). O "n" pode ser maiúsculo e pode ser usado também o nome completo da função/método: numerical_approx. Ex.


sage: n(pi)
3.14159265358979
sage: pi.n()
3.14159265358979
sage: N(pi)
3.14159265358979
sage: pi.N() 
3.14159265358979
sage: numerical_approx(pi)
3.14159265358979
sage: pi.numerical_approx()
3.14159265358979

Outra opção para função ou o método n são os argumentos prec (especifica o número de bits de precisão; padrão 53 bits) e digits (especifica o número de digitos decimais de precisão):


sage: n(e^2)  
7.38905609893065
sage: n(e^2,prec=100)
7.3890560989306502272304274606
sage: n(e^2,digits=50) 
7.3890560989306502272304274605750078131803155705518
sage: e^2.n(prec=100)
7.3890560989306502272304274606
sage: e^2.n(digits=50)
7.3890560989306502272304274605750078131803155705518

O valor atribuído a uma variável tem um tipo associado a ele e esse vai ser o tipo da variável . Podemos verificar o tipo de cada variável da forma:


sage: a=7    # valor inteiro atribuído
sage: type(a)
<type 'sage.rings.integer.Integer'>
sage: a=7/4  # agora "a" é um número racional
sage: type(a)
<type 'sage.rings.rational.Rational'>
sage: a='aprender' # por fim, "a" agora é uma string (texto)
sage: type(a)     
<type 'str'>

Observação final: tudo que é escrito depois do "jogo da velha" # não é interpretado pelo Sage. Esse símbolo é usado para acrescentar comentários nos códigos. 


Nenhum comentário:

Postar um comentário