Além dos tipos númericos int e float também podemos escrever números complexos da seguinte forma:

2+3j

As operações básicas funcionam também para esse tipo.


In [1]:
x = 2+3j
y = 5+2j
print x + y
print x*y
print x.real, x.imag
print x.conjugate()


(7+5j)
(4+19j)
2.0 3.0
(2-3j)

Para as funções avançadas devemos utilizar a biblioteca cmath.:


In [2]:
import cmath
cmath.sqrt(-2)


Out[2]:
1.4142135623730951j

Além das bibliotecas fornecidas pelo Python e Anaconda, também podemos criar bibliotecas próprias.

Para isso, no seu diretório de trabalho crie um arquivo chamado MinhaLib.py, nele copie as funções feitas nas aulas de teoria e laboratório (alternativamente você pode abrir o notebook da aula e clicar em "Download as Python".

Digamos que nesse arquivo você definiu a função entropia(). Para utilizá-la basta fazer:

import MinhaLib as ml
print ml.entropia(0.1)

1) Crie uma função que retorne uma função que dê os valores das funções seno e cosseno dados por:

f(x) = A . sin(2*pi*freq*x + phi)
f(x) = A . cos(2*pi*freq*x + phi)

sendo:

amplitude A, a frequencia freq,e a fase phi definidos pelo usuário, o valor de pi pode ser obtido usando math.pi


In [4]:
import math

def CriaSenosCos(A,freq,phi):
    def SenoCos(x):
        sen = A*math.sin(2.0*math.pi*x + phi)
        cos = A*math.cos(2.0*math.pi*x + phi)
        return sen, cos
    return SenoCos

SenoCos = CriaSenosCos(10, 3, 0.1)
seno, cos = SenoCos(2.1)
print seno, cos


6.65615704994 7.46294669193

In [ ]: