हमें दो वेक्टर दिए गए हैं मान लें वेक्टर A और वेक्टर B जिनमें x, y, और z दिशाएं हैं, और कार्य दो दिए गए वेक्टर सरणियों के क्रॉस प्रोडक्ट और डॉट प्रोडक्ट को खोजना है।
वेक्टर क्या है?
गणित में, एक मात्रा जिसका परिमाण और दिशा होती है, वेक्टर के रूप में जानी जाती है जबकि एक मात्रा जिसका केवल एक मान परिमाण के रूप में होता है, स्केलर के रूप में जानी जाती है। वह बिंदु जहां से वेक्टर शुरू होता है, प्रारंभिक बिंदु के रूप में जाना जाता है और वह बिंदु जहां वेक्टर समाप्त होता है, टर्मिनल बिंदु के रूप में जाना जाता है। वेक्टर के प्रारंभिक बिंदु और टर्मिनल बिंदु के बीच की दूरी वेक्टर के परिमाण के रूप में जानी जाती है।
वेक्टर के कई प्रकार होते हैं जैसे −
- यूनिट वेक्टर − एक वेक्टर जिसका परिमाण एकता है जो 1 है, यूनिट वेक्टर के रूप में जाना जाता है।
- जीरो वेक्टर − इसे NULL वेक्टर के रूप में भी जाना जाता है क्योंकि इस प्रकार के वेक्टर में प्रारंभिक बिंदु और टर्मिनल बिंदु समान होते हैं।
- कोइनिशियल वेक्टर − यदि दो या अधिक वेक्टर का समान प्रारंभिक बिंदु या प्रारंभिक बिंदु है तो उन्हें कोइनिशियल वेक्टर कहा जाता है
- कोलिनियर वेक्टर − यदि दो या अधिक वेक्टर एक ही रेखा के समानांतर हैं तो उन्हें कोलिनियर वेक्टर कहा जाता है
- इक्वल वेक्टर − यदि दो वेक्टर का समान परिमाण और दिशा है तो उन्हें इक्वल वेक्टर कहा जाता है
डॉट प्रोडक्ट क्या है?
डॉट प्रोडक्ट को स्केलर प्रोडक्ट के रूप में भी जाना जाता है जिसे इस प्रकार परिभाषित किया गया है −
मान लें हमारे पास दो वेक्टर A = a1 * i + a2 * j + a3 * k और B = b1 * i + b2 * j + b3 * k हैं जहां i, j और k यूनिट वेक्टर हैं जिनका अर्थ है उनका मान 1 है और x, y और z वेक्टर की दिशाएं हैं तो डॉट प्रोडक्ट या स्केलर प्रोडक्ट a1 * b1 + a2 * b2 + a3 * b3 के बराबर है
इनपुट-: A = 2 * i + 7 * j + 2 * k B = 3 * i + 1 * j + 5 * k आउटपुट-: 2 * 3 + 7 * 1 + 2 * 5 = 23
क्रॉस प्रोडक्ट क्या है?
क्रॉस प्रोडक्ट को वेक्टर प्रोडक्ट के रूप में भी जाना जाता है जिसे इस प्रकार परिभाषित किया गया है −
मान लें हमारे पास दो वेक्टर A = a1 * i + a2 * j + a3 * k और B = b1 * i + b2 * j + b3 * k हैं। तब क्रॉस प्रोडक्ट (a2 * b3 - a3 * b2) * i - (a1 * b3 - a3 * b1) * j + (a1 * b2 - a2 * b1) * k के बराबर है, जहां a2 * b3 - a3 * b2, a1 * b3 - a3 * b1 और a1 * b1 - a2 * b1 यूनिट वेक्टर के गुणांक हैं और i, j और k वेक्टर की दिशाएं हैं।
इनपुट-: A = 2 * i + 7 * j + 2 * k B = 3 * i + 1 * j + 5 * k आउटपुट-: (7 * 5 - 2 * 1)i + (2 * 5 - 2 * 3)j - (2 * 1 - 7 * 3)k
एल्गोरिदम
शुरुआत चरण 1 -> दो वेक्टर के डॉट प्रोडक्ट की गणना करने के लिए फ़ंक्शन घोषित करें int dot_product(int vector_a[], int vector_b[]) int product = 0 घोषित करें लूप i = 0 से i < size और i++ तक product = product + vector_a[i] * vector_b[i] सेट करें अंत product वापस करें चरण 2 -> दो वेक्टर के क्रॉस प्रोडक्ट की गणना करने के लिए फ़ंक्शन घोषित करें void cross_product(int vector_a[], int vector_b[], int temp[]) temp[0] = vector_a[1] * vector_b[2] - vector_a[2] * vector_b[1] सेट करें temp[1] = -(vector_a[0] * vector_b[2] - vector_a[2] * vector_b[0]) सेट करें temp[2] = vector_a[0] * vector_b[1] - vector_a[1] * vector_b[0] चरण 3-> main() में वेक्टर घोषित करें int vector_a[] = { 4, 2, -1 } वेक्टर घोषित करें int vector_b[] = { 5, 7, 1 } वेरिएबल घोषित करें int temp[size] डॉट प्रोडक्ट के लिए फ़ंक्शन कॉल करें dot_product(vector_a, vector_b) क्रॉस प्रोडक्ट के लिए फ़ंक्शन कॉल करें cross_product(vector_a, vector_b) लूप i = 0 से i < size और i++ तक temp[i] प्रिंट करें अंत रुकेंउदाहरण
#include <bits/stdc++.h> #define size 3 using namespace std; //दो वेक्टर के डॉट प्रोडक्ट की गणना करने का फ़ंक्शन int dot_product(int vector_a[], int vector_b[]) { int product = 0; for (int i = 0; i < size; i++) product = product + vector_a[i] * vector_b[i]; return product; } //दो वेक्टर के क्रॉस प्रोडक्ट की गणना करने का फ़ंक्शन void cross_product(int vector_a[], int vector_b[], int temp[]) { temp[0] = vector_a[1] * vector_b[2] - vector_a[2] * vector_b[1]; temp[1] = -(vector_a[0] * vector_b[2] - vector_a[2] * vector_b[0]); temp[2] = vector_a[0] * vector_b[1] - vector_a[1] * vector_b[0]; } int main() { int vector_a[] = { 4, 2, -1 }; int vector_b[] = { 5, 7, 1 }; int temp[size]; cout << "डॉट प्रोडक्ट:"; cout << dot_product(vector_a, vector_b) << endl; cout << "क्रॉस प्रोडक्ट:"; cross_product(vector_a, vector_b, temp); for (int i = 0; i < size; i++) cout << temp[i] << " "; return 0; }आउटपुट
डॉट प्रोडक्ट:33 क्रॉस प्रोडक्ट:9 -9 18