Você está na página 1de 33

1.

Introdução ao WolframCloud

Introdução

 Introdução

 Wolfram é um programa de computador,originalmente concebido por Stephen Wolfram,que


implementa um sistema de álgebra computacional.

 Para além de uma linguagem de programação,contém diversas bibliotecas de programação prontas a


serem usadas em diversos fins em várias áreas das ciências exatas.

 O programa insere-se em diversas áreas da engenharia e matemática, além de servir como um


ambiente para desenvolvimento rápido de programas.

 O Wolfram roda (corre) nas plataformas Windows, Linux, Solarise Mac OS X.

 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

Apresentar os principais comandos e funções do WolframCloud

Os notebooks

O Wolfram trabalha com arquivos denominados "notebooks".

Os notebooks são documento interativos estruturados, que misturam o input e output do wolfram com
2 CurrentValue[FileName]

notebooks input output wolfram


texto, gráficos, tabelas e outros materiais.

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 colchetes azuis à direita delimitam as células.

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 "^".

No Wolfram, as operações aritméticas podem ser feitas como em uma calculadora.

In[2]:= 2.2  5.62


Out[2]= 7.82

In[3]:= 2.4 3.8^4


Out[3]= 0.01151

In[4]:= 235
Out[4]= 30

In[5]:= 3  4 ^2  2 3  1
Out[5]= 41

x^y potência
x menos
xy divisão
x y z ou x  y  z multiplicação
xyz adição

Operações aritméticas no Wolfram

 Resultados exatos e aproximados

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[7]:= N2^ 100


Out[7]= 1.26765  1030

In[8]:= 2^ 100  N
Out[8]= 1.26765  1030
4 CurrentValue[FileName]

In[9]:= 13  27


13
Out[9]=
21

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

 Algumas funções e constantes matemáticas

O Wolfram possui uma grande quantidade de funções matemáticas.


Sqrtx raiz quadrada
Expx exponencial ex 
Logx logarítmo natural loge x
Logb, x logarítmo na base b logb x
Sinx, Cosx, Tanx funções trigonométricas argumentos em radianos
Sinhx, Coshx, Tanhx funções trigonométricas hiperbólicas
ArcSinx, ArcCosx, funções trigonométricas inversas
ArcTanx
n  fatorial
Absx valor absoluto módulo
Roundx inteiro mais próximo de x
Modn, m n modulo m resto da divisão de n por m
Random número aleatório entre 0 e 1
Maxx, y, ..., máximo e mínimo de x, y, ...
Minx, y, ...
FactorIntegern fatores primos de n

Funções matemáticas

In[14]:= Log8.4
Out[14]= 2.12823

In[15]:= Sqrt16
Out[15]= 4
CurrentValue[FileName] 5

In[16]:= Sqrt2  N
Out[16]= 1.41421

In[17]:= Sqrt3.
Out[17]= 1.73205

In[18]:= Sqrt5  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

A tabela abaixo apresenta alguma das constantes matemáticas mais comuns:


Pi   3.14159 ...
E e  2.71828 ... normalmente retornado como 
Degree 180 : fator de conversão de graus para radianos
normalmente retornado como °
I i 1 normalmente retornado como 
Infinity  infinito

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[22]:= SinPi 4.


Out[22]= 0.707107

In[23]:= Sin20 °  N
Out[23]= 0.34202

In[24]:= LogE^ 5
Out[24]= 5

Pode-se obter um logarítmo em qualquer base utilizando Logbase, x.

In[25]:= Log2, 256


Out[25]= 8
6 CurrentValue[FileName]

Desenvolvendo computações

 Atribuição de valores a variáveis

Ao fazer longas computações, é freqüentemente conveniente dar nomes aos resultados


intermediários. Exatamente como na matemática, ou em qualquer outra linguagem de programação,
isto pode ser feito pela introdução de variáveis.

In[26]:= x5
Out[26]= 5

In[27]:= x^ 2
Out[27]= 25

In[29]:= x76
Out[29]= True

In[30]:= pi  NPi, 40


Out[30]= 3.141592653589793238462643383279502884197

In[31]:= pi^ 2
Out[31]= 9.86960440108935861883449099987615113531

x  valor atribui valor a x


x  y  valor atribui valor a x e y
x . ou Clearx remove qualquer valor atribuído a x
Clearx, y, ... remove os valores atribuídos a x, y, ...

Formas de definir valores de variáveis

