# 10 minute (wx)Maxima tutorial

Translation to Portuguese of "10 minute (wx)Maxima tutorial" by Ziga Lenarcic

Tradução para Português de "10 minute (wx)Maxima tutorial" de Ziga Lenarcic

Bem-vindo ao wxMaxima! Neste tutorial de introdução aprenderá o básico
de wxMaxima e Maxima. Maxima é um CAS (Computer Algebra System)
semelhante a sistemas como Mathematica, Maple e outros. O Maxima, no
entanto, é uma aplicação de linha de comandos, o que o torna mais difícil 
de usar do que os seus referidos "concorrentes". É aqui que entra o
wxMaxima - é uma interface gráfica (GUI - Graphical User Interface)
para o Maxima, criado para que a utilização do Maxima seja mais
simples e agradável.

Comecemos com alguns cálculos simples! Em baixo está o "input" com uma
adição simples. Coloque lá o cursor e prima SHIFT+ENTER para obter o 
resultado.

1 + 1;

Se não obteve qualquer erro, o seu Maxima está devidamente configurado.
Se obteve algum erro, deve verificar a configuração do wxMaxima ou 
consultar o sítio do wxMaxima (http://wxmaxima.sourceforge.net/)
para obter ajuda para configurar correctamente o wxMaxima e o Maxima.

Assumindo que resolveu qualquer problema que tenha aparecido, façamos
alguns cálculos (de novo, coloque o cursor nos comandos abaixo e
prima SHIFT+ENTER para calcular)!

5!;
% * 10;
%o1 * 100;
1 / 3;
1.0 / 3.0;

No conjunto de comandos acima, enviamos 5 linhas ao Maxima. Cada uma
tem de terminar com ";" ou "$". No caso da linah terminar em ";", 
o Maxima mostrará o resultado da linha, enquanto que os resultados
das linhas que terminam em "$" não serão mostrados. O "$" é útil
quando se está a executar cálculos longos. Note também que os
resultados de "1/3" e "1.0/3.0" são diferentes. Isto acontece
porque o Maxima, ao contrário de pacotes numéricos matriciais
(Matlab, etc.), tenta manter os resultados exactos - não calcula
expressões como 1/3 ou sqrt(2) (raíz quadrada de 2) a não ser
que se peça isso. Em "1.0/3.0" usámos números de ponto flutuante,
logo o Maxima não deixou a expressão por determinar.

Podemos, no entanto, dizer ao Maxima que se quer aproximar uma
expressão. Efectue os cálculos abaixo e observe os resultados.

sqrt(2 * %pi);
float(%);

Na linha "float(%)" usamos o símbolo "%". Este símbolo tem sempre o 
resultado da última linha calculada. Símbolos numerados "%o1", "%o2",
etc, têm os resultados como aparecem quando as várias linhas são 
calculadas. Podemos também gravar, não apenas números, mas também
espressões inteiras, em variáveis. Use a forma 
"nome_da_variavel: valor;" para gravar um valor numa variável.
Efectue os cálculos abaixo e observe.

radius: 10 $
height: 100 $
area: %pi * radius^2;
volume: area * height;

Calculemos o último resultado numericamente:

float(%);

Até agora só usamos o Maxima como uma cálculadora simples. Agora
tentemos algumas coisas que não podem ser feitas numa máquina 
calculadora. Primitivas e integrais:

integrate( sin(x), x);
integrate( sin(x), x, 0, %pi);

Definamos uma função, calculemo-la e integremo-la!

f(x) := x^2 + a$
f(5);
f(5), a = -5;
integrate( f(var), var );

Por vezes o Maxima necessita informação adicional para calcular uma 
expressão e pergunta-nos. O cursor deve aparecer automaticamente, indicando
que precisa de responder a uma questão. Se não aparecer, escreva a resposta
abaixo dos comandos e envie ao Maxima com SHIFT+ENTER. Nota: em vez de responder
com "positive", pode estrever apenas "p". Abaixo está uma primitiva com uma
questão:

integrate( 1 / (x^2 + a), x);

Podemos informar o Maxima antecipadamente usando a função "assume". Para
reverter uma assunção, use "forget"
(Nota: para obter ajudaa sobre qualquer função, basta clicar na função e
premir F1. Experimente.)

assume(a > 0)$
integrate( 1 / (x^2 + a), x);
forget(a > 0)$

Agora que aprendemos o básico, é tempo de alguns exemplos matematicos
gerais! Não se esqueça: se quiser saber mais sobre uma função, clique
nela e prima F1.

Resolver equações usando "solve":

solve(a*x^2 + b*x + c = 0, x);

Álgebra linear. Use "matrix" para criar matrizes. Matrizes podem conter
expressões não-numericas. Use "invert" para calcular a inversa e "." para
multiplicação de matrizes.

A: matrix([1,-1],
          [1,sin(c)]);
B: invert(A);

A.B;
ratsimp(A.B);

Na última linha usamos "ratsimp" para simplificar o resutlado de "A.B".
O Maxima tem uma grande variedade de funções de simplificação, dependendo
daquilo que pretende. A simplificação é um assunto complexo e se não souber
nada sobre isso, "ratsimp" pode ser o seu melhor "palpite".

Façamos gráficos 2D e 3D!

wxplot2d([sin(x), cos(x)], [x,0, 2*%pi]);
wxplot3d( exp(-x^2 - y^2), [x,-2,2],[y,-2,2]);

Testemos derivação usando a função "diff".

f(x) := x^2 $
diff(f(x), x);
g(y) := sin(y)$
g(f(x));
diff( g(f(x)) , x);

Sim, o Maxima conhece a regra da cadeia!

E para terminar, resolvamos uma Equação Diferencial
Ordinária de segunda ordem:
y''(t) + omega^2 * y(t) = 0

assume(omega > 0);
ode2( 'diff(y, t, 2) + omega^2 * y = 0, y, t );

ic2(%, t = 0, y = amp, 'diff(y,t) = 0 );

Deve agora começar a explorar o (wx)Maxima por sua conta.
Lembre-se de premir F1 de vez em quando, se quiser que o
Maxima o ajude a resolver os seus problemas Matemáticos.

Desfrute do Maxima e do wxMaxima!