logo

Matricos daugyba R

Matricos daugyba yra pati naudingiausia matricos operacija. Šiais laikais jis plačiai naudojamas tokiose srityse kaip tinklo teorija, koordinačių transformacija ir daugelis kitų. R matricą galima sukurti naudojant matrica() funkcija ir ši funkcija kaip argumentus priima įvesties vektorių, nrow, ncol, byrow, dimnames.

Matricos kūrimas
Matricą galima sukurti naudojant matricos() funkciją.



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

Išvestis:

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

Matricų daugyba


Daugybos operatorius * yra naudojamas matricai padauginti iš dviejų matricų skaliariniu arba elementiniu būdu.
Daugyba su skaliaru
Jei padauginsite matricą iš skaliarinės reikšmės, tada kiekvienas matricos elementas bus padaugintas iš to skaliarinio skaičiaus.

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

Išvestis:



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

Aukščiau pateiktame kode skaliaras padauginamas iš kiekvieno pradinės matricos elemento. Taip vyksta dauginimo procesas.

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

Daugyba tarp matricų

Kai matrica padauginama iš kitos matricos, įvyksta dviejų matricų daugyba pagal elementus. Visi atitinkami abiejų matricų elementai bus padauginti su sąlyga, kad abi matricos bus to paties dydžio.

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)>

Išvestis:



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

Taip vyksta dauginimo procesas.

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

Daugyba su vektoriumi

Jei matrica padauginama iš vektoriaus, vektorius bus perkeltas į eilučių arba stulpelių matricą, kad du argumentai atitiktų.

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)>

Išvestis:

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

Štai kaip vyksta dauginimo procesas:

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

Daugyba naudojant %*% operatorių

Operatorius %*% yra naudojamas matricai dauginti, tenkinant sąlygą, kad stulpelių skaičius pirmoje matricoje yra lygus eilučių skaičiui antroje. Jei matrica A[M, N] ir matrica B[N, Z] padauginamos, gautos matricos matmenys bus 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)>

Išvestis:

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

Taip vyksta dauginimas

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>