วิธีการคำนวณผลคูณไขว้ใน r


สมมติว่าเรามีเวกเตอร์ A ที่มีองค์ประกอบ (A 1 , A 2 , A 3 ) และเวกเตอร์ B ที่มีองค์ประกอบ (B 1 , B 2 , B 3 ) เราสามารถคำนวณผลคูณไขว้ของเวกเตอร์ทั้งสองนี้ได้ดังนี้:

ผลคูณข้าม = [(A 2 *B 3 ) – (A 3 *B 2 ), (A 3 *B 1 ) – (A 1 *B 3 ), (A 1 *B 2 ) – (A 2 *B 1 )]

ตัวอย่างเช่น สมมติว่าเรามีเวกเตอร์ต่อไปนี้:

  • เวกเตอร์ ก: (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: ใช้ฟังก์ชัน cross() ของแพ็คเกจ pracma

 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: ใช้ฟังก์ชัน cross() ของแพ็คเกจ Pracma

รหัสต่อไปนี้แสดงวิธีการใช้ฟังก์ชัน cross() จากแพ็คเกจ pracma เพื่อคำนวณผลคูณไขว้ระหว่างเวกเตอร์สองตัว:

 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *