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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *