Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
O Mathematica é projetado para lidar tanto com cálculos numéricos, como tradicionalmente realizados em
linguagens compiladas (Fortran, C, e etc) ou até em simples calculadoras, assim como cálculos envolvendo
expressões analı́ticas. Assim como no ensino de matemática, onde operações numéricas são antes intro-
duzidas para posteriormente trabalhar com variáveis literais, este capı́tulo irá introduzir os primeiros fun-
damentos do Mathematica, apresentando ao usuário iniciante as primeiras funções e operações numéricas,
deixando-o familiarizado com o ambiente computacional proporcionado pelo programa. Além de sim-
ples operações numéricas, serão introduzidas as primeiras funções e constantes matemáticas e, ao final do
capı́tulo, uma breve discussão sobre precisão numérica, números complexos e os tipos numéricos utilizados
será apresentada.
3.1 Aritmética
As operações aritméticas são feitas com os sı́mbolos “ + ”, “ − ”, “ ∗ ” e “/ ” onde o sı́mbolo para a
multiplicação pode ser substituı́do por um espaço. Para indicar uma potência, utiliza-se o sı́mbolo “ˆ”.
Desta forma, pode-se efetuar operações aritméticas como em uma calculadora.
Out[1]= 7.82
In[2]:= 2.4/3.8ˆ4
Out[2]= 0.01151
In[3]:= 2 3 5 − 2 ∗ 4
Out[3]= 22
12
3.2. Resultados exatos e aproximados 13
Expressões aritméticas podem também ser escritas com parênteses, para alterar a ordem das
operações:
In[4]:= (3 + 4)ˆ2 − 2 (3 + 1)
Out[4]= 41
As operações aritméticas são agrupadas de acordo com as convenções padrão da matemática. A in-
clusão de parênteses, por exemplo, altera a ordem de precedência na computação de operações aritméticas.
Como é usual, 2ˆ3 + 4, por exemplo, significa (2ˆ3) + 4, e não 2ˆ(3 + 4). O quadro 3.1 apresenta um
resumo das operações aqui descritas.
x +y adição
−x troca de sinal1
x −y subtração
x y ou x ∗ y multiplicação
x /y divisão
xˆy potência
Quadro 3.1: operações aritméticas
Um resultado exato para 2100 é retornado, mesmo que este número tenha 31 dı́gitos decimais:
In[5]:= 2ˆ100
Out[5]= 1267650600228229401496703205376
Para obter um resultado aproximado, como o obtido por uma calculadora, basta utilizar a função
N:
In[6]:= N[2ˆ100]
In[7]:= 2ˆ100//N
O exemplo anterior demonstram que uma aproximação numéricas pode ser obtida a partir de um
resultado exato, através da função N. De fato esta função sempre produzirá aproximações numéricas.
Observe os seguintes exemplos.
Out[9]= 0.619048
Quando utiliza-se a função Head com um número real aproximado, o resultado é sempre Real:
In[10]:= Head[0.622]
Out[10]= Real
Entretanto, para números exatos, diferentes resultados são obtidos, dependendo do tipo de
número:
In[11]:= Head[273]
Out[11]= Integer
In[12]:= Head[3/4]
Out[12]= Rational
Valores do tipo Real são os números reais aproximados, representados por expressões numéricas
contendo um ponto decimal. Os valores do tipos Integer e Rational são respectivamente os números
inteiros exatos (sem ponto decimal) e os números racionais — frações de números inteiros. Portanto, um
inteiro como 4 é interpretado como exato enquanto o número 4.0, com um ponto decimal explı́cito, é
tomado como uma aproximação numérica — preciso até uma quantidade fixa de casas decimais.
O número abaixo é tomado como um racional exato e automaticamente reduzido aos menores
numeradores e denominadores:
In[13]:= 452/62
226
Out[13]=
31
3.4. Algumas funções e constantes matemáticas 15
√
Sqrt[x ] raiz quadrada, x
Exp[x ] exponencial, ex
Log[x ] logaritmo na base exponencial, log(x)
Log[y , x ] logaritmo na base y, logy (x)
Sin[x ], Cos[x ], Tan[x ] funções trigonométricas (x em radianos)
ArcSin[x ], ArcCos[x ], ArcTan[x ] funções trigonométricas inversas
n! n fatorial
Abs[x ] valor absoluto, ou módulo
Round[x ] inteiro mais próximo de x
Mod[n, m ] resto da divisão de n por m
Random[ ] número aleatório entre 0 e 1
Max[x , y , . . .], Min[x , y , . . .] máximo e mı́nimo de x , y , . . .
FactorInteger[n] fatores primos de n
Quadro 3.2: algumas funções matemáticas
A presença do ponto decimal em um dos números faz com que um resultado numérico aproximado
seja retornado:
In[14]:= 452./62
Out[14]= 7.29032
Sempre que uma expressão aritmética for dada com um número possuindo um ponto decimal
explı́cito, será obtido um resultado numérico aproximado para toda a expressão:
In[15]:= 1. + 452/62
Out[15]= 8.29032
Os exemplos acima mostram que qualquer operação entre um racional ou inteiro e um número real
aproximado, resultará também em um número real aproximado. Ainda há um quarto tipo numérico3
utilizado, representando os números complexos: Complex. Este tipo numérico será visto no final deste
capı́tulo em uma seção separada.
In[16]:= Log[8.4]
Out[16]= 2.12823
Deve-se também observar que valores exatos serão sempre retornados para operações aritméticas
envolvendo funções matemáticas com argumentos exatos.
√
Computando 16 obtém-se um inteiro exato:
In[17]:= Sqrt[16]
Out[17]= 4
√
Pode-se produzir um resultado aproximado para 2:
In[18]:= Sqrt[2]//N
Out[18]= 1.41421
A presença do ponto decimal também faz com que um resultado aproximado seja produzido:
In[19]:= Sqrt[3.]
Out[19]= 1.73205
Calcular fatoriais assim pode resultar em números muito grandes. Todavia é possı́vel calcular pelo
menos 2000! em pouco tempo.
In[21]:= 30!
Out[21]= 265252859812191058636308480000000
In[22]:= 30!//N
O quadro 3.3 apresenta alguma das constantes matemáticas mais comuns. Observe que todos os nomes
são também iniciadas com letras maiúsculas.
In[23]:= Piˆ2//N
3.4. Algumas funções e constantes matemáticas 17
Pi π = 3.14159 . . .
E e = 2.71828 . . .
Degree π/180, fator de conversão de graus para radianos
√
I i = −1
Infinity ∞, infinito
Quadro 3.3: algumas constantes matemáticas
Out[23]= 9.8696
In[24]:= Sin[Pi/4]
1
Out[24]= √
2
Note que os argumentos de funções trigonométricas devem sempre ser dados em radianos. Entretanto
basta multiplicar um valor em graus por Degree que este é convertido para radianos.
Out[25]= 0.34202
Pi ESC p ESC
E ESC ee ESC
I ESC ii ESC
A função Log[x] retorna logaritmos na base e. Para obter um logaritmo em qualquer base, basta
especificar a base, na forma Log[base, x].
In[26]:= Log[Eˆ5]
Out[26]= 5
Out[27]= 8
As constantes matemáticas descritas nesta seção podem também ser digitadas com auxı́lio da tecla
√
“Esc.” Para a unidade imaginária −1, basta digitar ESC ii ESC , sem espaços, onde ESC é a tecla “Esc.” O
quadro 3.4 apresenta diferentes formas para escrever as constantes anteriores.
18 Capı́tulo 3: Introdução à computação numérica
Out[28]= 3.141592653589793238462643383279502884197
√
E 7 com 30 dı́gitos:
Out[29]= 2.64575131106459059050161575364
E o número de algarismos de precisão para cada um dos exemplos acima é obtido com Precision:
Out[30]= 40
Out[31]= 30
Ao somar um número com 30 dı́gitos de precisão e outro com 40, a precisão do resultado corres-
ponde ao menor valor:
Out[32]= 5.78734396465438382896425913692
Out[33]= 30
Quando não for especificado o número de dı́gitos para a função N o resultado exibirá o valor padrão
de seis dı́gitos. Porém, isto não quer dizer que o número tenha precisão de seis dı́gitos.
Uma aproximação para a constante e, sem especificar o número de dı́gitos, é obtida por:
3.6. Números complexos 19
In[34]:= N[E]
Out[34]= 2.71828
Note entretanto, que a aproximação acima tem dezesseis dı́gitos de precisão, ou seja, a precisão
de máquina:4
In[35]:= Precision[N[E]]
Out[35]= 16
Note também que qualquer operação feita com a aproximação anterior e outras que tenham
maior precisão apresentará resultados com apenas seis dı́gitos. Entretanto este resultado possui
a precisão de máquina:
Out[36]= 5.85987
Out[37]= 16
Deve-se ter observado que uma aproximação numérica será exibida com mais de seis dı́gitos apenas
se sua precisão for superior à de máquina, i.e. neste caso, maior que dezesseis dı́gitos. Outro fato que
chama atenção é que mesmo quando pede-se uma aproximação, utilizando N com menos de dezesseis
dı́gitos, ainda obtém-se um número com a precisão de máquina (16 dı́gitos).
A aproximação da raiz quadrada de três, gerada abaixo, apesar de ser pedida com quatro dı́gitos,
é retornada com dezesseis:
In[38]:= Precision[N[Sqrt[3], 4]]
Out[38]= 16
Ao fazer qualquer tipo de cálculo numérico, pequenos erros de arredondamento são introduzidos nos
resultados. Quando aumentada a precisão numérica, estes erros tornam-se menores. Ter certeza que os
mesmos resultados são obtidos com maior precisão numérica é uma boa maneira de checar os cálculos.
In[39]:= Sqrt[−4]
Out[39]= 2 ı̇ı
A razão entre dois números complexos é calculada com uma simples divisão:
In[40]:= (4 + 3 I)/(2 − I)
Out[40]= 1 + 2 ı̇ı
A função Head, introduzida na seção 3.3, retorna Complex, quando utilizada com uma ex-
pressão numérica envolvendo a constante I, indicando que o número é complexo:
In[42]:= Head[2 I + 5]
Out[42]= Complex
Como deve-se notar nos exemplos anteriores, a forma ı̇ı é normalmente utilizada no output.
In[43]:= 10 < 7
Out[43]= False
Ao testar se números são distintos, basta um par de valores ser igual para o resultado será False.
O sinal de diferença, apesar de aparecer diferente no quadro, é digitado na forma “ ! = ”, sem
espaços.
5
Estes operadores e funções também servem para calcular outros tipos de dados, como será visto em outros capı́tulos.
3.8. Funções lógicas 21
x == y igual a
x != y diferente de
x >y maior que
x <y menor que
x ≥y maior e igual a
x ≤y menor e igual a
x == y == z todos iguais
x != y != z todos distintos
x > y > z , etc. decrescente, etc.
Quadro 3.7: operadores relacionais
In[44]:= 3 6= 2 6= 3 6= 4
Out[44]= False
Out[45]= True
Abaixo, como as quantidades envolvidas são constantes numéricas, é também possı́vel obter um
resultado lógico:
In[46]:= PiˆE < EˆPi
Out[46]= True
!p operador de negação
p && q o operador “E”
p || q o operador “OU”
Quadro 3.8: operadores lógicos
Out[47]= True
Deve-se lembrar que os operadores lógicos “ == ”, “ && ” e “ || ” devem ser todos digitados com
caracteres duplos. Esta é a mesma notação utilizada na linguagem de programação C.
Out[48]= True
In[49]:= NumberQ[Pi]
Out[49]= False
In[50]:= IntegerQ[8/2]
Out[50]= True
In[51]:= EvenQ[3]
Out[51]= False
In[52]:= PrimeQ[7]
Out[52]= True
In[53]:= Negative[4]
Out[53]= False
In[54]:= NonPositive[0]
Out[54]= True
3.9 Exercı́cios
3.1: Calcule o resto da divisão de 234576 por 2, 3, 5, e 7.
3.9. Exercı́cios 23
3.3: Indique o resultado de: Sin[π/4 + 90 Degree], (1 + ∞), (3∗∞), Sin[∞] e Exp[−∞].
3.5: Calcule a precisão e a acurácia de: E, Pi, Sqrt[3/2], 1.5, N[1.5, 3], 1237.3561 e 0.000345.
3.6: Qual o resultado das expressões: Head[Sqrt[3]], Head[2 + 1/4] Head[12∗1/3], Head[4 + 3.2],
Head[(2 I + 3)/3.7], Sin[2 π] e Sin[π/7]?
3.7: Quais as diferenças entre (2 I + 1) e (2.0 I + 1.0)? Ao calcular Head destas expressões, obtém-se
o mesmo resultado?
3.11: A função Random pode também ser utilizada para gerar números além de entre 0 e 1, e de outros
tipos — isto é não só reais. Verifique como utilizá-la para gerar números aleatórios inteiros e
complexos, entre quaisquer limites.