python中的复数用法

I15*_*159 96 python complex-numbers

我是一个数学新手.现在我正在深入研究Python数据类型.我无法理解如何使用复数.请给我举例说明Python中复数的用法.

rob*_*off 168

在python中,你可以在数字后加上'j'或'J'来使它成为虚构的,这样你就可以轻松地编写复杂的文字:

>>> 1j
1j
>>> 1J
1j
>>> 1j * 1j
(-1+0j)
Run Code Online (Sandbox Code Playgroud)

'j'后缀来自电气工程,其中变量'i'通常用于电流.(推理在这里找到.)

复数的类型是complex,如果您愿意,可以使用该类型作为构造函数:

>>> complex(2,3)
(2+3j)
Run Code Online (Sandbox Code Playgroud)

复数有一些内置访问器:

>>> z = 2+3j
>>> z.real
2.0
>>> z.imag
3.0
>>> z.conjugate()
(2-3j)
Run Code Online (Sandbox Code Playgroud)

几个内置函数支持复数:

>>> abs(3 + 4j)
5.0
>>> pow(3 + 4j, 2)
(-7+24j)
Run Code Online (Sandbox Code Playgroud)

标准模块cmath具有更多处理复数的函数:

>>> import cmath
>>> cmath.sin(2 + 3j)
(9.15449914691143-4.168906959966565j)
Run Code Online (Sandbox Code Playgroud)

  • 'i'也被数学家,物理学家和几乎所有其他科学家使用.如果这不够混淆,有些人使用'i'来表示一个的"正"平方根,而'j'是一个的"负"平方根.因此i == -j.FYJ ... (5认同)
  • @jvriesem“一的正平方根”是一。您的意思是他们使用“i”来表示*负*一的正平方根吗?和“j”代表*负*一的负平方根? (2认同)

Abh*_*jit 12

以下复数的示例应该是自解释的,包括最后的错误消息

>>> x=complex(1,2)
>>> print x
(1+2j)
>>> y=complex(3,4)
>>> print y
(3+4j)
>>> z=x+y
>>> print x
(1+2j)
>>> print z
(4+6j)
>>> z=x*y
>>> print z
(-5+10j)
>>> z=x/y
>>> print z
(0.44+0.08j)
>>> print x.conjugate()
(1-2j)
>>> print x.imag
2.0
>>> print x.real
1.0
>>> print x>y

Traceback (most recent call last):
  File "<pyshell#149>", line 1, in <module>
    print x>y
TypeError: no ordering relation is defined for complex numbers
>>> print x==y
False
>>> 
Run Code Online (Sandbox Code Playgroud)