Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

डॉट उत्पाद और दो वैक्टर के क्रॉस उत्पाद के लिए सी ++ प्रोग्राम

हमें दो वेक्टर दिए गए हैं मान लें कि वेक्टर ए और वेक्टर बी जिसमें x, y, और दिशाएं हैं, और कार्य दो दिए गए वेक्टर सरणी के क्रॉस उत्पाद और डॉट उत्पाद को ढूंढना है।

वेक्टर क्या है?

गणित में, जिस मात्रा का परिमाण और दिशा होती है उसे सदिश कहा जाता है जबकि वह मात्रा जिसका परिमाण के रूप में केवल एक मान होता है, अदिश कहलाती है। जिस बिंदु से वेक्टर शुरू होता है उसे प्रारंभिक बिंदु के रूप में जाना जाता है और जिस बिंदु पर वेक्टर समाप्त होता है उसे टर्मिनल बिंदु के रूप में जाना जाता है। वेक्टर के प्रारंभिक बिंदु और टर्मिनल बिंदु के बीच की दूरी को वेक्टर के परिमाण के रूप में जाना जाता है।

वैक्टर कई प्रकार के होते हैं जैसे −

  • इकाई वेक्टर − एक सदिश जिसका परिमाण एकता है जो 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 के बराबर होता है

Input-: A = 2 * i + 7 * j + 2 * k
B = 3 * i + 1 * j + 5 * k
Output-: 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 वेक्टर की दिशाएं हैं।

Input-: A = 2 * i + 7 * j + 2 * k
B = 3 * i + 1 * j + 5 * k
Output-: (7 * 5 - 2 * 1)i + (2 * 5 - 2 * 3)j - (2 * 1 - 7 * 3)k

एल्गोरिदम

Start
Step 1 -> declare a function to calculate the dot product of two vectors
   int dot_product(int vector_a[], int vector_b[])
   Declare int product = 0
   Loop For i = 0 and i < size and i++
      Set product = product + vector_a[i] * vector_b[i]
   End
   return product
Step 2 -> Declare a function to calculate the cross product of two vectors
   void cross_product(int vector_a[], int vector_b[], int temp[])
   Set temp[0] = vector_a[1] * vector_b[2] - vector_a[2] * vector_b[1]
   Set temp[1] = -(vector_a[0] * vector_b[2] - vector_a[2] * vector_b[0])
   Set temp[2] = vector_a[0] * vector_b[1] - vector_a[1] * vector_b[0]
Step 3-> In main()
   Declare vector int vector_a[] = { 4, 2, -1 }
   Declare vector int vector_b[] = { 5, 7, 1 }
   Declare variable int temp[size]
   Call function for dot product as dot_product(vector_a, vector_b)
   Call function for dot product as cross_product(vector_a, vector_b)
   Loop For i = 0 and i < size and i++
   Print temp[i]
End
Stop

उदाहरण

#include <bits/stdc++.h>
#define size 3
using namespace std;
//function to calculate dot product of two vectors
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;
}
//function to calculate cross product of two vectors
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 << "Dot product:";
   cout << dot_product(vector_a, vector_b) << endl;
   cout << "Cross product:";
   cross_product(vector_a, vector_b, temp);
   for (int i = 0; i < size; i++)
   cout << temp[i] << " ";
   return 0;
}

आउटपुट

Dot product:33
Cross product:9 -9 18

  1. सी++ में दो लाइनों के चौराहे के बिंदु के लिए कार्यक्रम

    रेखा AB के संगत बिंदु A और B दिए गए हैं और रेखा PQ के संगत बिंदु P और Q दिए गए हैं; कार्य इन दो पंक्तियों के बीच प्रतिच्छेदन बिंदु को खोजना है। नोट - X और Y निर्देशांकों पर 2D समतल में अंक दिए गए हैं। यहाँ A(a1, a2), B(b1, b2) और C(c1, c2), D(d1, d2) निर्देशांक हैं जो दो अलग-अलग रेखाएँ बना रहे ह

  1. C++ में घनाभ के आयतन और सतह क्षेत्र के लिए कार्यक्रम

    घनाभ क्या है? घनाभ एक त्रि-आयामी वस्तु है जिसमें आयत आकार के छह फलक होते हैं जिसका अर्थ है कि इसकी अलग-अलग लंबाई और चौड़ाई की भुजाएँ हैं। घन और घनाभ के बीच का अंतर यह है कि एक घन की लंबाई, ऊंचाई और चौड़ाई समान होती है जबकि घनाभ में ये तीनों समान नहीं होते हैं घनाभ के गुण हैं - छह चेहरे 12 किनारे

  1. C++ में घन के आयतन और सतह क्षेत्र के लिए कार्यक्रम

    घन क्या है? घन एक त्रि-आयामी वस्तु है जिसमें चौकोर आकार के छह फलक होते हैं, जिसका अर्थ है कि इसकी लंबाई और चौड़ाई समान है। घन निम्नलिखित गुणों वाला एकमात्र नियमित हेक्साहेड्रोन है - छह चेहरे 12 किनारे 8 कोने घन की आकृति नीचे दी गई है समस्या पक्ष के साथ दिया गया, कार्य एक घन का कुल सतह क्षेत्र