logo

Multiplicació matricial en R

La multiplicació de matrius és l'operació de matrius més útil. S'utilitza àmpliament en àrees com la teoria de xarxes, la transformació de coordenades i molts més usos avui dia. Es pot crear una matriu en R utilitzant matriu () funció i aquesta funció pren com a arguments el vector d'entrada, nrow, ncol, byrow, dimnames.

Creació d'una matriu
Es pot crear una matriu utilitzant la funció matrix().



R
# R program to create a matrix m <- matrix(1:8, nrow=2) print(m)>

Sortida:

 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8>

Multiplicació de matrius


L'operador de multiplicació * s'utilitza per multiplicar una matriu mitjançant la multiplicació escalar o per elements de dues matrius.
Multiplicació amb escalar
Si multipliqueu una matriu amb un valor escalar, tots els elements de la matriu es multiplicaran amb aquest escalar.

R
# R program for matrix multiplication # with a scalar m <- matrix(1:8, nrow=2) m <- 2*m print(m)>

Sortida:



 [,1] [,2] [,3] [,4] [1,] 2 6 10 14 [2,] 4 8 12 16>

En el codi anterior, l'escalar es multiplica amb tots els elements de la matriu original. Així és com es produeix el procés de multiplicació.

2*1=2 2*3=6 2*5=10 2*7=14 2*2=4 2*4=8 2*6=12 2*8=16>

Multiplicació entre matrius

Quan una matriu es multiplica per una altra matriu, es produeix la multiplicació per elements de dues matrius. Tots els elements corresponents d'ambdues matrius es multiplicaran amb la condició que ambdues matrius siguin de la mateixa dimensió.

R
# R program for matrix multiplication # Creating matrices m <- matrix(1:8, nrow=2) n <- matrix(8:15, nrow=2) # Multiplying matrices print(m*n)>

Sortida:



 [,1] [,2] [,3] [,4] [1,] 8 30 60 98 [2,] 18 44 78 120>

Així és com es produeix el procés de multiplicació.

1*8=8 3*10=30 5*12=60 7*14=98 2*9=18 4*11=44 6*13=78 8*15=120>

Multiplicació amb vector

Si una matriu es multiplica amb un vector, el vector es promourà a matriu de fila o columna per fer que dos arguments siguin conformables.

R
# R program for matrix multiplication # Creating matrix m <- matrix(1:8, nrow=2) # Creating a vector vec <- 1:2 # Multiplying matrix with vector print(vec*m)>

Sortida:

 [,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 4 8 12 16>

Així és com es fa el procés de multiplicació:

  1*1=1 1*3=3 1*5=5 1*7=7 2*2=4 2*4=8 2*6=12 2*8=16>

Multiplicació utilitzant l'operador %*%

L'operador %*% s'utilitza per a la multiplicació de matrius que compleix la condició que el nombre de columnes de la primera matriu sigui igual al nombre de files de la segona. Si es multipliquen la matriu A[M, N] i la matriu B[N, Z], la matriu resultant serà de dimensió M*Z.

R
# R program for matrix multiplication # Creating matrices m <- matrix(1:8, nrow=2) n <- matrix(8:15, nrow=4) # Multiplying matrices using operator print(m %*% n)>

Sortida:

 [,1] [,2] [1,] 162 226 [2,] 200 280>

Així és com es produeix la multiplicació

1*8+3*9+5*10+7*11 = 162 1*12+3*13+5*14+7*15=226 2*8+4*9+6*10+8*11 = 200 2*12+4*13+6*14+8*15=280>