Program for dot product and cross product of two vectors

There are two vector A and B and we have to find the dot product and cross product of two vector array. Dot product is also known as scalar product and cross product also known as vector product.

Dot Product – Let we have given two vector A = a1 * i + a2 * j + a3 * k and B = b1 * i + b2 * j + b3 * k. Where i, j and k are the unit vector along the x, y and z directions. Then dot product is calculated as dot product = a1 * b1 + a2 * b2 + a3 * b3

Example –

A = 3 * i + 5 * j + 4 * k
B = 2 * i + 7 * j + 5 * k
dot product = 3 * 2 + 5 * 7 + 4 * 5
            = 6 + 35 + 20
            = 61

Cross Product – Let we have given two vector A = a1 * i + a2 * j + a3 * k and B = b1 * i + b2 * j + b3 * k. Then cross product is calculated as cross product = (a2 * b3 – a3 * b2) * i + (a1 * b3 – a3 * b1) * j + (a1 * b1 – a2 * b1) * k, where a2 * b3 – a3 * b2, a1 * b3 – a3 * b1 and a1 * b1 – a2 * b1 are the coefficient of unit vector along i, j and k directions.

Example –

A = 3 * i + 5 * j + 4 * k
B = 2 * i + 7 * j + 5 * k
cross product 
= (5 * 5 - 4 * 7) * i 
      + (3 * 5 - 4 * 2) * j + (3 * 7 - 5 * 2) * k
= -3 *i + 7 * j + 11 * k

Example –

Input : vect_A[] = {3, -5, 4}
        vect_B[] = {2, 6, 5}
Output : Dot product: -4
         Cross product = -49 7 28



Code –

C++

// C++ implementation for dot product
// and cross product of two vector.
#include <bits/stdc++.h>
#define n 3
  
using namespace std;
  
// Function that return
// dot product of two vector array.
int dotProduct(int vect_A[], int vect_B[])
{
  
    int product = 0;
  
    // Loop for calculate cot product
    for (int i = 0; i < n; i++)
  
        product = product + vect_A[i] * vect_B[i];
    return product;
}
  
// Function to find
// cross product of two vector array.
void crossProduct(int vect_A[], int vect_B[], int cross_P[])
  
{
  
    cross_P[0] = vect_A[1] * vect_B[2] - vect_A[2] * vect_B[1];
    cross_P[1] = vect_A[0] * vect_B[2] - vect_A[2] * vect_B[0];
    cross_P[2] = vect_A[0] * vect_B[1] - vect_A[1] * vect_B[0];
}
  
// Driver function
int main()
{
  
    int vect_A[] = { 3, -5, 4 };
    int vect_B[] = { 2, 6, 5 };
    int cross_P[n];
  
    // dotProduct function call
    cout << "Dot product:";
    cout << dotProduct(vect_A, vect_B) << endl;
  
    // crossProduct function call
    cout << "Cross product:";
    crossProduct(vect_A, vect_B, cross_P);
  
    // Loop that print
    // cross product of two vector array.
    for (int i = 0; i < n; i++)
  
        cout << cross_P[i] << " ";
    return 0;
}

Java

// java implementation for dot product
// and cross product of two vector.
import java.io.*;
  
class GFG {
      
    static int n = 3;
      
    // Function that return
    // dot product of two vector array.
    static int dotProduct(int vect_A[], int vect_B[])
    {
      
        int product = 0;
      
        // Loop for calculate cot product
        for (int i = 0; i < n; i++)
            product = product + vect_A[i] * vect_B[i];
        return product;
    }
      
    // Function to find
    // cross product of two vector array.
    static void crossProduct(int vect_A[], int vect_B[], 
                                           int cross_P[])
      
