TUTORIAL · 1 - TUTORIAL - MAXIMA 5.9.2 Para Windows Por Bruno F. Milaré de Macêdo RA 042290 –...
Transcript of TUTORIAL · 1 - TUTORIAL - MAXIMA 5.9.2 Para Windows Por Bruno F. Milaré de Macêdo RA 042290 –...
1
- TUTORIAL -
MAXIMA 5.9.2
Para Windows
Por Bruno F. Milaré de Macêdo RA 042290 – MA111 – Turma A
2
- 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.
3
- Í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
4
- 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.
5
- 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:
6
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.
7
- INICIANDO O USO DO MAXIMA Primeira impressão:
8
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
9
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 MAXIM A). (%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.
10
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;
11
(%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.
12
- 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
13
- 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.
14
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
15
(%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.
16
- 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).
17
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;
(I)
(II)
18
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);
19
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
20
- 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
21
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.
22
- 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)
23
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)
24
(%i1) plot2d([cos(2*x),x^3],[x,-%pi,%pi]); (%o1)
-1
-0.5
0
0.5
1
-8 -6 -4 -2 0 2 4 6 8
sin(x)cos(x)
-40
-30
-20
-10
0
10
20
30
40
-4 -3 -2 -1 0 1 2 3 4
cos(2*x)x^3
25
- 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)
-4-3-2-1 0 1 2 3 4
-1.5-1
-0.5 0
0.5 1
1.5 2
-2-1.5
-1-0.5
0 0.5
1 1.5
2
-4-3-2-1 0 1 2 3 4
x^2-y^2
26
(%i1) plot3d(sin(x)*sin(y), [x, 0, 2*%pi], [y, 0,
2*%pi]); (%o1)
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)
-1
-0.5
0
0.5
1
0 1
2 3
4 5
6 7 0 1 2 3 4 5 6 7
-1-0.8-0.6-0.4-0.2
0 0.2 0.4 0.6 0.8
1
sin(x)*sin(y)
27
-6
-4
-2
0
2
4
6
-20 -15 -10 -5 0 5 10 15 20-20-15
-10-5
0 5
10 15
20
-6-4-2 0 2 4 6
Function