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