Você está na página 1de 25

UNIVERSIDADE FEDERAL DE SANTA CATARINA

CAMPUS JOINVILLE
CENTRO DE ENGENHARIA DA MOBILIDADE

COOKBOOK
(Apostila de Apoio para disciplina de Clculo Numrico)

Autor: Nathan Filipe Hoepers

Joinville, Segundo Semestre de 2012


2

SUMRIO

1. OPERADORES ............................................................................................................. 3
2. ESTRUTURAS.............................................................................................................. 5
3. DEFININDO FUNES ............................................................................................... 8
4. MANIPULAO DE ARQUIVOS DE DADOS........................................................... 9
5. IMPRESSO FORMATADA ..................................................................................... 12
6. VETORES E MATRIZES .............................................................................................. 17
7. GRFICOS COM MATPLOTLIB .............................................................................. 19
8. FUNES MATEMTICAS...................................................................................... 24
3

1. OPERADORES

OPERADORES ARITMTICOS

OPERADORES DESCRIO EXEMPLOS


+ Soma 2 + 2 # Imprime 4
- Subtrao 5 2 # Imprime 3
* Multiplicao 5 * 5 # Imprime 25
/ Diviso 5.0 / 2.0 # Imprime 2.5
// Diviso Truncada 12.356 // 2 # Imprime 6.0
% Retorna o resto da 10 % 3 # Imprime 1
diviso
** Exponenciao 2 ** 3 # Imprime 8
pow(a,b) Exponenciao pow(2, 3) # Imprime 8
+= Soma e atribui PARA i = 0
i+= 10 # Incrementa 10
em i. (i = 10)
-= Subtrai e atribui i-= 4 # Subtrai 4 de i e
atribui resultado. (i = 6)
*= Multiplica e atribui i*= 2 # multiplica 6 por 2
e atribui para i. (i = 12)
/= Divide e atribui i/= 2 # Divide 12 por 2 e
atribui para i. (i = 6)
//= Divide e atribui parte i//=4 # Divide 6 por 4 e
inteira do resultado atribui parte inteira para i.
(i =1)
%= Divide e atribui resto PARA i = 36
da diviso i%= 10 # Divide 36 por 10 e
atribui resto para i. (i = 6)
**= Eleva nmero e atribui i**= 2 # Eleva 6 ao
quadrado e atribui para
i. (i = 36)
4

OPERADORES LGICOS

OPERADORES DESCRIO EXEMPLOS


> Maior 1 > 2 # False 2
< Menor 8 < 5 # False
>= Maior igual 10 >= 1 # True
<= Menor igual 5 <= 5 # True
== Igual 2 == 3 # False
not No not 5 < 3 # True
!= Diferente 2 != 1 # True
and E a and b
or OU a or b
5

2. ESTRUTURAS
1 - ESTRUTURA DE DECISO (if, elif, else):

Forma Geral if condio:


# bloco de cdigo

elif condio:
# outro bloco
else:
# bloco final

Exemplo a = input(digite valor de a: )


b = input(digite valor de b: )

if a > b:
print 'a maior que b'
elif a == b:
print 'a igual a b'
else:
print 'a menor que b'

2 - ESTRUTURA DE REPETIO (while):

Forma Geral while condio:


# bloco de cdigo

Exemplo m = 3
n = 5
contador = 0
while m < n:
m = n / 0.5
n = m / 0.5
contador = contador + 1

print "Iteramos %d vezes at m > n"


% contador
6

3 - ESTRUTURA DE REPETIO (for):

Forma Geral for varivel in seqncia:


# bloco de cdigo

Exemplo 1 for i in range (5):


print i

# imprime 0,1,2,3,4

Exemplo 2 for m in range (1,5,1):


print m

# imprime 1,2,3,4

Exemplo 3 for j in range (1,5,2):


print j

# imprime 1,3

Exemplo 4 for t in range (5,1,-2):


print t

# imprime 5,3

Exemplo 5 valores = [2, -4, 5, 2, -1,6]


for i in valores:
if i < 0:
print "Negativo
encontrado: %d" % i

else:
print "no um
negativo"

4 - ESTRUTURA DE CONTROLE (break):

O comando quebra um lao


Descrio (pode ser o lao for ou while)
Exemplo i = 0
while i < 10:
if i == 5:
break
else:
print i
i += 1

