29

Introdução ao Mathematica 6 - ime.unicamp.brmarcio/ss2009/trabsel/090217Alan.pdf/090217Ala... · A versão do programa em qual se baseou esse tutorial foi o Mathematica 6.0 ,

  • Upload
    lamkiet

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Introdução ao Mathematica 6.0

Alan Bondesan De Maria - [email protected],

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