Mudanças entre as edições de "Maxima"

De Wikoleculares
Ir para navegação Ir para pesquisar
(Sintaxe básica)
(Álgebra Linear: charpoly)
 
(4 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 22: Linha 22:
 
== Sintaxe básica ==
 
== Sintaxe básica ==
 
* Todos os comandos devem terminar com '';'' ou ''$''. No primeiro caso a saída será impressa na tela; no último, não.
 
* 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 - [[RTFM|use o manual]].
  
 
* Existem vários tipos de atribuição. Você pode definir funções usando, por exemplo,
 
* Existem vários tipos de atribuição. Você pode definir funções usando, por exemplo,
Linha 29: Linha 35:
 
O ''='' não funciona como atribuição, mas sim como igualdade (quando você quer definir uma equação).
 
O ''='' não funciona como atribuição, mas sim como igualdade (quando você quer definir uma equação).
  
* Cada linha de entrada ou saída pode ser usado como se fosse uma variável. Assim:
+
* 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;
 
  (%i1) a*x+b;
 
  (%o1) a x + b
 
  (%o1) a x + b
Linha 38: Linha 46:
 
* Saída para LaTeX:
 
* Saída para LaTeX:
 
  tex(f)$
 
  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 ==
 
== Álgebra Linear ==
Linha 49: Linha 68:
 
* Autovetores?
 
* Autovetores?
 
  eigenvectors(A);
 
  eigenvectors(A);
 +
 +
* Polinômio característico?
 +
charpoly(A,x);
  
 
== Referências ==
 
== Referências ==
* [http://maxima.sourceforge.net/docs/tutorial/pt/gaertner-tutorial-revision/Contents.htm Tutorial do Maxima]
+
* [http://maxima.sourceforge.net/docs/tutorial/pt/gaertner-tutorial-revision/Contents.htm Tutorial do Maxima] (em inglês).
* [http://maxima.sourceforge.net/docs/manual/pt/maxima.html Manual do Maxima]
+
* [http://maxima.sourceforge.net/docs/manual/pt_BR/maxima.html Manual do Maxima]

Edição atual tal como às 11h57min de 10 de abril de 2007

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