Jak obliczyć iloczyn krzyżowy w r


Zakładając, że mamy wektor A z elementami (A 1 , A 2 , A 3 ) i wektor B z elementami (B 1 , B 2 , B 3 ), możemy obliczyć iloczyn krzyżowy tych dwóch wektorów w następujący sposób:

Iloczyn krzyżowy = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]

Załóżmy na przykład, że mamy następujące wektory:

  • Wektor A: (1, 2, 3)
  • Wektor B: (4, 5, 6)

Możemy obliczyć iloczyn krzyżowy tych wektorów w następujący sposób:

  • Iloczyn krzyżowy = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]
  • Iloczyn krzyżowy = [(2*6) – (3*5), (3*4) – (1*6), (1*5) – (2*4)]
  • Iloczyn krzyżowy = (-3, 6, -3)

Możesz użyć jednej z dwóch metod, aby obliczyć iloczyn krzyżowy dwóch wektorów w R:

Metoda 1: użyj funkcji cross() pakietu pracma

 library (pracma)
  
#calculate cross product of vectors A and B
cross(A, B)

Metoda 2: Zdefiniuj własną funkcję

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

Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.

Przykład 1: Użyj funkcji cross() pakietu pracma

Poniższy kod pokazuje, jak użyć funkcji cross() z pakietu pracma do obliczenia iloczynu krzyżowego pomiędzy dwoma wektorami:

 library (pracma)
  
#definevectors
A <- c(1, 2, 3)
B <- c(4, 5, 6)
  
#calculate cross product
cross(A, B)

[1] -3 6 -3

Okazuje się, że iloczyn krzyżowy wynosi (-3, 6, -3) .

Odpowiada to iloczynowi krzyżowemu, który obliczyliśmy wcześniej ręcznie.

Przykład 2: Zdefiniuj własną funkcję

Poniższy kod pokazuje, jak zdefiniować własną funkcję do obliczania iloczynu krzyżowego między dwoma wektorami:

 #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

Okazuje się, że iloczyn krzyżowy wynosi (-3, 6, -3) .

Odpowiada to iloczynowi krzyżowemu, który obliczyliśmy w poprzednim przykładzie.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak obliczyć iloczyn skalarny w R
Jak utworzyć macierz tożsamości w R
Jak utworzyć pustą macierz w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *