Se
você
chegou nesta página deveria estar com o Maxima instalado em seu PC
(senão instale
!!!).
Se você ainda não está familiarizado com um CAS (Computer Algebra
System:
Sistema de Computação Algébrica) Maxima oferece uma excelente
oportunidade para resolver essa carência.
Quando comece a transitar por este Tutorial você começará a
perceber que está lidando com uma ferramenta matemática que
será de
grande ajuda em sua carreira como estudante. Maxima é muito
amigável e um
passeio por este tutorial mínimo pode ajudar a eliminar aquelas duvidas
sobre
se o investimento em aprender a usar um software matemático terá um bom
retorno, são apenas 10 minutos que o colocarão no caminho
certo.
Este Tutorial oferece uma abordagem prática e rápida onde é mostrado
como
resolver computacionalmente alguns problemas mais comuns
encontrados em
Cálculo, Álgebra Linear, etc. Claro que é apenas a ponta do iceberg.
Uma vez
que você tenha transitado por este tutorial o próximo passo será
visitar o site
oficial
de Maxima.
Usando Maxima como
uma
calculadora
Você
pode
usar Maxima como uma calculadora cuja precisão dependerá do
hardware
instalado em seu PC. O promt do Maxima aguardará que você
ingresse
um ou mais comandos e expressões separadas por ponto e vírgula (;),
exatamente como você faria em qualquer linguagem de programação.
(%i1) 9+7;
(%o1)
(%i2) -17*19;
(%o2)
(%i3) 10/2;
(%o3)
Maxima
permite fazer referência ao último resultado através do caractere
%
, e
também a qualquer entrada ou saída através de seu respectivo promt %i
(input:
entrada) ou %o
(output: saída). Por exemplo:
(%i4) % - 10;
(%o4)
(%i5) %o1 * 3;
(%o5)
(Obs.: Com
o
intuito de que os comandos e expressões nos próximos exemplos fiquem
visualmente mais simples e claros, omitiremos por agora a
numeração de
entradas e saídas retornadas pelo Maxima indicando a saída com o sinal
de
implicação =>
.)
Quando o numerador e denominador são inteiros, é devolvida
uma
expressão como uma fração reduzida o um inteiro. Esse resultados podem
ser re-calculados em ponto flutuante usando o comando float
(ou
bfloat
para números grande em ponto
flutuante):
8/2;
=>
8/2.0;
=>
2/6;
=>
float(1/3);
=>
1/3.0;
=>
26/4;
=>
float(26/4);
=>
Como
foi
dito, números grandes não são um problema:
13^26;
=>
13.0^26
=>
30!;
=>
float((7/3)^35);
=>
Constantes
e funções
mais usuais
Aqui
temos
uma lista das constantes em Maxima, :
§
%e
- Número de Euler
§
%pi
-
§
%phi
- a seção dourada ()
§
%i
- a unidade imaginária ()
§
inf
- infinito positivo ()
§
minf
- infinito negativo ()
§
infinity
- infinito complexo
Algumas
das funções mais usadas:
sin(%pi/2) + cos(%pi/3);
=>
tan(%pi/3) * cot(%pi/3);
=>
float(sec(%pi/3) + csc(%pi/3));
=>
sqrt(81);
=>
log(%e);
=>
Definindo
funções e
variáveis
As
variáveis podem ser designadas usando dois pontos ‘:’
e as
funções ‘:=’.
A seguinte sequência mostra como usá-las:
a:7; b:8;
=>
=>
sqrt(a^2+b^2);
=>
f(x):= x^2 -x + 1;
=>
f(3);
=>
f(a);
=>
f(b);
=>
Observamos
que Maxima calcula por default o logaritmo natural entanto que a
função log 10
não está definida e
deve ser calculada como se mostra a seguir:
log10(x):= log(x)/log(10);
=>
log10(10)
=>
Cálculos
Simbólicos
O
comando factor
possibilita a fatoração de um número:
factor(30!);
=>
Podemos
fatorar um polinômio:
factor(x^2 + x -6);
=>
Fazer
a
expansão:
expand((x+3)^4);
=>
Simplificar
expressões racionais:
ratsimp((x^2-1)/(x+1));
=>
Simplificar
expressões trigonométricas:
trigsimp(2*cos(x)^2 + sin(x)^2);
=>
Expandir
expressões trigonométricas:
trigexpand(sin(2*x)+cos(2*x));
=>
Para
obter
a representação em LaTeX de uma expressão dada,
usamos
o comando tex
:
tex(%);
=> $$-\sin ^2x+2\,\cos x\,\sin x+\cos ^2x$$
Resolvendo
Equações e
Sistemas
Com
o
comando solve
podemos resolver equações e sistemas de equações :
solve(x^2-4,x);
=>
%[2]
=>
solve(x^3=1,x);
=>
trigsimp(solve([cos(x)^2-x=2-sin(x)^2], [x]));
=>
solve([x - 2*y = 14, x + 3*y = 9],[x,y]);
=>
Gráficos
em 2D e 3D
Maxima
faz
gráficos bi e tri-dimensionais, e também múltiplos gráficos em uma
mesma folha.
Os comandos plot2d
e plot3d
são
usados nos exemplos abaixo. O segundo e no caso de plot3d,
o
terceiro parâmetro, define o intervalo de variação de x e y
respectivamente
e define qual é a parte do gráfico que será mostrada.
plot2d(x^2-x+3,[x,-10,10]);
plot2d([x^2, x^3, x^4 -x +1] ,[x,-10,10]);
f(x,y):= sin(x) + cos(y);
plot3d(f(x,y), [x,-5,5], [y,-5,5]);
Limites
limit((1+1/x)^x,x,inf);
=>
%
limit(sin(x)/x,x,0);
=>
limit(2*(x^2-4)/(x-2),x,2);
=>
limit(log(x),x,0,plus);
=>
limit(sqrt(-x)/x,x,0,minus);
=>
Diferenciação
diff(sin(x), x);
=>
diff(x^x, x);
=>
É
possível
calcular derivadas de maior ordem acrescentando o número
correspondente
como um argumento do comando diff
:
diff(tan(x), x, 4);
=>
Integração
Maxima
oferece realizar várias formas de integração. Para encontrar a
primitiva de uma
função use integrate:
integrate(1/x, x);
=>
Para
calcular uma integral definida, devemos especificar os limites de
integração
como os últimos parâmetros:
integrate(x+2/(x -3), x, 0,1);
=>
integrate(%e^(-x^2),x,minf,inf);
=>
Também
a
integral definida pode ser obtida aproximadamente usando um método
numérico(por
ex. romberg):
romberg(cos(sin(x+1)), x, 0, 1);
=> 0.57591750059682
Somas
e Produtos
sum
e product
são duas
funções para realizar somatórios e produtórias. A opção simpsum
simplifica a soma quando for possível.
sum(k, k, 1, n);
=>
sum(k, k, 1, n), simpsum;
=>
sum(1/k^4, k, 1, inf), simpsum;
=>
fact(n):=product(k, k, 1, n);
=>
fact(10);
=>
Expansão
em Séries
A
representação de uma função em série de potências pode ser obtida
usando a
expansão de Taylor (o último parâmetro define a ordem da série),
os
comando usados são taylor
ou powerseries:
niceindices(powerseries(%e^x, x, 0));
=>
taylor(%e^x, x, 0, 5);
=>
O
comando
trunc
combinado
com
plot2d
é
usado quando a expansão precisamos graficar a série:
plot2d([trunc(%), %e^x], [x,-5,5]);
O
material
desta página pretende apenas mostrar as facilidades que oferece o uso
de um
software como Maxima. Os sistemas de computação algébrica são
ferramentas
poderosas para resolver problemas e testar resultados e o tempo
que você
terá investido terá um retorno muito maior que o esperado.