Mnożenie macierzy jest najbardziej użyteczną operacją na macierzach. Obecnie jest szeroko stosowany w takich obszarach, jak teoria sieci, transformacja współrzędnych i wiele innych zastosowań. Macierz w R można utworzyć za pomocą matryca() i ta funkcja przyjmuje jako argumenty wektor wejściowy, nrow, ncol, byrow, dimnames.
błąd wykonania
Tworzenie matrycy
Macierz można utworzyć za pomocą funkcji matrix().
R
# R program to create a matrix m <- matrix(1:8, nrow=2) print(m)>
Wyjście:
[,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 2 4 6 8>
Mnożenie macierzy
Operator mnożenia * służy do mnożenia macierzy przez skalarne lub elementarne mnożenie dwóch macierzy.
Mnożenie przez skalar
Jeśli pomnożysz macierz przez wartość skalarną, wówczas każdy element macierzy zostanie pomnożony przez ten skalar.
# R program for matrix multiplication # with a scalar m <- matrix(1:8, nrow=2) m <- 2*m print(m)>
Wyjście:
[,1] [,2] [,3] [,4] [1,] 2 6 10 14 [2,] 4 8 12 16>
W powyższym kodzie skalar jest mnożony przez każdy element oryginalnej macierzy. W ten sposób zachodzi proces mnożenia.
2*1=2 2*3=6 2*5=10 2*7=14 2*2=4 2*4=8 2*6=12 2*8=16>
Mnożenie między macierzami
Kiedy macierz jest mnożona przez inną macierz, następuje elementarne mnożenie dwóch macierzy. Wszystkie odpowiadające sobie elementy obu macierzy zostaną pomnożone pod warunkiem, że obie macierze będą miały ten sam wymiar.
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)>
Wyjście:
[,1] [,2] [,3] [,4] [1,] 8 30 60 98 [2,] 18 44 78 120>
W ten sposób zachodzi proces mnożenia.
1*8=8 3*10=30 5*12=60 7*14=98 2*9=18 4*11=44 6*13=78 8*15=120>
Mnożenie za pomocą wektora
Jeśli macierz zostanie pomnożona przez wektor, wówczas wektor zostanie awansowany do macierzy wierszowej lub kolumnowej, aby zapewnić zgodność dwóch argumentów.
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)>
Wyjście:
[,1] [,2] [,3] [,4] [1,] 1 3 5 7 [2,] 4 8 12 16>
Proces mnożenia przebiega w następujący sposób:
1*1=1 1*3=3 1*5=5 1*7=7 2*2=4 2*4=8 2*6=12 2*8=16>
Mnożenie za pomocą operatora %*%.
Operator %*% służy do mnożenia macierzy przy spełnieniu warunku, że liczba kolumn w pierwszej macierzy jest równa liczbie wierszy w drugiej. Jeśli pomnożymy macierz A[M, N] i macierz B[N, Z] to otrzymana macierz będzie miała wymiar 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)>
Wyjście:
[,1] [,2] [1,] 162 226 [2,] 200 280>
W ten sposób odbywa się mnożenie
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>