Como calcular um produto vetorial em r


Supondo que temos o vetor A com elementos (A 1 , A 2 , A 3 ) e o vetor B com elementos (B 1 , B 2 , B 3 ), podemos calcular o produto vetorial desses dois vetores da seguinte forma:

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

Por exemplo, suponha que temos os seguintes vetores:

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

Poderíamos calcular o produto vetorial desses vetores da seguinte forma:

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

Você pode usar um dos dois métodos para calcular o produto vetorial de dois vetores em R:

Método 1: use a função cross() do pacote pracma

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

Método 2: Defina sua própria função

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

Os exemplos a seguir mostram como usar cada método na prática.

Exemplo 1: Use a função cross() do pacote pracma

O código a seguir mostra como usar a função cross() do pacote pracma para calcular o produto vetorial entre dois vetores:

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

[1] -3 6 -3

O produto vetorial é (-3, 6, -3) .

Isso corresponde ao produto vetorial que calculamos manualmente anteriormente.

Exemplo 2: Defina sua própria função

O código a seguir mostra como definir sua própria função para calcular o produto vetorial entre dois vetores:

 #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

O produto vetorial é (-3, 6, -3) .

Isso corresponde ao produto vetorial que calculamos no exemplo anterior.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como calcular o produto escalar em R
Como criar matriz identidade em R
Como criar uma matriz vazia em R

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *