\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\begin{document}
\thispagestyle{empty}
\begin{center}
{\large\bf
Matrizes, dicas e truques \\
}

\end{center}

\begin{flushright}
 $\square$
\end{flushright}
\section{Transformação linear paralela}
\

É possível implementar uma transformação linear (TL) de uma série de vetores em "paralelo".

Suponha que você queira implementar uma TL uma matriz de transformação $A$ separadamente sobre $M$ vetores $\vec{v}_i$, i.e, $\vec{q}_i=A\vec{v_i}$. Podemos fazer isso de uma vez só usando uma matriz auxiliar $B$, tendo nas colunas os vetores $\vec{v}_i$. As respectivas transformações $\vec{q}_i$ podem ser obtidas fazendo $C=AB$, onde cada coluna de $C$ irá corresponder ao respectivo vetor $\vec{q}_i$. Considere o seguinte exemplo:\\


Seja 
\begin{tabular}{ c c c c c }

 $A=\left[ \begin{array}{c c}
 1 & 2 \\
 -1 & -3
\end{array}\right]$ & $\vec{v}_1=\left[\begin{array}{c}
   0 \\
   2
\end{array} \right]$ & $\vec{v}_2=\left[\begin{array}{c}
   3 \\
   -1
\end{array} \right]$ & $\vec{v}_3=\left[\begin{array}{c}
   1 \\
   2
\end{array} \right]$ & $\vec{v}_4=\left[\begin{array}{c}
   -4 \\
   5
\end{array} \right]$ \\ 

\end{tabular}, então
\\

\[C=AB=\left[\begin{array}{c c}
1 & 2 \\
-1 & -3
\end{array}\right]\left[\begin{array}{c c c c}
0 &  3 & 1 & -4 \\
2 & -1 & 2 & 5
\end{array} \right] = \left[\begin{array}{cccc}
 4 & 1 &  5 & 6 \\ 
-6 & 0 & -7 & -11
\end{array}\right]\]

Implica que \begin{tabular}{cccc}
$\vec{q}_1=\left[\begin{array}{c}
   4 \\
   -6
\end{array} \right]$ & $\vec{q}_2=\left[\begin{array}{c}
   1 \\
   0
\end{array} \right]$ & $\vec{q}_3=\left[\begin{array}{c}
   5 \\
   -7
\end{array} \right]$ & $\vec{q}_4=\left[\begin{array}{c}
   6 \\
   -11
\end{array} \right]$ \\ 

\end{tabular} 


\section{Construindo matriz por colunas}
\

Obter uma matriz $NxM$ tendo todos os elementos zerados, exceto para um elemento $a_{ij}=r$, que pode ser um valor real ou complexo.

Sejam um vetor $\vec{v}$, de tamanho $N$ igual a zero exceto o elemento $v_{i1}=r$ é diferente de zero e um vetor $\vec{q}$, igual a zero, exceto para $q_{ij}=1$.

A matriz desejada pode ser obtida como $A=\vec{v}\vec{q}^T$.

Seja $N=3$, $M=4$ e $a_{23}=4$

Temos então $\vec{v}=(0, 4, 0)$, $\vec{q}=(0, 0, 1, 0)$ de modo que 
\[A=\vec{v}\vec{q}^T=\left[\begin{array}{c}
0 \\
4 \\
0
\end{array}\right]\left[\begin{array}{cccc}
0 & 0 & 1 & 0
\end{array}  \right]=\left[\begin{array}{cccc}
0 & 0 & 0 & 0 \\ 
0 & 0 & 4 & 0 \\ 
0 & 0 & 0 & 0
\end{array}\right]  \]

A mesma estratégia é usada para uma específica coluna $j$ de $A$:
\[A=\vec{v}\vec{q}^T=\left[\begin{array}{c}
1 \\
4 \\
-2
\end{array}\right]\left[\begin{array}{cccc}
0 & 0 & 1 & 0
\end{array}  \right]=\left[\begin{array}{cccc}
0 & 0 & 1 & 0 \\ 
0 & 0 & 4 & 0 \\ 
0 & 0 & -2 & 0
\end{array}\right]  \]

Se quizermos repetir $\vec{v}$ mais de uma vez basta adicionarmos 1 onde queremos repetir.
\[A=\vec{v}\vec{q}^T=\left[\begin{array}{c}
1 \\
4 \\
-2
\end{array}\right]\left[\begin{array}{ccccc}
0 & 1 & 0 & 1 & 0
\end{array}  \right]=\left[\begin{array}{ccccc}
0 & 1 & 0 & 1 & 0\\ 
0 & 4 & 0 & 4 & 0\\ 
0 & -2 & 0 & -2 & 0
\end{array}\right]  \]

No caso se quizermos multiplicar cópias de $\vec{v}$ em várias colunas de $j_1,j_2,\cdots,j_k$ de $A$ pelos seus respectivos pesos  $c_1,c_2,\cdots,c_k$, tudo que temos que fazer é colocar os pesos nas respectivas colunas de $\vec{q}^T$, conforme mostrado abaixo:

