Maxima

De Wikoleculares
Revisão de 11h57min de 10 de abril de 2007 por Renato (discussão | contribs) (Álgebra Linear: charpoly)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

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