Cara menghitung perkalian silang di r
Dengan asumsi kita memiliki vektor A dengan elemen (A 1 , A 2 , A 3 ) dan vektor B dengan elemen (B 1 , B 2 , B 3 ), kita dapat menghitung perkalian silang kedua vektor tersebut sebagai berikut:
Perkalian silang = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]
Misalnya kita mempunyai vektor-vektor berikut:
- Vektor A : (1, 2, 3)
- Vektor B: (4, 5, 6)
Kita dapat menghitung perkalian silang vektor-vektor tersebut sebagai berikut:
- Perkalian silang = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]
- Perkalian silang = [(2*6) – (3*5), (3*4) – (1*6), (1*5) – (2*4)]
- Hasil kali silang = (-3, 6, -3)
Anda dapat menggunakan salah satu dari dua metode untuk menghitung perkalian silang dua vektor di R:
Metode 1: gunakan fungsi cross() dari paket pracma
library (pracma) #calculate cross product of vectors A and B cross(A, B)
Metode 2: Tentukan fungsi Anda sendiri
#define function to calculate cross product cross <- function (x, y, i=1:3) { create3D <- function (x) head (c(x, rep (0, 3)), 3) x <- create3D(x) y <- create3D(y) j <- function (i) (i-1) %% 3+1 return (x[j(i+1)]*y[j(i+2)] - x[j(i+2)]*y[j(i+1)]) } #calculate cross product cross(A, B)
Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.
Contoh 1: Gunakan fungsi cross() dari paket pracma
Kode berikut menunjukkan cara menggunakan fungsi cross() dari paket pracma untuk menghitung perkalian silang antara dua vektor:
library (pracma) #definevectors A <- c(1, 2, 3) B <- c(4, 5, 6) #calculate cross product cross(A, B) [1] -3 6 -3
Hasil perkalian silangnya adalah (-3, 6, -3) .
Ini sesuai dengan perkalian silang yang kami hitung secara manual sebelumnya.
Contoh 2: Tentukan fungsi Anda sendiri
Kode berikut menunjukkan cara mendefinisikan fungsi Anda sendiri untuk menghitung perkalian silang antara dua vektor:
#define function to calculate cross product cross <- function (x, y, i=1:3) { create3D <- function (x) head (c(x, rep (0, 3)), 3) x <- create3D(x) y <- create3D(y) j <- function (i) (i-1) %% 3+1 return (x[j(i+1)]*y[j(i+2)] - x[j(i+2)]*y[j(i+1)]) } #definevectors A <- c(1, 2, 3) B <- c(4, 5, 6) #calculate cross product cross(A, B) [1] -3 6 -3
Hasil perkalian silangnya adalah (-3, 6, -3) .
Ini sesuai dengan perkalian silang yang kita hitung pada contoh sebelumnya.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di R:
Cara menghitung perkalian titik di R
Cara membuat matriks identitas di R
Cara membuat matriks kosong di R