# imprime 0,1,2,3,4
7

5 - ESTRUTURA DE CONTROLE (continue):

Descrio O comando passa para o


incio do lao.
Exemplo for i in range (10):
if i == 5:
continue
print i

# imprime 0,1,2,3,4,6,7,8,9
8

3. DEFININDO FUNES

FORMA GERAL def nome_funcao(param1,param2, ...):


return:
expressao_1,expressao_2,expressao_3...
EXEMPLO 1 def funcao():
y = 2**2
return y

print funcao() # imprime 4


EXEMPLO 2 def soma(a, b):
return a + b

print soma(2, 5) #imprime 7


EXEMPLO 3 def soma(a = 1, b = 2, c = 1.5):
return a + b + c

print soma() #imprime 4.5


print soma(2,5) # imprime 8.5
print soma(2,5,3) # imprime 10
EXEMPLO 4 def proximos(a):
return a - 1, a + 1

ant, seg = proximos(10)


print "anterior:", ant # imprime 9
print "seguinte:", seg # imprime 11
EXEMPLO 5 def f(x,y,z):
return x*y,pow(x,z),x/z

print f(10,2,1) # imprime (20,2,10)


EXEMPLO 6 def soma(x):
lista= [1, 1, 1, 1]
soma= 0
for num in lista:
soma += num
return x*soma

print"Soma =", soma(10) #imprime 40


EXEMPLO 7 def mult(*nums):
mult = 1
for n in nums:
mult *= n
return mult

print mult(1, 2, 3,10) # Imprime 6


print mult(1, 2) # Imprime 3
9

4. MANIPULAO DE ARQUIVOS DE DADOS

CRIANDO UM ARQUIVO DE DADOS


import numpy as np

# Cria um conjunto de dados


N = 10
x = np.linspace( 0, 1, N ) # N pontos igualmente distribu dos em [0,1]
y = np.exp(-x*x)

# Nome do arquivo que ser criado para escrever e depois para ler
nome_arq = "Exemplo.CookBook"

# Criando um arquivo para guardar os valores de x e y


# 'w' signfica 'write', vai escrever no arquivo
arq_saida = open( nome_arq, 'w' )
for i in range(N):
arq_saida.write( "%.6f %.6f\n" % (x[i],y[i]) )
arq_saida.close() # Fecha o arquivo

print "procure na pasta do cdigo o arquivo criado"

#MUITO IMPORTANTE NOTAR QUE O ARQUIVO IR APARECER NA MESMA PASTA ONDE ESTA SALVO O C DIGO
10

LENDO O ARQUIVO CRIADO


import numpy as np
nome_arq = "Exemplo.CookBook"

# Agora que o arquivo foi criado, abre ele para ler


# 'r' significa 'read', vai ler o arquivo
arq_entrada = open( nome_arq, 'r' )

# A fun o 'readlines' l tudo que tem dentro do arquivo e coloca na varivel


# contedo.
# A varivel contedo uma lista, cada elemento da lista cont m uma linha
# do arquivo, inteira, como uma string.
conteudo = arq_entrada.readlines()
X = []
Y = []

print "Lendo o arquivo ..."


for linha in conteudo:
# Para pegar os nmeros preciso dividir a varivel linha em peda os
# Cada peda o, vai ser um elemento da lista valores
valores = linha.split()
X.append( float( valores[0] ) )
Y.append( float( valores[1] ) )

print "Vetor X lido do arquivo:"


print X

print "\nVetor Y lido do arquivo:"


print Y
11

SADA DO PROGRAMA
Lendo o arquivo ...

# print "Vetor X lido do arquivo:"


# print X
Vetor X lido do arquivo:
[0.0, 0.111111, 0.222222, 0.333333, 0.444444, 0.555556, 0.666667, 0.777778, 0.888889, 1.0]

# print "\nVetor Y lido do arquivo:"


# print Y
Vetor Y lido do arquivo:
[1.0, 0.98773, 0.951817, 0.894839, 0.820755, 0.734444, 0.64118, 0.546108, 0.453789, 0.367879]
12

5. IMPRESSO FORMATADA

1 - %f:

Forma Geral Print %espao.casasf % nmero

Exemplo 1 a = math.pi

print " %8.5f" % a

