Maxima
Sistema de computação algébrica.
Início
- Pra entrar:
maxima
e pra sair
quit();
ou Ctrl + d.
- Criando log da sessão (muito útil pra guardar tudo que você faz - e não ter que reaprender os mesmos comandos depois):
appendfile("/home/foo/maxima.log")$
- Para limpar a memória (todas as variáveis e funções que foram usadas):
kill(all);
ou ainda
kill(values); kill(functions);
para limpar apenas variáveis ou funções, ou
kill(f);
para apagar apenas a expressão/função/variável definida por f.
Sintaxe básica
- Todos os comandos devem terminar com ; ou $. No primeiro caso a saída será impressa na tela; no último, não.
- Ajuda dentro do programa:
describe(foo); example(foo); demo(foo);
Sempre uma boa tentativa, mas a documentação interna é bastante limitada - use o manual.
- Existem vários tipos de atribuição. Você pode definir funções usando, por exemplo,
f(x) := x^2 + a*x;
Agora para dar um nome a uma expressão qualquer, use apenas
f: a*x + b
O = não funciona como atribuição, mas sim como igualdade (quando você quer definir uma equação).
- Como pode-se notar, a entrada usa os operadores comuns: + - * / ^ !. Além disso, e (o número de Euler) é escrito como %e, a unidade imáginaria como %i e pi como %pi. As funções trigonométricas apresentam nomes igualmente surpreendentes: cos, sin, tan; sec, csc, cot; acos, asin, atan; cosh, sinh, tanh etc.
- Cada linha de entrada ou saída pode ser usado como se fosse uma variável, assim:
(%i1) a*x+b; (%o1) a x + b (%i2) ev(%o1,x=2); (%o2) b + 2 a
Note também que % é um atalho para a última linha.
- Saída para LaTeX:
tex(f)$
Cálculo
- Diferenciação
f: sin(x) + a*x^2/(2+x); diff(f,x);
- Integração
integrate(f,x); assume(a>0); integrate(%e^(-a*x^2),x,-inf,inf);
Caso a no exemplo acima não tenha sido declarado (usando uma igualdade ou assume), o maxima deverá perguntar sobre o valor dele.
Álgebra Linear
Carregue o pacote com
load(eigen);
- Autovalores?
eigenvalues(A);
onde A é uma matriz. A saída é uma lista com 2 sublistas: a 1a é o conjunto de autovalores, a 2a mostra a multiplicidade algébrica de cada um.
- Autovetores?
eigenvectors(A);
- Polinômio característico?
charpoly(A,x);
Referências
- Tutorial do Maxima (em inglês).
- Manual do Maxima