# How to Calculate a Cross Product in R

Assuming we have vector A with elements (A1, A2, A3) and vector B with elements (B1, B2, B3), we can calculate the cross product of these two vectors as:

Cross Product = [(A2*B3) – (A3*B2), (A3*B1) – (A1*B3), (A1*B2) – (A2*B1)]

For example, suppose we have the following vectors:

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

We could calculate the cross product of these vectors as:

• Cross Product = [(A2*B3) – (A3*B2), (A3*B1) – (A1*B3), (A1*B2) – (A2*B1)]
• Cross Product = [(2*6) – (3*5), (3*4) – (1*6), (1*5) – (2*4)]
• Cross Product = (-3, 6, -3)

You can use one of the following two methods to calculate the cross product of two vectors in R:

Method 1: Use cross() function from pracma package

```library(pracma)

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

Method 2: Define your own function

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

The following examples show how to use each method in practice.

### Example 1: Use cross() function from pracma package

The following code shows how to use the cross() function from the pracma package to calculate the cross product between two vectors:

```library(pracma)

#define vectors
A <- c(1, 2, 3)
B <- c(4, 5, 6)

#calculate cross product
cross(A, B)

 -3  6 -3
```

The cross product turns out to be (-3, 6, -3).

This matches the cross product that we calculated earlier by hand.

### Example 2: Define your own function

The following code shows how to define your own function to calculate the cross product between two vectors:

```#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)])
}

#define vectors
A <- c(1, 2, 3)
B <- c(4, 5, 6)

#calculate cross product
cross(A, B)

 -3 6 -3
```

The cross product turns out to be (-3, 6, -3).

This matches the cross product that we calculated in the previous example.