Python'da karmaşık sayı kullanımı [kapalı]


111

Ben matematik konusunda acemiyim. Şimdi Python veri türlerine daha derine iniyorum. Karmaşık bir sayının nasıl kullanılacağını anlayamıyorum. Lütfen bana karmaşık sayıların Python'da kullanım örnekleri verin.


1
Dediğin gibi matematikte yenisin, yapmak istediğini matematiksel gösterimle yazabilir misin?
mmmmmm

14
Bunun kapatılması gerektiğini düşünmüyorum. Python'un matematik, istatistik, R, vb. Gibi daha sezgisel 'i' sözdizimine göre mühendislikte yaygın olan 'j' hayali sözdizimini kullanmasının kafa karıştırıcı olduğunu da buldum. Aşağıdaki ilk cevap, bunu tanıtarak iyi bir iş çıkardı.
Mittenchops

Python'da help(complex)herhangi bir örnek göstermeyen meşru bir docbug gibi görünüyor , örneğin `import decimal; yardım (ondalık) `
smci

Yanıtlar:


188

Python'da, bir sayıdan sonra onu hayali yapmak için 'j' veya 'J' koyabilirsiniz, böylece karmaşık değişmezleri kolayca yazabilirsiniz:

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

'J' soneki, 'i' değişkeninin genellikle akım için kullanıldığı elektrik mühendisliğinden gelir. ( Muhakeme burada bulundu. )

Karmaşık bir sayının türücomplex ve isterseniz türü kurucu olarak kullanabilirsiniz:

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

Karmaşık bir sayının bazı yerleşik erişimcileri vardır:

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

Çeşitli yerleşik işlevler karmaşık sayıları destekler:

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

Standart modülcmath , karmaşık sayıları işleyen daha fazla işleve sahiptir:

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

8
'i' aynı zamanda matematikçiler, fizikçiler ve neredeyse tüm diğer bilim adamları tarafından da kullanılmaktadır. Bu yeterince kafa karıştırıcı değilse, bazıları bir'in "pozitif" karekökünü temsil etmek için "i" kullanır, oysa "j", birinin "negatif" kareköküdür. Böylece i == -j. FYJ ...
jvriesem

13

Aşağıdaki karmaşık sayılar örneği , sonunda hata mesajı da dahil olmak üzere kendi kendini açıklayıcı olmalıdır

>>> 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
>>> 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.