Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ cho tích chấm và tích chéo của hai vectơ

Chúng tôi được cung cấp hai vectơ, giả sử vectơ A và vectơ B chứa x, y và hướng, và nhiệm vụ là tìm tích chéo và tích chấm của hai mảng vectơ đã cho.

Vectơ là gì?

Trong toán học, đại lượng có độ lớn và hướng được gọi là vectơ trong khi đại lượng chỉ có một giá trị là độ lớn được gọi là đại lượng vô hướng. Điểm mà từ đó vectơ bắt đầu được gọi là điểm ban đầu và điểm mà vectơ kết thúc được gọi là điểm cuối. Khoảng cách giữa điểm đầu và điểm cuối của vectơ được gọi là độ lớn của vectơ.

Có nhiều loại vectơ như -

  • Vectơ đơn vị - Một vectơ có độ lớn là hợp nhất 1 được gọi là vectơ đơn vị.
  • Vectơ 0 - Nó còn được gọi là vectơ NULL vì trong loại vectơ này điểm đầu và điểm cuối giống nhau.
  • Vectơ chung - Nếu hai hoặc nhiều vectơ có cùng điểm ban đầu hoặc cùng điểm xuất phát thì chúng được cho là vectơ cộng tuyến
  • Vectơ thu gọn - nếu hai hoặc nhiều vectơ song song với cùng một đường thẳng thì chúng được cho là vectơ thẳng hàng
  • Vectơ bằng - nếu hai vectơ có cùng độ lớn và hướng thì chúng được cho là vectơ bằng nhau

Sản phẩm chấm là gì?

Sản phẩm chấm còn được gọi là tích vô hướng được định nghĩa là -

Giả sử chúng ta có hai vectơ A =a1 * i + a2 * j + a3 * k và B =b1 * i + b2 * j + b3 * k trong đó i, j và k là các vectơ đơn vị có nghĩa là chúng có giá trị là 1 và x, y và z là hướng của vectơ thì tích chấm hoặc tích vô hướng bằng 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

Sản phẩm chéo là gì?

Sản phẩm chéo còn được gọi là sản phẩm vectơ được định nghĩa là -

Giả sử chúng ta có hai vectơ A =a1 * i + a2 * j + a3 * k và B =b1 * i + b2 * j + b3 * k. Khi đó, tích chéo bằng (a2 * b3 - a3 * b2) * i - (a1 * b3 - a3 * b1) * j + (a1 * b2 - a2 * b1) * k, trong đó a2 * b3 - a3 * b2, a1 * b3 - a3 * b1 và a1 * b1 - a2 * b1 là hệ số của vectơ đơn vị và i, j và k là hướng của vectơ.

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

Thuật toán

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

Ví dụ

#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;
}

Đầu ra

Dot product:33
Cross product:9 -9 18