Sharednotebooks / 1.Introduzindo o Sage.sagewsOpen in CoCalc
Author: Sergio Luis Lopes Verardi

1. Usando o Sage


Este Tutorial tem o objetivo de introduzir os elementos básicos do Sage permitindo que, em pouco tempo, o aluno adquira certa proficiência em seu uso.

Serão abordados apenas os tópicos diretamente relacionados aos temas da disciplina Matemática Aplicada I.
Assim, após uma apresentação inicial, "O Sage como uma Calculadora", veremos como trabalhar, simbolicamente, com Derivadas e Integrais, o que é requisito para as Séries de Fourier.
Em seguida, trataremos de Equações Diferenciais Ordinárias, intimamente relacionadas ao Método de Separação de Variáveis.

Mais tarde, em outro tutorial, introduziremos os recursos do Sage para a manipulação simbólica de Funções Especiais que surgem no estudo dos Problemas de Sturm-Liouville.



Deve-se ter em mente, sempre, que este Tutorial (e todos os outros que serão fornecidos ao longo do curso) se baseia na idéia de Aprender através de Exemplos.
Portanto, todos os exemplos devem ser estudados em detalhe. As Atividades Práticas da disciplina envolverão, sempre, a adaptação dos exemplos contidos nos Tutoriais a novos contextos e situações.

Todos os tutoriais se baseiam no livro A. Casamayou et al, Calcul mathématique avec Sage (em francês) e que pode ser obtido em http://sagebook.gforge.inria.fr/.