É 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.

In[32]:= Clearx, pi

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 x2 y

Cuidados ao digitar fórmulas matemáticas


CurrentValue[FileName] 7

 Representação de listas de objetos

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.

List3, 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]=

6, 7, 8  3, 3.5, 4


3, 3.5, 4
In[4]:=

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.
Tablef, imax gera uma lista com imax valores de f
Tablef, i, imax gera uma lista dos valores de f enquanto
i varia de 1 a imax
Tablef, i, imin, imax gera uma lista dos valores enquanto
i varia de imin a imax
Tablef, i, imin, imax, di utiliza passos de di

A função Table com todas as possibilidades de variação do parâmetro i

Utilizando Table não especificando variação de parâmetro algum, gera-se por exemplo, uma lista com
8 cópias do elemento  .

TableExpPi, 8
 ,  ,  ,  ,  ,  ,  ,  
In[9]:=

Out[9]=
8 CurrentValue[FileName]

Tablei^ 2, i, 6


1, 4, 9, 16, 25, 36
In[10]:=

Out[10]=

In[11]:= TableSinn Pi 4, n, 0, 7

0, 
1 1 1 1
Out[11]= , 1, , 0,  , 1, 
2 2 2 2

In[12]:= TableSqrtx, x, 0, 1, 1  4

0,
1 1 3
Out[12]= , , , 1
2 2 2

Tablex^ i  2 i, i, 5


2  x, 4  x2 , 6  x3 , 8  x4 , 10  x5 
In[13]:=

Out[13]=

Notação geral de iteração do Wolfram

imax iterar imax vezes, sem incrementar nenhuma variável


i, imax i vai de 1 até imax em passos de 1
i, imin, imax i vai de imin até imax em passos de 1
i, imin, imax, di i vai de imin até imax em passos de di
i, imin, imax, j, jmin, jmax, ... i vai de imin até imax, e para cada valor de
i, j vai de jmin até jmax, etc ...

Notação geral de iteração no Wolfram

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.
Tablef, i, n gera uma lista com n elementos avaliando f com i  1, 2, ..., n
Arraya, n gera uma lista com n elementos na forma a1, a2, ...
Rangen cria a lista 1, 2, ...
Rangen1 , n2  cria a lista n1 , n1  1, ..., n2 
Rangen1 , n2 , dn cria a lista n1 , n1  dn, ..., n2 

Geração de listas unidimensionais

Arraya, 4
a1, a2, a3, a4
In[14]:=

Out[14]=

Range5
1, 2, 3, 4, 5
In[15]:=

Out[15]=

Range2, 6
2, 3, 4, 5, 6
In[16]:=

Out[16]=
CurrentValue[FileName] 9

 Atribuições com listas

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.

x1, x2, x3  1, 4, 8


1, 4, 8
In[17]:=

Out[17]=

In[18]:= x1  x2  x3
Out[18]= 13

Tablemi, j, i, 2, j, 2


m1, 1, m1, 2, m2, 1, m2, 2
In[19]:=

Out[19]=

a, b, c, d  Tablemi, j, i, 2, j, 2
m1, 1, m1, 2, m2, 1, m2, 2
In[20]:=

Out[20]=

2 a  b  4 c  d
2 m1, 1  m1, 2  4 m2, 1  m2, 2
In[21]:=

Out[21]=

Note que as listas necessitam ter a mesma estrutura.

y1, y2, y3, z1, z2, z3  1, 2, 5, 3, 4, 6
1, 2, 5, 3, 4, 6
In[23]:=

Out[23]=

In[25]:= Cleary1, y2, y3, x1, x2, x3, a, b, c, d

Computações algébricas

 Introdução à computação simbólica

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  x2 1  x  2 y

In[33]:= fator2  Expandfator


Out[33]= 4  3 x2  x3  8 y  8 x y  2 x2 y

Factorfator2
2  x2 1  x  2 y
In[34]:=

Out[34]=

In[35]:= Sqrt2 9801 4 n  1103  26 390 n  n  ^4 396^ 4 n

2 2 8 n 9924 n 1103  26 390 n 4 n 


1

n 4
Out[35]=

In[36]:= Sqrt1  x ^4
Out[36]= 1  x2

In[37]:= Exp2 t Sin t  


2
Out[37]= t  Sin  t 

 Regras de transformação

Considere a expressão:

