python中的复数用法


111

我是数学新手。现在,我将更深入地了解Python数据类型。我不明白如何使用复数。请给我示例在Python中使用复数的示例。


1
正如您所说的,您是数学的新手,您可以用数学记法写您想做的事情吗?
mmmmmm

14
我不认为这应该已经结束。我还发现python使用工程学中常用的'j'虚构语法而不是数学,统计,R等中常见的更直观的'i'语法令人困惑。下面的第一个答案很好地介绍了这一点。
Mittenchops

在Python上help(complex)似乎没有任何示例的合法docbug ,与`import decimal;不一样。help(decimal)`
smci

Answers:


188

在python中,您可以在数字后面加上'j'或'J'以使其虚构,因此您可以轻松地编写复杂的文字:

>>> 1j
1j
>>> 1J
1j
>>> 1j * 1j
(-1+0j)

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

复数的类型为complex,并且您可以根据需要将其用作构造函数:

>>> complex(2,3)
(2+3j)

复数具有一些内置访问器:

>>> z = 2+3j
>>> z.real
2.0
>>> z.imag
3.0
>>> z.conjugate()
(2-3j)

几个内置函数支持复数:

>>> abs(3 + 4j)
5.0
>>> pow(3 + 4j, 2)
(-7+24j)

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

>>> import cmath
>>> cmath.sin(2 + 3j)
(9.15449914691143-4.168906959966565j)

8
数学家,物理学家和几乎所有其他科学家也使用'i'。如果这还不够令人困惑,则可以使用“ i”代表一个的“正”平方根,而“ j”则代表一个的“负”平方根。因此,i == -j。FYJ ...
jvriesem

13

下面的复数示例应易于说明,最后包括错误消息

>>> 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
>>> 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.