Before starting with the program, let’s see the basics of Polar Coordinates and then use Python’s cmath and abs module to convert it. Polar coordinates are just a different way of representing Cartesian coordinates or Complex Numbers. A complex number z is defined as :
It is completely determined by its real part x and imaginary part y. Here, j is the imaginary unit.
The polar coordinates (r , φ) is completely determined by modulus r and phase angle φ.
Where,
r: Distance from z to origin, i.e., r = \sqrt{x^{2}+y^{2}} φ: Counterclockwise angle measured from the positive x-axis to the line segment that joins z to the origin.
The conversion of complex numbers to polar coordinates is explained below with examples.
Using cmath module
Python’s cmath module provides access to the mathematical functions for complex numbers. It contains several functions that are used for converting coordinates from one domain to another.
Out of them, some are explained as:
1. cmath.polar(x):
Return the representation of x in polar coordinates. cmath.polar() function is used to convert a complex number to polar coordinates.
Python3
# Python code to implement # the polar()function # importing "cmath" # for mathematical operations import cmath # using cmath.polar() method num = cmath.polar( 1 ) print (num) |
(1.0, 0.0)
Time Complexity: O(1)
Auxiliary space: O(1)
2. cmath.phase (z): This method returns the phase of the complex number z(also known as the argument of z).
Python3
import cmath x = - 1.0 y = 0.0 z = complex (x, y) # printing phase of a complex number using phase() print ( "The phase of complex number is : " , end = "") print (cmath.phase(z)) |
The phase of complex number is : 3.141592653589793
Using abs()
abs(): This method returns the modulus (absolute value) of the complex number z.
Python3
num1 = 3 + 4j print ( 'Absolute value of 3 + 4j is:' , abs (num1)) |
Absolute value of 3 + 4j is: 5.0
You are given a complex number z and your task is to convert it to polar coordinates. Let us consider a complex number as 1+5j, and we need to convert it to Polar coordinates.
Python3
import cmath c = complex ( 1 + 5j ) print ( abs (c)) |
5.0990195135927845
Example in python:
Approach:
The abs function returns the modulus or magnitude of the complex number. The math.atan2 function returns the angle in radians of the complex number. The angle is returned in the range -pi to pi, and is measured counterclockwise from the positive real axis. The polar coordinates are returned as a tuple of the form (r, theta), where r is the magnitude and theta is the angle in radians.
Python3
import math def complex_to_polar(z): r = abs (z) theta = math.atan2(z.imag, z.real) return (r, theta) z = 3 + 4j polar_z = complex_to_polar(z) print (polar_z) # Output: (5.0, 0.9272952180016122) |
(5.0, 0.9272952180016122)
Time complexity: O(1)
Auxiliary Space: O(1)
Approach: Using numpy:
Algorithm:
- Import the numpy library.
- Define a function named “complex_to_polar” that takes a complex number as input.
- Calculate the magnitude of the complex number using np.abs() function.
- Calculate the phase angle of the complex number using np.angle() function.
- Return a tuple of magnitude and phase angle.
- Define a complex number “z”.
- Call the “complex_to_polar” function with “z” as input and store the result in “polar_z”.
- Print the “polar_z” result.
Python3
import numpy as np def complex_to_polar(z): r = np. abs (z) theta = np.angle(z) return (r, theta) z = 3 + 4j polar_z = complex_to_polar(z) print (polar_z) #This code is contributed by Jyothi pinjala |
Output: (5.0, 0.9272952180016122)
Time complexity:
The time complexity of this code is O(1), as it involves simple arithmetic operations and calling numpy functions that have constant time complexity.
Auxiliary Space:
The space complexity of this code is O(1), as it only involves a few variable assignments and does not require any additional memory allocation or data structures.
has context menu