In[38]:= 12x
Out[38]= 12 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]:= x3
Out[39]= x3

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  y2  y

In[43]:= x3y
Out[43]= x  3y

expr . x  valor substitui x por valor na expressão expr


expr . x  xval, y  yval efetua várias substituições

Substituição de símbolos por valores em expressões

In[44]:= x  y x  y2 . x  3, y  1  a
Out[44]= 4  a 2  a2

Define-se a seguinte expressão:

In[45]:= expr1  x1  x2  x3
Out[45]= x1  x2  x3

In[46]:= regra1  x1  k1
Out[46]= x1  k1

In[47]:= expr1 . regra1


Out[47]= k1  x2  x3

In[48]:= expr1
Out[48]= x1  x2  x3

In[49]:= expr2  expr1 . regra1


Out[49]= k1  x2  x3

In[50]:= expr2
Out[50]= k1  x2  x3

In[51]:= Clearexpr1, regra1, expr2

 Listas de regras de transformação

Aplicando a lista de listas de regras abaixo, obtem-se uma lista de valores.

x  1 . x  1, x  2, x  3


2, 3, 4
In[1]:=

Out[1]=

x  y . x  0, y  0, x  1, y  2, x  2, y  4, x  3, y  6


0, 3, 6, 9
In[2]:=

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.

 Manipulação de expressões algébricas

Simplificação de expressões algébricas

Há diversas situações onde deseja-se escrever uma determinada expressão algébrica na forma mais
simples possível.
Simplifyexpr tenta encontrar a forma mais simples de
expr aplicando várias transformações algébricas padrão
FullSimplifyexpr tenta encontrar a forma mais simples
aplicando uma quantidade maior de transformações

Simplificação de expressões

In[7]:= Simplifyx2  2 x  1

Out[7]= 1  x2

In[8]:= Simplifyx10  1

Out[8]= 1  x10

Factor
1  x 1  x 1  x  x2  x3  x4  1  x  x2  x3  x4 
In[9]:=

Out[9]=

In[10]:= Integrate1  x4  1, x

ArcTanx 1 1
Out[10]=   Log1  x  Log1  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

Integração e diferenciação são tópicos que serão vistos em seções seguintes.


Simplify utiliza transformações algébricas para simplificar as expressões dadas. Entretanto,
CurrentValue[FileName] 13

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.

In[13]:= exprs  Log1024  Log4, Logx  x2   Logx,

Sqrt2  x 3  x Sqrt2  x, ArcCosSqrt1  x

2x

 ,  Logx  Logx  x2 , , ArcCos 1  x 


Log1024 3x
Out[13]=
Log4 2x

In[14]:= Simplifyexprs

2x

 , ArcCos 1  x 
Log1024 3x
Out[14]= ,  Logx  Log 1  x x,
Log4 2x

In[15]:= FullSimplifyexprs

5, Log1  x, , ArcSin x 


1
Out[15]=
3x

In[16]:= exprs .

Diferentes formas para expressões

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.
Expandexpr multiplicar todos os produtos e potências
ExpandAllexpr aplicar Expand em todos os lugares
Factorexpr reduzir a um produto de fatores
Togetherexpr colocar todos os termos sobre um mesmo denominador
Apartexpr separar em termos com denominadores mais simples
Cancelexpr cancelar factores comuns entre numeradores e denominadores
Simplifyexpr tentar uma seqüência de transformações algébricas e
retornar a menor forma de expr

Funções para converter entre formas de expressões

In[17]:= e  x  12 2  x 1  x x  32 

1  x2 2  x
3  x2 1  x
Out[17]=
14 CurrentValue[FileName]

In[18]:= Expande
2 3x x3
3  x2 1  x  3  x2 1  x 3  x2 1  x
Out[18]=  

In[19]:= ExpandAlle
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  x2 1  x
Out[20]=

In[21]:= Apart
5 19 1
 3  x2 4  3  x 4 1  x
Out[21]= 1  

Factor
1  x2 2  x
In[22]:=

3  x2 1  x
Out[22]=

In[23]:= Simplifye
1  x2 2  x
3  x2 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.
TrigExpandexpr expande expressões trigonométricas em uma soma de termos
TrigFactorexpr fatora expressões trigonométricas em um produto de termos
TrigReduceexpr reduz expressões trigonométricas utilizando ângulos múltiplos
TrigToExpexpr converte funções trigonométricas para exponenciais
ExpToTrigexpr converte exponenciais para funções trigonométricas
FunctionExpandexpr expande funções especiais e outras funções
ComplexExpandexpr faz expansões assumindo que todas as variávies são reais
PowerExpandexpr transforma x y p em x p y p , etc.

