Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Álgebra Matricial em R
Adelmo Filho ( adelmo.aguiar.filho@gmail.com )
29 de setembro de 2016
Matrizes
Matrizes, são tabelas retangulares de números, expressões matemáticas ou símbolos, cujo elementos são arranjados em
n nlinhas e p p colunas. A matrix M abaixo, por exemplo, organiza cada elemento a ij aij em 2 linhas e 3 colunas.
a 11 a 12 a 13
A=( )
a 21 a 22 a 23
A=(a11a12a13a21a22a23)
Em R, a matriz é uma estrutura de dados homogênea (deve conter mesmo tipo de dados, e.i. numérico, caracteres, lógico) de
duas dimensões. Sua sintaxe básica é realizada por meio da função matrix() , tendo como argumentos os elementos que
compõem a matriz, na forma de um vetor, e o número de linhas e colunas.
print(M)
Por default os elementos são organizados por coluna na matriz, caso se deseje que estes sejam organizados por linha usa-se o
argumento byrow = TRUE .
print(M2)
A função matrix() , na realidade, organiza as dimensões de um vetor qualquer. Na prática, não é necessário informar o número
de linhas e de colunas se o vetor de dados é informado, contudo, tal prática falicita a leitura do código.
print(M3)
https://rpubs.com/adelmofilho/AlgebraMatricial 1/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
## [,1] [,2]
## [1,] 12 45
## [2,] 23 56
## [3,] 34 67
Para criar uma matriz contendo um único valor, e.g. matriz nula, informa-se este valor no argumento data em conjunto com o
número de linhas e colunas.
print(M4)
Caso seja de interesse alocar uma matriz vazia, basta informar os argumentos ncol e nrow . Esta será completada com o valor
lógico NA (do inglês, not avaliable).
M5 = matrix(nrow = 4, ncol = 5)
print(M5)
Operações matriciais
Para ilustar as operações entre matrizes usaremos as seguintes matrizes para fins de cálculo.
2 5 5 8
M6 = ( ) M7 = ( )
3 6 3 2
2 6 0 ⎛ 1 0.5 0.3 ⎞
M8 = ( ) M 9 = ⎜ 0.5 1 0.9 ⎟
4 2 1 ⎝ 0.3 0.9 1 ⎠
M6=(2536)M7=(5832)M8=(260421)M9=(10.50.30.510.90.30.91)
M9 = matrix(c(1, 0.5, 0.3, 0.5, 1, 0.9, 0.3, 0.9, 1), nrow = 3, ncol = 3)
https://rpubs.com/adelmofilho/AlgebraMatricial 2/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
Soma e subtração
Dada duas matrizes de mesma dimensionalidade, a matriz resultante da soma / substração destas matrizes corresponde à
matriz cujos elementos são a soma / subtração dos elementos das matrizes originais.
a b e f a+e b+f
( )+( )=( )
c d g h c+g d+h
(abcd)+(efgh)=(a+eb+fc+gd+h)
Em R, para a soma e substração de matrizes usa-se a mesma sintaxe que na operação entre escalares.
M_soma = M7 + M6
print(M_soma)
## [,1] [,2]
## [1,] 7 13
## [2,] 6 8
M_subt = M7 - M6
print(M_subt)
## [,1] [,2]
## [1,] 3 3
## [2,] 0 -4
a b k⋅a k⋅b
k⋅( )=( )
c d k⋅c k⋅d
k⋅(abcd)=(k⋅ak⋅bk⋅ck⋅d)
M_prod_escalar = 42 * M9
print(M_prod_escalar)
https://rpubs.com/adelmofilho/AlgebraMatricial 3/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
a b e f a⋅e b⋅f
( )∘( )=( )
c d g h c⋅g d⋅h
(abcd)∘(efgh)=(a⋅eb⋅fc⋅gd⋅h)
Em R, a multiplicação elemento a elemento é realizada por meio do operador * desde que as matrizes tenham as mesmas
dimensões.
M_prod_elemento = M6 * M7
print(M_prod_elemento)
## [,1] [,2]
## [1,] 10 40
## [2,] 9 12
Multiplicação matricial
A multiplicação entre uma matriz (n x m) por uma matriz (m x p), em que m, n, p ∈ N+ m,n,p∈N+, resulta em uma matriz de
dimensões (n x p), cujos elementos são a somatória do produto entre os elementos em linha da matriz que pré-multiplica pelos
elementos em coluna da matriz que pós-multiplica.
a b e f a⋅e+b⋅g a⋅f+b⋅h
( )⋅( )=( )
c d g h c⋅e+d⋅g c⋅f+d⋅h
(abcd)⋅(efgh)=(a⋅e+b⋅ga⋅f+b⋅hc⋅e+d⋅gc⋅f+d⋅h)
Em R, a multiplicação matricial clássica é desenvolvida pelo uso do operador %*% , respeitando a equidade entre o número de
colunas da matriz que pré-multiplica e o número de linhas da matriz que pós-multiplica.
M_prod = M6 %*% M8
print(M_prod)
https://rpubs.com/adelmofilho/AlgebraMatricial 4/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
T
a b a c
( ) =( )
c d b d
(abcd)T=(acbd)
M_transp = t(M8)
print(M_transp)
## [,1] [,2]
## [1,] 2 4
## [2,] 6 2
## [3,] 0 1
a b
det ( )=a⋅d−c⋅b
c d
det(abcd)=a⋅d−c⋅b
Para uma matriz de ordem 3 ou superior, o determinante pode ser estimado pela seguinte equação:
n
det(A) = ∑ (−1) i+j . a ij . det(A −i−j )
j=1
det(A)=∑j=1n(−1)i+j.aij.det(A−i−j)
Em que A −i−j A−i−j corresponde à matriz A excluindo-se a linha i e a coluna j. Por esta equação uma matriz de ordem n > 2
tem seu cálculo simplificado à soma de n 2 n2 determinantes originados da matriz A.
det(M7)
## [1] -14
A −1 ⋅ A = I
https://rpubs.com/adelmofilho/AlgebraMatricial 5/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
A−1⋅A=I
A inversa de uma matriz é estimada pela função solve() , mesma função utilizada para resolução de sistemas de equações em
R.
M_inversa = solve(M6)
print(M_inversa)
## [,1] [,2]
## [1,] -2 1.6666667
## [2,] 1 -0.6666667
solve(M6)%*%M6
## [,1] [,2]
## [1,] 1 0
## [2,] 0 1
a b
tr ( )=a+d
c d
tr(abcd)=a+d
Em R, a obtenção do traço passa pela extração dos elementos da diagonal da matrix, por meio da função diag() , e a soma
destes elementos pela função sum() .
sum(diag(M6))
## [1] 8
https://rpubs.com/adelmofilho/AlgebraMatricial 6/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
A = v−1 ⋅ λ ⋅ v
A=v−1⋅λ⋅v
eigen(M7)
## $values
## [1] 8.623475 -1.623475
##
## $vectors
## [,1] [,2]
## [1,] 0.9109185 -0.7702626
## [2,] 0.4125863 0.6377269
No objeto $values se encontram os autovalores da matrix original, enquanto o objeto $vectors apresenta os autovetores, em
coluna, na matriz resultante.
height weight
58 115
59 117
60 120
61 123
62 126
63 129
64 132
65 135
66 139
67 142
68 146
69 150
70 154
71 159
https://rpubs.com/adelmofilho/AlgebraMatricial 7/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
height weight
72 164
Covariância
A covariância de duas variáveis, X e Y, é definida por:
1 n 1 n n
cov(X, Y ) = [∑ x i yi − (∑ x i ) (∑ yi )]
n i=1 n i=1 i=1
cov(X,Y)=1n[∑i=1nxiyi−1n(∑i=1nxi)(∑i=1nyi)]
cov(women)
## height weight
## height 20 69.0000
## weight 69 240.2095
Correlação
A correlação constitui a padronização da correlação pelo produto do desvio padrão das variáveis X e Y.
cov(X, Y )
ρ X,Y =
σX σY
ρX,Y=cov(X,Y)σXσY
cov(women)
## height weight
## height 20 69.0000
## weight 69 240.2095
Distâncias
Uma matriz de distâncias apresenta a métrica de distâncias (e.g. distância euclidiana) entre duas observações. No R, a
função dist() utiliza como default a distância euclidiana e retorna apenas a diagonal inferior da matriz de distância, visto a
simetria da matriz.
https://rpubs.com/adelmofilho/AlgebraMatricial 8/9
17/09/2018 RPubs - Aula 1: Álgebra Matricial em R
## 1 2 3 4
## 2 2.236068
## 3 5.385165 3.162278
## 4 8.544004 6.324555 3.162278
## 5 11.704700 9.486833 6.324555 3.162278
Exercícios
1. Em R, defina uma matriz de dimensão 2 x 2 e outra de dimensões 6 x 2.
https://rpubs.com/adelmofilho/AlgebraMatricial 9/9