Skip to content
Related Articles

Related Articles

Convert given Complex Numbers into polar form and perform all arithmetic operations
  • Last Updated : 19 Mar, 2021

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))
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)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :