You are on page 1of 27

- TUTORIAL -

MAXIMA 5.9.2
Para Windows

Por Bruno F. Milaré de Macêdo


RA 042290 – MA111 – Turma A

1
- INTRODUÇÃO

Este tutorial tem como objetivo fornecer informações para


que iniciantes possam aprender a manipular o software MAXIMA,
desde a instalação e a primeira impressão até manipulação de
funções, assim aqui só serão vistos conteúdos que apareceram no
curso de Cálculo I, porém não se intimidem com o software, pois
ele tem grandes recursos, sendo capaz de realizar a maior parte dos
cálculos matemáticos.

Como no curso, aqui serão abordadas manipulações do


MAXIMA em relação a Limites, Derivadas e Integrais, assim
como suas propriedades e representações gráficas em duas e três
dimensões.

2
- ÍNDICE

♦ O MAXIMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04
♦ Dowload e instalação. . . . . . . . . . . . . . . . . . . . . . . . 05
♦ Iniciando o uso do MAXIMA . . . . . . . . . . . . . . . . . 07
♦ Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
♦ Limites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
♦ Derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
♦ Integrais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
♦ Gráficos em duas dimensões. . . . . . . . . . . . . . . . . . 22
♦ Gráficos em três dimensões. . . . . . . . . . . . . . . . . . . 25

3
- O MAXIMA

O MAXIMA é um sistema para a manipulação de expressões


simbólicas e numéricas, incluindo diferenciação, integração,
equações diferenciais ordinárias, sistemas de equações lineares,
vetores, matrizes, entre outros. O MAXIMA produz resultados de
precisão elevada, e pode traçar funções e dados em duas e três
dimensões.
O código de fonte do MAXIMA pode ser compilado em
muitos sistemas, incluindo Windows (no caso desse tutorial),
Linux, e MacOS X.
O MAXIMA é um descendente de Macsyma, o sistema
legendário de álgebra do computador desenvolvido nos anos de
1960 no Instituto de Tecnologia de Massachusetts. É o único
sistema baseado em Macsyma ainda publicamente disponível e
com uma comunidade de usuários ativa.
A filial do MAXIMA de Macsyma foi mantida por William
Schelter. Em 1998 obteve a permissão liberar o código fonte sob a
GNU General Public License (GPL). Eram seus esforços e
habilidade que fizeram a sobrevivência do MAXIMA possível.
Desde então um grupo dos usuários e de colaboradores deu forma
para trazer o MAXIMA a uma maior audiência.
Assim sendo o MAXIMA é considerado um software livre,
podendo então ser usado sem necessidade de registro e pagamento,
isto é, um software gratuito. Um dos poucos nessa área.

4
- DOWLOAD E INSTALAÇÃO

A versão do MAXIMA utilizada neste tutorial é a versão


5.9.2 para Windows e seu download pode ser feito através do
seguinte link:

http://ufpr.dl.sourceforge.net/sourceforge/maxima/maxima-5.9.2.exe

- Tamanho do arquivo: 12.2 MB


- Espaço necessário em disco: 60.7 MB

Caso se interesse mais pelo software ou deseja ele para outras


plataformas, como Linux, acesse o site oficial do MAXIMA:

Site Oficial: http://maxima.sourceforge.net

Instalando. Após o download ter sido concluído dê um duplo


clique no arquivo baixado (maxima-5.9.2), e você vai se deparar
com uma tela desse tipo:

5
Prossiga atendendo as recomendações do programa, clicando
em Next, não se esqueça de verificar o local de instalação, mude se
não for de seu agrado.
Ao finalizar a instalação a seguinte mensagem surgirá
determinando que a instalação foi concluída com êxito:

Clicando em Finish um arquivo readme.txt será aberto


contendo informações sobre o MAXIMA,e o próprio também será
aberto. Após o término da instalação você poderá acessar o
MAXIMA a qualquer hora a partir do menu Iniciar.

6
- INICIANDO O USO DO MAXIMA

Primeira impressão:

