Використання складних чисел у python [закрито]


111

Я новачок з математики. Тепер я заглиблююсь у типи даних Python. Я не можу зрозуміти, як використовувати складне число. Наведіть, будь ласка, приклади використання складних чисел у Python.


1
Як ви говорите, що ви новачок у математиці, чи можете ви написати те, що ви хочете робити в математичній нотації?
ммммммм

14
Я не думаю, що це мало бути закритим. Я також вважав заплутаним те, що python використовував уявний синтаксис 'j', поширений у техніці, над інтуїтивно зрозумілим синтаксисом 'i' у математиці, статистиці, R та ін.
Mittenchops

Здається, законний docbug на Python, help(complex)який не показує жодних прикладів, на відміну, наприклад, `імпорт десяткової; довідка (десяткова) `
smci

Відповіді:


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', щоб представити «позитивний» квадратний корінь, тоді як «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
>>> 
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.