Pular para o conteúdo principal

Matemática com Python

Matemática e Python

Uso de Bibliotecas Numpy e Scipy

Numpy é um projeto open source para computação numérica com a linguagem Python fazendo uso de bibliotecas com algoritmos numéricos e de manipulação de matrizes e vetores. Por sua vez o SciPy é um pacote que faz uso da biblioteca NumPy servindo para matemáticos e cientistas em computação cientifica.

Outras bibliotecas são uteis para propositos de computação cientifica e analise de dados como:

  • Matplotlib - biblioteca para desenho de gráficos ;
  • SciKit-Learn - pacote python para aprendizado de máquina (Machine Learning);
  • Jupyter - o pacote Notebook Jupyter implementa um ambiente web de computação cientifica;
  • Sympy - biblioteca python para matemática simbólica;

Documentação e Tutoriais

Numpy

  1. NumPy
  2. Introdução ao NumPy
  3. Python NumPy Tutorial

SciPy

  1. SciPy
  2. Python Scipy Tutorial [video]
In [ ]:
 
In [2]:
import numpy as np
In [16]:
A = np.array([[2,1], [1,3]])
B = np.array([(1.5, 2.0), (1.5, 2.0)])
print("A =\n {}\n".format(A))
print("B =\n {}\n".format(B))
A =
[[2 1]
[1 3]]

B =
[[1.5 2. ]
[1.5 2. ]]

Após importar o módulo numpy renomeando como np

import numpy as np

e usando a função array com np.array temos a criação das matrizes $A$ e $B$.

$$A = \begin{bmatrix} 2.0 & 1.0 \\ 1.0 & 3.0 \end{bmatrix} $$

e

$$B = \begin{bmatrix} 1.5 & 2.0 \\ 1.5 & 2.0 \end{bmatrix} $$
In [18]:
# Soma de matrizes
print("A + B =\n {}".format(A+B))
A + B  =
[[3.5 3. ]
[2.5 5. ]]
In [25]:
x = np.arange(0, 10, 0.01)
ysin = np.sin(x)
In [28]:
# Módulo Matplolib
import matplotlib.pyplot as plt
In [27]:
plt.plot(x,ysin)
Out[27]:
[<matplotlib.lines.Line2D at 0x7f34f8856e48>]

Sympy & NumDiffTools

Usando Sympy e NumDifftools para computação simbólica e diferenciação numérica. Abaixo exemplo para computar a derivada e depois plotar o gráficos de uma função e de sua derivada.

In [ ]:
 
In [21]:
from IPython.display import display, Markdown, Math
from sympy import *
import numdifftools as nd
import numpy as np
import matplotlib.pyplot as plt
In [4]:
df = nd.Derivative(np.cos, n=1)
In [14]:
x = np.arange(-4*np.pi, 4*np.pi, 0.1)
y = np.cos(x)
y1 = df(x)
plt.plot(x,y, label="f(x) = cos(x)")
plt.plot(x,y1, label="$f'(x) = -sin(x)$")
plt.xlabel('x')
plt.ylabel('y')
plt.title("NumDiffTool compute derivative.")
plt.legend()
plt.show()

Seja $y = f(x) =cos(x)$ e sua derivada $f'(x) = -sin(x)$ temos o gráfico acima de $f$ e de sua derivada.

Computando a derivada de $f(x)$ na forma simbólica com Sympy

In [23]:
x, y = symbols('x y')
init_printing(use_unicode=True)
display(Math(r"$f'(x) = {}$".format(diff(cos(x), x))))
$\displaystyle f'(x) = -sin(x)$
In [ ]:
 









Download PDF deste post

Comentários

Postagens mais visitadas deste blog

Matrix Determinant

Compute Matrix Determinant A square matrix \(A\), \[\begin{aligned} A = \begin{bmatrix} a_{1,1} & a_{1,2} & ... & a_{1,n} \\ a_{2,1} & a_{2,2} & ... & a_{2,n} \\ \vdots & \vdots & \vdots & \vdots \\ a_{n,1} & a_{n,2} & \ldots & a_{n,n} \end{bmatrix} \end{aligned}\] Be \(A\) a matrix \(n \times n\) and \(n \geqslant 2\). The determinant of \(A\) is scalar give by \(|A| = det(A)\), \[det(A) = \sum_{k=1}^{n} a_{i,j} C_{i,j}\] where \(C_{i,j}\) is cofactor, \[C_{i,j} = (-1)^{i+j} det( A_{i,j} )\] Example \(\bullet\) Compute the determinant of matrix \(A\) showed bellow, \[\begin{aligned} A = \begin{bmatrix} 1 & 1 & 3 \\ 2 & 5 & 7 \\ 12 & 6 & 1 \end{bmatrix} \end{aligned}\] Resolution Choice expansion for row \(1\), \[det(A) = \sum_{k=1}^{3} a_{1,k} (-1)^{1+k} det\left( A_{1,k} \right) = \] \[ = 1 (-1)^{1+1 }det \left( \begin{bmatrix} 5 & 7 \\ 6 & 1 \end{bmatrix} \right) + 1 (-1)^{1+2} det \left( \begin...

Editor Vim - Duvida sobre tamanho do tab

Hoje ao abrir meu editor de código Vim em meu Debian GNU/Linux deparei-me com alguns probleminhas quanto a indentação e tamanho dos 'tabs' logo fui ao Google pesquisar e achei esta ótima dica que para mim funcionou bem. Basicamente usei  "set tabstop=<tamanho em espaços>" e "set shiftwidth=<tamanho para indentação>". Eu usei o mesmo tamanho para indentação e tab para não ter diferença no resultado. Esses ajustes podem também ser salvos no arquivo .vimrc. Segue o link e resposta do Stackoverflow a questão de um usuário sobre o assunto aqui e em " Vim Tips Wiki" . Documentação em vim.org.

Nature Beauty inside little cliks

  Photo by Wandeson Ricardo