7
Logo que iniciado o MAXIMA possui na parte inferior um
sistema de ajuda, que poderá ser bem útil, mas não vamos entrar
em detalhes nesse tutorial, por isso vamos escondê-lo, clicando em
Options > Toggle Browser Visibility. Ficando assim apenas com o
terminal, onde serão digitadas as operações.

No terminal, a parte superior acima do ‘(%i1)’ pode ser


desconsiderada, pois se tratam de informações sobre o programa.
O ‘(%i1)’ representa a posição na memória de cada operação a ser
realizada, para recomeçar a memória basta acessar File > Restart.

Iniciando o trabalho com operações. Você sempre digitará a


operação a frente do ‘(%ix)’, esse ‘i’ no meio significa INPUT,
portanto sempre será entrada de informações. Logicamente a saída
do programa será representada por ‘(%ox)’, com ‘o’ sendo
OUTPUT. Depois de digitada a operação, para indicar ao

8
programa que a expressão já pode ser resolvida é necessário digitar
um ‘; ’(ponto e vírgula) no fim da expressão, por exemplo:

(%i1) 1 + 2; (INPUT – representada em azul no MAXIMA).


(%o1) 3 (OUTPUT – representada em preto no MAXIMA).

As operações básicas são facilmente representadas por:


Adição (+), Subtração (-), Multiplicação (*), Divisão (/),
Exponenciação(^).

Os espaços não são necessários, apenas auxiliam na leitura.


As funções vistas neste tutorial deverão ser escritas em letras
minúsculas assim como seus parâmetros, por exemplo:

(%i1) cos (%pi);


(%o1) –1

Obs. : como é possível observar o número ‘pi’ deve ser


escrito desta forma ‘%pi’, como acontece com a maioria das
constantes, por exemplo:
O número e = exp(1) = %e
A constante imaginária i = sqrt(-1) = %i

(%i1) cos(%pi);
(%o1) - 1
(%i2) sqrt(-1);
(%o2) %i
(%i3) exp(1);
(%o3) %e

Para obter mais informações sobre determinados comandos,


basta você digitar:
(%i1) describe (assunto a ser pesquisado);

E seguir as instruções do programa, o resultado será um


breve texto sobre o termo procurado, com exibição de funções
relacionadas.

9
Outros comandos úteis:
abs(x) – retorna o valor absoluto de x.
log(x) – logaritmo natural de x.
sqrt(x) – raiz quadrado de x.

Como naturalmente usado a ordem de preferência das


operações deve ser demonstrada através de parênteses ‘( )’.

(%i1) (20+10) * 3;
(%o1) 90

Um comando bastante usado é o ‘%’, que sozinho, representa


o último resultado apresentado.
(%i1) 4 * 5;
(%o1) 20
(%i2) % - 5;
(%o2) 15

O MAXIMA tenta tornar os resultados mais exatos possíveis,


porém em alguns casos isso não é possível, pois o resultado é um
tipo flutuante, como por exemplo:

(%i1) log(10);
(%o1) log(10)

Porém se mesmo assim você deseja saber esse valor, basta


você forçar o MAXIMA a retornar um ponto flutuante, assim:

(%i1) float (log (10));


(%o1) 2.302585092994046

Para atribuir valores a variáveis, basta apenas declarar da


seguinte forma:

(%i1) x : 2;
(%o1) 2;

10
(%i2) y : 10;
(%o2) 10;
(%i3) x ^ y;
(%o3) 1024;

Para resolver alguma equação, basta utilizar a função ‘solve’,


da seguinte maneira:

(%i1) solve (3*x^2–6*x-9=0);


(%o1) [x = 3, x = - 1]

Esta função é bastante útil e pode ser usada de várias


maneiras, como, por exemplo, resolver uma equação de duas
incógnitas e deixar em função de uma delas, caso só exista uma
equação.

(%i1) solve(x+y-2=0, y);


(%o1) [y = 2 - x]

Caso contrário se o número de equações for igual ao número


de incógnitas, a função ‘solve’ pode dar conta do trabalho
também, como por exemplo:

(%i2) solve([x+y+4*z=0, y-z+2*x=8, z+3*x-2*y=4]);


18 26 46
(%o2) [[z = - --, y = --, x = --]]
17 17 17

Acima foram descritos os principais comandos para a


manipulação dados no MAXIMA, assim sendo a partir daqui
abordaremos assuntos mais específicos.

11
- FUNÇÕES

É muito simples definir funções no MAXIMA, é muito


parecido com o modo normal de se escrever, mudando somente o
símbolo de atribuição que no caso é ‘:=’, como pode se observar o
exemplo :

(%i1) f(x):=x+2;
(%o1) f(x) := x + 2

(%i2) f(5);
(%o2) 7

Pode-se definir também funções de n variáveis, respeitando a


mesma sintaxe da anterior, somente colocando as variáveis entre
vírgulas, do seguinte modo:

(%i1) g(x,y,z) := x * y + 2 * z;
(%o1) g(x, y, z) := x y + 2 z

(%i2) g(1,2,3);
(%o2) 8

12
- LIMITES

Limites são facilmente interpretados pelo MAXIMA, e


possui uma sintaxe bastante simples, observe o exemplo:

limit(função, variável, valor que tende a variável);

Aplicação:
(%i1) limit( (2*x+1)/(3*x+2), x,inf );
2
(%o1) -
3

(%i1) limit(((z^(2/3))/(z - sqrt(2 * z))), z, 8);


(%o1) 1

(%i2) limit((t^2 + 6*t + 9)/(9 - t^2), t, -3);


(%o2) 0

Limites trigonométricos:

(%i1) limit(sin(x)/x, x, 0);


(%o1) 1

(%i2) limit((1 - cos(3*x))/(2*x^2), x, 0);


9
(%o2) -
4

Limites Laterais:

Pela esquerda, basta adicionar um quarto parâmetro ‘minus’:


(%i1) limit(sqrt(x * (5-x)), x , 5, minus);
(%o1) 0

(%i1) limit(1/x, x, 0, minus);


(%o1) minf

Obs. : minf = menos infinito.

13
Pela direita, basta adicionar o quarto parâmetro ‘plus’:

(%i1) limit(sqrt((4*x)/(x-4)), x, 4, plus);


(%o1) inf

(%i2) limit(1/x, x, 0, plus);


(%o2) inf

Obs. : inf = infinito.

Como a definição mais rudimentar de derivada provém da


aplicação de limites, vamos realizar algumas operações, como
introdução às derivadas.

Tendo conhecimento de que : f ’(x) = lim ( f(x + h) – f(x) ) / h


x->0

Podemos obter, a derivada de uma função, utilizando apenas


limites, no caso g(x) = f ’(x), veja:

(%i1) f(x):= 2 * x^2 + 3 * x;

2
(%o1) f(x) := 2 x + 3 x

(%i2) g(x) = limit((f(x + h)- f(x)) / h, h, 0);

(%o2) g(x) = 4 x + 3

Outro exemplo:

(%i1) f(x):=x - 1/x;


1
(%o1) f(x) := x - -
x

14
(%i2) g(x) = limit((f(x + h)- f(x)) / h, h, 0);

2
x + 1
(%o2) g(x) = ------
2
x

Assim, visto como implementar limites no MAXIMA,


passaremos então as derivadas.

15
- DERIVADAS

A diferenciação de uma função pode ser rapidamente obtida


pela função ‘diff’ :

diff ( função, variável );

Aplicação:

(%i1) diff((2*x^2+3*x), x);


(%o1) 4 x + 3

(%i2) diff((x - 1/x), x);


1
(%o2) -- + 1
2
x

(%i3) diff(sin(x), x);


(%o3) cos(x)

Um exemplo prático envolvendo máximos e mínimos.

Determinar as dimensões do cilindro circular reto de maior


volume que pode ser inscrito em um cone circular reto de raio R e
altura h:

Primeiramente temos que fazer uma visualização do cilindro


inscrito no cone (I), e representá-lo de forma a surgir uma
semelhança de triângulos (II).

16
(I) (II)

Portanto r/d = R/D.


Como:
(%i1) D : sqrt(R^2 + H^2);
2 2
(%o1) sqrt(R + H )

(%i2) d : sqrt((H-h)^2 + r^2);


2 2
(%o2) sqrt((H - h) + r )

Temos:
r^2/((H-h)^2 + r^2) = R^2/(R^2 + H^2);

Isolando r^2 :
(%i3)eq1:solve((r^2*(R^2+H^2))=R^2*(H-
h)^2+r^2*R^2,r^2);

2 2 2
2 (H - 2 h H + h ) R
(%o3)[r = --------------------]
2
H

Conhecido que o volume de um cilindro é (%pi*r^2)*h.


(%i4) V(h):= (%pi * R^2 * (H-h)^2 * h)/H^2;

17
2 2
%pi R (H - h) h
(%o4) V(h) := -----------------
2
H

Para obtermos o volume máximo, devemos derivar V(h), e


igualar a zero.
(%i5) eq2:solve(diff(V(h),h)=0,h);
H
(%o5)[h = H, h = -]
3

Surgiram duas soluções para h, porém a partir de um h


positivo, a solução a ser adotada é h = H/3.

(%i8) eq1:solve (eq1, r);


(H - h) R (H - h) R
(%o8) [r = - ---------, r = ---------]
H H

Assim substituindo a eq2 em eq1, temos:

(%i9) r : R*(H-H/3)/H;
2 R
(%o9) ---
3

Com isso, podemos concluir que o raio que gera o maior


cilindro é:

2 R
r = --- (resposta)
3

Para obter a segunda derivada, ou a n-ésima derivada basta


adicionar um terceiro parâmetro na função indicando quantas vezes
a função deve ser diferenciada.
diff(função, variável, n);

18
Por exemplo:
Achar a primeira e a quarta derivada de:

f(x) = 2 * ( x ^ 3 ) + 1 / ( x ^ 2 ) + 16 * ( x ^ ( 7 / 2 ) )
(%i1) f(x) := 2*(x^3)+1/(x^2)+16*(x^(7/2));
3 1 7/2
(%o1) f(x) := 2 x + -- + 16 x
2
x

(%i2) diff(f(x), x);


5/2 2 2
(%o2) 56 x + 6 x - -- (primeira derivada)
3
x
(%i3) diff(f(x), x, 4);
105 120
(%o3) ------- + --- (quarta derivada)
sqrt(x) 6
x

19
- INTEGRAIS

Para integrar uma função basta utilizar a função:

integrate(função, variável) ;
para integrais indefinidas

integrate(função, variável, início, fim);


para integrais com intervalos definidos.

Exemplos:
- Integrais indefinidas

(%i1) integrate(x^3*((1 + x^4)^5), x);


4 6
(x + 1)
(%o1) ---------
24

(%i2) integrate(x^2*cos(4*x^3), x);


3
sin(4 x )
(%o2) ---------
12

- Integrais definidas

(%i1) integrate((1+sqrt(t))^2/sqrt(t), t, 1, 4);


38
(%o1) --
3

(%i2) integrate(6 - x^2 -x, x, -3, 2);


125
(%o2) ---
6

20
No caso de funções descontínuas no intervalo dado, o
programa acusará o seguinte erro:

(%i6) integrate(1/x, x, -1, 0);


Integral is divergent
-- an error. Quitting. To debug this try
debugmode(true);

Nesse caso utilize os recursos de limites para verificar a


condição de continuidade.

21
- GRÁFICOS EM DUAS DIMENSÕES

Os gráficos gerados pelo MAXIMA aparecem em um


programa anexo ao MAXIMA o gnuplot graph.
A função mais conhecida para traçar gráficos em duas
dimensões é a ‘plot2d’, que deve ser implementada da seguinte
forma:

plot2d(função, [eixo,início,final]);

Exemplos:

(%i1) plot2d(sin(x),[x,0,2*%pi]);
(%o1)