# imprime 3.14159
(nmero PI com 8 espaos e 5 casas
decimais)
Exemplo 2 a = math.pi

print " %.5f" % a

# imprime 3.14159
(nmero PI com 5 casas)
Exemplo 3 a = math.pi

print " %.f " % a

# imprime 3
(nmero PI truncado)
Exemplo 4 a = math.pi

print " %f " % a

# imprime 3.141593
(nmero PI em ponto flutuante com 6 casas)
13

2 - %d:

Forma Geral Print %espao.d % nmero

Exemplo 1 a = math.pi

print " %8.d" % a

# imprime 3
(nmero PI com 8 espaos e parte inteira)
Exemplo 2 a = math.pi

print " %8d" % a

# imprime 3
(nmero PI com 8 espaos e parte inteira)

Exemplo 3 a = math.pi

print " %d" % a

# imprime 3
(nmero PI parte inteira)
14

3 - %e:

Forma Geral Print %espao.casase % nmero

Exemplo 1 a = 12345.6789

print " %8.4e" % a

# imprime 1.2346e+04
(nmero com 8 espaos e 4 casas decimais)
Exemplo 2 a = 12345.6789

print " %.4e" % a

# imprime 1.2346e+04
(nmero com 4 casas)
Exemplo 3 a = 12345.6789

print " %.e " % a

# imprime 1e+04
(nmero truncado)
Exemplo 4 a = 12345.6789

print " %e" % a

# imprime 1.234568e+04
(nmero em ponto flutuante com 6 casas)
15

4 - %g:

Forma Geral Print %espao.nmerosg % nmero

Exemplo 1 a = 12345.6789

print " %8.2g" % a

# imprime 1.2e+04
(nmero com 8 espaos e 2 nmeros)
Exemplo 2 a = 12345.6789

print " %8.3g" % a

# imprime 1.23e+04
(nmero com 8 espaos e 3 nmeros)

Exemplo 3 a = 12345.6789

print " %.4g" % a

# imprime 1.234e+04
(representao com 4 nmeros)
Exemplo 4 a = 12345.6789

print " %.g " % a

# imprime 1e+04
(nmero truncado)

Exemplo 5 a = 12345.6789

print " %g" % a

# imprime 12345.7
(ponto flutuante com 6 nmeros)
Exemplo 6 a = -.000001235

print " %g" % a

# imprime -1.235e-06
(ponto flutuante)
16

5 - %s:

Forma Geral
Print %espao.caracters % (nmero ou palavra)

Exemplo 1 a = python

print " %8.2s" % a

# imprime py
(palavra com 8 espaos e 2 caracteres)
Exemplo 2 a = 100

print " %8.2s" % a

# imprime 10
(nmero com 8 espaos e 2 caracteres)

Exemplo 3 a = 2.235

print " %.3s" % a

# imprime 2.2
(nmero com 3 caracteres)

Exemplo 4 a = python

print " %10s" % a

# imprime python
(toda palavra e com 10 espaos)
Exemplo 5 a = 12345.6789

print " %s" % a

# imprime 12345.6789
(todo o nmero)
17

6. VETORES E MATRIZES
*OBS: import numpy as np

CDIGO RESULTADO DO CDIGO


import numpy as np - IMPRIME:
# Cria uma lista
Vetor x: [1 2 3 4 5]
lista = [ 1, 2, 3, 4, 5 ]
# Uma lista no um vetor!
O tamanho do vetor x : 5
# Crio um vetor usando Numpy:
x = np.array( lista )

# Imprimo o vetor x
print "Vetor x: ", x
nx = len(x)
print "O tamanho do vetor x : %d " % nx
import numpy as np - IMPRIME:
# Inicio um vetor amostrado de forma uniforme entre 0 e 10
v: [ 0. 5. 10.]
v = np.linspace( 0, 10, 3 )
print "\nv: ",v
import numpy as np - IMPRIME:
# Inicio um vetor com 10 zeros: z: [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
z = np.zeros( 10 )
print "\nz: ",z
# Manipula es com vetores - IMPRIME:
u = 2*v 2*v: [ 0. 10. 20.]
print "\n2*v: ",u
# Manipula es com vetores - IMPRIME:
u = v**2 v**2: [ 0. 25. 100.]
print "\nv**2: ",u
import numpy as np - IMPRIME:
# Manipula es com vetores sin(v): [ 0. -0.95892427 -0.54402111]
u = np.sin( v )
print "\nsin(v): ",u
# Manipula es com vetores - IMPRIME:
u = v + v**2 + v**3 v + v**2 + v**3: [ 0. 155. 1110.]
print "\nv + v**2 + v**3: ",u
18

