Capítulo 3 Algebra Matricial
3.1 Álgebra vetorial
<- c(seq(1:10))
x x
## [1] 1 2 3 4 5 6 7 8 9 10
= seq(from =11, to = 20)
y y
## [1] 11 12 13 14 15 16 17 18 19 20
3*x
## [1] 3 6 9 12 15 18 21 24 27 30
+ y x
## [1] 12 14 16 18 20 22 24 26 28 30
-y x
## [1] -10 -10 -10 -10 -10 -10 -10 -10 -10 -10
* y x
## [1] 11 24 39 56 75 96 119 144 171 200
/ y x
## [1] 0.09090909 0.16666667 0.23076923 0.28571429 0.33333333 0.37500000
## [7] 0.41176471 0.44444444 0.47368421 0.50000000
log(x)
## [1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 1.9459101
## [8] 2.0794415 2.1972246 2.3025851
exp(x)
## [1] 2.718282 7.389056 20.085537 54.598150 148.413159
## [6] 403.428793 1096.633158 2980.957987 8103.083928 22026.465795
sqrt(x)
## [1] 1.000000 1.414214 1.732051 2.000000 2.236068 2.449490 2.645751 2.828427
## [9] 3.000000 3.162278
-1*x
## [1] -1 -2 -3 -4 -5 -6 -7 -8 -9 -10
abs(-1*x)
## [1] 1 2 3 4 5 6 7 8 9 10
min(x)
## [1] 1
max(x)
## [1] 10
Produto interno de vetores
\[x.y = x_1y_1 + x_2y_2 + ... + x_ny_n\]
sum(x*y)
## [1] 935
%*%y x
## [,1]
## [1,] 935
t(x)%*%y
## [,1]
## [1,] 935
Norma de um vetor
\[||x|| = \sqrt{x.x} = \sqrt{\sum_{i = 1}^n x_i^2} \]
sqrt(sum(x*x))
## [1] 19.62142
Regra da “reciclagem”
= c(10, 20, 30)
u = c(1, 2, 3, 4, 5, 6, 7, 8, 9)
v + v u
## [1] 11 22 33 14 25 36 17 28 39
3.2 Álgebra matricial
Operador ou Função | Descrição |
---|---|
A * B | Multiplicação elemento por elemento |
A%*%B | Multiplicação matricial |
t(A) | Transposta |
diag(x) | Cria uma matriz com os elementos do vetor x formando a diagonal principal |
diag(A) | Retorna um vetor contendo os elementos da diagonal principal da matriz A |
diag(k) | Se k for um escalar, o comando cria uma matriz identidade kxk |
solve(A) | Retorna a inversa da matriz A se A for uma matriz quadrada |
rowMeans(A) | Retorna um vetor com as médias das linhas de A |
colMeans(A) | Retorna um vetor com as médias das colunas de A |
rowSumns(A) | Retorna um vetor com as somas das linhas de A |
ColSumns(A) | Retorna um vetor com as somas das colunas de A |
= matrix(
A c(2, 4, 3, 1, 5, 8), # Elementos
nrow=2, # Número de linhas
ncol=3, # Número de colunas
byrow = TRUE) # Preencher a matriz pelas linhas
A
## [,1] [,2] [,3]
## [1,] 2 4 3
## [2,] 1 5 8
Multiplicação escalar
2*A
## [,1] [,2] [,3]
## [1,] 4 8 6
## [2,] 2 10 16
Multiplicação elemento por elemento
*A A
## [,1] [,2] [,3]
## [1,] 4 16 9
## [2,] 1 25 64
Multiplicação Matricial
%*% A A
## Error in A %*% A: argumentos não compatíveis
= matrix(
B c(2, 4, 3, 1, 5, 7),
nrow=3,
ncol=2)
# B possui 3 linhas e 2 colunas B
## [,1] [,2]
## [1,] 2 1
## [2,] 4 5
## [3,] 3 7
%*% B A
## [,1] [,2]
## [1,] 29 43
## [2,] 46 82
Transposta
t(A)
## [,1] [,2]
## [1,] 2 1
## [2,] 4 5
## [3,] 3 8
Criar uma matriz diagonal a partir de um vetor
diag(x)
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## [1,] 1 0 0 0 0 0 0 0 0 0
## [2,] 0 2 0 0 0 0 0 0 0 0
## [3,] 0 0 3 0 0 0 0 0 0 0
## [4,] 0 0 0 4 0 0 0 0 0 0
## [5,] 0 0 0 0 5 0 0 0 0 0
## [6,] 0 0 0 0 0 6 0 0 0 0
## [7,] 0 0 0 0 0 0 7 0 0 0
## [8,] 0 0 0 0 0 0 0 8 0 0
## [9,] 0 0 0 0 0 0 0 0 9 0
## [10,] 0 0 0 0 0 0 0 0 0 10
Extrair a diagonal de uma matriz
diag(t(A)%*%A)
## [1] 5 41 73
Matriz Identidade
diag(5)
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 0 0 0 0
## [2,] 0 1 0 0 0
## [3,] 0 0 1 0 0
## [4,] 0 0 0 1 0
## [5,] 0 0 0 0 1
Matriz Inversa
= matrix(c(1, 3, 2, 4), ncol = 2, byrow = T)
A A
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
solve(A)
## [,1] [,2]
## [1,] -2 1.5
## [2,] 1 -0.5
Vetor como Matriz
= matrix(c(1,3,5),nrow = 1)
x x
## [,1] [,2] [,3]
## [1,] 1 3 5
dim(x)
## [1] 1 3
= matrix(c(4,5,6),ncol = 1)
y y
## [,1]
## [1,] 4
## [2,] 5
## [3,] 6
dim(y)
## [1] 3 1
%*% y x
## [,1]
## [1,] 49
t(x) %*% y
## Error in t(x) %*% y: argumentos não compatíveis
3.3 Sistema de Equações
#install.packages("matlib")
library(matlib)
## Warning: package 'matlib' was built under R version 4.1.3
\[x_1 + x_2 = 4\] \[2x_1 + x_2 = 5\]
= matrix(c(1,2,1,1),nrow=2,ncol=2)
A A
## [,1] [,2]
## [1,] 1 1
## [2,] 2 1
= c(4,5)
b b
## [1] 4 5
Resolver \(Ax = b\)
Solve(A,b)
## x1 = 1
## x2 = 3
Resolver \(x = A^{-1}b\)
solve(A)%*%b
## [,1]
## [1,] 1
## [2,] 3