    {
      
        cross_P[0] = vect_A[1] * vect_B[2
                    - vect_A[2] * vect_B[1];
        cross_P[1] = vect_A[0] * vect_B[2
                    - vect_A[2] * vect_B[0];
        cross_P[2] = vect_A[0] * vect_B[1
                    - vect_A[1] * vect_B[0];
    }
      
  
    // Driver code
    public static void main (String[] args) 
    {
        int vect_A[] = { 3, -5, 4 };
        int vect_B[] = { 2, 6, 5 };
        int cross_P[] = new int [n];
      
        // dotProduct function call
        System.out.print ( "Dot product:");
        System.out.println (dotProduct(vect_A, vect_B)) ;
      
        // crossProduct function call
        System.out.print ( "Cross product:");
        crossProduct(vect_A, vect_B, cross_P);
      
        // Loop that print
        // cross product of two vector array.
        for (int i = 0; i < n; i++)
      
            System.out.print ( cross_P[i] +" ");
          
    }
}
  
// This code is contributed by vt_m

C#

// C# implementation for dot product
// and cross product of two vector.
using System;
  
class GFG {
      
    static int n = 3;
      
    // Function that return dot 
    // product of two vector array.
    static int dotProduct(int []vect_A,
                           int []vect_B)
    {
      
        int product = 0;
      
        // Loop for calculate cot product
        for (int i = 0; i < n; i++)
            product = product + vect_A[i]
                             * vect_B[i];
        return product;
    }
      
    // Function to find cross product
    // of two vector array.
    static void crossProduct(int []vect_A,
              int []vect_B, int []cross_P)
      
    {
      
        cross_P[0] = vect_A[1] * vect_B[2] 
                  - vect_A[2] * vect_B[1];
        cross_P[1] = vect_A[0] * vect_B[2] 
                  - vect_A[2] * vect_B[0];
        cross_P[2] = vect_A[0] * vect_B[1] 
                  - vect_A[1] * vect_B[0];
    }
      
  
    // Driver code
    public static void Main () 
    {
        int []vect_A = { 3, -5, 4 };
        int []vect_B = { 2, 6, 5 };
        int []cross_P = new int [n];
      
        // dotProduct function call
        Console.Write( "Dot product:");
          
        Console.WriteLine(
            dotProduct(vect_A, vect_B)) ;
      
        // crossProduct function call
        Console.Write( "Cross product:");
        crossProduct(vect_A, vect_B, cross_P);
      
        // Loop that print
        // cross product of two vector array.
        for (int i = 0; i < n; i++)
            Console.Write( cross_P[i] +" ");
          
    }
}
  
// This code is contributed by vt_m.

PHP

<?php
// PHP implementation for dot 
// product and cross product 
// of two vector.
$n = 3;
  
// Function that return
// dot product of two 
// vector array.
function dotproduct($vect_A, $vect_B)
{
    global $n;
    $product = 0;
  
    // Loop for calculate
    // cot product
    for ($i = 0; $i < $n; $i++)
  
        $product = $product + $vect_A[$i] * 
                              $vect_B[$i];
    return $product;
}
  
// Function to find
// cross product of 
// two vector array.
function crossproduct($vect_A
                      $vect_B, $cross_P)
  
{
  
    $cross_P[0] = $vect_A[1] * $vect_B[2] - 
                  $vect_A[2] * $vect_B[1];
    $cross_P[1] = $vect_A[0] * $vect_B[2] - 
                  $vect_A[2] * $vect_B[0];
    $cross_P[2] = $vect_A[0] * $vect_B[1] - 
                  $vect_A[1] * $vect_B[0];
    return $cross_P;
}
  
// Driver Code
$vect_A = array( 3, -5, 4 );
$vect_B = array( 2, 6, 5 );
$cross_P = array_fill(0, $n, 0);
  
// dotproduct function call
echo "Dot product:";
echo dotproduct($vect_A, $vect_B);
  
// crossproduct function call
echo "\nCross product:";
$cross_P = crossproduct($vect_A
                        $vect_B
                        $cross_P);
  
// Loop that print
// cross product of
// two vector array.
for ($i = 0; $i < $n; $i++)
  
    echo $cross_P[$i] . " ";
  
// This code is contributed by mits
?>


Output –

Dot product:-4
Cross product:-49 7 28 

This article is contributed by Dharmendra Kumar. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



My Personal Notes arrow_drop_up

Improved By : vt_m, Mithun Kumar




Practice Tags :
Article Tags :

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.

Recommended Posts:



2 Average Difficulty : 2/5.0
Based on 1 vote(s)






User Actions