Post on 12-Feb-2019
Introdução ao Mathematica 6.0
Alan Bondesan De Maria - alandemaria@gmail.com,
RA 090217 Engenharia de Manufatura
Faculdade de Ciências Aplicadas
Universidade Estadual de Campinas
1
Sumário
1 Introdução 3
2 Sintaxe Básica 3
3 De�nir Funções 6
4 Parâmetros de Entrada 8
5 A Família Plot 9
5.1 Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2 Plot3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5.3 ContourPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.4 ContourPlot3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.5 RegionPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.6 RegionPlot3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.7 PolarPlot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.8 RevolutionPlot3D, SphericalPlot3D,... . . . . . . . . . . . . . . . 16
6 Comandos Algébricos 17
6.1 Limit, D, Integrate . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.2 Expand, TrigExpand, Factor, TrigFactor e Simplify . . . . . . . . 19
7 Manipulate, Animate 21
8 Diversos 23
8.1 Metacomandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
8.2 Carregar Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8.3 Elementos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.4 O comando Show . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
9 Concluíndo... 29
10 Referências 29
2
1 Introdução
Esse tutorial foi escrito no intuíto de ajudar os colegas ingressantes nos
cursos de engenharia da FCA a se familiarizarem com o software Mathematica.
Ele servirá, primeiramente, para auxiliá-lo nos primeiros passos com o programa
e poderá servir, posteriormente, como um guia prático para solucionar algumas
dúvidas que surgirem no caminho. Deixo meu endereço de e-mail na capa para
me enviarem perguntas referentes ao programa que não entenderam lendo o
nosso texto.
É recomendado que o leitor deste tutorial tenha acesso ao software enquanto
acompanha os tópicos para colocar em prática as idéias de cada capítulo. O
texto foi escrito de maneira a não assustar quem ainda não teve o primeiro
contato com o programa - a leitura é leve e apresenta vários exemplos. Junto
com este tutorial vai também um notebook1 com as funções e praticamente todos
os passos descritos abaixo.
Os tópicos, depois do capítulo 2, não estão distribuidos em ordem hierárquica
de importância ou di�culdade. Cada um tem sua particularidade - destacada
no começo de cada um - e sua sintaxe. Não é preciso ler em ordem também,
mas é melhor que siga linearmente até o capítulo 4.
A versão do programa em qual se baseou esse tutorial foi o Mathematica 6.0,
ainda que hoje já esteja na 7.0. O .pdf deste tutorial foi gerado pelo gerenciador
LATEX chamado LYX.
2 Sintaxe Básica
Todo programa que lida com programação possuí uma sintaxe. É através
da sintaxe que a linguagem do �mundo real� é traduzida para o �mundo vir-
tual� do software. No Mathematica, a sintaxe é simpli�cada e otimizada para a
matemática e esse é um dos seus ponteciais face aos outros softwares matemático.
Os comandos no Mathematica sempre começam com letra maíscula e a maio-
ria são os próprios nomes das operações em ingles. Expand, Sum, Derivate, Inte-
grate, Simplify, Factor, Sin, Cos, Tan são exemplos de comandos matemáticos.
Quando o nome do comando é composto, a maiúscula ocorre nos dois nomes:
ParametricPlot, ContourPlot, ArcTan, ArcSin, FindRoot. Para saber se digitou
o comando corretamente, a palavra deve �car, por padrão, preta. Se permanecer
azul é sinal que o comando não foi digitado corretamente ou não foi carregado
1Notebook é o arquivo padrão do software. Sua extensão é o .nb. É nele onde tudo éescrito e desenhado.
3
no software2 Para executar um comando no Mathematica, deve-se apertar En-
ter do teclado numérico ou Shift-Enter. A última maneira acontece devido a
maioria dos notebooks, que não vêm com teclado numérico.
In[40]:= Cos@Π�2D
Out[40]= 0
A multiplicação é feita ou com o simbolo * entre os numeros ou com espaçõs
entre eles. Exemplo: 2*2 é o mesmo que 2 2, ou 2 2. O
matemática não se importa muito com espaços. Você pode escrever 2 3 (
x - 5 x ); o programa continua entendendo como 6(x−5x).
In[31]:= 2 H5 + 12�2L
Out[31]= 22
In[30]:= 2 H5 + 12�2L
Out[30]= 22
A divisão é feita com barra, (4/2) por exemplo. Para soma e subtração utiliza-se
os simbolos usuais ( + e - ). Para elevar algum número a um expoente, deve-se
apertar ctrl + 6 para entrar com o índice superior e ctrl + espaço para voltar
a linha central. Os parênteses servem para dividir os cálculos algébricos como
fazemos no dia a dia. Entre colchetes vão os argumentos da função e entre
chaves os domínios de variação dos argumentos.
No Mathematica, logo após executar um comando voce vai notar que antes
dele aparece o escrito In[n]:=. In. signi�ca Input, ou �entrada�. O numero n
vai determinar qual a ordem da entrada. A resposta vem como Out[n]=, que
signi�ca Output, ou �saída�.
A lógica é bem intuitiva: Você entra com um comando, o programa efetua
uma �saída� com a resposta para a entrada. Entrada é todo comando que gera
uma resposta. A porcentagem �% � representa o ultimo resultado guardado na
memória do programa (ultimo output).
In[33]:= %�2
Out[33]= 11
Muitas vezes você não desejará visualizar o output do comando � para que
ele seja suprimido, deve-se inserir ponto e vírgula �; � no �m do Input.
In[26]:= Sum@2 + 2D
Out[26]= 4 s2Comentaremos sobre para que serve e como carregar os pacotes no software.
4
Podemos pensar no comando como um operador, e seu argumento como
o objeto �a ser operado�. O que vai ser operado sempre vem entre colchetes.3
Vale dizer que o Mathematica é um software essencialmente simbólico, que não
gosta de trabalhar com números decimais. Por exemplo se você entrar com uma
fração, por exemplo, 1/6 ou até mesmo π e executar, ele não vai te responder
um número decimal - vai, entretanto, devolver os números que você entrou.
Caso você esteja mesmo interessado no valor decimal, deve entrar com N[1/6]
ou N[π] para obter alguns decimais. Se quiser, por exemplo, 10 casa decimais,
digite N[expressão,10]. Quando digo que o programa não gosta de decimal,
isso é valido também para outros campos. Por exemplo, ao se realizar um
somatório in�nito geralmente o Mathematica vai procurar alguma somatória
em seu banco de dados que se encaixe no input para depois responder o valor
simbólico. Lógico que tudo isso é feito em milisegundos.
3É possivel e muito mais conveniente somar quaisquer dois numeros digitando e executandoa + b. Utilizei o Sum para efeitos didáticos.
5
3 De�nir Funções
É interessante trabalhar no Mathematica de�nindo funções. Quando quer-
emos trabalhar com a mesma operação matemática por várias vezes, é conve-
niente de�nir uma função para simpli�car o processo de escrita. Pode-se dizer4
que é mais elegante trabalhar no programa através de funções.
Para de�nir funções, por exemplo, uma f[x], o imput deve ser: f[x_] =
função.
A tradução desse comando para a nossa linguagem é feita de seguinte maneira:
�quero de�nir uma função ( f[ ..) de x (f[x_] ) que seja igual
( f[x_] = ) a, por exemplo, 3x + 5 (f[x_]=3x + 5 )�
Shift+Enter para entrar e, voilá, de�nimos5 a função f(x) = 3x + 5. Quando
inserimos underline �_� depois da variável da função, o conjunto �variável_�
�ca verde.
Poderíamos inserir qualquer letra para a função, e também uma composição em
seu nome (não somente f), por exemplo:
Soma[t_]=t + 3, soma[u_]=u + 2, div[y_]=10/y, g[z_]=z2 − 2z + 1
Tenha cuidado ao de�nir nome de funções � se você separar com espaços, o
programa entende que você está multiplicando 2 fatores. Por exemplo, aaaa 6=aa aa = aa∗aa. Se colocar um numero antes do nome da função, por exemplo,
2a, o programa entende que você multiplicou 2 vezes a função a. Já a2 é um
nome válido para funções.
Bom, mas qual é a vantagem de se de�nir funções?
Para explicar, vamos mostrar um exemplo prático:
Suponha que um produtor tenha 5 galinhas e 5 galos. Cada galinha bota 1
ovo por hora, das 6 da manhã até as 16 da tarde. Se de cada ovo nascer um galo,
podemos aproximar o numero da população em função do tempo (em meses de
30 dias). De�nimos a função no software atraves do input g[t_]=1650t + 10.Se quisermos saber quantas galinhas o produtor vai ter no 4º mês, basta escr-
ever g[4]. Se quisermos saber quantas galinhas o produtor vai ter no 34º dia,
fazemos a regra de tres:
4Você entenderá melhor essa a�rmação quando souber manipular o software com con�ança.5Na realidade o que �zemos foi guardar na memória do software uma sentença matematica
associada ao simbolo f[x] a qual se pode recorrer posteriormente.
6
1 mês 30 dias
x mês 34 dias
1 mês −→ 30 dias ⇐⇒ x mês −→ 34 dias. Disto chegamos em x = 3430 −→
g[ 3430] =1880 galinhas.
In[41]:=
g@t_D = 1650 t + 10
Out[41]= 10 + 1650 t
In[36]:= g@34�30D
Out[36]= 1880
Em suma, depois de de�nir a função, podemos trabalhar com o simbolo
f[x], tanto para obtermos resultados diretos como para manipular a função
algebricamente (veremos isso mais a frente).
7
4 Parâmetros de Entrada
No exemplo mais acima, quando entramos com Sum[2+2], vimos que no
Input aparecerá um pequeno acento circun�exo em vermelho depois do 2+2.
Isso acontece quando faltam informações sobre o argumento, isto é, o programa
precisa de mais alguns parâmetros para compreender o comando. Para descobrir
quais são estes argumentos, é necessário e recomendado procurar no help6 o
comando e ver quais os requisitos de cada um. Geralmente esse requisito vem
depois de vírgula. Quando esse requisito é uma n-upla de números � ele vem
entre chaves.
In[42]:=
DAx2 + 2E
Out[42]= 2 + x2
Por exemplo, o comando D é usado para derivar uma função. Se escrevermos
D[x²+2], o output vem como 2+x², ou seja, o programa não efetuou a operação.
Qual o problema então? Procurando no help você encontra que o comando D
necessita saber em qual variável você deseja derivar. Se escrevermos D[x²+2,x]declaramos que queremos derivar x + 2 em relação a x. O output dessa vez é
2x. Outro caso é escrever D[x + 2, y]. Você consegue adivinhar qual o output?
In[38]:= DAx2 + 2, xE
Out[38]= 2 x
Em relação a n-upla, podemos pensar por exemplo, numa integral de�nida.
Você precisa declarar os limites de integração inferior e superior. Para fazer
isso, então, o comando Integrate deve vir com o argumento e, depois da vírgula,
a n-upla entre chaves contendo: {r,s,t} onde r = variavel a ser integrada, s
= limite inferior de integração, r = limite superior de integração.
Assim, a linha Integrate[x,{x,0,1}] se refere a integração da função x em
relação a x, com limite de integração inferior 0 e superior 1. Fica para o leitor
veri�car o que ocorre com o output do comando Integrate quando adicionamos
mais um elemento na n-upla.
6Procure por Documentation Center nos menus de navegação
8
5 A Família Plot
Esse tópico vai tratar sobre uma família de comandos do Mathematica
muito importante no estudo de Cálculo, tanto de uma como de duas ou mais
variáveis � a família Plot. Basicamente, o Cálculo I e II vai tratar das funções
e suas características � seu comportamento grá�co, suas derivadas, os pontos
de máximo e mínimo, áreas e volumes delimitados pela função. Essa família
nos servirá, en�m, para um abordagem visual dos problemas propostos em sala
de aula. Não somente a isso restrito, o comando Plot e seus variantes podem
ser utilizados mais a fundo para desenhos arquitetônicos, desenhos de projetos,
etc...
Apresento-lhes os comandos:
5.1 Plot
O comando Plot pode ser considerado dentro dessa familia de comandos o
mais simples. Isso porque o grá�co bidimensional, no plano xy, já é conhecido
por nós (ou devia ser) faz tempo e é também um dos principais objetos de
estudo no Cálculo I. Escrevemos Plot[função,{x, a, b}]. A função é uma
f(x) qualquer, a n-upla entre chaves indica que vamos plotar um grá�co que
tem como variável independente o �x�, e o domínio do x é o subconjunto dos
numeros reais que vai de um limite inferior a até um limite superior b.
Dando continuidade a nosso exemplo, escrevemos Plot[g[x],{x,0,5}] para
visualizar o grá�co da nossa função do crescimento das galinhas.
In[44]:=
Plot@g@tD, 8t, 0, 5<D
Out[44]=
1 2 3 4 5
2000
4000
6000
8000
9
Podemos adicionar como argumento principal do Plot não apenas uma
função, mas duas ou mais. Esse artifício é útil para visualizar num mesmo plano
os grá�cos da função e suas derivadas. As cores de cada grá�co são distintas.
O input nesse caso é Plot[{f(x),g(x),h(x),....,n(x)},{x,a,b}]
5.2 Plot3D
O uso do Plot3D é mais importante em Geometria Analítica e em Cálculo
II. O comando admite que no plano tridimensional a altura seja a imagem da
função f(x,y), cujo domínio é a dupla dos reais7 , em R2.
Escrevemos Plot3D[f(x,y),{x,a,b},{y,c,d}]. Você vai notar que, ao plotar
grá�cos tridimensionais com este comando, o per�l da superfície não surge como
se esperava. Isso acontece pois o comando só admite domínios retangulares, o
que pode suprimir partes importantes de desenhos no espaço. Para driblar esse
problema, utilizaremos outro comando, o ContourPlot3D.
In[45]:=
Plot3DAx2 - y2, 8x, -2, 2<, 8y, -2, 2<E
Out[45]=
-2
-1
0
1
2 -2
-1
0
1
2
-4
-2
0
2
4
O Plot3D também admite mais de uma função como argumento. Pode-
mos escrever Plot3D[{f(x,y),g(x,y)},{x,a,b},{y,c,d}] e os grá�cos serão
plotados junto. Nesse caso as cores são as mesmas.
7Um par de números reais leva a um único valor da função, e este valor é �rebatido� noeixo z.
10
5.3 ContourPlot
O ContourPlot é um �grá�co� que permite visualizar os campos escalares
de funções de duas variáveis. Seria como se estivessemos a visualizar um mapa
topológico plano de alguma superfície. Ele é construído a partir das curvas de
nível da função. Esse comando já é mais poderoso que o Plot pois ele desenha
�equações�. O que quero dizer é que podemos plotar equações (das cônicas, por
exemplo) sem perda de informações, como ocorre com o Plot. Por exemplo,
experimente, como exercício, plotar o grá�co de uma circunferência centrada
na origem com o comando Plot ; repare que você terá o trabalho de colocar y
em função de x e dessa manipulação surge uma raíz quadrada no percurso. Os
resultados de y negativo na circunferência desaparecem por conta da implicação
algébrica da raíz não admitir números negativos. Essa perda de generalidade
é o problema do comando Plot, que pode ser solucionada com o emprego do
ContourPlot. Esse comando está ligado aos primeiros tópicos de Cálculo II,
importante na resolução de problemas de otimização em duas variáveis.
ContourPlotAx2 + y2, 8x, -1, 1<, 8y, -1, 1<E
-1.0 -0.5 0.0 0.5 1.0
-1.0
-0.5
0.0
0.5
1.0
A sintaxe é a quase a mesma dos anteriores: ContourPlot[f(x,y),{x,a,b},{y,a,b}].
Note que o grá�co virá com cores por padrão, e alguns contornos da função. As
cores fortes indícam profundidade. Veremos mais a frente que podemos mudar
essas opções. Caso queira visualizar um valor exato da função, por exemplo,
uma circunferência de raio 1, deve-se escrever:
11
ContourPlot[x^2+y^2==1,{x,a,b},{y,c,d}]8. O sinal duplo == é como o
programa entende a igualdade.
5.4 ContourPlot3D
O comando ContourPlot3D pode ser entendido como aquele que desenha as
superfícies de nível de uma função que vai do R3 para o R1. Para cada tripla
de numeros reais é admitido um só valor da função f(x,y,z).
A sintaxe do comando é a mesma do anterior, porém com o domínio restrito a
tripla real {x,y,z}.
ContourPlot3D[F(x,y,z),{x,a,b},{y,c,d},{z,e,f}]
In[47]:= ContourPlot3DAx2 + y2 + z2, 8x, -2, 2<, 8y, -2, 2<, 8z, -2, 2<E
Out[47]=
-2-1
01
2
-2
-1
0
1
2
-2
-1
0
1
2
Podemos destacar uma superfície de nível especí�ca desenhando-a implicita-
mente como: ContourPlot3D[F(x,y,z)==k,{x,a,b},{y,c,d},{z,e,f}].8Nas versões anteriores, obtia-se resultados semelhantes com o ImplicitPlot. Na versão
6.0, o ContourPlot e ContourPlot3D admitem uma igualdade no seu argumento, o que nãoacontecia nas versões antigas.
12
ContourPlot3DA2 x2 + 4 y2 + 3 z2 � 4, 8x, -2, 2<, 8y, -2, 2<, 8z, -2, 2<E
-2
-1
0
1
2
-2-1
01
2
-2
-1
0
1
2
5.5 RegionPlot
O comando RegionPlot é a ferramenta do software especializada no desenho
de regiões de�nidas por inequações. Esse comando é super útil no desenho
de regiões de integração do Cálculo I e II, necessárias para a construção das
integrais que fornecem, a partir das inequações, o valor da área ou volume de
uma região.
Sua sintaxe é, entre os anteriores, a que �foge� dos padrões, justamente por usar
inequações. Ela é feita de seguinte maneira:
Suponha que você tenha que determinar a área de uma região compreendida e
limitada acima pela reta x = y e abaixo pela parábola y = x2. Para desenhar
essa região no Mathematica, você precisará saber os pontos onde essas curvas
irão se interseccionar e a altura correspondente a esses pontos. Fazendo x = x2
encontramos os pontos (0,0) e (1,1) (esses serão os limites do domínio). A
13
sintaxe para plotar essa região �ca então:
RegionPlot[y ≤ x && y ≥ x2,{x,0,1},{y,0,1}]
In[49]:=
RegionPlotAy £ x && y ³ x2, 8x, 0, 1<, 8y, 0, 1<E
Out[49]=
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.2
0.4
0.6
0.8
1.0
Repare na lógica da sintaxe: O programa vai plotar uma região na qual y
está abaixo da reta y = x e (&&) acima da parabola y = x2, e essa região �ca
restrita a intersecção dessas duas condições, quando x=1 e y=1, e x=0, y=0.
A grande diferença é esse operador && que, basicamente, indica uma interde-
pendência de dois argumentos do comando. Caso existam mais inequações
que de�nem a região, separa-se da mesma forma acima: RegionPlot[ineq1
&& ineq2 && ineq3 && ... && ineqn,{x,a,b},{y,c,d}]
5.6 RegionPlot3D
O RegionPlot3D é o irmão mais velho do anterior e muito útil na parte de
integrais triplas do Cálculo II, quando você precisar desenhar regiões compreen-
didas entre planos e/ou superfícies diversas, como as quádricas. Um cilindro
sólido, por exemplo, é descrito pela inequação x2 + y2 ≤ 1 A sintaxe funciona
como a do RegionPlot, porém adiciona-se a restrição do domínio em z. Por
exemplo:
RegionPlot[z ≤ x2 && z≤ x2 + y2,{x,0,1},{y,0,1}]
14
RegionPlot3DAz £ x2 && z £ x2 + y2, 8x, 0, 1<, 8y, 0, 1<, 8z, 0, 1<E
0.0
0.5
1.0
0.0
0.5
1.0
0.0
0.5
1.0
5.7 PolarPlot
O PolarPlot é também de grande utilidade no Cálculo I e II, no que se refere
a visualização de formas descritas por equações polares. Um objeto descrito por
uma equação polar é, antes de tudo, um objeto descrito por sua parametrização
em função da distância do ponto à origem (o raio r) e o ângulo que esse raio
forma com o eixo dos x (o angulo θ)9. O PolarPlot é um comando otimizado
para a plotagem dessas parametrizações.
Se você já leu até aqui, a sintaxe é fácil e intuitiva como as anteriores:
PolarPlot[h[r, θ],{θ, a, b}]
9A parametrização já é conhecida, x = rCos[θ] e y = rSen[θ] . Para mais informaçõessobre as equações nas formas polares, consultar o livro Calculo com Geometria Analítica doLuis Leithold, Volume I.
15
In[50]:= PolarPlot@1 + Cos@tD, 8t, 0, 2 Π<D
Out[50]=0.5 1.0 1.5 2.0
-1.0
-0.5
0.5
1.0
5.8 RevolutionPlot3D, SphericalPlot3D,...
Existem outros tipos de comando da família Plot. No título deste tópico es-
tão alguns deles. Na verdade, os comandos anteriores já dão conta do recado pra
quem está num curso superior de exatas. Os outros comandos são alguns mais
especí�cos e otimizados para alguns tipos de plotagem. Quando falo �otimizado
para plotagem�, isso quer dizer que o Mathematica já tem um conjunto de al-
gorítmos internos feitos especialmente para o tratamento de algumas entidades,
tais como grá�cos polares, grá�cos de revolução; então, dependendo da apli-
cação, alguns comandos facilitam o usuário, economizando tempo de processa-
mento. Caso queiram mais informações sobre a família Plot sugiro uma busca
mais a fundo no Documentation Center.
In[7]:= RevolutionPlot3D@88Cosh@tD, Sinh@tD<, 8Cosh@tD, -Sinh@tD<<, 8t, 0, 2<D
Out[7]=
-20
2
-2
0
2-2
0
2
Mais a frente veremos como desenhar o básico: Linhas, pontos, etc.
16
6 Comandos Algébricos
Os comandos algébricos nos auxiliam na resolução de problemas em sí: São
eles que fazem as contas. Se seu professor passou uma derivada muito difícil,
o Mathematica está a sua disposição para resolvê-la em questão de segundos.
Não vou estender muito essa introdução, portanto, partamos direto para os
comandos e suas sintaxes.
6.1 Limit, D, Integrate
O comando Limit, como o nome ja diz, calcula os limites. O programa
geralmente vai lhe fornecer o valor simbólico do limite, caso existir. É um
grande ajudante no começo do Calculo I, tanto para conferir o resultado dos
exercícios que fez, como para entender e extender o conceito de derivada.
A sintaxe do comando é muito simples: Limit[ f[x], x->a ]. Caso queira
um limite pela direita ou pela esquerda, é só colocar Direction -> 1 para lim-
ite vindo a direita, e Direction -> -1 para limite vindo a esquerda. Isto é:
Limit[ f[x], x->a, Direction-> -1 ] ou Limit[ f[x], x->a, Direction->
1 ]
In[8]:= Limit@1�x, x ® 0D
Out[8]= ¥
In[9]:= Limit@H1 + 1�xLx, x ® ¥D
Out[9]= ã
Repare que se você digitar Limit[f [x+h]−f [x]
h , h->0, Analytic -> True ]
o programa retorna com o output f'[x].
O comando D (derivada) serve para derivar uma função e já foi visto no capí-
tulo 4. A sintaxe é D[ f[x] , x ] para derivar uma função de x em relação a x;
pode-se também de�nir uma função com n variáveis, f [ x,y,z,k,w,...,n ] e
derivá-la numa variavel desejada p, por exemplo: D[ f [ x,y,z,k,w,...,n ],
p ]. Repare que, se você optou por trabalhar com funções como sugerido no
capítulo 3, tiver de�nido uma função f[x] e digitar num input f'[x], obtém-se
o resultado da derivação da função de�nida como resposta10.
Já para o �m do Cálculo I e quase todo o Cálculo II você vai precisar integrar
funções, e é ai que o comando Integrate existe para te ajudar. A sintaxe é a
seguinte:
10Em geral, depois de de�nir funções, você pode utilizar o símbolo da função (g[x,y], porexemplo) para muitos outros comandos.
17
Integrate[ f, x ] vai te dar a integral inde�nida de uma função.
Integrate [ f, {x,a,b} ] vai te dar a integral de�nida entre os limites de
integração inferior a e superior b.
Integrate[ f, {x,a,b},{y,c,d}] vai te dar a integral dulpla limitada em x
por a e b e em y por c e d. Fique esperto pois o programa entende que o primeiro
argumento depois da função será o ultimo a ser integrado. No nosso casso, ele
vai realizar a seguinte operação:´ b
a
´ d
cdydx.
In[10]:= DAx2 + 2 x + 5�x, xE
Out[10]= 2 -5
x2+ 2 x
In[12]:= IntegrateAx2 + 5 y ã2 y, y, xE
Out[12]=x3 y
3+
5
4ã2 y x H-1 + 2 yL
Lembrando que você pode fazer as integrais utilizando o símbolo (eu, particular-
mente, pre�ro desta maneira). Abra o menu superior Pallets -> BasicMathIn-
put e uma janela pequena abrirá com diversos simbolos. Dentre eles o símbolo
de uma integral de�nida. Clique neste símbolo e nele você consegue inserir
os limites superior e inferior de integração. Para fazer o simbolo diferencial é
necessário apertar Esc, digitar �dd� e Esc novamente11.
11As letras gregas podem ser inseridas desta maneira, digitando por exemplo esc->pi->escvocê obtem π, e assim por diante.
18
6.2 Expand, TrigExpand, Factor, TrigFactor e Simplify
Os comandos Expand, TrigExpand e Simplify são de uso geral. Eles são
aquelas operações algébricas que algumas vezes temos que decorar os macetes
para conseguir chegar num resultado satisfatório. Por exemplo o comando Ex-
pand serve para expandir algum polinômio. A sintaxe é bem simples> o input
Expand[(2x+5)5] vai �abrir� esse polinômio até a quinta potência. Da mesma
maneira, o comando TrigExpand realiza expansões trigonométricas do tipo Seno
[a+b]. A sintaxe é como a anterior: TrigExpand[Sin[xy+x]] por exemplo. O
TrigExpand também faz expansões de funções trigonométricas inversas e hiper-
bólicas.
In[13]:= ExpandAH2 x + 5L5E
Out[13]= 3125 + 6250 x + 5000 x2 + 2000 x3 + 400 x4 + 32 x5
In[14]:= TrigExpand@Sin@xy + xDD
Out[14]= Cos@xyD Sin@xD + Cos@xD Sin@xyD
In[16]:= Simplify@%D
Out[16]= Sin@x + xyD
19
O comando Simplify é útil quando numa integração, por exemplo, o resultado
vem cheio de somas - aplicar o Simplify vai deixar o resultado mais bonito e
limpo. É, antes de tudo, o que a palavra indica: Ele simpli�ca. Corta os fatores
comuns numa razão, troca expressões por identidades (Sen2x + Cos2x = 1) eetc. Simplify[x2 + 2x + 1] gera (x + 1)2.
Factor vai fatorar uma expressão. Na verdade esse comando quase sem-
pre retorna resultados parecidos com o Simplify e recupera expressões originais
quando expandidas. Por exemplo se escrevessemos Expand[(2x+5)5], obte-
riamos uma série de somas até a quinta potência. Em seguida, com o input
Factor[%] obteríamos o output(2x + 5)5
20
7 Manipulate, Animate
O comandoManipulate é uma ótima ferramenta grá�ca interativa do sofware
Mathematica que lhe permite visualizar, basicamente, as mudanças que um
parâmetro causa numa função. Pode ser um forte aliado para o entendimento
da periodicidade de funções trigonométricas e das formas cônicas e suas rotações.
Porém seu uso não está limitado somente ao campo grá�co das funções - Pode
ser usado também para operações simbólicas: ver as mudanças termo a termo
uma expansão binomial de ordem 1, 2, 3, n; Visualizar todas as n - ésimas
integrais de uma função; fatorar um polinômio até a ordem desejada.
A sintaxe do comando é similar as outras do programa, mas é necessario
�car esperto para as seguintes nuânces: O comando manipulate deve ser seguido
sempre por outra operação que você quer variar. Na verdade, o comando tem
como imput qualquer outro comando que possa gerar uma resposta. exemplo,
se quiser manipular a soma x + 4 quando x varia de 0 até 6, você deve escrever:
Manipulate[x + 4, {x, 0, 6}].
Outro exemplo legal é o seguinte: Manipulate[Expand[(a + b)^n], {n, 1,
6}]. Se estiver com o soft aberto, vai notar que ele não expandiu o binômio.
Nesses casos, é necessário introduzir outra entrada no intervalo de variação, alem
do comum {x, xmin, xmax}, coloque um numero v {x, xmin, xmax, v} que
corresponda a quanto a barra de rolagem vai variar por vez. É convencional,
neste exemplo utilizar v = 1. Dica : Note que quando o comando é executado,
surge um sinal de + do lado da barra de rolagem: ao clicá-lo, você pode ver
qual o valor de "n" no momento e também pode �animar� o grá�co apertando
o botão de play.
Alguns exemplos bons de comando estão abaixo. No pdf anexo, segue as imagens
dos outputs abaixo. Porém, como o Manipulate é um comando dinâmico, é
melhor você fuçar por sí mesmo no programa.
Manipulate[ ContourPlot[a x^2 - b y^2 , {x, -1, 1}, {y, -1, 1}, ContourShading
-> False], {a, 0, 1}, {b, 0, 1}]
Esse exemplo mostra as curvas de nível de uma hiperbole mudando conforme
os parâmetros a e b mudam.
Manipulate[ContourPlot3D[ x^2 - a y^2 - z^2 == 1, {x, -2, 2}, {y, -2,
2}, {z, -2, 2}, Mesh -> None], {a, -1, 6}]
21
In[24]:= Animate@ContourPlot3D@ x^2 - a y^2 - z^2 � 1, 8x, -2, 2<, 8y, -2, 2<, 8z, -2, 2<, Mesh ® NoneD, 8a, -1, 6<D
Out[24]=
a
-2
-1
0
1
2
-2
-1
0
1
2
-2
-1
0
1
2
Esta linha de comando mostra como a quádrica muda de forma dependendo do
parâmetro a. Repare que o hiperbolóide de revolução vai passando para cilindro
hiperbólico e por �m hiperbolóide de duas folhas.
O comando Animate funciona como o anterior, alias até com o mesmo
Imput. O que muda é que o Animate já vem, por padrão, preparado para
animar a variação do parâmetro, coisa que era preciso fazer manualmente no
anterior.
22
8 Diversos
8.1 Metacomandos
Metacomandos são comandos que dizem respeito ao próprio funcionamento
do software e/ou seus comandos. Talvez, no início, essa parte não seja muito im-
portante em sí, mas quem a domina certamente consegue tirar melhor proveito
das ferramentas que o programa oferece. Isso porque alguns metacomandos aju-
dam a saber quais os padrões dos comandos e, sabendo modi�cá-os, os resultados
quase sempre melhoram.
O comando Options é uma metacomando. Executado, ele lista uma série
de argumentos admitidos por certo comando. Para isso, escrevemos, por exem-
plo, Options[Plot]. Neste caso, o output surge com os argumentos seguidos
de uma �echa e sua condição padrão. No caso do Plot, o argumento Aspec-
tRatio vem como padrão 1/GoldenRatio; isso signi�ca que todos os grá�cos
plotados com o comando Plot vem escalado pela proporção áurea12, o que faz,
por exemplo, um círculo parecer com uma elipse neste comando. Para isto não
acontecer, depois de escrever a linha do comando, você insere depois de vírgula
a condição: AspectRatio->Automatic. Dê um zoom para enxergar a lista inteira
de argumentos abaixo:Options@PlotD
:AlignmentPoint® Center, AspectRatio®1
GoldenRatio, Axes ® True, AxesLabel® None, AxesOrigin® Automatic, AxesStyle® 8<, Background® None, BaselinePosition® Automatic, BaseStyle® 8<, ClippingStyle® None
Exclusions® Automatic, ExclusionsStyle® None, Filling® None, FillingStyle® Automatic, FormatType¦ TraditionalForm, Frame ® False, FrameLabel® None, FrameStyle® 8<, FrameTicks® Automatic, FrameTicksStyle
MeshStyle® Automatic, Method ® Automatic, PerformanceGoal¦ $PerformanceGoal, PlotLabel® None, PlotPoints® Automatic, PlotRange® 8Full, Automatic<, PlotRangeClipping® True, PlotRangePadding® Automatic
In[2]:= PlotB: 1 - x2 , - 1 - x2 >, 8x, -1, 1<F
Out[2]=-1.0 -0.5 0.5 1.0
-1.0
-0.5
0.5
1.0
12A proporção de ouro é um numero que vem da solução de uma equação quadrática queenvolve a razão de segmentos. ϕ=1,618...
23
In[3]:= PlotB: 1 - x2 , - 1 - x2 >, 8x, -1, 1<, AspectRatio® AutomaticF
Out[3]=-1.0 -0.5 0.5 1.0
-1.0
-0.5
0.5
1.0
Existem outros argumentos interessantes. Nos grá�cos 3D, a opçãoMesh->None
some com as linhas dos grá�cos.13
8.2 Carregar Pacotes
O Mathematica é um programa enxuto e por conta disso suprime algu-
mas �necessidades� no inicio do programa para economizar memória e proces-
samento. Por exemplo, algumas idéias do Cálculo II, como gradiente de uma
função, campos vetoriais, entre outros, têm seus respectivos comandos que es-
tão desabilitadas por padrão no inicio do programa. Para fazê-las funcionar, é
necessário carregar pacotes. Pacote é um macro que contém diversos algorítmos
especializados para trabalhar em tipo especí�cos de comandos.
A sintaxe para carregar pacotes é: Needs[�pacote`�]
No exemplo a seguir, carregamos o pacote VectorFieldPlots e executamos alguns
de seus comandos:13O grá�co do hiperbolóide da parte do animate está com essa opção.
24
In[6]:= Needs@"VectorFieldPlots "̀ D
In[15]:= a = VectorFieldPlot3D @82 x, 2 y, z <, 8x, -1, 1 <, 8y, -1, 1 <, 8z, -1, 1 <, VectorHeads ® True D
Out[15]=
Ai está o campo vetorial 2x i + 2y j + z k. O argumento adicional VectorHeads-
>True serve para adicionar a �cabeça�(a �echa) do vetor.
Out[16]=
25
8.3 Elementos Básicos
Agora que você já viu uma grande quantidade de comandos que desenham
grá�cos, deve-se estar perguntando como desenhar coisas mais simples, como
um triângulo?
A resposta para essa pergunta está no comando Graphics. Esse comando
é quem cuida dos desenhos de objetos elementares, como o ponto e a linha. A
idéia a você especi�car, geralmente, a coordenada inicial e coordenada �nal. No
caso de um ponto, a sintaxe só conta com uma coordenada. No caso de uma
linha, ou de uma �echa, você especi�ca duas coordenadas (o ponto de partida e
o ponto de chegada). Isso é feito da seguinte maneira:
Graphics[Line[{{0,0},{2,2}}]] vai desenhar uma linha que parte do ponto
{0,0} e chega até o ponto {2,2}.
In[36]:= Graphics@Line@880, 0<, 82, 2<<DD
Out[36]=
R
O comando ListPlot[{{n,m},{j,k}}] vai marcar diversos pontos nas
coordenadas indicadas.
In[38]:= Graphics@Arrow@880, 0<, 80, 0.3<<DD
Out[38]=
O comando Graphics[Arrow[{{n,m},{j,k},...}]] desenha uma �echa
que nasce em {n,m} e morre em {j,k}.
Existem outras entidades elementares aceitas pelo Graphics, como Disk e Circle.
Disk vai desenhar um disco circular e Circle um círculo. A sintaxe nesses casos
é Graphics[Circle[{a,b},r]] onde {a,b} é a coordenada do centro e r é o
raio da entidade.
26
In[43]:= Graphics@Disk@80, 0<, 1�4DD
Out[43]=
8.4 O comando Show
O comando Show é uma ferramenta interessante cuja função é apresentar,
num mesmo grá�co, dois ou mais elementos juntos. Por exemplo, quando você
quiser plotar um campo escalar e ver junto os gradientes, é recomendado di-
vidir esse procedimento em 2 partes. A primeira é desenhar o campo escalar
com o ContourPlot e a segunda é desenhar o gradiente. Antes de executar os
dois comandos anteriores, você pode, e deve, associá-los a um símbolo (quase
como �zemos com uma função) para que ele seja guardado na memória e ser
buscado posteriormente. Depois disto, usar o comando Show[a,b] para ver os
dois grá�cos juntos.
Em termos práticos, o que vai acontecer é o seguinte:
1. gra�co1 = ContourPlot[........];
2. gradiente = PlotGradientField[.....];
3. Show[gra�co1,gradiente]
O output dessa sequência será dois grá�cos sobrepostos. Você pode usar quantos
elementos quiser com o Show, basta que eles sejam de �mesma espécie�.
Exemplos:
In[1]:= Α = ContourPlotAx2 - y2, 8x, -2, 2<, 8y, -2, 2<E;
27
Needs@"VectorFieldPlots "̀ D
Β = GradientFieldPlot Ax2- y2 , 8x, -2, 2 <, 8y, -2, 2 <E
Show@Α, ΒD
-2 -1 0 1 2
-2
-1
0
1
2
28
9 Concluíndo...
Aqui termina, parcialmente, esse tutorial. Os três pontos no nome do capítulo
indicam que este tutorial é um projeto que ainda não terminou. Ainda existe
espaço para ser preenchido com outros comandos, alguns detalhes a mais e com
a experiência pessoal de cada um. Espero que, com a iniciação no programa
dada, surjam novas idéias e sugestões dos leitores para melhorá-lo. Descobriu
um novo comando? Conseguiu programar algum algorítmo que ajuda nas nossas
matérias? Não hesite em divulgar seu achado.
Agradecimentos:
1. Ao professor Márcio Rosa.
2. A minha familia.
3. Aos colegas da faculdade que estão juntos comigo neste barco.
10 Referências
Documentation Center, Mathematica 6.0
EDWARDS, PENNEY, Cálculo com Geometria Analítica, Vol 3., Quarta edição.
Editora Prentice Hall Do Brasil
Notas pessoais
29