วิธีการคำนวณผลคูณไขว้ใน 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