(versão de 22 de Setembro de 2016)
O IPython (agora integrado no projecto Jupyter) é um ambiente interactivo para a utilização livre da linguagem Python como ferramenta de cálculo e visualização, bem como para o desenvolvimento de (pequenos) programas na linguagem Python e sua prototipagem rápida. No modo Notebook a interacção dá-se através de um interface muito simples suportado por um browser, que por sua vez comunica com um kernel que disponibiliza um interpretador de Python. É neste modo que iremos trabalhar.
Cada "Notebook" está organizado em células. Cada célula tem associado um tipo (texto, input, ouput, gráficos, etc.). As células de input podem avaliar-se premindo simultaneamente as teclas "shift" e "return", o que inicia a necessária comunicação com o "Kernel".
Para começar, inicie o Jupyter, criando um Notebook novo. Avalie a expressão 1+1
e confirme que obtém o resultado esperado.
Recorde as operações aritméticas básicas do Python: +
(adição), -
(subtracção), *
(multiplicação), /
(divisão), **
(exponenciação), //
(divisão inteira), %
(resto da divisão inteira).
Avalie as expressões:
Calule agora sin(pi/2)
.
Para se poder avaliar a expressão anterior é necessário usar extensões à linguagem. Neste caso, recomenda-se a utilização da extensão pylab
que pode ser importada através do comando seguinte.
%pylab inline
Volte a avaliar a expressão anterior.
Podemos obter informação sobre a constante sin
através da função help
(ou ?
).
Avalie as expressões seguintes.
A unidade imaginária em Python é representada pelo símbolo j
, disponibilizado pela extensão pylab
.
Calcule os sequintes números:
Recorde as funções real
e imag
. Calcule a parte real e a parte imaginária dos números complexos:
Recorde as funções abs
e conjugate
. Calcule o módulo e o conjugado dos números complexos:
Recorde-se que a manipulação de vectores e matrizes é disponibilizada pela extensão pylab
. Recorrendo à função arange
defina os vectores seguintes.
Calcule o produto interno entre o vector $[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]$ e o vector dos números pares entre 2 e 20.
Recorde as operações aritméticas usuais sobre matrizes. Avalie as seguintes expressões:
Recorde as operações sobre matrizes zeros
, ones
, eye
e reshape
. Recorrendo a estas operações e às operações aritméticas defina as seguintes matrizes.
O Python dispõe de uma colecção de funções para manipular polinómios. A representação de um polinómio faz-se através um vector em que os coeficientes do polinómio surgem ordenados do mais significativo para o menos significativo. Por exemplo, o polinómio $x^2-2x+3$ é representado pelo vector:
array([1,-2,3])
É interessante explorar as operações roots
, poly
e polyval
para manipulação de polinómios, e que ainda não tínhamos abordado.
A operação roots
permite encontrar as raízes de um polinómio:
roots(array([1,-2,-3]))
Reciprocamente, a operação poly
permite obter os coeficientes de um polinómio a partir das suas raízes. Por exemplo, para determinar o polinómio cujas raízes são 3 e -1 basta avaliar:
poly(array([3,-1]))
Para calcular o valor de um polinómio num ponto ou num conjunto de pontos recorre-se à função polyval
. Relativamente ao polinómio anterior, podemos determinar o seu valor no ponto 4 avaliando:
polyval(array([1,-2,-2]),4)
Com base nas operações anteriores,
Comece por importar a extensão sympy
.
from sympy import *
Defina os símbolos a
, b
, c
, d
, x
e y
. Avalie a expressão $(a/b-c/d)^2$; expanda-a. Sugestão: utilize a função pprint
para tornar a apresentação dos resultados mais agradável.
Avalie a expressão sen(x)/cos(x)
; simplifique-a.
Calcule a derivada (em ordem a $x$) da expressão $\log(x)+x$.
Calcule a derivada (em ordem a $x$) das expressões $a(x)+b(x)$ e $a(x)b(x)$.
Calcule a primitiva das expressões $x^2+x$, $\cos(x)$ e $\arctan(x)$.
Calcule o integral da função com expressão analítica $x^2+x$ no intervalo $[-2,2]$.
Calcule os seguintes limites:
Desenhe o gráfico da função com expressão analítica $3x-1$ no intervalo $[-2,2]$.
Desenhe o gráfico da função com expressão analítica $5x^2-x+2$ no intervalo [−10,20].
Importe a função plot3d
e consulte a informação disponibilizada para essa função.
from sympy.plotting import plot3d
Desenhe os gráfico da função com expressão analítica $\cos(x^2+y^2)$ nos intervalos $[-1,1]\times [-1,1]$ e $[-2,2]\times[-2,2]$.
Desenhe o gráfico da função $f(x)=\frac{\sin(\sqrt{x^2+y^2})}{\sqrt{x^2+y^2}}$ no intervalo $[-10,10]\times [-10,10]$.
Considere a função real de variável real definida por $f(x)=\cos(x)\sin(3x/2)/x$.
Desenhe o gráfico de $f$ no intervalo $[-8\pi,8\pi]$.
Calcule os limites de $f$ quando x tende para $+\infty$ e $-\infty$.
Verifique que os limites de $f$ à esquerda e à direita do ponto 0 são ambos 3/2.
Calcule o valor da expressão da função derivada de $f$. Desenhe o gráfico da expressão no mesmo intervalo.
Resolva as equações:
Resolva as inequações:
Obtenha a fórmula resolvente para equações do tipo:
Embora não existam fórmulas resolventes para equações de grau superior a 4, é possível encontrar soluções para equações particulares. Tente obter a fórmula resolvente para equações do tipo $ax^5+bx^4+cx^3+dx^2+ex+f=0$. Resolva a equação $x^5+2x^2+4=0$.
É possível, frequente e desejável, associar nomes a valores, por forma a memorizá-los e ter um mecanismo simples para os referir. O mecanismo de associação de um nome a um valor é conhecido por atribuição. Aos nomes também é usual chamar variáveis.
Atribui-se à variável k
o valor 3.5 da seguinte forma.
k=3.5
Atribua à variável m
o valor 8. Verifique o valor das variáveis k
e m
.
Calcule o logaritmo de $k\times m$.
Obtenha informação sobre as variáveis k
e m
.
Apague o valor memorizado em k
. Verifique que foi efectivamente apagado.
Apague completamente a variável k
. Verifique que foi completamente apagada.
Atribua a True
o valor 2.
Atribua às variáveis x
, y
e z
os valores 3, 5 e 0, respectivamente. De seguida avalie as expressões Booleanas seguintes:
Apresente no Output
a string "pi = " seguida do valor numérico de $pi$.
Apresente no Output
a string "a variável y tem o valor " valor de y " e a variável x tem o valor " valor de x ".".
Define-se uma função de nome $f$ com parâmetros formais $x$ e $y$, cuja expressão de cálculo é $\frac{\sin(x)\cos(y)}{x^y}$, muito simplesmente usando a seguinte declaração.
Determine o valor que $f$ devolve quando:
Desenhe o gráfico da função $f$ no intervalo $[1,2]\times[1,2]$.
Defina uma função $g$ com parâmetros formais $x$ e $y$, definida pela expressão $\frac{f(x,y)}{(xy)^6}$.
Desenhe o gráfico da função $g$ no intervalo $[\pi/2,3\pi/2]\times[\pi,2\pi]$.