R'de çapraz çarpım nasıl hesaplanır


(A 1 , A 2 , A 3 ) elemanlarına sahip A vektörümüz ve (B 1 , B 2 , B 3 ) elemanlarına sahip bir B vektörümüz olduğunu varsayarak, bu iki vektörün çapraz çarpımını aşağıdaki şekilde hesaplayabiliriz:

Çapraz çarpım = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]

Örneğin aşağıdaki vektörlere sahip olduğumuzu varsayalım:

  • Vektör A: (1, 2, 3)
  • Vektör B: (4, 5, 6)

Bu vektörlerin çapraz çarpımını şu şekilde hesaplayabiliriz:

  • Çapraz çarpım = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]
  • Çapraz çarpım = [(2*6) – (3*5), (3*4) – (1*6), (1*5) – (2*4)]
  • Çapraz çarpım = (-3, 6, -3)

R’deki iki vektörün çapraz çarpımını hesaplamak için iki yöntemden birini kullanabilirsiniz:

Yöntem 1: pracma paketinin cross() işlevini kullanın

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

Yöntem 2: Kendi işlevinizi tanımlayın

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

Aşağıdaki örnekler her yöntemin pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: pracma paketinin cross() fonksiyonunu kullanın

Aşağıdaki kod, iki vektör arasındaki çapraz çarpımı hesaplamak için pracma paketindeki cross() işlevinin nasıl kullanılacağını gösterir:

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

[1] -3 6 -3

Çapraz çarpım (-3, 6, -3) olur.

Bu, daha önce manuel olarak hesapladığımız çapraz çarpıma karşılık gelir.

Örnek 2: Kendi işlevinizi tanımlayın

Aşağıdaki kod, iki vektör arasındaki çapraz çarpımı hesaplamak için kendi fonksiyonunuzu nasıl tanımlayacağınızı gösterir:

 #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

Çapraz çarpım (-3, 6, -3) olur.

Bu, önceki örnekte hesapladığımız çapraz çarpıma karşılık gelir.

Ek kaynaklar

Aşağıdaki eğitimlerde R’de diğer ortak görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

R’de nokta çarpım nasıl hesaplanır
R’de kimlik matrisi nasıl oluşturulur
R’de boş bir matris nasıl oluşturulur

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir