Matrixrekening: Matrices in R
Rekenen met matrices en vectoren
Je kunt in R gemakkelijk matrices optellen, aftrekken, vermenigvuldigen (ook scalair) en machtsverheffen. Voorbeelden illustreren dit het beste. Soms heb je hiervoor speciale R pakketten nodig.
Rekenen met matrices en vectoren
> A <- matrix(1:6, nrow=2, byrow=TRUE); A
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> B <- diag(1:3); B
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 2 0
[3,] 0 0 3
> At <- t(A); At # getransponeerde van A
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
> A %*% B # matrixvermenigvuldiging
[,1] [,2] [,3]
[1,] 1 4 9
[2,] 4 10 18
> A %*% t(A)
[,1] [,2]
[1,] 14 32
[2,] 32 77
> t(A) %*% A
[,1] [,2] [,3]
[1,] 17 22 27
[2,] 22 29 36
[3,] 27 36 45
> .Last.value + B # optelling van matrices
[,1] [,2] [,3]
[1,] 18 22 27
[2,] 22 31 36
[3,] 27 36 48
> 3*A # scalaire vermenigvuldiging
[,1] [,2] [,3]
[1,] 3 6 9
[2,] 12 15 18
> v <- 1:3
> A %*% v # matrix-vector multiplication
[,1]
[1,] 14
[2,] 32
> v %*% t(A) # vector-matrix vermenigvuldiging
[,1] [,2]
[1,] 14 32
> solve(B) # inverse matrix
[,1] [,2] [,3]
[1,] 1 0.0 0.0000000
[2,] 0 0.5 0.0000000
[3,] 0 0.0 0.3333333
> library(pracma); inv(B) # inverse via pracma pakket
[,1] [,2] [,3]
[1,] 1 0.0 0.0000000
[2,] 0 0.5 0.0000000
[3,] 0 0.0 0.3333333
> library(expm); B %^% 3 # machtsverhefffing via expm pakket
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 8 0
[3,] 0 0 27
Als je optellen, aftrekken, vermenigvuldigen en machtsverheffen wilt toepassen op componenten van vectoren of op matrixelementen, dan doe je dit met de gebruikelijke operatoren. We geven wat voorbeelden.
Operaties op matrixelementen
> A <- matrix(1:6, nrow=2, byrow=TRUE); A
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> A^2
[,1] [,2] [,3]
[1,] 1 4 9
[2,] 16 25 36
> A*A
[,1] [,2] [,3]
[1,] 1 4 9
[2,] 16 25 36
> A/A
[,1] [,2] [,3]
[1,] 1 1 1
[2,] 1 1 1
Ontgrendel volledige toegang