Skip to content
Related Articles

Related Articles

Convert given Complex Numbers into polar form and perform all arithmetic operations

View Discussion
Improve Article
Save Article
  • Last Updated : 14 Jun, 2022

Given two Complex Numbers Z1 and Z2 in the Cartesian form, the task is to convert the given complex number into polar form and perform all the arithmetic operations ( addition, subtraction, multiplication, and division ) on them.

Examples:

Input: Z1 = (2, 3), Z2 = (4, 6)
Output:
Polar form of the first Complex Number: (3.605551275463989, 0.9827937232473292)
Polar form of the Second Complex Number: (7.211102550927978, 0.9827937232473292)
Addition of two Complex Numbers: (10.816653826391967, 0.9827937232473292)
Subtraction of two Complex Numbers: (3.605551275463989, -0.9827937232473292)
Multiplication of two Complex Numbers: (25.999999999999996, 1.9655874464946583)
Division of two Complex Numbers: (0.5, 0.0)

Input: Z1 = (1, 1), Z2 = (2, 2)
Output:
Polar form of the first Complex Number: (1.4142135623730951, 0.7853981633974482)
Polar form of the Second Complex Number: (2.8284271247461903, 0.7853981633974482)
Addition of two Complex Numbers: (4.242640687119286, 0.7853981633974482)
Subtraction of two Complex Numbers: (1.4142135623730951, -0.7853981633974482)
Multiplication of two Complex Numbers: (4.000000000000001, 1.5707963267948963)
Division of two Complex Numbers: (0.5, 0.0)

Approach: The given problem can be solved based on the following properties of Complex Numbers:

  • A complex number Z in Cartesian form is represented as:

 Z = a+ i\times b
where a, b € R and b is known as the imaginary part of the complex number and i = \sqrt(-1)

  • The polar form of complex number Z is:

Z = r(sin(\theta) + i*cos(\theta))

 r = \sqrt{a^{2}+ b^{2}}
\theta = tan^{-1}(b/a)
\theta =  Sin^{-1} (b/r)
\theta = Cos^{-1} (a/r)

where, r is known as modules of a complex number and
\theta   is the angle made with the positive X axis.

  • In the expression of complex number in polar form taking r as common performing Sin(\theta)+ i*Cos(\theta) = e^{i(\theta)}   the expression turn into:
    • Z = r*e^{i\theta}  , which is known as the Eulerian form of the Complex Number.
    • The eulerian and polar forms both are represented as: (r, \theta)  .
  • The multiplication and divisions of two complex numbers can be done using the eulerian form:

For Multiplication:

      Z = (r_{1}*e^{\theta_{1}})*(r_{2}*e^{\theta_{2}})
=> Z = (r_{1}*r_{2})*e^{ \theta_{1} + \theta_{2}}

For Division:

      Z = (r_{1}*e^{\theta_{1}})\div (r_{2}*e^{\theta_{2}})
=> Z = (r_{1}\div r_{2})*e^{ \theta_{1} - \theta_{2}}

Follow the steps below to solve the problem:

  • Convert the complex numbers into polar using the formula discussed-above and print it in the form for (r, \theta)  .
  • Define a function say Addition(Z1, Z2) to perform addition operation:
    • Find the real part of the complex number by adding two real parts Z1 and Z2, and store it in a variable say a.
    • Find the imaginary part of the complex number by adding two imaginary parts of the complex numbers Z1 and Z2 and store it in a variable say b.
    • Convert the Cartesian form of the complex to polar form and print it.
  • Define a function say Subtraction(Z1, Z2) to perform subtraction operation:
    • Find the real part of the complex number by subtracting two real parts Z1 and Z2, and store it in a variable say a.
    • Find the imaginary part of the complex number by subtracting two imaginary parts of the complex numbers Z1 and Z2 and store it in a variable say b.
    • Convert the Cartesian form of the complex to polar form and print it.
  • Print the multiplication of two complex number Z1 and Z2 as  Z = (r_{1}*r_{2})*e^{ \theta_{1} + \theta_{2}}
  • Print the Division of two complex number Z1 and Z2 as Z = (r_{1}\div r_{2})*e^{ \theta_{1} - \theta_{2}}

Below is the implementation of the above approach:

Python3




# Python program for the above approach
import math
 
# Function to find the polar form
# of the given Complex Number
def get_polar_form(z):
   
    # Z is in cartesian form
    re, im = z
 
    # Stores the modulo of complex number
    r = (re * re + im * im) ** 0.5
 
    # If r is greater than 0
    if r:
        theta = math.asin(im / r)
        return (r, theta)
       
    # Otherwise
    else:
        return (0, 0)
 
# Function to add two complex numbers
def Addition(z1, z2):
   
    # Z is in polar form
    r1, theta1 = z1
    r2, theta2 = z2
 
    # Real part of complex number
    a = r1 * math.cos(theta1) + r2 * math.cos(theta2)
     
    # Imaginary part of complex Number
    b = r1 * math.sin(theta1) + r2 * math.sin(theta2)
     
    # Find the polar form
    return get_polar_form((a, b))
 
# Function to subtract two
# given complex numbers
def Subtraction(z1, z2):
   
    # Z is in polar form
    r1, theta1 = z1
    r2, theta2 = z2
 
    # Real part of the complex number
    a = r1 * math.cos(theta1) - r2 * math.cos(theta2)
     
    # Imaginary part of complex number
    b = r1 * math.sin(theta1) - r2 * math.sin(theta2)
 
    # Converts (a, b) to polar
    # form and return
    return get_polar_form((a, b))
 
