给定两个笛卡尔形式的复数Z1和Z2 ,任务是将给定的复数转换为极坐标形式,并对它们执行所有算术运算(加、减、乘、除)。
例子:
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)
方法:可以根据复数的以下性质解决给定的问题:
- 笛卡尔形式的复数Z表示为:
,
where a, b € R and b is known as the imaginary part of the complex number and
- 复数Z的极坐标形式是:
where, r is known as modules of a complex number and
is the angle made with the positive X axis.
- 在复数的极坐标形式的表达中,以r为常用表现表达式变成:
- ,这被称为复数的欧拉形式。
- 欧拉和极坐标形式都表示为: .
- 可以使用欧拉形式完成两个复数的乘法和除法:
For Multiplication:
=>
For Division:
=>
请按照以下步骤解决问题:
- 使用上面讨论的公式将复数转换为极坐标并将其打印为 .
- 定义一个函数say Addition(Z1, Z2)来执行加法运算:
- 通过将两个实部Z1和Z2相加求出复数的实部,并将其存储在变量a 中。
- 通过将复数Z1和Z2 的两个虚部相加,求出复数的虚部,并将其存储在变量b 中。
- 将复数的笛卡尔形式转换为极坐标形式并打印出来。
- 定义一个函数say Subtraction(Z1, Z2)来执行减法运算:
- 通过减去两个实部Z1和Z2 来找到复数的实部,并将其存储在变量a 中。
- 通过将复数Z1和Z2 的两个虚部相减,求出复数的虚部,并将其存储在变量b 中。
- 将复数的笛卡尔形式转换为极坐标形式并打印出来。
- 打印两个复数Z1和Z2的乘法为
- 将两个复数Z1和Z2的除法打印为
下面是上述方法的实现:
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))
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)
时间复杂度: O(1)
辅助空间: O(1)