Использование комплексных чисел в Python [закрыто]


111

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


1
Когда вы говорите, что вы новичок в математике, можете ли вы написать то, что хотите делать, в математической нотации?
мммммм 03

14
Я не думаю, что это нужно было закрывать. Меня также сбивает с толку тот факт, что python использовал мнимый синтаксис «j», распространенный в инженерии, по сравнению с более интуитивным синтаксисом «i», распространенным в математике, статистике, R и т. Д. Первый ответ ниже хорошо представил это.
Mittenchops

Кажется, это вполне законная ошибка документации на Python, help(complex)которая не показывает никаких примеров, в отличие, например, от `import decimal; справка (десятичная) `
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» также используется математиками, физиками и почти всеми другими учеными. Если это вас не смущает, некоторые используют 'i' для обозначения «положительного» квадратного корня из единицы, тогда как «j» - «отрицательный» квадратный корень из единицы. Таким образом, я == -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.