Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में अलग-अलग डायमेंशन्स के दो वैक्टर्स का क्रॉस प्रोडक्ट निकालें

NumPy का numpy.cross() फंक्शन दो वैक्टर्स का क्रॉस प्रोडक्ट (वेक्टर गुणनफल) निकालता है। यह अलग-अलग डायमेंशन्स (2D और 3D) के वैक्टर्स को भी हैंडल कर सकता है — छोटे वैक्टर को शून्य से पैड किया जाता है।

सिंटैक्स और पैरामीटर्स

numpy.cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None)
  • a, b: इनपुट वैक्टर्स (अंतिम आयाम 2 या 3 होना चाहिए)।
  • axisa, axisb: वैक्टर को परिभाषित करने वाले अक्ष (डिफ़ॉल्ट -1: अंतिम)।
  • axisc: परिणाम वैक्टर वाले अक्ष (डिफ़ॉल्ट -1)।
  • axis: यदि दिया गया, तो axisa, axisb, axisc ओवरराइड करता है।
  • वापसी: क्रॉस प्रोडक्ट वैक्टर(एस)।

2D और 3D वैक्टर का क्रॉस प्रोडक्ट

import numpy as np

# 3D वैक्टर और 2D वैक्टर
arr1 = [13, 11, 19]  # 3D
arr2 = [19, 10]      # 2D (z=0 माना जाता है)

print("वेक्टर 1 (3D):", arr1)
print("वेक्टर 2 (2D):", arr2)

# क्रॉस प्रोडक्ट
result = np.cross(arr1, arr2)
print("\nक्रॉस प्रोडक्ट:\n", result)

आउटपुट

वेक्टर 1 (3D): [13, 11, 19]
वेक्टर 2 (2D): [19, 10]
क्रॉस प्रोडक्ट:
 [-190 361 -79]

गणना विवरण

arr2 को [19, 10, 0] माना जाता है (z=0 पैड)।


a = [13, 11, 19]
b = [19, 10, 0]

a × b = [a₂b₃ - a₃b₂, a₃b₁ - a₁b₃, a₁b₂ - a₂b₁]
      = [11×0 - 19×10, 19×19 - 13×0, 13×10 - 11×19]
      = [0 - 190, 361 - 0, 130 - 209]
      = [-190, 361, -79]

2D × 2D क्रॉस प्रोडक्ट (स्केलर)


a = [3, 4]
b = [1, 2]
result = np.cross(a, b)
print("2D क्रॉस प्रोडक्ट:", result)  # 3*2 - 4*1 = 2 (स्केलर)

बैच क्रॉस प्रोडक्ट


# कई वैक्टर जोड़े
A = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]])
B = np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]])

# axis=1 के साथ (प्रत्येक रो एक वैक्टर)
result = np.cross(A, B, axis=1)
print("बैच क्रॉस प्रोडक्ट:\n", result)
# [[ 0  0  1]
#  [ 1  0  0]
#  [ 0  1  0]]

अक्ष नियंत्रण (axisa, axisb, axisc)


# ऐरे आकार (3, N) जहां कॉलम वैक्टर्स हैं
A = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]).T  # (3, 3)
B = np.array([[1, 0, 0], [0, 1, 0], [0, 0, 1]]).T  # (3, 3)

# axisa=0: अक्ष 0 के साथ वैक्टर्स (कॉलम)
result = np.cross(A, B, axisa=0, axisb=0, axisc=0)
print("कॉलम-वाइज़ क्रॉस:\n", result)

गुण

  • एंटीकम्यूटेटिव: a × b = - (b × a)
  • डिस्ट्रिब्यूटिव: a × (b + c) = a × b + a × c
  • परिणाम लंबवत: a · (a × b) = 0 और b · (a × b) = 0
  • परिमाण: |a × b| = |a||b|sin(θ) (समानांतर के लिए 0)

उपयोग के मामले

  • 3D ज्यामिति: नॉर्मल वैक्टर, टॉर्क, एंगुलर मोमेंटम।
  • कंप्यूटर ग्राफिक्स: फेस नॉर्मल्स, कैमरा ओरिएंटेशन।
  • फिजिक्स: लोरेंज फोर्स, कोरिओलिस इफेक्ट।
  • रोबोटिक्स: जॉइंट वेलोसिटी से एंड-इफेक्टर वेलोसिटी।
  1. - पायथन में दो वैक्टर (सरणियों) का क्रॉस प्रोडक्ट लौटाना

    दो वैक्टर का क्रॉस प्रोडक्ट निकालने के लिए, पायथन NumPy में numpy.cross() विधि का उपयोग करें। यह विधि c लौटाती है, जो वैक्टर क्रॉस प्रोडक्ट होता है। पहला पैरामीटर a पहले वैक्टर(ओं) के घटक हैं। दूसरा पैरामीटर b दूसरे वैक्टर(ओं) के घटक हैं। तीसरा पैरामीटर axisa a का अक्ष है जो वैक्टर(ओं) को परिभाषित क

  1. - पायथन में 4D और 3D आयाम वाली सरणियों का क्रोनेकर प्रोडक्ट प्राप्त करना

    4D और 3D आयाम वाली सरणी का क्रोनेकर प्रोडक्ट प्राप्त करने के लिए, पायथन NumPy में numpy.kron() विधि का उपयोग करें। क्रोनेकर प्रोडक्ट की गणना करें, जो दूसरी सरणी के ब्लॉकों से बनी एक समग्र सरणी है जिसे पहली सरणी द्वारा स्केल किया गया है। यह फ़ंक्शन मानता है कि a और b के आयामों की संख्या समान है, यदि

  1. - Python में दो विरल वेक्टर्स का डॉट प्रोडक्ट खोजने का प्रोग्राम

    मान लीजिए, हमारे पास दो विरल वेक्टर हैं जो दो सूचियों में दर्शाए गए हैं। हमें दोनों विरल वेक्टर का डॉट प्रोडक्ट वापस करना है। वेक्टर ऑब्जेक्ट्स के रूप में दर्शाए गए हैं, और सूचियाँ ऑब्जेक्ट्स में nums मेंबर वेरिएबल में स्टोर हैं। इसलिए, यदि इनपुट है: vector1 = [1, 0, 0, 0, 1], vector2 = [0, 0, 0, 1