\[A=\vec{v}\vec{q}^T=\left[\begin{array}{c}
1 \\
4 \\
-2
\end{array}\right]\left[\begin{array}{cccc}
-0.5 & 0 & 1 & 2
\end{array}  \right]=\left[\begin{array}{cccc}
-0.5 & 0 & 1 & 2 \\ 
-2 & 0 & 4 & 8 \\ 
1 & 0 & -2 & -4
\end{array}\right]  \]

\section{Construindo matriz por linhas}
\

Seja o vetor $\vec{x}=[1 \mbox{ } 2 \mbox{ } 3 \mbox{ } 4 \mbox{ } 5]$, analogamente ao conceito da seção anterior, podemos repeti-lo em quantas linhas de uma matriz que desejarmos.
Exemplo:

\[A=\vec{v}\vec{q}^T=\left[\begin{array}{c}
0 \\
1 \\
0 \\
1 \\
0
\end{array}\right]\left[\begin{array}{ccccc}
1 & 2 & 3 & 4 & 5
\end{array}  \right]=\left[\begin{array}{ccccc}
0 & 0 & 0 & 0 & 0\\ 
1 & 2 & 3 & 4 & 5\\ 
0 & 0 & 0 & 0 & 0 \\
1 & 2 & 3 & 4 & 5 \\
0 & 0 & 0 & 0 & 0
\end{array}\right]  \]

\section{Sistemas lineares}

Usamos multiplicação de matrizes para resolver sistemas lineares. Vejamos o exemplo abaixo:
\[\left\lbrace \begin{array}{ccccc}
 x & - & y & = & 1 \\
 x & - & 2y & = & -2 
\end{array}  \right.  \]

Este é um sistema do tipo $A\vec{x}=\vec{b}$, sendo 
\begin{tabular}{ccc}
 
 $A=\left[\begin{array}{cc}
 1 & -1 \\
 1 & -2
 \end{array}\right]$ &   & $b=\left[ \begin{array}{c}
 1 \\
 -2
\end{array} \right]$\\ 
  
 \end{tabular}  
 
Para encontrar  $\vec{x}$, basta multiplicar a igualdade $A\vec{x}=\vec{b}$ em ambos os lados por $A^{-1}$, ou seja pelo inverso da matriz $A$, desde que ela seja inversível (se não lembra, procure o que é isso). 

A matriz A do lado esquerdo torna-se uma matriz identidade devido a multiplicação pela sua inversa, restando portanto:
\[\vec{x}=A^{-1}\vec{b}=inv(A)\vec{b}\],
deste modo encontramos $\vec{x}$.

\section{Criando uma matriz de covariância sem utilizar muitas linhas de comando}
\

Dada uma matriz de dados $A_{n \times d}$, sendo $n$ o número de observações (linhas) e $d$ a dimensão da matriz de dados, o número atributos (campos ou colunas). Podemos obter a média de cada coluna de $A$, através de algum software próprio para isso, como por exemplo o \textit{matlab}, \textit{scilab}, \textit{octave} ou \textit{python} com \textit{numpy}. Seja $\vec{\mu}_a=[\mu_1 \mbox{ } \mu_2 \mbox{ } \cdots \mbox{ } \mu_d]$ o vetor linha de médias de cada coluna de A.

Para calcular os desvios a partir da média primeiro precisamos de uma matriz com  $n$ linhas do vetor de médias. Seja $\vec{b}$ um vetor com $n$ termos igual a $1$. Fazendo 
\[M=\vec{b}\vec{\mu}_a =\left[\begin{array}{c}
1 \\
1 \\
\vdots \\
1
\end{array}\right]_{n \times 1}\left[\begin{array}{c c c c}\mu_1 \mu_2 \cdots \mu_d\end{array}\right]_{1 \times d}=\left[ \begin{array}{cccc}
\mu_1 & \mu_2 & \cdots & \mu_d \\
\mu_1 & \mu_2  & \cdots & \mu_d \\
\vdots & \vdots & \ddots & \vdots \\
\mu_1 & \mu_2 & \cdots & \mu_d
\end{array}\right]_{n\times d} \] teremos uma matriz $M$ de $n$ linhas de $\vec{\mu}_a$.

\
\\
Assim, podemos ter a matriz de covariância $C$, fazendo

\[C=\frac{1}{n-1}(A-M)^T(A-M)\]

\
\
\[\rho_{ij}=\frac{\sigma_{ij}}{\sqrt{\sigma_{ii}\sigma_{jj}}} =\frac{\sigma_{ij}}{\sigma_i\sigma_j}\]

\[\sigma_{ij}=\frac{1}{n-1}\sum(X_i-\mu_i)(X_j-\mu_j) \]


\small\bf
\begin{quote}
\begin{center}
\tiny
"Ninguém, depois de acender uma candeia, a põe em lugar oculto, nem debaixo do alqueire, mas no velador, a fim de que os que entram vejam a luz." $\mbox{ }-$ Lucas 11:33\\
De nada vale o maior conhecimento que uma pessoa possa ter se ela não passá-lo adiante.
\end{center}
\end{quote}

\end{document}
