2011-12-03 23 views
53

Ben bir matematik uzmanıyım. Şimdi Python veri türlerine daha da yaklaşıyorum. Karmaşık bir sayıyı nasıl kullanacağımı anlayamıyorum. Lütfen bana Python'daki karmaşık sayıların kullanım örneklerini ver.Python'da karmaşık sayı kullanımı

+0

, size matematiksel gösterimde yapmak istediğim yazabilirsiniz:karmaşık sayılar ele daha fazla işlevleri vardır? – Mark

+7

Bunun kapalı olması gerektiğini düşünmüyorum. Aynı zamanda pythonun matematikte 'j' sanal sözdizimini matematikte, istatistikte, R, vb'de daha sezgisel 'i' sözdizimi üzerinde yaygın olarak kullandığını da kafa karıştırıcı buldum. Aşağıdaki ilk cevap bunu tanıtmak için iyi bir iş yaptı. – Mittenchops

+0

Python'da meşru bir docbug gibi görünüyor, “yardım (karmaşık)”, örn. ithalat onayı; yardım (ondalık) ' – smci

cevap

105

python'da, bunu hayali yapmak için bir sayıdan sonra 'j' veya 'J' koyabilirsiniz sonunda hata mesajı içeren kendini açıklamaktadır olmalıdır sana yüzden kolayca karmaşık değişmezleri yazabilir:

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

'j' soneki 'i' değişken genellikle akımı için kullanılan elektrik mühendisliği gelmektedir. (Reasoning found here.)

The type of a complex number is complex

, ve isterseniz bir yapıcı olarak türünü kullanabilirsiniz:

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

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

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

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

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

Eğer Matematikte yeni olan dediğimiz gibi

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

'Ben de matematikçiler, fizikçiler ve neredeyse tüm diğer bilim adamları tarafından kullanılır. Eğer bu yeterince kafa karıştırıcı değilse, bir tanesi “pozitif” karekökünü temsil etmek için “i” yi, “j” ise “negatif” karekökünü temsil eder. Böylece i == -j. FYJ ... – jvriesem

11

complex numbers için Aşağıdaki örnek,

>>> 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 
>>>