Mais funções para transformar expressões

In[28]:= TrigExpandTanx Cos2 x


3 Tanx 1
Out[28]= Cosx Sinx   Sinx2 Tanx
2 2 2

In[29]:= TrigFactor
 
Out[29]= 2 Sin  x Sin  x Tanx
4 4
CurrentValue[FileName] 15

In[30]:= TrigReduce

Secx Sinx  Sin3 x


1
Out[30]= 
2

In[31]:= ComplexExpandExpx  I y


Out[31]= x Cosy   x Siny

In[32]:= ComplexExpandExpx  I y, x, y


Out[32]= ImyRex CosImx  Rey   ImyRex SinImx  Rey

In[35]:= Cleare, v

Utilizando o sistema Wolfram

 Parênteses, colchetes ou chaves

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
fx colchetes para funções
a, b, c chaves para listas
vi colchetes duplos para indexar Partv, i

Utilização de parênteses colchetes e chaves

Mais álgebra

 Operadores relacionais e lógicos


x  y igual
x  y desigual
x  y maior
16 CurrentValue[FileName]

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 34
Out[37]= False

In[38]:= 356
Out[38]= True

In[39]:= Pi^ E  E^ Pi
Out[39]= True

In[40]:= xy
Out[40]= xy

 Solução de equações

Para resolver uma equação algébrica analiticamente, utiliza-se a função Solve.

In[1]:= sol  Solvex2  2 x  7  0, x

Out[1]= x   1  2 2 , x   1  2 2 

solN  Nsol
x  3.82843, x  1.82843
In[3]:=

Out[3]=

solN2  x . solN
3.82843, 1.82843
In[7]:=

Out[7]=

In[16]:= solX1  sol1, 1, 2  N


Out[16]= 3.82843

In[18]:= solX2  sol2, 1, 2  N


Out[18]= 1.82843

Solveldir  lesq, x resolve uma equação retornando uma


lista de regras para x
x . solução utiliza a lista para obter valores para x
CurrentValue[FileName] 17

expr . solução utiliza a lista para obter valores para uma


expressão envolvendo x

Resolvendo equações e utilizando as soluções obtidas para substituições

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]:= NSolvex4  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]:= NSolvex6  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]:= Solve2  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]=

 Solução de sistema de equações

Para resolver sistemas de equações, utiliza-se também a função Solve.

Solveldir  lesq, ldir  resolve um sistema de equações para x, y, ...


lesq, ..., x, y, ...

Resolvendo sistemas de equações

In[20]:= sol1  Solvea x  y  0, 2 x  1  a y  1, x, y

x   
1 a
Out[20]= , y
 2  a  a2 2  a  a2

In[21]:= sol2  NSolvex2  y2  1, x  3 y  0, x, y


Out[21]= x  0.948683, y  0.316228, x  0.948683, y   0.316228

x  y . sol2
0.632456, 0.632456
In[22]:=

Out[22]=
18 CurrentValue[FileName]

Introdução à matemática numérica

 Solução numérica de equações algébricas


NSolvelesq  ldir, x resolve uma equação polinomial numericamente
NSolveeq1 , eq2 , ..., x, y, ... resolve um sistema de equações polinomiais
numericamente
FindRootlesq  ldir, x, x0  procura uma solução numérica para uma
equação, partindo de x  x0
FindRooteq1 , eq2 , ... procura uma solução para um sistema
, x, x0 , y, y0  de equações

Funções para a solução numérica de equações algébricas

In[5]:= NSolvex5  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]=

NSolvex  y  2, x  3 y  z  3, x  y  z  0, x, y, z


x  3.5, y   1.5, z   5.
In[6]:=

Out[6]=

FindRootTanx  x, x, 2


x  4.49341
In[7]:=

Out[7]=

FindRootTanx  x, x, 10


x  10.9041
In[8]:=

Out[8]=

FindRootExpAbsx  4, x, 0, 2


x  1.38629, 1.38629
In[10]:=

Out[10]=

FindRootx  Logy, y  Logx, x, I, y, 2


x  0.318132 1.33724 , y  0.318132 1.33724 
In[11]:=

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[32]:= fx_ : Sqrtx  x2

