Archive for August 2014

Codificando Matrizes

§ 0

Origem:
Os antigos chineses apreciavam as vantagens da manipulação de matrizes ao lidar com equações lineares. Dentro da história da matemática chinesa, a obra "Nove capítulos" é de maior destaque. Sua influência estendeu-se ao Japão, onde Seki Kowa (1642-1708) formulou o conceito que hoje nós chamamos de determinante, através de sua compreensão das operações elementares utilizadas na eliminação chinesa. Posteriormente, Arthur Cayley (1821-1895) fez a distinção entre a noção de determinantes e as operações algébricas de matrizes.

Operações básicas:
- Adição de matrizes: [A+B]ij=[A]ij+[B]ij para cada i e j.
- Transposição: A=[aij], então [AT]ij = aji.
- Multiplicação de escalares: [αA] ij = α[A]ij para cada i e j. 
- Multiplicação de matrizes: Ai₁B₁j+Ai₂B₂j+···+AirBrj.
- Matriz inversa: AB=In e BA=In.

Para fazer as operações básicas entre as matrizes, temos a biblioteca numpy:

Irá retornar:
[8 9 3] [ 7 20  2]
[[1 4 7]
 [2 5 8]
 [3 6 9]] 

Criptografiando mensagens com a matriz inversa:
Podemos criptografar mensagens utilizando a propriedade da matriz inversa. Por exemplo, Alice deseja enviar uma mensagem secreta para Bob. Para isso, ela atribui um número a cada letra do alfabeto. Depois ela crifra a mensagem em uma matriz multiplicando pela sua chave (T=MC). Bob decodifica a mensagem, multiplicando a mensagem pela inversa da chave, (T=MC⁻¹).

O código abaixo demonstra o processo:
Retornado a mensagem: 'greatwork'. ;)


* Fontes:
Aspectos da Matemática Chinesa: O "Nove Capítulos" - Marcel Vinhas Bertolini.
Matrix Analysis and Applied Algebra - C. Meyer.

http://www.programiz.com/python-programming/examples/multiply-matrix 
http://www.python-course.eu/matrix_arithmetic.php

Plotando gráficos para o Scidavis

§ 0

O Scidavis é uma aplicação gratuita para análise de dados científicos e visualização.

Instalação no Linux:
Download: http://pt.sourceforge.jp/projects/sfnet_scidavis/downloads/SciDAVis/0.2.4/scidavis-0.2.4-linux-x86-qt4.4-py2.5.tar.bz2/
Depois é só descompactar e compilar:
$ tar -jxvf scidavis-0.2.4-linux-x86-qt4.4-py2.5.tar.bz2
$ cd scidavis-0.2.4-linux-x86-qt4.4-py2.5
$ ./scidavis

Ajustando o gráfico linear:

Para avaliar a relação linear temos o coeficiente de Pearson, que pode ser calculado usando a biblioteca numpy:  
pr = numpy.corrcoef(lista1,lista2)[0, 1]
O Scidavis faz automaticamente o ajuste da reta utilizando o método os mínimos quadrados, que consiste em calcular a linha do melhor ajuste. Podemos criar um script python fazendo o ajuste manualmente para determinar os valores de a (coeficiente angular) e b (coeficiente linear):






 
Plotando um Histograma:
O Scidavis é bastante utilizado para a construção de histogramas (distribuição de frequências), que pode ser criado através de um script python:









A biblioteca numpy utiliza a função random e o método normal com os parâmetros (centro da distribuição, desvio padrão, tamanho) para fazer a distribuição gaussiana e a biblioteca pylab irá construir e gerar o histograma.


* Fontes:
http://pessoal.sercomtel.com.br/matematica/superior/algebra/mmq/mmq.htm
http://academic.sun.ac.za/mathed/174WG/LeastSquares.pdf
http://daemoniolabs.wordpress.com/2013/03/16/instalando-o-scidavis-no-fedora/
Basic Beginners' Introduction to plotting in Python - Sarah Blyt