Revisão de Matrizes em Aprendizagem de Máquina
UFPE
representam variáveies aleatórias (v.a.);
representam realizações da variáveis aleatórias;
representam vetores aleatórios;
representam realização de vetores aleatórios;
representam matrizes aleatórios;
representam realização de matrizes aleatória;
dimensão das \(features\), variáveis, parâmetros
tamanho da amostra
\(i\)-ésima observação, instância
\(j\)-ésima \(feature\), variável, parâmetro
Uma matriz é um arranjo bidiomensional de valores dispostos em \(n\) linhas e \(p\) colunas (uma matriz \(n \times p\)). Cada elemento pode ser denotado como \(a_{ij}\), onde \(i\) é o número da linha e \(j\) é o número da coluna.
Exemplo de Matriz:
\[\dot{\mathbf{X}} = \left[ \begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \end{array} \right]\]
Neste exemplo acima, a matriz possui 2 linhas e 3 colunas, dizemos que é uma matriz de dimensão \(2 \times 3\) e o elemento na primeira linha e segunda coluna, ou seja, \(a_{12} = 2\).
Exemplo de Vetor linha: \[\dot{\mathbf{x}} = \left[ \begin{array}{c} 1 \quad 2 \quad 3 \end{array} \right]\]
Neste caso acima, o vetor possui 1 linha e 3 colunas, dizemos que é um vetor de dimensão \(1 \times 3\).
Exemplo de escalar:
Elemento \(a_{2} = 2\) do vetor \(\dot{\mathbf{x}}\) é um escalar,
ou, \(x = 5 \text{ ou } x = 10\)
\[\dot{\mathbf{X}} = \left[ \begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array} \right]\]
Uma matriz com um número igual de linhas e colunas (\(n = p\)). Muitas operações importantes, como inversão e cálculo do determinante, são definidas apenas para matrizes quadradas.
\[\dot{\mathbf{I}} = \left[ \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array} \right]\]
Uma matriz quadrada onde todos os elementos da diagonal principal são 1 e todos os outros elementos são 0.
Ela atua como a identidade multiplicativa para matrizes (\(\dot{\mathbf{X}}\dot{\mathbf{I}} = \dot{\mathbf{I}}\dot{\mathbf{X}} = \dot{\mathbf{X}}\)).
\[\dot{\mathbf{X}} = \left[ \begin{array}{ccc} 1 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & 3 \end{array} \right]\]
Uma matriz quadrada onde todos os elementos fora da diagonal principal são 0.
\[\dot{\mathbf{X}} = \left[ \begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{array} \right]\]
Uma matriz onde todos os elementos são 0.
Neste caso, ela não precisa ser quadrada, pode possuir diferentes dimensões para \(n\) e \(p\).
Seja \(\dot{\mathbf{X}}\) uma matriz \(n \times p\), a transposta de \(\dot{\mathbf{X}}\) é uma matriz \(p \times n\) denotada por \(\dot{\mathbf{X}}^\top\)
\[\dot{\mathbf{X}} = \left[ \begin{array}{ccc} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{array} \right]\]
temos que a matriz transposta de \(\dot{\mathbf{X}}\) é:
\[\dot{\mathbf{X}}^\top = \left[ \begin{array}{ccc} 1 & 4 & 7 \\ 2 & 5 & 8 \\ 3 & 6 & 9 \end{array} \right]\] neste caso, o que é linha passa a ser coluna e vice-versa.
\[\dot{\mathbf{X}} = \left[ \begin{array}{ccc} 1 & 2 & 3 \\ 2 & 4 & 5 \\ 3 & 5 & 6 \end{array} \right]\]
Uma matriz quadrada onde \(\dot{\mathbf{X}} = \dot{\mathbf{X}}^\top\), o que significa que \(a_{ij} = a_{ji}\), \(\forall i = 1, \ldots, n,\, \text{ e } \forall j = 1, \ldots, p\)..
Matrizes de covariância, são matrizes simétricas.
Suponha duas matrizes \(A\) e \(B\):
Exemplo de Adição
Sejam as matrizes:
\[A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \quad \text{ e } \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}\]
Então, a soma \(A + B\) é?
\[A + B = \begin{bmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{bmatrix} = \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix}\]
Exemplo de Subtração
Sejam as matrizes:
\[A = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \quad \text{ e } \quad B = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\]
Então, a diferença \(A - B\) é?
\[A - B = \begin{bmatrix} 5-1 & 6-2 \\ 7-3 & 8-4 \end{bmatrix} = \begin{bmatrix} 4 & 4 \\ 4 & 4 \end{bmatrix}\]
Exemplo:
Seja \[A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\quad \text{ e } \quad c = 3\]
Então, \(cA = ?\)
\[cA = 3 \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 3 \cdot 1 & 3 \cdot 2 \\ 3 \cdot 3 & 3 \cdot 4 \end{bmatrix} = \begin{bmatrix} 3 & 6 \\ 9 & 12 \end{bmatrix}\]
A multiplicação de uma matriz \(A\) de dimensão \(n \times p\), por uma matriz \(B\) de dimensão \(p \times m\), resulta em uma matriz \(C\) com dimensão \(n \times m\), onde cada elemento \(c_{ij}\) é o produto escalar da \(i\)-ésima linha de \(A\) com a \(j\)-ésima coluna de \(B\).
Matematicamente, \[c_{ij} = \sum_{k=1}^{p} a_{ik} b_{kj}, \]
o número de colunas na primeira matriz deve ser igual ao número de linhas na segunda matriz para que a multiplicação seja definida.
Exemplo
Sejam as matrizes:
\[A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\quad \text{ e }\quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}\]
Então, o produto \(C = AB\) é?
\[C = \begin{bmatrix} (1 \cdot 5 + 2 \cdot 7) & (1 \cdot 6 + 2 \cdot 8) \\ (3 \cdot 5 + 4 \cdot 7) & (3 \cdot 6 + 4 \cdot 8) \end{bmatrix} = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix}\]
Exemplo 2 - (\(n\times p\) por \(p \times m\)):
Seja \(A_{3 \times 2}\) e \(B_{2 \times 3}\):
\[A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 7 & 8 & 9 \\ 10 & 11 & 12 \end{bmatrix}\]
O produto \(AB\) será uma matriz \(3 \times 3\):
\(AB = \begin{bmatrix} (1\cdot7 + 2\cdot10) & (1\cdot8 + 2\cdot11) & (1\cdot9 + 2\cdot12) \\ (3\cdot7 + 4\cdot10) & (3\cdot8 + 4\cdot11) & (3\cdot9 + 4\cdot12) \\ (5\cdot7 + 6\cdot10) & (5\cdot8 + 6\cdot11) & (5\cdot9 + 6\cdot12) \end{bmatrix} = \begin{bmatrix} 27 & 30 & 33 \\ 61 & 68 & 75 \\ 95 & 106 & 117 \end{bmatrix}\)
Exemplo: Sejam
\[A = \begin{bmatrix} 1 & 0 \\ 0 & 2 \end{bmatrix} \quad \text{ e } \quad B= \begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\] Quem é \(AB\) e \(BA\)?
\[AB = \begin{bmatrix} 0 & 1 \\ 2 & 0 \end{bmatrix},\text{ enquanto }BA = \begin{bmatrix} 0 & 2 \\ 1 & 0 \end{bmatrix}\]
Portanto, \(AB \neq BA\).
Exemplo: Sejam
\[A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}, \quad \text{ e } \quad C = \begin{bmatrix} 9 & 10 \\ 11 & 12 \end{bmatrix}\]
Então, \((AB)C = A(BC)\)?
\[AB = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix}, \quad BC = \begin{bmatrix} 111 & 122 \\ 151 & 166 \end{bmatrix}\]
Portanto, \((AB)C = \begin{bmatrix} 413 & 454 \\ 937 & 1030 \end{bmatrix}\) e \(A(BC) = \begin{bmatrix} 413 & 454 \\ 937 & 1030 \end{bmatrix}\).
No R
a multiplicação de matrizes pode ser realizada com o operador %*%
.
Qual a dimensão da matriz saída?
[,1] [,2]
[1,] 19 22
[2,] 43 50
Observação: O operador
*
com matrizes noR
realiza Hadamard product(Produto Hadamard), ou seja, a multiplicação elemento a elemento, não a multiplicação de matrizes. \(C = A \odot B\), \(A\) e \(B\) devem possuir as mesmas dimensões, assim, \(C\) vai ter as mesmas dimensões de \(A\) e \(B\).
No python, a multiplicação de matrizes pode ser realizada usando a biblioteca NumPy com a função np.dot(A, B)
ou o operador mais conciso @
(A @ B
).
Primeira forma de multiplicação:
Da mesma forma que no
R
, o operador*
emPython
realiza a multiplicação elemento a elemento, não a multiplicação de matrizes.
Seja \(A\) uma matriz quadrada \(n \times n\),
\[A = \begin{bmatrix} 2 & 3 & 2\\ 4 & 1 & 5 \\ 5 & 6 & 3 \end{bmatrix}\] seu determinante é denotado por \(|A|\), o traço denotado por \(tr(A)\), são obtidos como:
\(|A| = ?\)
\(tr(A) = ?\)
Seja \(A\) uma matriz quadrada \(n \times n\),
\[A = \begin{bmatrix} 2 & 3 & 2\\ 4 & 1 & 5 \\ 5 & 6 & 3 \end{bmatrix}\] seu determinante é denotado por \(|A|\), o traço denotado por \(tr(A)\), são obtidos como:
\(|A| = 2(1 \cdot 3 - 5 \cdot 6) + 3(5 \cdot 5 - 4 \cdot 3) + 2(4 \cdot 6 - 1 \cdot 5) = 23\)
\(tr(A) = 2 + 1 + 3 = 6\).
Uma matriz \(A\) de dimensão \(n \times p\) é dita de posto completo se suas colunas são linearmente independetes.
Seja, duas colunas de \(A\), \(A_{:1}\) e \(A_{:2}\) são linearmente dependentes se, e somente se, uma for um múltiplo escalar da outra, ou seja, se existir um número (escalar) \(c\) tal que: \(A_{:2} = cA_{:1}\)
Isso significa que \(\text{posto}(A) = p\);
Se \(A\) é matriz quadrada, ou seja, \(n = p\) e de posto completo, então, seu \(|A| \neq 0\);
Uma matriz \(A\) é invertível (possui inversa), se ela for de posto completo, ou seja, \(\text{posto}(A) = p\);
É uma matriz de Posto Completo?
\[A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\]
Sim.
É uma matriz de Posto Completo?
\[A = \begin{bmatrix} 1 & 3 & 5 \\ 9 & 87 & 45 \\ 6 & 50 & 30 \end{bmatrix}\]
Não. Neste caso é dito que posto da matriz \(A\) é 2.
O valor do \(|A| = 0\). E conseguimos escrever a terceira coluna como função da primeira. \[A_{:3} = 5A_{:1} = 5\begin{bmatrix} 1 \\ 9 \\ 6 \end{bmatrix} = \begin{bmatrix} 5 \\ 45 \\ 30 \end{bmatrix} \]
Apenas matrizes quadradas podem ser invertidas.
Uma matriz quadrada é invertível (não singular) se e somente se seu determinante for diferente de zero.
Para uma matriz quadrada \(A_{n \times n}\), sua inversa, denotada por \(A^{-1}\), é uma matriz \(n \times n\) tal que \(AA^{-1} = A^{-1}A = I_n\), onde \(I_n\) é a matriz identidade \(n \times n\).
Alguns métodos para calcular a inversa de uma matriz, são:
- Usar a adjunta da matriz dividida pelo seu determinante.
- Empregar a eliminação de Gauss-Jordan (redução de linhas) para transformar a matriz na matriz identidade, aplicando simultaneamente as mesmas operações a uma matriz identidade para obter a inversa.
Considere a matriz \(A_{3\times 3}\):
\[ A = \begin{bmatrix} 2 & -1 & 0 \\ 1 & 2 & -1 \\ 3 & 0 & 1 \end{bmatrix} \]
A inversa de \(A\), denotada por \(A^{-1}\), é dada por:
\[ A^{-1} = \frac{1}{|A|} \text{adj}(A) \]
Quem é \(\text{adj}(A)\)?
\[\text{adj}(A) = \text{Cof}(A)^\top\]
Quem é \(\text{Cof}(A)\)?
Vamos encontrar agora, a matriz dos cofatores de \(A\). A matriz dos cofatores \(\text{Cof}(A)\) é composta pelos cofatores \(C_{ij}\) de cada elemento \(a_{ij}\) de \(A\). Os cofatores são calculados como:
\[ C_{ij} = (-1)^{i+j} |M_{ij}| \]
onde \(M_{ij}\) é a matriz obtida removendo a \(i\)-ésima linha e a \(j\)-ésima coluna de \(A\).
Calculando os cofatores:
\[ C_{12} = (-1)^{1+2} \begin{vmatrix} 1 & -1 \\ 3 & 1 \end{vmatrix} = -4 \]
\[ C_{13} = (-1)^{1+3} \begin{vmatrix} 1 & 2 \\ 3 & 0 \end{vmatrix} = -6 \]
\[ C_{21} = (-1)^{2+1} \begin{vmatrix} -1 & 0 \\ 0 & 1 \end{vmatrix} = 1 \]
\[ C_{22} = (-1)^{2+2} \begin{vmatrix} 2 & 0 \\ 3 & 1 \end{vmatrix} = 2 \]
\[ C_{23} = (-1)^{2+3} \begin{vmatrix} 2 & -1 \\ 3 & 0 \end{vmatrix} = -3 \]
\[ C_{31} = (-1)^{3+1} \begin{vmatrix} -1 & 0 \\ 2 & -1 \end{vmatrix} = 1 \]
\[ C_{32} = (-1)^{3+2} \begin{vmatrix} 2 & 0 \\ 1 & -1 \end{vmatrix} = 2 \]
\[ C_{33} = (-1)^{3+3} \begin{vmatrix} 2 & -1 \\ 1 & 2 \end{vmatrix} = 5 \]
Assim, a matriz dos cofatores é:
\[ \text{Cof}(A) = \begin{bmatrix} 2 & -4 & -6 \\ 1 & 2 & -3 \\ 1 & 2 & 5 \end{bmatrix} \]
Assim, a matriz adjunta \(\text{adj}(A)\) é a transposta da matriz dos cofatores:
\[ \text{adj}(A) = \text{Cof}(A)^\top = \begin{bmatrix} 2 & 1 & 1 \\ -4 & 2 & 2 \\ -6 & -3 & 5 \end{bmatrix} \]
Então, a inversa de \(A\), denotada por \(A^{-1}\), é dada por:
\[ A^{-1} = \frac{1}{|A|} \text{adj}(A) \]
O determinante de \(A\), denotado por \(|A|\), é calculado como:
\[ |A| = 2(2 - 0) -1(-3-1) + 0(0-6) = 4 +4 = 8 \]
Substituindo os valores:
\[ A^{-1} = \frac{1}{8} \begin{bmatrix} 2 & 1 & 1 \\ -4 & 2 & 2 \\ -6 & -3 & 5 \end{bmatrix} = \begin{bmatrix} \frac{2}{8} & \frac{1}{8} & \frac{1}{8} \\ -\frac{4}{8} & \frac{2}{8} & \frac{2}{8} \\ -\frac{6}{8} & -\frac{3}{8} & \frac{5}{8} \end{bmatrix} = \begin{bmatrix} \frac{1}{4} & \frac{1}{8} & \frac{1}{8} \\ -\frac{1}{2} & \frac{1}{4} & \frac{1}{4} \\ -\frac{3}{4} & -\frac{3}{8} & \frac{5}{8} \end{bmatrix}. \]
Para calcular a inversa de uma matriz utilizando o método de eliminação de Gauss-Jordan, seguimos os seguintes passos:
Considere a matriz \(A_{3\times 3}\):
\[ A = \begin{bmatrix} 2 & -1 & 0 \\ 1 & 2 & -1 \\ 3 & 0 & 1 \end{bmatrix} \]
e a matriz identidade \(I\) de mesma ordem, formamos a matriz aumentada \([A | I]\)
A matriz aumentada \([A | I]\)
\[ \left[\begin{array}{ccc|ccc} 2 & -1 & 0 & 1 & 0 & 0 \\ 1 & 2 & -1 & 0 & 1 & 0 \\ 3 & 0 & 1 & 0 & 0 & 1 \end{array}\right] \]
Como um passo 2, vamos aplicar operações elementares para transformar \(A\) em \(I\).
Aplicamos operações elementares nas linhas para transformar a matriz \(A\) na matriz identidade \(I\), e as mesmas operações são aplicadas simultaneamente à matriz \(I\).
Passo 1: Transformar o elemento \(a_{11} = 2\) igual a 1
Dividimos a primeira linha por 2:
\[ \left[\begin{array}{ccc|ccc} 1 & -0.5 & 0 & 0.5 & 0 & 0 \\ 1 & 2 & -1 & 0 & 1 & 0 \\ 3 & 0 & 1 & 0 & 0 & 1 \end{array}\right] \]
Passo 2: Anular os elementos abaixo de \(a_{11}\)
Subtraímos a primeira linha da segunda (\(L_2 - L_1\)) e três vezes a primeira linha da terceira (\(L_3 - 3L_1\)):
\[ \left[\begin{array}{ccc|ccc} 1 & -0.5 & 0 & 0.5 & 0 & 0 \\ 0 & 2.5 & -1 & -0.5 & 1 & 0 \\ 0 & 1.5 & 1 & -1.5 & 0 & 1 \end{array}\right] \]
Passo 3: Tornar o elemento \(a_{22} = 2.5\) igual a 1
Dividimos a segunda linha por 2.5 (\(L_2/2.5\)):
\[ \left[\begin{array}{ccc|ccc} 1 & -0.5 & 0 & 0.5 & 0 & 0 \\ 0 & 1 & -0.4 & -0.2 & 0.4 & 0 \\ 0 & 1.5 & 1 & -1.5 & 0 & 1 \end{array}\right] \]
Passo 4: Anular os elementos acima e abaixo de \(a_{22}\)
Somamos 0.5 vezes a segunda linha à primeira (\(L_1 + 0.5L_2\)) e subtraímos 1.5 vezes a segunda linha da terceira (\(L_3 - 1.5L_2\)):
\[ \left[\begin{array}{ccc|ccc} 1 & 0 & -0.2 & 0.4 & 0.2 & 0 \\ 0 & 1 & -0.4 & -0.2 & 0.4 & 0 \\ 0 & 0 & 1.6 & -1.2 & -0.6 & 1 \end{array}\right] \]
Passo 5: Tornar o elemento \(a_{33} = 1.6\) igual a 1
Dividimos a terceira linha por 1.6 (\(L_3/1.6\)):
\[ \left[\begin{array}{ccc|ccc} 1 & 0 & -0.2 & 0.4 & 0.2 & 0 \\ 0 & 1 & -0.4 & -0.2 & 0.4 & 0 \\ 0 & 0 & 1 & -0.75 & -0.375 & 0.625 \end{array}\right] \]
Passo 6: Anular os elementos acima de \(a_{33}\)
Somamos 0.2 vezes a terceira linha à primeira (\(L_1 + 0.2L_3\)) e 0.4 vezes a terceira linha à segunda (\(L_2 + 0.4L_3\)):
\[ \left[\begin{array}{ccc|ccc} 1 & 0 & 0 & 0.25 & 0.125 & 0.125 \\ 0 & 1 & 0 & -0.5 & 0.25 & 0.25 \\ 0 & 0 & 1 & -0.75 & -0.375 & 0.625 \end{array}\right] \]
A matriz à direita do resultado anterior é a inversa de \(A\):
\[ A^{-1} = \begin{bmatrix} 0.25 & 0.125 & 0.125 \\ -0.5 & 0.25 & 0.25 \\ -0.75 & -0.375 & 0.625 \end{bmatrix} = \begin{bmatrix} \frac{1}{4} & \frac{1}{8} & \frac{1}{8} \\ -\frac{1}{2} & \frac{1}{4} & \frac{1}{4} \\ -\frac{3}{4} & -\frac{3}{8} & \frac{5}{8} \end{bmatrix} \]
Este processo demonstra como aplicar a eliminação de Gauss-Jordan para encontrar a inversa de uma matriz.
No R
a inversa de matrizes pode ser realizada com a função solve
.
[,1] [,2] [,3]
[1,] 2 -1 0
[2,] 1 2 -1
[3,] 3 0 1
A inversa obtida é:
No python, a inversão de matrizes pode ser realizada usando a biblioteca NumPy com a função np.linalg.inv(A)
[[ 2 -1 0]
[ 1 2 -1]
[ 3 0 1]]
Seja \(\dot{\mathbf{X}}\) uma matriz de dimensão \(n \times p\), tal que, \(\dot{\mathbf{X}} \in \mathbb{R}^p\) e seja \(\dot{\mathbf{y}} \in \mathbb{R}\) um vetor de \(n \times 1\). Então, desejamos criar uma função para \(\dot{\mathbf{y}}\) através de uma combinação linear das \(p\) variáveis de \(\dot{\mathbf{X}}\), ou seja,
\[ \dot{\mathbf{y}} \approx \beta_0 + \beta_1 \dot{\mathbf{x}}_1 + \beta_2 \dot{\mathbf{x}}_2 + \ldots + \beta_p \dot{\mathbf{x}}_p \]
Essa equação acima lembra algo a vocês?
Mínimos Quadrados Ordinários.
\[ \hat{\boldsymbol{\beta}} = (\dot{\mathbf{X}}^\top \dot{\mathbf{X}} )^{-1} \dot{\mathbf{X}}^\top \mathbf{\dot{\mathbf{y}}} \]
Observação: Caso \(\dot{\mathbf{X}}^\top \dot{\mathbf{X}}\) não seja invertível, a equação anterior não possui solução.
Vamos fazer no R!
Algumas informações sobre dados para utilizar:
# ----------------------------------------------
# Exemplo de Implementação
# dos Mínimos Quadrados Ordinários
# Selecionando algumas variáveis
# qsec -> velocidade: Tempo em percorrer 1/4 de milha
# cyl <- cilindros: Número de cilindros
# drat <- eixo: Relação de eixo traseiro
# wt <- peso: Peso (1000 libras
mtcarros2 <- datasets::mtcars |>
dplyr::select(qsec, cyl, drat, wt)
A decomposição de matrizes, também conhecida como fatoração de matrizes:
é o processo de expressar uma matriz como um produto de duas ou mais matrizes.
Algumas decomposições são:
Decomposição LU;
Decomposição em Valores Singulares (SVD);
Decomposição em Autovalores;
A decomposição LU fatoriza uma matriz quadrada \(A\) no produto de uma matriz triangular inferior \(L\) e uma matriz triangular superior \(U\), de tal forma que \(A = LU\)
Um exemplo
Seja a matriz \(A\):
\[ A = \begin{bmatrix} 2 & 1 & 1 \\ 4 & 3 & 3 \\ 8 & 7 & 9 \end{bmatrix} \]
A decomposição LU de \(A\) é:
\[ L = \begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ 4 & 3 & 1 \end{bmatrix} \quad \text{ e } \quad U = \begin{bmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 2 \end{bmatrix} \]
Inicialização:
Assim, temos:
\[ U = \begin{bmatrix} 2 & 1 & 1 \\ 4 & 3 & 3 \\ 8 & 7 & 9 \end{bmatrix}, \quad L = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
Eliminação para zerar os elementos abaixo da diagonal principal de \(U\):
Primeira coluna:
Para zerar \(U_{21}\) (elemento na segunda linha, primeira coluna):
Calculamos o multiplicador \(a_{21} = \frac{U_{21}}{U_{11}} = \frac{4}{2} = 2\).
Atualizamos a segunda linha de \(U\):
\[U_{2,:} = U_{2,:} - a_{21} U_{1,:} = \begin{bmatrix} 4 & 3 & 3 \end{bmatrix} - 2 \begin{bmatrix} 2 & 1 & 1 \end{bmatrix} = \begin{bmatrix} 0 & 1 & 1 \end{bmatrix}\]
Atualizamos \(L_{21} = a_{21} = 2\).
\[ U = \begin{bmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 8 & 7 & 9 \end{bmatrix}, \quad L = \begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} \]
Para zerar \(U_{31}\):
Calculamos o multiplicador \(a_{31} = \frac{U_{31}}{U_{11}} = \frac{8}{2} = 4\).
Atualizamos a terceira linha de \(U\):
\[U_{3,:} = U_{3,:} - a_{31} U_{1,:} = \begin{bmatrix} 8 & 7 & 9 \end{bmatrix} - 4 \begin{bmatrix} 2 & 1 & 1 \end{bmatrix} = \begin{bmatrix} 0 & 3 & 5 \end{bmatrix}\]
Atualizamos \(L_{31} = a_{31} = 4\).
\[ U = \begin{bmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 3 & 5 \end{bmatrix}, \quad L = \begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ 4 & 0 & 1 \end{bmatrix} \]
Segunda coluna:
Para zerar \(U_{32}\):
Calculamos o multiplicador \(a_{32} = \frac{U_{32}}{U_{22}} = \frac{3}{1} = 3\).
Atualizamos a terceira linha de \(U\):
\[ U_{3,:} = U_{3,:} - a_{32} U_{2,:} = \begin{bmatrix} 0 & 3 & 5 \end{bmatrix} - 3\begin{bmatrix} 0 & 1 & 1 \end{bmatrix} = \begin{bmatrix} 0 & 0 & 2 \end{bmatrix} \]
Atualizamos \(L_{32} = a_{32} = 3\).
\[ U = \begin{bmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 2 \end{bmatrix}, \quad L = \begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ 4 & 3 & 1 \end{bmatrix} \]
Resultado final:
As matrizes \(L\) e \(U\) são:
\[ L = \begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ 4 & 3 & 1 \end{bmatrix} \quad \text{ e } \quad U = \begin{bmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 2 \end{bmatrix} \]
Portanto, a decomposição LU da matriz \(A\) resulta em:
\[ A = LU = \begin{bmatrix} 1 & 0 & 0 \\ 2 & 1 & 0 \\ 4 & 3 & 1 \end{bmatrix} \begin{bmatrix} 2 & 1 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 2 \end{bmatrix} \]
A Decomposição em Valores Singulares de uma matriz \(A_{n \times p}\) é dada por \(A = U \Sigma V^\top\), onde \(U\) é uma matriz ortogonal \(n \times n\), \(\Sigma\) é uma matriz diagonal \(n \times p\) com números reais não negativos na diagonal (os valores singulares), e \(V\) é uma matriz ortogonal \(p \times p\).
Um exemplo
Seja a matriz \(A\):
\[ A = \begin{bmatrix} 2 & 1 & 1 \\ 1 & 1 & 1 \\ 3 & 2 & 1 \end{bmatrix} \]
A decomposição SVD de \(A\) é:
\[ U = \begin{bmatrix} -0.51 & -0.11 & -0.85 \\ -0.34 & -0.88 & 0.32 \\ -0.78 & 0.46 & 0.41 \end{bmatrix} \]
\[ \Sigma = \begin{bmatrix} 4.74 & 0 & 0 \\ 0 & 0.60 & 0 \\ 0 & 0 & 0.35 \end{bmatrix} \]
\[ V = \begin{bmatrix} -0.78 & 0.46 & -0.41 \\ -0.51 & -0.11 & 0.85 \\ -0.35 & -0.88 & -0.33 \end{bmatrix} \]
No R
a Decomp. em Valores Singulares (SVD) de matrizes pode ser realizada com a função svd
.
A Decomp. em Valores Singulares (SVD) obtida é:
$d
[1] 4.7448261 0.6040681 0.3488942
$u
[,1] [,2] [,3]
[1,] -0.5122298 -0.1141024 -0.8512351
[2,] -0.3466186 -0.8793666 0.3264506
[3,] -0.7857965 0.4622717 0.4108878
$v
[,1] [,2] [,3]
[1,] -0.7857965 0.4622717 -0.4108878
[2,] -0.5122298 -0.1141024 0.8512351
[3,] -0.3466186 -0.8793666 -0.3264506
[,1] [,2] [,3]
[1,] 2 1 1
[2,] 1 1 1
[3,] 3 2 1
No python, a Decomp. em Valores Singulares (SVD) de matrizes pode ser realizada usando a biblioteca NumPy com a função np.linalg.svd(A)
Valores Singulares:
[3.78628097 2.43074118 0.86923745]
V:
[[-0.98556572 0.03546245 -0.16553737]
[-0.10169609 -0.90574702 0.41143681]
[-0.13534442 0.42233251 0.89627961]]
Para uma matriz quadrada \(A\), se ela tiver \(n\) autovetores linearmente independentes, ela pode ser decomposta como \(A = PDP^{-1}\), onde \(P\) é uma matriz cujas colunas são os autovetores de \(A\), e \(D\) é uma matriz diagonal cujos elementos diagonais são os autovalores correspondentes.
Vamos realizar a decomposição em autovalores (diagonalização) da matriz \(A\):
\[ A = \begin{bmatrix} 2 & 1 & 1 \\ 4 & 3 & 3 \\ 8 & 7 & 9 \end{bmatrix} \]
No R
a Decomp. em Autovalores de matrizes pode ser realizada com a função svd
.
[,1] [,2] [,3]
[1,] 2 1 1
[2,] 4 3 3
[3,] 8 7 9
eigen() decomposition
$values
[1] 12.5962091 1.1203466 0.2834443
$vectors
[,1] [,2] [,3]
[1,] -0.1202010 -0.3817259 0.2088556
[2,] -0.3415178 -0.4637352 -0.8471311
[3,] -0.9321573 0.7995217 0.4886187
A Decomp. em Autovalores obtida é:
eigen() decomposition
$values
[1] 12.5962091 1.1203466 0.2834443
$vectors
[,1] [,2] [,3]
[1,] -0.1202010 -0.3817259 0.2088556
[2,] -0.3415178 -0.4637352 -0.8471311
[3,] -0.9321573 0.7995217 0.4886187
[,1] [,2] [,3]
[1,] 2 1 1
[2,] 4 3 3
[3,] 8 7 9
A Decomp. em Autovalores pode ser realizada usando np.linalg.eig(A)
na NumPy.
A Decomp. em Autovalores pode ser realizada usando np.linalg.eig(A)
na NumPy.
Autovalores:
[12.59620906 1.12034665 0.28344429]
Autovetores:
[[-0.12020102 -0.38172591 0.20885564]
[-0.34151779 -0.46373523 -0.84713107]
[-0.93215734 0.79952171 0.48861873]]
# Reconstruindo A
D = np.diag(eigenValues)
A_conf = eigenVectors @ D @ np.linalg.inv(eigenVectors)
print(A_conf)
[[2. 1. 1.]
[4. 3. 3.]
[8. 7. 9.]]
Bolfarine, H. e Sandoval, M.C. (2001). Introdução à Inferência Estatística, Coleção Matemática Aplicada, Sociedade Brasileira de Matemática.
Casella, G. e Berger, R. (1990) “Statistical Inference”, Wadsworth & Brooks, California
Mood, A. , Graybill, F. e Boes, D. (1974) “Introduction to the Theory of Statistics”, McGraw-Hill, New York.
Complementar
Bickel, P.J. e Doksum, K. A. (2001). Mathematical Statistics: Basic Ideas and Selected Topics. San Francisco: Holden Day.
Dudewicz, E.J. e Mishra, S.N. (1988) - Modern Mathematical Statistics - John Wiley & Sons.
Lehmann, E. and Casella, G. (1998) “Theory of Point Estimation”, 2nd edition, Springer, New York.
OBRIGADO!
Slide produzido com quarto
Aprendizagem de Máquina - Prof. Jodavid Ferreira