In[13]:= ?f

Global`f

fx_ : x  x2

In[14]:= fa  1
Out[14]= 1  a  1  a2

In[15]:= f4
Out[15]= 18

In[16]:= f3 x  x2 

3 x  x2  3 x  x2 
2
Out[16]=

In[17]:= Expandfx  1  y

Out[17]= 1  2 x  x2  2 y  2 x y  y2  1xy

In[23]:= gx_ : Sinx  x

In[24]:= g4
Sin4
Out[24]=
4

In[25]:= gx
Sinx
Out[25]=
x

In[27]:= hx_ : Cosx Sinx

In[28]:= h10
Out[28]= Cos10 Sin10

In[29]:= Clearg, h, f
20 CurrentValue[FileName]

 Funções com mais de uma variável

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[30]:= fx_, y_, z_ : x  y  2 x  4 z3

In[31]:= fx, x2 , 1  x

4 3
Out[31]= x  x2   2 x
x

In[33]:= 2 fx fx, y, z3

2  x  x2  x  y  2 x  4 z3 
3
Out[33]=

In[34]:= f3, 4
Out[34]= f3, 4

In[35]:= fx_, y_ : x2  y2  4

In[36]:= f5, 10


Out[36]= 129

In[39]:= f .

In[38]:= fx_ .

In[40]:= Clearf

 Funções definidas ponto a ponto

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.

h0  2, h1  3, h2  5, h3  8


2, 3, 5, 8
In[44]:=

Out[44]=

In[45]:= Clearh

Introdução à programação

 Funções que chamam outras definições


CurrentValue[FileName] 21

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[46]:= fx_ : Sinx Cosx

In[47]:= fx_, y_ : fx  fy

In[48]:= fa, b
Out[48]= Cosa Sina  Cosb Sinb

In[49]:= gx_ : a gxb  c

In[50]:= Clearf, 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;

expr; fazer uma operação mas não exibir nenhum output

Evitando a exibição do output

In[54]:= x  67  9
Out[54]= 58

In[55]:= Clearx, y, z

 Operações repetitivas: iterações

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]

Doexpr, i, imax avalia expr com i v ariando de 1 a imax


Doexpr, i, imin, imax, di avalia expr com i variando de imin a imax com passo di
Printexpr imprime expr
Tableexpr, i, imax faz uma lista dos valores de expr com a variação de i

Operações repetitivas no Wolfram

In[61]:= DoSini  N, i, 0, 2 Pi, Pi  4

In[62]:= DoPrintSini  N, i, 0, 2 Pi, Pi  4


0.
0.707107
1.
0.707107
0.
0.707107
1.
0.707107
0.

TableSini  N, i, 0, 2 Pi, Pi  4


0., 0.707107, 1., 0.707107, 0., 0.707107,  1., 0.707107, 0.
In[63]:=

Out[63]=

In[65]:= Clearr, vv

Cálculo simbólico

 Limites
Limitexpr, x  x0  o limite de expr quando x se aproxima de x0

Calculando limites no Wolfram.

In[66]:= t  Sinx  x
Sinx
Out[66]=
x

In[69]:= t . x  0.001
Out[69]= 1.
CurrentValue[FileName] 23

In[70]:= Limitt, x  0
Out[70]= 1

In[72]:= t .

 Diferenciação

In[73]:= Dxn , x
Out[73]= n x1n

In[74]:= DArcTanx, x
1
Out[74]=
1  x2

In[75]:= Dxn , x, 3


Out[75]= 2  n 1  n n x3n

A função Dxn , 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, Df, x é como enquanto Dtf, x é como .
x x

In[76]:= Dtxn , x

xn 
n
Out[76]=  Dtn, x Logx
x

O diferencial total  x é representado por Dtx.

In[77]:= Dtx
Out[77]= Dtx

In[80]:= x  r Cos;
y  r Sin;

In[82]:= Dtx
Out[82]= Cos Dtr  r Dt Sin

In[83]:= Dty
Out[83]= r Cos Dt  Dtr Sin

In[84]:= Clearx, y

Df, x derivada parcial x
f
 
Df, x1 , x2 , ... derivada múltipla x1 x2
... f

Df, x, n derivada repetitiva


nf

xn
24 CurrentValue[FileName]

Dtf diferencial total df


d
Dtf, x derivada total dx
f

Funções para diferenciação

Dfx, x
f x
In[85]:=

Out[85]=

In[87]:= D2 x fx2 , x, 2

Out[87]= 8 x f x2   2 x 2 f x2   4 x2 f x2 

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]:= DTt  T3 , t
Out[89]= T t

O Wolfram interpreta Tt 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:

In[90]:= DTt  Tt3 , t

Out[90]= T t  3 Tt2 T t

In[91]:= Dfx, Sinx2 , g'x, hgx, x


Out[91]= f x, 2 Cosx Sinx, g x, g x h gx

In[92]:= Dfx  x3 , x, 2


Out[92]= f x  6 x

In[93]:= Dfx  f 'x  x4 , x

Out[93]= f x  4 x3  f x

 Integração

In[94]:= Integratexn , x
x1n
Out[94]=
1n

In[95]:= Integrate1  x4  a4 , x

ArcTan a 
x
Loga  x Loga  x
Out[95]=   
2 a3 4 a3 4 a3
CurrentValue[FileName] 25

In[96]:= IntegrateLog1  x2 , x

Out[96]= 2 x  Log2 1  x  Log2 1  x  x Log1  x2 

In[97]:= IntegrateExp1  x2 , x, 0, 12


1
Out[97]=   Erf12
2

In[98]:= Integratexx , x

 x x
x
Out[98]=

Integratef, x a integral indefinidal  f dx


Integratef, x, y a integral múltipla  f dx dy
Integratef, x, xmin, xmax a integral definida xmin f dx
xmax

Integratef, x, xmin, xmax, a integral múltipla xmin ymin f dy dx


xmax ymax

y, ymin, ymax

Funções para integração analítica

In[105]:= IntegrateLogx, x, a, b

IfIma  Imb && Imb Rea  Ima Reb 


Imb Rea  Ima Reb && Ima  Imb &&
Out[105]=

Re   0 &&  0   Reals  Re   1,


a a a a

a  1  Loga  b  1  Logb, IntegrateLogx, x, a, b,


a  b ab ab ab

Assumptions   Ima  Imb && Imb Rea  Ima Reb 


Imb Rea  Ima Reb && Ima  Imb &&

Re   0 &&  0   Reals  Re   1


a a a a
a  b ab a  b ab

In[106]:= IntegrateExpx2 , x, 0, Infinity


Out[106]=
2

In[109]:= NIntegratexx , x, 0, 1


Out[109]= 0.783431

In[108]:= N
Out[108]= 0.783431

In[110]:= Integratex2  y2 , x, 0, 1, y, 0, x


1
Out[110]=
3
26 CurrentValue[FileName]

 Equações diferenciais

Dxt, t  k xt  0
k xt  x t  0
In[111]:=

Out[111]=

x't  k xt  0
k xt  x t  0
In[112]:=

Out[112]=

In[113]:= Dyx, t, x, 2  Dyx, t, t  x Dyx, t, x, t


Out[113]= y2,0 x, t  y0,1 x, t  x y1,1 x, t

DSolveequações, yx, x resolve uma equação diferencial para y x,


tomando x como variável independente.

Solução analítica de equações diferenciais

In[114]:= DSolvex' 't  x' 't  xt  1, xt, t

xt  1  C1 Cos   C2 Sin 


t t
Out[114]=
2 2

In[115]:= DSolvex' 't  x' 't  xt  1, x0  0, x'0  0, xt, t

xt  1  Cos 


t
Out[115]=
2

In[116]:= DSolvex't  yt, y 't  xt, xt, yt, t

xt  t 1  2 t  C1  t 1  2 t  C2,


1 1
Out[116]=
2 2

t  1  2 t  C1  t 1  2 t  C2


1 1
yt 
2 2

In[119]:= DSolvex2 y' 'x  x y'x  x2  n2  yx  0, yx, x1, 1
Out[119]= yx  BesselJn, x C1  BesselYn, x C2

In[120]:= DSolvex2 y' 'x  x y'x  x2  n2  yx  0, yx, x1, 1
Out[120]= yx  BesselJn,   x C1  BesselYn,   x C2

Cálculo numérico

 Somatórios, produtórios e integrais


NSumf, i, imin, Infinity aproximação numérica para 
iimin f
CurrentValue[FileName] 27

NProductf, i, imin, Infinity aproximação numerica para 


iimin f

NIntegratef, x, x min, xmax aproximação numérica para xmin f  x


xmax

NIntegratef, x, x min, xmax, aproximação numérica


y, ymin, ymax para xmin ymin f  y  x
xmax ymax

Somatórios, produtórios e integrais numéricas

In[121]:= NSum1  1  i4 , i, 1, Infinity


Out[121]= 0.578478

In[122]:= NIntegrate1  Sqrtx 1  x, x, 0, 1


Out[122]= 3.14159

In[123]:= NIntegrateExpx2 , x, Infinity, Infinity


Out[123]= 1.77245

In[124]:= NIntegrateSinx y, x, 0, 1, y, 0, x


Out[124]= 0.119906

 Solução de equações diferenciais


NDSolveeqns, y, resolve numericamente para a função y, com a
x, xmin, xmax variável independente x na faixa de xmin a xmax
NDSolveeqns, y1 , y2 , resolve um sistema de equações para yi
..., x, xmin, xmax

Solução numérica de equações diferenciais

solnum  NDSolvey 'x  yx, y0  1, y, x, 0, 2


y  InterpolatingFunction0., 2., 
In[2]:=

Out[2]=

solnum1  Evaluateyx . solnum . x  0.1


1.10517
In[3]:=

Out[3]=

In[4]:= PlotEvaluateyx . solnum, x, 0, 2, AxesLabel  "x", "yx"


yx

5
Out[4]=
4

x
0.5 1.0 1.5 2.0
28 CurrentValue[FileName]

In[128]:= solnum .

Gráficos

 Gráficos bidimensionais

Todas as funções para fazer gráficos no Wolfram, envolvem o nome Plot.


Plotf, x, xmin, xmax faz o gráfico de f como função de x de xmin a xmax
Plotf1 , f2 , ..., faz o gráfico de diversas funções juntas
x, xmin, xmax

Fazendo gráficos bi-dimensionais

In[129]:= PlotSinx Sin20 x, x, 0, 4 


1.0

0.5

Out[129]=
2 4 6 8 10 12

 0.5

 1.0
CurrentValue[FileName] 29

In[130]:= PlotSinx, Sin2 x, Sin3 x, x, 0, 2 Pi


1.0

0.5

Out[130]=
1 2 3 4 5 6

 0.5

 1.0

Plotf, x, xmin, xmax primeiro escolhe valores numéricos específicos para x,
e então avalia f para cada valor de x
PlotEvaluatef, primeiro avalia f, e então escolhe valores
x, xmin, xmax numéricos específicos para x

Duas maneiras de fazer gráficos bi-dimensionais

 Gráficos tridimensionais

Plot3Df, 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

Opções para gráficos tri-dimensionais


30 CurrentValue[FileName]

In[134]:= g  Plot3Dx4  8 x2 y2  y4 , x, 1, 1, y, 1, 1

Out[134]=

Plot3D usualmente colore as superfícies utilizando um modelo simulado de


iluminação.

In[135]:= Plot3DSinx Cosy y2 x  5   22 , x, 0, 5 , y,   2,  2, PlotPoints  25

Out[135]=
CurrentValue[FileName] 31

Plot3Df, GrayLevels, faz um gráfico de uma superfície correspondendo a f ,


x, xmin, xmax, y, ymin, ymax colorida em cinza de acordo com a função s

Plot3Df, Hues, x, xmin, sombrea com cores utilizando Hue


xmax, y, ymin, ymax ao invés de tons de cinza

Sombreamento em gráficos tridimensionais

In[139]:= Plot3DSinx y, GrayLevel2  x, x, 0, 3, y, 0, 3

Plot3D::legacycolfunc : Use ColorFunction to specify coloring. 

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]:= AnimatePlot3DSinx2  y2   i  x2  y2  1, x, 3, 3, y, 3, 3,

PlotRange  .85, 1.35, PlotPoints  25, Mesh  False, i, 0, 10

Out[143]=
CurrentValue[FileName] 33

ManipulatePlot3DSin3  x2  y2  15  i   x2  y2  10,


x, 3, 3, y, 3, 3, PlotRange  .85, 1.35,
In[144]:=

PlotPoints  25, Mesh  False, i, 0, 2  .2, .2

Out[144]=

Referências

[1] S. Wolfram, The Mathematica Book, 4th ed., Wolfram Media/Cambridge University Press.

[2] T. B. Bahder, Mathematica for Scientists and Engineers, Addison Wesley.

[3] www.wolfram.com

Você também pode gostar