Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การคำนวณผลคูณเวกเตอร์หลายตัวของสองเวกเตอร์และเปลี่ยนทิศทางผลลัพธ์ใน Python


บทนำ

เพื่อคำนวณผลคูณไขว้ (cross product) ของสองเวกเตอร์ ให้ใช้เมธอด numpy.cross() ใน Python NumPy เมธอดนี้ส่งคืน c คือ ผลคูณไขว้ของเวกเตอร์ (Vector cross product(s)) พารามิเตอร์แรกคือ a องค์ประกอบของเวกเตอร์แรก (หรือหลายตัว) พารามิเตอร์ที่สองคือ b องค์ประกอบของเวกเตอร์ที่สอง (หรือหลายตัว) พารามิเตอร์ที่สามคือ axisa แกนของ a ที่กำหนดเวกเตอร์ โดยค่าเริ่มต้นคือแกนสุดท้าย พารามิเตอร์ที่สี่คือ axisb แกนของ b ที่กำหนดเวกเตอร์ โดยค่าเริ่มต้นคือแกนสุดท้าย

พารามิเตอร์ที่ห้าคือ axisc แกนของ c ที่มีเวกเตอร์ผลคูณไขว้ ถูกละเว้นหากเวกเตอร์อินพุททั้งสองมีมิติ 2 เนื่องจากการส่งคืนเป็นสเกลาร์ โดยค่าเริ่มต้นคือแกนสุดท้าย พารามิเตอร์ที่หกคือ axis หากกำหนด แกนของ a, b และ c ที่กำหนดเวกเตอร์และผลคูณไขว้ แทนที่ axisa, axisb และ axisc

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น:

import numpy as np

สร้างเวกเตอร์สองตัว เราได้แทรกองค์ประกอบแบบ int:

arr1 = np.array([[5, 10, 15], [30, 35, 40]])
arr2 = np.array([[30, 35, 40], [5, 10, 15]])

แสดงเวกเตอร์:

print("เวกเตอร์ 1...\n", arr1)
print("\nเวกเตอร์ 2...\n", arr2)

เพื่อคำนวณผลคูณไขว้ของสองเวกเตอร์ ให้ใช้เมธอด numpy.cross() ใน Python NumPy เมธอดนี้ส่งคืน c คือ ผลคูณไขว้ของเวกเตอร์:

print("\nผลลัพธ์...\n", np.cross(arr1, arr2, axisc=0))

ตัวอย่างโค้ดสมบูรณ์

import numpy as np
# สร้างเวกเตอร์สองตัว
# เราได้แทรกองค์ประกอบแบบ int
arr1 = np.array([[5, 10, 15], [30, 35, 40]])
arr2 = np.array([[30, 35, 40], [5, 10, 15]])
# แสดงเวกเตอร์
print("เวกเตอร์ 1...\n", arr1)
print("\nเวกเตอร์ 2...\n", arr2)
# เพื่อคำนวณผลคูณไขว้ของสองเวกเตอร์ ใช้ numpy.cross() ใน Python NumPy
print("\nผลลัพธ์...\n", np.cross(arr1, arr2, axisc=0))

ผลลัพธ์

เวกเตอร์ 1...
 [[ 5 10 15]
 [30 35 40]]
เวกเตอร์ 2...
 [[30 35 40]
 [ 5 10 15]]
ผลลัพธ์...
 [[-125 125]
 [ 250 -250]
 [-125 125]]