Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução ao WolframCloud
Introdução
Introdução
Informações sobre o Wolfram estão disponíveis na internet na página da Wolfram Research, Inc.
cujo endereço é http : www.wolfram.com
Objetivo
Os notebooks
Os notebooks são documento interativos estruturados, que misturam o input e output do wolfram com
2 CurrentValue[FileName]
Os notebooks podem ser utilizados para executar computações ou como meio de apresentar ou
publicar resultados obtidos.
O Wolfram possui uma abrangente funcionalidade, podendo ser operado como um simples editor de
textos até uma poderosa ferramenta de programação de linguagem alto nível.
A figura abaixo mostra um típico notebook, contendo texto, gráficos e cálculos (input e output).
Os notebooks são estruturados, organizados em uma seqüência de células. Cada célula contém material
de um tipo definido - usualmente, texto, gráficos, sons ou expressões do Mathematica.
Como exemplo, apresenta-se o notebook acima com uma célula de input, além de uma célula de texto.
Ao avaliar a célula de input, o kernel do Mathematica retorna o valor da expressão, neste caso um
número 11.
Os notebooks permitem que sejam criados documentos que possam ser vistos interativamente na tela
ou impressos em papel. Particularmente em notebooks maiores, é comum ter-se capítulos, seções, e
etc, cada um representado por um grupo de células. A extensão deste grupos são delimitadas pelo
colchete azul, agrupando todas as células, à direita dos colchetes menores que delimitam-nas. Observe
o notebook exemplo:
CurrentValue[FileName] 3
Computações numéricas
Aritmética
As operações aritméticas são feitas com os símbolos "+, -, *, /" (o símbolo para a multiplicação
pode ser substituido por um espaço). Para indicar uma potência, utiliza-se o "^".
In[4]:= 235
Out[4]= 30
In[5]:= 3 4 ^2 2 3 1
Out[5]= 41
x^y potência
x menos
xy divisão
x y z ou x y z multiplicação
xyz adição
Uma calculadora eletrônica comum faz todos os seus cálculos utilizando uma acurácia prescrita, de
diga-se dez dígitos. Com o Wolfram entretanto, pode-se freqüentemente obter resultados exatos.
In[6]:= 2^ 100
Out[6]= 1 267 650 600 228 229 401 496 703 205 376
In[8]:= 2^ 100 N
Out[8]= 1.26765 1030
4 CurrentValue[FileName]
In[10]:= 1 3 2 7 N
Out[10]= 0.619048
In[11]:= 452 62
226
Out[11]=
31
In[12]:= 452. 62
Out[12]= 7.29032
In[13]:= 1. 452 62
Out[13]= 8.29032
Funções matemáticas
In[14]:= Log8.4
Out[14]= 2.12823
In[15]:= Sqrt16
Out[15]= 4
CurrentValue[FileName] 5
In[16]:= Sqrt2 N
Out[16]= 1.41421
In[17]:= Sqrt3.
Out[17]= 1.73205
In[18]:= Sqrt5 N
Out[18]= 2.23607
In[19]:= 30
Out[19]= 265 252 859 812 191 058 636 308 480 000 000
In[20]:= 30 N
Out[20]= 2.65253 1032
Constantes matemáticas
Note que todos os nomes destas constantes são iniciadas com letras maiúsculas.
In[21]:= Pi^ 2 N
Out[21]= 9.8696
In[23]:= Sin20 ° N
Out[23]= 0.34202
In[24]:= LogE^ 5
Out[24]= 5
Desenvolvendo computações
In[26]:= x5
Out[26]= 5
In[27]:= x^ 2
Out[27]= 25
In[29]:= x76
Out[29]= True
In[31]:= pi^ 2
Out[31]= 9.86960440108935861883449099987615113531
É muito importante observar que os valores atribuídos a variáveis são permanentes. Tendo definido
um valor para uma certa variável, este valor será armazenado até que o usuário explicitamente remova-
o. O valor irá logicamente desaparecer, se uma nova sessão do Wolfram for iniciada.
x y significa x vezes y
xy sem espaço é a variável com nome xy
5 x significa 5 vezes x
x ^2 y significa x2 y e não x2 y
Ao fazer cálculos, freqüentemente é conveniente agrupar vários objetos, e tratá-los como uma única
entidade. As listas permitem que se façam coleção de objetos no Wolfram. As listas são estruturas
muito importantes e gerais no Mathematica. Uma lista como 3, 6, 4 é uma coleção de três objetos.
List3, 6, 4
3, 6, 4
In[1]:=
Out[1]=
3, 6, 4
3, 6, 4
In[2]:=
Out[2]=
3, 6, 4^ 2 1
10, 37, 17
In[3]:=
Out[3]=
Out[4]=
vv 5, 4, 3.1, 9
5, 4, 3.1, 9
In[5]:=
Out[5]=
In[6]:= vv ^ 2 vv ^ 2 1
25 16 81
Out[6]= , , 1.11614,
24 15 80
Construção de listas
Tabelas de valores
É possível gerar listas, por exemplo, avaliando uma expressão para uma seqüência de diferentes
valores de um parâmetro.
Tablef, imax gera uma lista com imax valores de f
Tablef, i, imax gera uma lista dos valores de f enquanto
i varia de 1 a imax
Tablef, i, imin, imax gera uma lista dos valores enquanto
i varia de imin a imax
Tablef, i, imin, imax, di utiliza passos de di
Utilizando Table não especificando variação de parâmetro algum, gera-se por exemplo, uma lista com
8 cópias do elemento .
TableExpPi, 8
, , , , , , ,
In[9]:=
Out[9]=
8 CurrentValue[FileName]
Out[10]=
0,
1 1 1 1
Out[11]= , 1, , 0, , 1,
2 2 2 2
0,
1 1 3
Out[12]= , , , 1
2 2 2
Out[13]=
Listas unidimensionais
As funções aqui apresentadas são utilizadas para geração de listas unidimensionais, lembre-se que a
função Table pode ser utilizada de diversas maneiras, ulilizando a notação geral de iteração do
Wolfram.
Tablef, i, n gera uma lista com n elementos avaliando f com i 1, 2, ..., n
Arraya, n gera uma lista com n elementos na forma a1, a2, ...
Rangen cria a lista 1, 2, ...
Rangen1 , n2 cria a lista n1 , n1 1, ..., n2
Rangen1 , n2 , dn cria a lista n1 , n1 dn, ..., n2
Arraya, 4
a1, a2, a3, a4
In[14]:=
Out[14]=
Range5
1, 2, 3, 4, 5
In[15]:=
Out[15]=
Range2, 6
2, 3, 4, 5, 6
In[16]:=
Out[16]=
CurrentValue[FileName] 9
Viu-se que é possível atribuir uma listas a uma variável. Outra característica útil do Wolfram, e que
pode-se fazer atribuições uma listas, do lado esquerdo do sinal de atribuição .
A atribuição abaixo, faz com que x1, x2 e x3, recebam os distintos valores, elementos da lista à
direita.
Out[17]=
In[18]:= x1 x2 x3
Out[18]= 13
Out[19]=
a, b, c, d Tablemi, j, i, 2, j, 2
m1, 1, m1, 2, m2, 1, m2, 2
In[20]:=
Out[20]=
2 a b 4 c d
2 m1, 1 m1, 2 4 m2, 1 m2, 2
In[21]:=
Out[21]=
y1, y2, y3, z1, z2, z3 1, 2, 5, 3, 4, 6
1, 2, 5, 3, 4, 6
In[23]:=
Out[23]=
Computações algébricas
In[26]:= 1 2 a b^3
Out[26]= 1 2 a b3
In[27]:= x^ 2 x 4 x ^2
Out[27]= x 3 x2
10 CurrentValue[FileName]
7
In[28]:= x6 8
x
7
Out[28]= 2 2 x6
x
In[29]:= x y 2 x ^2 y y ^2 x ^ 2 2 y x
Out[29]= x y 2 x2 y x2 y2
In[31]:= fator x 2 y 1 x 2 ^ 2
Out[31]= 2 x2 1 x 2 y
Factorfator2
2 x2 1 x 2 y
In[34]:=
Out[34]=
n 4
Out[35]=
In[36]:= Sqrt1 x ^4
Out[36]= 1 x2
Regras de transformação
Considere a expressão:
In[38]:= 12x
Out[38]= 12 x
Para tomá-la e substituir o símbolo x por um valor definido, é possível criar uma regra de
transformação e então aplicar esta regra à expressão.
In[39]:= x3
Out[39]= x3
Deve-se digitar como uma seqüência dos caracteres "" e "", sem espaços entre os mesmos. Para
aplicar uma regra de transformação a uma expressão digita-se expr . regra. O operador de
substituição "." é digitado também como uma seqüência de caracteres sem espaços entre os mesmos.
In[40]:= 1 2 x . x 3
Out[40]= 7
CurrentValue[FileName] 11
In[41]:= x
Out[41]= x
In[42]:= 1 x x2 . x 2 y
Out[42]= 3 2 y2 y
In[43]:= x3y
Out[43]= x 3y
In[44]:= x y x y2 . x 3, y 1 a
Out[44]= 4 a 2 a2
In[45]:= expr1 x1 x2 x3
Out[45]= x1 x2 x3
In[46]:= regra1 x1 k1
Out[46]= x1 k1
In[48]:= expr1
Out[48]= x1 x2 x3
In[50]:= expr2
Out[50]= k1 x2 x3
Out[1]=
Out[2]=
12 CurrentValue[FileName]
x 1 . x 3
4
In[3]:=
Out[3]=
In[6]:= x 1 . x 3
Out[6]= 4
In[5]:= x 1 . x 3
Out[5]= 4
Ao aplicar a regra entre um par de chaves a expressão x 1, ocorre o mesmo que sem chaves, mas
quando utilizam-se duplas chaves uma lista é obtida.
Há diversas situações onde deseja-se escrever uma determinada expressão algébrica na forma mais
simples possível.
Simplifyexpr tenta encontrar a forma mais simples de
expr aplicando várias transformações algébricas padrão
FullSimplifyexpr tenta encontrar a forma mais simples
aplicando uma quantidade maior de transformações
Simplificação de expressões
In[7]:= Simplifyx2 2 x 1
Out[7]= 1 x2
In[8]:= Simplifyx10 1
Out[8]= 1 x10
Factor
1 x 1 x 1 x x2 x3 x4 1 x x2 x3 x4
In[9]:=
Out[9]=
ArcTanx 1 1
Out[10]= Log1 x Log1 x
2 4 4
In[11]:= D, x
1 1 1
4 1 x 4 1 x 2 1 x2
Out[11]=
In[12]:= Simplify
1
Out[12]=
1 x4
Simplify
algumas vezes são necessárias transformações mais sofisticadas para ter-se progresso em encontrar
a forma mais simples de uma expressão. FullSimplify utiliza uma faixa de transformações muito
maior, não envolvendo apenas funções algébricas, mas muitos outros tipos de funções.
2x
In[14]:= Simplifyexprs
2x
, ArcCos 1 x
Log1024 3x
Out[14]= , Logx Log 1 x x,
Log4 2x
In[15]:= FullSimplifyexprs
In[16]:= exprs .
Expressões algébricas complicadas, podem usualmente ser escritas em formas diferentes. O Wolfram
oferece uma variedade de funções para converter expressões de uma forma para outra. Em muitas
aplicações as mais comuns destas funções são Expand, Factor e Simplify. Entretanto,
especialmente quando têm-se expressões racionais (envolvendo numeradores e denominadores), pode
precisar-se de outras funções.
Expandexpr multiplicar todos os produtos e potências
ExpandAllexpr aplicar Expand em todos os lugares
Factorexpr reduzir a um produto de fatores
Togetherexpr colocar todos os termos sobre um mesmo denominador
Apartexpr separar em termos com denominadores mais simples
Cancelexpr cancelar factores comuns entre numeradores e denominadores
Simplifyexpr tentar uma seqüência de transformações algébricas e
retornar a menor forma de expr
1 x2 2 x
3 x2 1 x
Out[17]=
14 CurrentValue[FileName]
In[18]:= Expande
2 3x x3
3 x2 1 x 3 x2 1 x 3 x2 1 x
Out[18]=
In[19]:= ExpandAlle
2 3x x3
Out[19]=
9 3 x 5 x2 x3 9 3 x 5 x2 x3 9 3 x 5 x2 x3
In[20]:= Together
2 3 x x3
3 x2 1 x
Out[20]=
In[21]:= Apart
5 19 1
3 x2 4 3 x 4 1 x
Out[21]= 1
Factor
1 x2 2 x
In[22]:=
3 x2 1 x
Out[22]=
In[23]:= Simplifye
1 x2 2 x
3 x2 1 x
Out[23]=
Obter as expressões na forma desejada, requer um pouco de arte. Na maioria dos casos, é
simplesmente melhor experimentar, tentando diferentes transformações até que se chegue a forma
desejada.
TrigExpandexpr expande expressões trigonométricas em uma soma de termos
TrigFactorexpr fatora expressões trigonométricas em um produto de termos
TrigReduceexpr reduz expressões trigonométricas utilizando ângulos múltiplos
TrigToExpexpr converte funções trigonométricas para exponenciais
ExpToTrigexpr converte exponenciais para funções trigonométricas
FunctionExpandexpr expande funções especiais e outras funções
ComplexExpandexpr faz expansões assumindo que todas as variávies são reais
PowerExpandexpr transforma x y p em x p y p , etc.
In[29]:= TrigFactor
Out[29]= 2 Sin x Sin x Tanx
4 4
CurrentValue[FileName] 15
In[30]:= TrigReduce
In[35]:= Cleare, v
Ao longo das quatro últimas seções, foram introduzidos cada um dos quatro tipos de "encapsulamento"
utilizados no Wolfram.
São feitos de maneiras diferentes utilizando caracteres diferentes: parênteses chaves ou colchetes.
É muito importante lembrar de cada um dos tipos pois eles têm significados bastante diferentes.
termo parêntese para agrupamento
fx colchetes para funções
a, b, c chaves para listas
vi colchetes duplos para indexar Partv, i
Mais álgebra
x y maior ou igual
x y menor
x y menor ou igual
x y z todos iguais
x y z todos destintos
x y z, etc. decrescente, etc ...
Operadores relacionais
In[36]:= 10 7
Out[36]= False
In[37]:= 3 2 34
Out[37]= False
In[38]:= 356
Out[38]= True
In[39]:= Pi^ E E^ Pi
Out[39]= True
In[40]:= xy
Out[40]= xy
Solução de equações
Out[1]= x 1 2 2 , x 1 2 2
solN Nsol
x 3.82843, x 1.82843
In[3]:=
Out[3]=
solN2 x . solN
3.82843, 1.82843
In[7]:=
Out[7]=
Solve sempre tentará retornar fórmulas explícitas para a solução de equações. Todavia, sabe-se que
para equações suficientemente complicadas, fórmulas explícitas não podem ser obtidas. Quando tem-
se uma equação para uma variável e a potência mais alta não excede quatro, o Mathematica sempre
retorna fórmulas para a solução. Entretanto, se a potência mais alta é cinco ou mais, é
matematicamente impossível obter fórmulas algébricas explícitas para todas as soluções.
In[46]:= NSolvex4 5 x2 3 x 10 0, x
x 1.68721 0.889497 ,
x 1.68721 0.889497 , x 1.37442, x 2.
Out[46]=
In[48]:= NSolvex6 1, x
x 1., x 0.5 0.866025 , x 0.5 0.866025 ,
x 0.5 0.866025 , x 0.5 0.866025 , x 1.
Out[48]=
In[19]:= Solve2 4 x x5 0, x N
x 1.51851, x 0.508499, x 1.2436,
x 0.116792 1.43845 , x 0.116792 1.43845
Out[19]=
x
1 a
Out[20]= , y
2 a a2 2 a a2
x y . sol2
0.632456, 0.632456
In[22]:=
Out[22]=
18 CurrentValue[FileName]
In[5]:= NSolvex5 x 1 0, x
x 0.754878, x 0.5 0.866025 , x 0.5 0.866025 ,
x 0.877439 0.744862 , x 0.877439 0.744862
Out[5]=
Out[6]=
Out[7]=
Out[8]=
Out[10]=
Out[11]=
CurrentValue[FileName] 19
Definição de funções
Definição de funções
Até agora foram apresentados exemplos de funções denominadas embutidas ao sistema, ou pré-
definidas, isto é, funções que originalmente já fazem parte do Wolfram.
Esta seção tem a finalidade de mostrar ao usuário como criar suas próprias e simples funções.
In[13]:= ?f
Global`f
fx_ : x x2
In[14]:= fa 1
Out[14]= 1 a 1 a2
In[15]:= f4
Out[15]= 18
In[16]:= f3 x x2
3 x x2 3 x x2
2
Out[16]=
Out[17]= 1 2 x x2 2 y 2 x y y2 1xy
In[24]:= g4
Sin4
Out[24]=
4
In[25]:= gx
Sinx
Out[25]=
x
In[28]:= h10
Out[28]= Cos10 Sin10
In[29]:= Clearg, h, f
20 CurrentValue[FileName]
Para definir funções de mais de uma variável basta separar as variáveis usadas na definição por
vírgulas. Lembre-se que todas devem estar seguidas do Blank.
In[31]:= fx, x2 , 1 x
4 3
Out[31]= x x2 2 x
x
2 x x2 x y 2 x 4 z3
3
Out[33]=
In[34]:= f3, 4
Out[34]= f3, 4
In[39]:= f .
In[38]:= fx_ .
In[40]:= Clearf
Viu-se o que ocorre ao definir uma função sem utilizar o Blank: a definição associa-se apenas à
exatamente o símbolo especificado. Assim, pode-se por exemplo, definir uma função ponto a ponto
utilizando números.
Out[44]=
In[45]:= Clearh
Introdução à programação
Pode-se definir funções baseadas em definições passadas, desde que o número de variáveis envolvido
na nova definição seja diferente do utilizado ao lado direito da atribuição.
In[48]:= fa, b
Out[48]= Cosa Sina Cosb Sinb
In[50]:= Clearf, g
Seqüência de operações
Ao fazer uma computação com o Wolfram, usualmente utiliza-se uma seqüência de passos. Se for
desejado, é possível fazer cada passo em uma célula diferente. Entretanto, feqüentemente será
conveniente colocar vários passos em uma mesma célula. Pode-se fazer isto separando os pedaços de
input por ponto e vírgula.
expr1 ; expr2 ; expr3 fazer diversas operações e retornar o resultado da última
expr1 ; expr2 ; fazer as diversas operações mas não retornar nenhum output
Seqüência de operações
In[52]:= x 4; y 6; z y x 3;
In[54]:= x 67 9
Out[54]= 58
In[55]:= Clearx, y, z
Ao utilizar o Wolfram, freqüentemente é necessário repetir uma operação diversas vezes. Há várias
maneiras de se fazer isto. Comumente, a mais natural é de fato construir uma estrutura como uma
lista com muitos elementos e então aplicar a operação desejada a cada um destes elementos. Outra
opção é utilizar a função Do do Wolfram, a qual funciona de maneira semelhante a construções em
linguagens de programação como C e FORTRAN. Do utiliza a notação padrão de iteração introduzidas
anteriormente.
22 CurrentValue[FileName]
Out[63]=
Cálculo simbólico
Limites
Limitexpr, x x0 o limite de expr quando x se aproxima de x0
In[66]:= t Sinx x
Sinx
Out[66]=
x
In[69]:= t . x 0.001
Out[69]= 1.
CurrentValue[FileName] 23
In[70]:= Limitt, x 0
Out[70]= 1
In[72]:= t .
Diferenciação
In[73]:= Dxn , x
Out[73]= n x1n
In[74]:= DArcTanx, x
1
Out[74]=
1 x2
A função Dxn , x realmente calcula uma derivada parcial, supondo que n não dependa de x.
Há uma outra função no Wolfram, Dt, a qual calcula derivadas totais, supondo que todas as variáveis
são relacionadas.
f f
Na notação matemática, Df, x é como enquanto Dtf, x é como .
x x
In[76]:= Dtxn , x
xn
n
Out[76]= Dtn, x Logx
x
In[77]:= Dtx
Out[77]= Dtx
In[80]:= x r Cos;
y r Sin;
In[82]:= Dtx
Out[82]= Cos Dtr r Dt Sin
In[83]:= Dty
Out[83]= r Cos Dt Dtr Sin
In[84]:= Clearx, y
Df, x derivada parcial x
f
Df, x1 , x2 , ... derivada múltipla x1 x2
... f
Dfx, x
f x
In[85]:=
Out[85]=
Repare que, usando a função D, chega-se ao mesmo resultado que quando se faz uma derivada total.
Para isto, basta definir quais símbolos são funções de quais variáveis. Acima T foi definido como uma
função de t, logo, ao derivar, o Wolfram sabe que T é função de t.
In[89]:= DTt T3 , t
Out[89]= T t
O Wolfram interpreta Tt como função de t, mas T 3 não é função de t, possuindo então derivada
parcial nula (em relação a t). Portanto o valor retornado é T t. Mas se ambos os Ts forem função de
t obtem-se:
Integração
In[94]:= Integratexn , x
x1n
Out[94]=
1n
ArcTan a
x
Loga x Loga x
Out[95]=
2 a3 4 a3 4 a3
CurrentValue[FileName] 25
In[96]:= IntegrateLog1 x2 , x
In[98]:= Integratexx , x
x x
x
Out[98]=
Out[106]=
2
In[108]:= N
Out[108]= 0.783431
Equações diferenciais
Dxt, t k xt 0
k xt x t 0
In[111]:=
Out[111]=
x't k xt 0
k xt x t 0
In[112]:=
Out[112]=
In[115]:= DSolvex' 't x' 't xt 1, x0 0, x'0 0, xt, t
In[119]:= DSolvex2 y' 'x x y'x x2 n2 yx 0, yx, x1, 1
Out[119]= yx BesselJn, x C1 BesselYn, x C2
In[120]:= DSolvex2 y' 'x x y'x x2 n2 yx 0, yx, x1, 1
Out[120]= yx BesselJn, x C1 BesselYn, x C2
Cálculo numérico
Out[2]=
Out[3]=
5
Out[4]=
4
x
0.5 1.0 1.5 2.0
28 CurrentValue[FileName]
In[128]:= solnum .
Gráficos
Gráficos bidimensionais
0.5
Out[129]=
2 4 6 8 10 12
0.5
1.0
CurrentValue[FileName] 29
0.5
Out[130]=
1 2 3 4 5 6
0.5
1.0
Plotf, x, xmin, xmax primeiro escolhe valores numéricos específicos para x,
e então avalia f para cada valor de x
PlotEvaluatef, primeiro avalia f, e então escolhe valores
x, xmin, xmax numéricos específicos para x
Gráficos tridimensionais
Plot3Df, x, xmin, xmax, y, ymin, ymax faz o gráfico tridimensional de f
como função das variáeis x e y
Gráficos tridimensionais
Out[134]=
In[135]:= Plot3DSinx Cosy y2 x 5 22 , x, 0, 5 , y, 2, 2, PlotPoints 25
Out[135]=
CurrentValue[FileName] 31
Out[139]=
In[142]:= g .
Animando gráficos
O Wolfram pode produzir não apenas imagens estáticas, mas também gráficos animados, ou "filmes".
32 CurrentValue[FileName]
In[143]:= AnimatePlot3DSinx2 y2 i x2 y2 1, x, 3, 3, y, 3, 3,
Out[143]=
CurrentValue[FileName] 33
Out[144]=
Referências
[1] S. Wolfram, The Mathematica Book, 4th ed., Wolfram Media/Cambridge University Press.
[3] www.wolfram.com