# Function to multiply two complex numbers
def Multiplication(z1, z2):
   
    # z is in polar form
    r1, theta1 = z1
    r2, theta2 = z2
 
    # Return the multiplication of Z1 and Z2
    return (r1 * r2, theta1 + theta2)
 
 
# Function to divide two complex numbers
def Division(z1, z2):
   
    # Z is in the polar form
    r1, theta1 = z1
    r2, theta2 = z2
 
    # Return the division of Z1 and Z2
    return (r1 / r2, theta1-theta2)
 
 
# Driver Code
if __name__ == "__main__":
   
    z1 = (2, 3)
    z2 = (4, 6)
 
    # Convert into Polar Form
    z1_polar = get_polar_form(z1)
    z2_polar = get_polar_form(z2)
 
    print("Polar form of the first")
    print("Complex Number: ", z1_polar)
    print("Polar form of the Second")
    print("Complex Number: ", z2_polar)
 
    print("Addition of two complex")
    print("Numbers: ", Addition(z1_polar, z2_polar))
     
    print("Subtraction of two ")
    print("complex Numbers: ",
           Subtraction(z1_polar, z2_polar))
     
    print("Multiplication of two ")
    print("Complex Numbers: ",
           Multiplication(z1_polar, z2_polar))
           
    print("Division of two complex ")
    print("Numbers: ", Division(z1_polar, z2_polar))


Javascript




// JavaScript program for the above approach
 
// Function to find the polar form
// of the given Complex Number
function get_polar_form(z){
    // Z is in cartesian form
    let re = z[0];
    let im = z[1];
 
    // Stores the modulo of complex number
    let r = (re * re + im * im) ** 0.5;
     
    // If r is greater than 0
    if(r){
        let theta = Math.asin(im / r);
        return [r, theta];
    }
 
    // Otherwise
    else{
        return [0, 0];
    }
         
}
   
 
// Function to add two complex numbers
function Addition(z1, z2){
    // Z is in polar form
    let r1 = z1[0];
    let theta1 = z1[1];
    let r2 = z2[0];
    let theta2 = z2[1];
 
    // console.log(r1, r2, theta1, theta2)
    // Real part of complex number
    let a = r1 * Math.cos(theta1) + r2 * Math.cos(theta2);
     
    // Imaginary part of complex Number
    let b = r1 * Math.sin(theta1) + r2 * Math.sin(theta2);
    console.log(a, b)
    // Find the polar form
    return get_polar_form([a, b]);
}
   
 
 
// Function to subtract two
// given complex numbers
function Subtraction(z1, z2){ 
    // Z is in polar form
    let r1 = z1[0];
    let theta1 = z1[1];
    let r2 = z2[0];
    let theta2 = z2[1];
 
    // Real part of the complex number
    let a = r1 * Math.cos(theta1) - r2 * Math.cos(theta2);
     
    // Imaginary part of complex number
    let b = r1 * Math.sin(theta1) - r2 * Math.sin(theta2);
 
    // Converts (a, b) to polar
    // form and return
    return get_polar_form([a, b]); 
}
 
 
// Function to multiply two complex numbers
function Multiplication(z1, z2){
    // z is in polar form
    let r1 = z1[0];
    let theta1 = z1[1];
    let r2 = z2[0];
    let theta2 = z2[1];
 
    // Return the multiplication of Z1 and Z2
    return [r1 * r2, theta1 + theta2];
}
 
// Function to divide two complex numbers
function Division(z1, z2){
    // Z is in the polar form
    let r1 = z1[0];
    let theta1 = z1[1];
    let r2 = z2[0];
    let theta2 = z2[1];
 
    // Return the division of Z1 and Z2
    return [r1 / r2, theta1-theta2];
}
   
 
// Driver Code
z1 = [2, 3];
z2 = [4, 6];
 
// Convert into Polar Form
z1_polar = get_polar_form(z1)
z2_polar = get_polar_form(z2)
 
console.log("Polar form of the first");
console.log("Complex Number: ", z1_polar);
console.log("Polar form of the Second");
console.log("Complex Number: ", z2_polar);
 
console.log("Addition of two complex");
console.log("Numbers: ", Addition(z1_polar, z2_polar));
 
console.log("Subtraction of two ");
console.log("complex Numbers: ",
       Subtraction(z1_polar, z2_polar));
 
console.log("Multiplication of two ");
console.log("Complex Numbers: ",
       Multiplication(z1_polar, z2_polar));
 
console.log("Division of two complex ");
console.log("Numbers: ", Division(z1_polar, z2_polar));
 
// The code is contributed by Gautam goel (gautamgoel962)


Output:

Polar form of the first
Complex Number:  (3.605551275463989, 0.9827937232473292)
Polar form of the Second
Complex Number:  (7.211102550927978, 0.9827937232473292)
Addition of two complex
Numbers:  (10.816653826391967, 0.9827937232473292)
Subtraction of two 
complex Numbers:  (3.605551275463989, -0.9827937232473292)
Multiplication of two 
Complex Numbers:  (25.999999999999996, 1.9655874464946583)
Division of two complex 
Numbers:  (0.5, 0.0)

Time Complexity: O(1)
Auxiliary Space: O(1)


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!