আমাদের দুটি ভেক্টর দেওয়া হয়েছে ধরা যাক ভেক্টর A এবং ভেক্টর B যার মধ্যে x, y এবং দিকনির্দেশ রয়েছে এবং কাজটি হল দুটি প্রদত্ত ভেক্টর অ্যারের ক্রস পণ্য এবং বিন্দুর গুণফল খুঁজে বের করা।
ভেক্টর কি?
গণিতে, একটি পরিমান যার একটি মাত্রা এবং একটি দিক আছে একটি ভেক্টর হিসাবে পরিচিত যেখানে একটি পরিমাণ যার মাত্রা হিসাবে শুধুমাত্র একটি মান আছে একটি স্কেলার হিসাবে পরিচিত। যে বিন্দু থেকে ভেক্টর শুরু হয় তাকে প্রাথমিক বিন্দু বলা হয় এবং যে বিন্দুতে ভেক্টর শেষ হয় তাকে টার্মিনাল পয়েন্ট বলে। ভেক্টরের প্রারম্ভিক বিন্দু এবং টার্মিনাল বিন্দুর মধ্যে দূরত্ব ভেক্টরের মাত্রা হিসাবে পরিচিত।
অনেক ধরনের ভেক্টর আছে যেমন −
- ইউনিট ভেক্টর - একটি ভেক্টর যার মাত্রা একতা যা 1 একক ভেক্টর নামে পরিচিত।
- শূন্য ভেক্টর − এটি একটি NULL ভেক্টর হিসাবেও পরিচিত কারণ এই ধরনের ভেক্টরের প্রাথমিক বিন্দু এবং টার্মিনাল বিন্দু একই।
- Coinitial vector - যদি দুই বা ততোধিক ভেক্টরের একই প্রারম্ভিক বিন্দু বা সূচনা বিন্দু থাকে তবে সেগুলিকে সমযোজী ভেক্টর বলা হয়
- সমলিনিয়ার ভেক্টর - যদি দুই বা ততোধিক ভেক্টর একই রেখার সমান্তরাল হয় তাহলে বলা হয় তাদেরকে সমরেখার ভেক্টর বলে
- সমান ভেক্টর - যদি দুটি ভেক্টরের মাত্রা এবং দিক একই থাকে তবে তাদের সমান ভেক্টর বলা হয়
ডট পণ্য কি?
ডট পণ্যটি স্কেলার পণ্য হিসাবেও পরিচিত যা −
হিসাবে সংজ্ঞায়িত করা হয়ধরা যাক আমাদের দুটি ভেক্টর 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