So berechnen sie ein kreuzprodukt in r


Angenommen, wir haben Vektor A mit Elementen (A 1 , A 2 , A 3 ) und Vektor B mit Elementen (B 1 , B 2 , B 3 ), können wir das Kreuzprodukt dieser beiden Vektoren wie folgt berechnen:

Kreuzprodukt = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]

Angenommen, wir haben die folgenden Vektoren:

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

Das Kreuzprodukt dieser Vektoren könnten wir wie folgt berechnen:

  • Kreuzprodukt = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]
  • Kreuzprodukt = [(2*6) – (3*5), (3*4) – (1*6), (1*5) – (2*4)]
  • Kreuzprodukt = (-3, 6, -3)

Sie können eine von zwei Methoden verwenden, um das Kreuzprodukt zweier Vektoren in R zu berechnen:

Methode 1: Verwenden Sie die Funktion cross() des Pracma-Pakets

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

Methode 2: Definieren Sie Ihre eigene Funktion

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

Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.

Beispiel 1: Verwenden Sie die Funktion cross() des Pracma-Pakets

Der folgende Code zeigt, wie Sie die Funktion cross() aus dem Paket pracma verwenden, um das Kreuzprodukt zwischen zwei Vektoren zu berechnen:

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

[1] -3 6 -3

Das Kreuzprodukt ist (-3, 6, -3) .

Dies entspricht dem Kreuzprodukt, das wir zuvor manuell berechnet haben.

Beispiel 2: Definieren Sie Ihre eigene Funktion

Der folgende Code zeigt, wie Sie Ihre eigene Funktion definieren, um das Kreuzprodukt zwischen zwei Vektoren zu berechnen:

 #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

Das Kreuzprodukt ist (-3, 6, -3) .

Dies entspricht dem Kreuzprodukt, das wir im vorherigen Beispiel berechnet haben.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:

So berechnen Sie das Skalarprodukt in R
So erstellen Sie eine Identitätsmatrix in R
So erstellen Sie eine leere Matrix in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert