# Introdução ao Maxima

## Aula 1 : Primeiros Comandos

Sendo um softwares de cálculo algébrico, o Maxima 
realiza cálculos e permite visualizar alguns gráficos em R^2 e R^3.

Vamos comecar usando o Maxima apenas como uma 
calculadora para nos familiarizarmos com os seus 
comandos básicos.

10 + 3;

Note que as entradas (input) são numeradas e precedidas 
do símbolo (%i número_da_entrada), ja as saídas (output)
também são numeradas, porém precedidas de (%o número_da_saida). 
No final de cada comando ou linha de comando deve ser 
digitado ";" (ponto e vírgula).

Os símbolos para efetuar cálculos de aritmética básica são:

1. Adicão ,         +
2. Subtracão,       -
3. Multiplicacão,   *
4. Divisão,         / 
5. Potência,        ^

(-12)*3;

534/-23;

32^21;

32^-21;

43^(1/2);

Para determinar uma dada precisão numerica, ou seja 
escolhermos qual deve ser o número de casas decimais, 
usamos: "fpprec : número_de_digitos $ float(número)"

fpprec : 8 $ float(43^(1/2));

Mais algumas funções especiais. 
"factor(número)" - sendo "número" inteiro este comando 
devolve a fatoracão do número em fatores primos.

"primep(número)" - verifica se o "número" e primo devolvendo
"true" caso verdade ou "false" em caso falso.

"divisors(número)" - fornece os divisores do "número".

divisors(100);

factor(3234);

primep(1221);

## Um pouco de álgebra básica

Vamos definir um polinômio p como sendo a expressão a seguir:

p:x^2+x-1;

solve(p, x);

O comando "solve" iguala a expressão (do tipo p(x)=0 ) 
a zero e extrai as respectivas raízes quando possível. 
Neste caso a sintaxe e :
           
        "solve(expressão,[variaveis])".



Porem, logo abaixo, temos o comando 

"find_root(expresão, variavel, extremo_inf, extremo_sup)"

onde extremo_inf e extremo_sup são os extremos inferior e 
superior do intervalo ao qual devera ser procurada a raiz 
pelo comando "find_root".

find_root(''(p), x, -1, 1);

Note que:

float((5^(1/2)-1)/2);

Vamos definir agora uma outra expressão:

q:x^3+4;

Introduzindo algumas operações com expressões 
polinomiais. Sejam p e q polinômios, então

p*q;

p/q;

quotient(q,p);

remainder(q,p);

Os comandos "quotiente" e "remainder" devolvem 
respectivamente o quociente e o resto da divisão, 
neste caso de q(x)=x³+4 e p(x)=x²+x-1.

## Manipulações algébricas

Aproveitando as expressoes p e q definidas anteriorente
vamos acrescentar mais alguns comandos para manipular expressoes literais. 

h:q/p;

expand(h);

ratsimp(h-p);

"expand(expressão)" - devolve a "expressão" expandida, efetuando
as potências caso tenha.

"ratsimp(expressão)" - devolve uma simplificacão da "expressão".
(a melhor que o maxima pode exibir).

A seguir, usando a ultima expressão que foi computada efetuamos
uma substituicão, a saber x=1 e desde modo h(1)- p(1) = 4.

%,x=1;

Podemos também substituir dentro de uma expressão já defidida 
uma outra, por exemplo:

h-p;

subst(x+y, x, %);