R에서 교차곱을 계산하는 방법


요소(A 1 , A 2 , A 3 )가 있는 벡터 A와 요소(B 1 , B 2 , B 3 )가 있는 벡터 B가 있다고 가정하면 이 두 벡터의 외적을 다음과 같이 계산할 수 있습니다.

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

예를 들어 다음과 같은 벡터가 있다고 가정합니다.

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

이러한 벡터의 외적은 다음과 같이 계산할 수 있습니다.

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

두 가지 방법 중 하나를 사용하여 R에서 두 벡터의 외적을 계산할 수 있습니다.

방법 1: pracma 패키지의 cross() 함수를 사용합니다.

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

방법 2: 자신만의 함수 정의

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

다음 예에서는 각 방법을 실제로 사용하는 방법을 보여줍니다.

예제 1: pracma 패키지의 cross() 함수 사용

다음 코드는 pracma 패키지의 cross() 함수를 사용하여 두 벡터 간의 외적을 계산하는 방법을 보여줍니다.

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

[1] -3 6 -3

교차곱은 (-3, 6, -3) 으로 나타납니다.

이는 이전에 수동으로 계산한 교차곱에 해당합니다.

예시 2: 자신만의 함수 정의

다음 코드는 두 벡터 사이의 외적을 계산하기 위해 자체 함수를 정의하는 방법을 보여줍니다.

 #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

교차곱은 (-3, 6, -3) 으로 나타납니다.

이는 이전 예에서 계산한 외적에 해당합니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 내적을 계산하는 방법
R에서 단위 행렬을 만드는 방법
R에서 빈 행렬을 만드는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다