Outro livro de introdução ao Sage, cujo download é livre, é G. Bard, Sage for Undergraduates (acesse http://www.gregorybard.com/sage_for_undergraduates_color.pdf.zip). Consulte a página do autor para outras coisas interessantes, em particular, Sage Stuff (http://www.gregorybard.com/SAGE.html).

2. O Sage como Calculadora


Assim como outros softwares matemáticos, o Sage pode ser usado como uma simples calculadora.

Operações Aritméticas Básicas

As Quatro Operações: a+b, a-b, a*b, a/b
Potenciação: a^b ou a**b

Operações com Números Inteiros

Divisão Inteira: a//b
Resto: a%b
Vejamos alguns exemplos. Observe que a tecla ENTER apenas muda de linha dentro da célula permitindo acrescentar comandos, mas não executa os comandos já digitados. Para executá-los, digite SHIFT+ENTER.

(1+1)
2
( 1 + 2 * (3 + 5) ) * 4
68
# Potenciação 2^3; # Potenciação com ** 2**3; # Potencias Grandes 2^100
8 8 1267650600228229401496703205376
20/6
10/3
O último exemplo mostra que os números (inteiros) são tratados exatamente; após a simplificação continuam números racionais.
Para obter uma aproximação numérica, basta acrescentar um ponto decimal a, pelo menos, um dos números.
Alternativamente, existe a função numerical_approx(x). Observe o uso da propriedade digits.
# Usa ponto decimal sem especificiar número de dígitos da aproximação numérica; veja primeiro retorno 20./6 # Usa função numerical_approx do Sage e especifica 50 dígitos; veja segundo retorno numerical_approx(20/6,digits=50)
3.33333333333333 3.3333333333333333333333333333333333333333333333333

Funções Elementares e Algumas Constantes Usuais

Examine atentamente os exemplos a seguir e observe que os cálculos são exatos; os resultados são fórmulas e não valores numéricos.
Além disso, algumas simplificações são feitas automaticamente pelo Sage (mais tarde veremos que podemos fazer simplificações explicitamente, através do comando simplify(expr).Claro que aproximações numéricas podem ser obtidas através da função numerical_approx(), vista anteriormente.

sin(pi)
0
tan(pi/3)
sqrt(3)
arctan(1)
1/4*pi
exp(2*I*pi)
1
arccos(sin(pi/3))
arccos(1/2*sqrt(3))
# Calcula exp(i*pi/6); veja o primeiro retorno do Sage exp(I*pi/6) # Mesmo cálculo, mas atribuindo o resultado a uma variável e usando 'show'; veja o segundo retorno, como fórmula f=exp(I*pi/6) show(f)
e^(1/6*I*pi)
e(16iπ)\displaystyle e^{\left(\frac{1}{6} i \, \pi\right)}
Observe o último exemplo.  I e e são, respectivamente, o número imaginário e a base do logaritmo natural. Quando avaliamos a função exponencial exp(I*pi/6) o Sage retorna simplesmente, e^(1/6*I*pi), que é a maneira de escrever a resposta na forma de texto (como em qualquer linguagem de programação). Mas quando atribuímos o resultado a uma variável f e, a seguir, usamos o comando show(f), obtemos a fórmula matemática correspondente na forma gráfica. Este é um recurso extremamente útil.

Variáveis "Python"

Se desejamos armazenar o resultado de um cálculo para uso futuro, devemos atribuir o resultado a uma variável.
O Sage possui dois tipos de variáveis. O primeiro tipo é idêntico ao de qualquer linguagem de programação, ou seja, é usado para armazenar um resultado numérico (ou outros tipos de dados como uma string). A título de informação, o Sage emprega a linguagem Python, tanto para suas próprias funções quanto para coordenar o acesso a outros softwares como o Maxima.
O segundo tipo de variável é tratado como símbolo em todas as operações em que aparece permitindo, assim, a realização de computação simbólica (sem a atribuição de um valor numérico específico à variável. Variáveis simbólicas serão discutidas a seguir.

# Variáveis Usuais (tipo Python) # Observe o ";", ele permite colocar várias instruções na mesma linha # Quando se faz a atribuição, o valor da variável não é imediatamente apresentado # Para ver seu conteúdo, é preciso solicitar sua exibição # No exemplo, y recebe o valor 3, mas para mostrar esse valor escreve-se o nome da variável (depois do ;) y=1+2; y # Agora y pode ser usado em outros cálculos numéricos y1=(2+y)*y; y1
3 15

Variáveis Simbólicas

As variáveis simbólicas podem ser entendidas como as "variáveis do matemático" ao invés de "variáveis do programador" como as que acabamos de ver.
No Sage, as variáveis simbólicas precisam ser previamente definidas (ao contrário do Maple e Maxima, por exemplo) e o Sage fornece diferentes maneiras para isso.

# Definição de Variável Simbólica (Primeira Maneira) z=SR.var('z') 2*z+3
2*z + 3
# Definição de Variável Simbólica (Segunda Maneira) # Observe que o Sage retorna o símbolo a var('a')
a
# Definição simultânea de muitas variáveis var('a, b, c, x, y')
(a, b, c, x, y)
# Usando as variáveis que acabaram de ser definidas a*x+b*y+c #exibição tipo texto show(a*x+b*y+c) #exibição tipo gráfica
a*x + b*y + c
ax+by+c\displaystyle a x + b y + c
Para atribuir um valor a uma variável simbólica, empregamos a operação de substituição (mais tarde, veremos mais detalhes sobre este assunto). Vejamos um exemplo.
# Define variável x var('x') # Cria expressão simbólica expressao=sin(x); expressao
x sin(x)
# A mesma expressão mas atribuindo valor à variável # Observe que a expressão continua sendo simbólica! expressao(x=1)
sin(1)

Primeiros Gráficos

Mais tarde, aprenderemos mais sobre os recursos gráficos do Sage mas, para mostrar a facilidade com que se pode criar gráficos, vejamos dois exemplos.

# Exemplo 1: gráfico da função seno(2x) com a função plot # Observe a sequência dos parâmetros: 1) função 2) variável 3) e 4) intervalo plot(sin(2*x),x,-2*pi,2*pi)
#Exemplo 2: Gráfico de função de 2 variáveis (x,y) com plot3d # Define a função (poderia ser definida diretamente na chamada a plot3d, como no Exemplo1) # Observe como os intervalos são, agora, definidos para cada variável separadamente var('y') f=sin(pi*sqrt(x^2 + y^2))/sqrt(x^2+y^2) plot3d(f,(x,-5,5),(y,-5,5))
y
3D rendering not yet implemented
96aa4d31-0ba3-499e-9820-ed64b75d6d29 e8443d90-2868-4a47-b5fe-3f3263a42b8d %html 312c9002-8219-48ec-b827-107b5d38f476