22
Caso você não goste da escala sugerida pelo programa, ou de
uma série de outros fatores como cores, a maioria dessas coisas
você pode alterar.
Por exemplo, as cores das linhas, basta desativar o sistema de
manuseio por mouse, pressionando ‘m’, depois disso clique com o
botão direito em qualquer parte do gráfico e surgirá um menu com
diversas opções, cores das linhas, tipo de fonte, copiar a imagem
do gráfico, etc.
Se você deseja realizar maiores operações com os gráficos
basta pressionar ‘Espaço’, e você acessará a janela principal do
gnuplot, com todas as suas opções disponíveis.

Ou senão, na própria linha de comando podem ser feitas


algumas operações, veja:

- nticks : Número de pontos iniciais usado pela rotina adaptativa


de montagem do gráfico.
[nticks, 20]
O padrão para nticks é 10.

- adapt_depth: O número máximo de quebras usada pela rotina


adaptativa de montagem do gráfico.
[adapt_depth, 5]
O padrão para adapt_depth é 10.

- grid: Escolhe o número de pontos da grade para usar nas direções


x e y para montagem de gráficos tridimensionais.
[grid, 50, 50]
Escolhe a grade para 50 por 50 pontos. A grade padrão é 30 por 30.

Voltando as funções mais básicas, você pode colocar duas


funções em um mesmo gráfico, da seguinte forma:

(%i1) plot2d([sin(x), cos(x)], [x, -2*%pi, 2*%pi]);


(%o1)

23
1
sin(x)
cos(x)

0.5

-0.5

-1
-8 -6 -4 -2 0 2 4 6 8

(%i1) plot2d([cos(2*x),x^3],[x,-%pi,%pi]);
(%o1)

40
cos(2*x)
x^3
30

20

10

-10

-20

-30

-40
-4 -3 -2 -1 0 1 2 3 4

24
- GRÁFICOS EM TRÊS DIMENSÕES

Para implementação de gráficos em três dimensões a


função a ser usada é a plot3d, que se assemelha muito com
a plot2d.
O programa gerador de gráficos, o gnuplot, permite
que em gráficos de três dimensões, possa ser feito o
manuseamento do gráfico gerado de acordo com o usuário,
bastando apenas clicar em cima do gráfico e girá-lo ao seu
gosto. Você pode também remanejar a escala de acordo
com seu gosto bastando apenas clicar com o botão 3 do
mouse, isto é, o do meio.
plot3d(função,[eixo1,início1,fim1],[eixo2,início2, fim2]);

Assim, temos:
(%i1) plot3d(x^2-y^2,[x,-2,2],[y,-2,2]);
(%o1)

x^2-y^2

4
4 3
3 2
2
1 1
0 0
-1 -1
-2 -2
-3
-4 -3
-4

2
1.5
1 2
1.5
0.5 1
0 0.5
-0.5 0
-1 -0.5
-1.5 -1
-2 -1.5

25
(%i1) plot3d(sin(x)*sin(y), [x, 0, 2*%pi], [y, 0,
2*%pi]);
(%o1)

sin(x)*sin(y)
1
0.8
0.6 1
0.4
0.2
0
-0.2 0.5
-0.4
-0.6
-0.8 0
-1
-0.5
0
-1
1
2
3
4
5
6 7
6 4 5
2 3
7 0 1

Um outro famoso exemplo é o toro:


(%i1) expr_1: cos(y)*(10.0+6*cos(x));
expr_2: sin(y)*(10.0+6*cos(x));
expr_3: -6*sin(x);
plot3d ([expr_1, expr_2, expr_3], [x, 0, 2*%pi], [y,
0, 2*%pi], [grid, 40, 40]);
(%o1)
(%i2)
(%o2) (6 cos(x) + 10.0) cos(y)
(%i3)
(%o3) (6 cos(x) + 10.0) sin(y)
(%i4)
(%o4) - 6 sin(x)

26
Function

6
4
6
2
4
2 0
0 -2
-2 -4
-4 -6
-6
20
15
10
5
-20 -15 0
-10 -5 -5
0 5 -10
10 -15
15 20-20

27

You might also like