C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

2つのベクトルの内積と外積のC++プログラム


2つのベクトルが与えられます。たとえば、x、y、および方向を含むベクトルAとベクトルBが与えられます。タスクは、与えられた2つのベクトル配列の外積と内積を見つけることです。

ベクトルとは何ですか?

数学では、大きさと方向を持つ量はベクトルと呼ばれ、大きさとして値が1つしかない量はスカラーと呼ばれます。ベクトルが開始するポイントは始点と呼ばれ、ベクトルが終了するポイントは終点と呼ばれます。ベクトルの始点と終点の間の距離は、ベクトルの大きさとして知られています。

-のようなベクトルには複数の種類があります

  • 単位ベクトル- 大きさが1である1のベクトルは、単位ベクトルと呼ばれます。
  • ゼロベクトル −このタイプのベクトルでは、始点と終点が同じであるため、NULLベクトルとも呼ばれます。
  • 共初期ベクトル- 2つ以上のベクトルが同じ初期点または開始点を持っている場合、それらは同時初期ベクトルと呼ばれます
  • 共線ベクトル- 2つ以上のベクトルが同じ線に平行である場合、それらは同一線上のベクトルであると言われます
  • 等しいベクトル- 2つのベクトルの大きさと方向が同じである場合、それらは等しいベクトルであると言われます

ドット積とは何ですか?

内積は、-

として定義されるスカラー積とも呼ばれます。

2つのベクトル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

クロス積とは何ですか?

外積は、-

として定義されるベクトル積とも呼ばれます。

2つのベクトル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. C++での直方体の体積と表面積のプログラム

    直方体とは何ですか? 直方体は、長方形の6つの面を持つ3次元オブジェクトです。つまり、辺の長さと幅が異なります。立方体と直方体の違いは、立方体の長さ、高さ、幅が等しいのに対し、直方体ではこれら3つは同じではないことです 直方体の特性は次のとおりです- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 長さ、幅、体積が与えられた場合、タスクは直方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 直方体の表面積と体積を計算するには、式があります 表面積=2(| * w + w * h

  2. C++での立方体の体積と表面積のプログラム

    キューブとは何ですか? 立方体は、正方形の6つの面を持つ3次元オブジェクトです。つまり、同じ長さと幅の辺があります。立方体は、次のプロパティを持つ唯一の正六面体です- 6つの顔 12個のエッジ 8つの頂点 以下は立方体の図です 問題 側面を考えると、タスクは立方体の総表面積と体積を見つけることです。ここで、表面積は面が占めるスペースであり、体積は形状に含めることができるスペースです。 立方体の表面積と体積を計算するには、次の式があります- 表面積=6*側面*側面 ボリューム=サイド*サイド*サイド 例 Input-: side=3 Output-: volume of c