*OBS: MATRIZES SO VETORES DE VETORES

*OBS: import numpy as np

# Inicio uma matriz toda nula com 5 linhas e duas colunas - IMPRIME:
M0 = np.zeros( [5,2] ) Matriz de zeros:
print "\nMatriz de zeros:" [[ 0. 0.]
print M0 [ 0. 0.]
[ 0. 0.]
[ 0. 0.]
[ 0. 0.]]
# Inicio uma matriz toda com 1: - IMPRIME:
M1 = np.ones( [5,3] ) Matriz de 1's:
print "\nMatriz de 1's:" [[ 1. 1. 1.]
print M1 [ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
19

7. GRFICOS COM MATPLOTLIB

O cdigo:

import numpy as np
from pylab import *

# 1 - Criando um conjunto de dados, com espaamento muito pequeno


x = np.linspace(-5, 5, 1000)
y = np.exp(-x*x) # a funo e^(-x*x), poderia ser qualquer outra funo

# 2 - Crio um conjunto de dados, com espaamento grande


X = np.linspace(-5, 5, 11 )
Y = np.exp(-X*X)

# 3 - Plotando os pontos com espaamento pequeno como uma curva contnua


plot( x, y, 'k-', label=u'Funo $e^{-x^2}$', linewidth = 1)

# 4 - Ploto os pontos com espaamento grande como se fossem dados


plot( X, Y, 'bo', label=u'Dados $e^{-x^2}$', markersize = 7)

# 5 - Legenda
legend(loc = 'upper left')

# 6 - Texto nos eixos x e y, alm do ttulo do grfico


xlabel(u"Eixo x")
ylabel(u"Eixo y")
title(u"Grfico de Exemplo")

# 7 - Limites do grfico
xlim(-6,6)
ylim(-0.2,1.2)

# 8 - Grade
grid() # grid (True) Aparece, grid (False) Sem Grade

# 9 - Mostra o grfico na tela


show()
20

1 linha contnua:

# 3 - Plotando os pontos com espaamento pequeno como uma curva contnua


plot( x, y, 'k-', label=u'Funo $e^{-x^2}$', linewidth = 1)

Forma geral: plot (eixo x, eixo y, cor e tipo de linha, legenda, grossura da linha)

TIPOS DE CORES

b Azul - (blue)

g Verde - (Green)

r Vermelho - (red)

c Outro tipo de Azul (cyan)

m Magenta - (magenta)

y Amarelo - (yellow)

k Preto - (Black)

w Branco - (White)

TIPOS DE LINHAS

'-' Linha Slida

'--' Linha Tracejada

'-.' Linha Trao - Ponto

':' Linha Pontilhada


21

Exemplos:

plot( x, y, 'c-', label=u'Funo $e^{-x^2}$', linewidth= 1 )

plot( x, y, 'b --', label=u'Funo $e^{-x^2}$', linewidth = 2 )

plot( x, y, 'y -.', label=u'Funo $e^{-x^2}$', linewidth = 3 )

plot( x, y, 'k:', label=u'Funo $e^{-x^2}$', linewidth = 1 )


22

2 Plotando os Marcadores (Pontos):


# 4 - Ploto os pontos com espaamento grande como se fossem dados
plot( X, Y, 'bo', label=u'Dados $e^{-x^2}$', markersize = 7)

Forma geral: plot (eixo x, eixo y, cor e tipo de marcador, legenda, grossura do
marcador)

TIPOS DE MARCADORES

'.' Ponto

'*' Estrela

'o' Circulo

'v' Tringulo para baixo

'^' Tringulo para cima

'<' Tringulo para esquerda

'>' Tringulo para direita

's' Quadrado

'p' Pentgono

'h' Hexgono

'H' Hexgono 2

'+' Mais

'x' X

Exemplo:

plot( x, y, 'k-', label=u'Funo $e^{-x^2}$', linewidth= 1 )


plot( X, Y, 'bo', label=u'Dados $e^{-x^2}$', markersize = 10)
23

3 Legenda:
Forma geral: legend(loc = 'lugar onde se quer que aparea')

EXEMPLOS

Cdigo Escrito Cdigo Numrico Aplicao Localizao


legend(loc = best) Canto superior Direito
best 0 OU
legend(loc = 0 )
legend(loc = upper right) Canto superior Direito
upper right 1 OU
legend(loc = 1)
legend(loc = upper left) Canto superior Esquerdo
upper left 2 OU
legend(loc = 2)
legend(loc = lower left) Canto inferior Esquerdo
lower left 3 OU
legend(loc = 3)
legend(loc = lower right) Canto inferior Direito
lower right 4 OU
legend(loc = 4)
legend(loc = right) Canto direito
right 5 OU
legend(loc = 5)
legend(loc = center left) Centro Esquerdo
center left 6 OU
legend(loc = 6)
legend(loc = center right) Centro Direito
center right 7 OU
legend(loc = 7)
legend(loc = lower center) Centro Inferior
lower center 8 OU
legend(loc = 8)
legend(loc = upper center) Centro Superior
upper center 9 OU
legend(loc = 9)
legend(loc = center) Centro
center 10 OU
legend(loc = 10)
24

8. FUNES MATEMTICAS

*OBS: import numpy as np

1 - Funes trigonomtricas:

FUNO DESCRIO EXEMPLO


np.sin(x) Retorna o seno de x print np.sin(.5)
(em radianos) #imprime 0.479425538604
np.cos(x) Retorna o cosseno de print np.cos(.5)
x (em radianos) #imprime 0.87758256189
np.tan(x) Retorna a tangente de print np.tan(.5)
x (em radianos) #imprime 0.546302489844
np.arcsin(x) Retorna o arco seno print np.arcsin(.5)
de x (em radianos) #imprime 0.523598775598
np.arccos(x) Retorna o arco print np.arccos(.5)
cosseno de x (em #imprime 1.0471975512
radianos)
np.arctan(x) Retorna o arco print np.arctan(.5)
tangente de x (em #imprime 0.463647609001
radianos)
np.arctan2(y,x) Retorna o arco print np.arctan2(1,2)
tangente (y/x) #imprime 0.463647609001
np.hypot(co,ca) Retorna a hipotenusa print np.hypot(3,4)
do tringulo #imprime 5.0

2 - Funes logartmicas e exponenciais:

FUNES DESCRIO EXEMPLOS


np.log(x,base) Clculo de logaritmo print np.log(8,2)
com qualquer base #imprime 3.0
np.log10(x) Clculo de logaritmo print np.log10(10)
com base 10 #imprime 1.0
np.log(x) Clculo de logaritmo print np.log(2.71)
natural (ln) #imprime 0.996948634892
np.exp(x) Retorna e**x print np.exp(1)
#imprime 2.71828182846
np.sqrt(x) Retorna a raiz print np.sqrt(81)
quadrada de x #imprime 9.0
25

3 - Constantes, converses e outras:

FUNES DESCRIO EXEMPLOS


np.e Retorna o valor de e print np.e
#imprime 2.71828182
np.pi Retorna o valor de pi print np.pi
#imprime 3.141592
np.degrees(x) Converte x de print np.degrees(0.523598...)
radianos para graus #imprime 30.0
np.radians(x) Converte x de graus print np.radians(30)
para radianos #imprime 0.523598...
np.factorial(x) Retorna o fatorial de x print np.factorial(10)
#imprime 3628800

4 - Funes hiperblicas:

FUNO DESCRIO EXEMPLO


np.sinh(x) Retorna o seno print np.sinh(2)
hiperblico de x #imprime 3.62686040785
np.cosh(x) Retorna o cosseno print np.cosh(2)
hiperblico de x #imprime 3.76219569108
np.tanh(x) Retorna a tangente print np.tanh(2)
hiperblica de x #imprime 0.964027580076
np.arcsinh(x) Retorna o inverso do print np.arcsinh(.2)
seno hiperblico de x #imprime 0.198690110349
np.arccosh(x) Retorna o inverso do print np.arccosh(2)
cosseno hiperblico #imprime 1.31695789692
de x
np.arctanh(x) Retorna o inverso da print np.arctanh(.2)
tangente hiperblica #imprime 0.202732554054
de x

Você também pode gostar