การใช้ตัวเลขที่ซับซ้อนใน python [ปิด]


111

ฉันเป็นมือใหม่ด้านคณิตศาสตร์ ตอนนี้ฉันเจาะลึกลงไปในประเภทข้อมูล Python ฉันไม่เข้าใจวิธีใช้จำนวนเชิงซ้อน โปรดยกตัวอย่างการใช้จำนวนเชิงซ้อนใน Python


1
อย่างที่คุณบอกว่าคุณยังใหม่กับคณิตศาสตร์คุณสามารถเขียนสิ่งที่คุณต้องการทำในสัญกรณ์ทางคณิตศาสตร์ได้หรือไม่?
mmmmmm

14
ฉันไม่คิดว่านี่ควรจะปิดแล้ว ฉันยังพบว่ามันสับสนว่า python ใช้ไวยากรณ์จินตภาพ 'j' ที่พบบ่อยในงานวิศวกรรมมากกว่าไวยากรณ์ 'i' ที่ใช้งานง่ายกว่าทั่วไปในคณิตศาสตร์สถิติ R ฯลฯ คำตอบแรกด้านล่างทำได้ดีในการแนะนำสิ่งนั้น
Mittenchops

ดูเหมือนว่า docbug ที่ถูกต้องบน Python ซึ่งhelp(complex)ไม่แสดงตัวอย่างใด ๆ ซึ่งแตกต่างจากเช่น `การนำเข้าทศนิยม help (ทศนิยม) `
smci

คำตอบ:


188

ใน python คุณสามารถใส่ 'j' หรือ 'J' หลังตัวเลขเพื่อทำให้เป็นจินตภาพเพื่อให้คุณเขียนตัวอักษรที่ซับซ้อนได้อย่างง่ายดาย:

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

คำต่อท้าย 'j' มาจากวิศวกรรมไฟฟ้าซึ่งโดยปกติตัวแปร 'i' จะใช้สำหรับกระแสไฟฟ้า ( พบเหตุผลที่นี่ )

ประเภทของจำนวนเชิงซ้อนคือcomplexและคุณสามารถใช้ type เป็นตัวสร้างได้หากคุณต้องการ:

>>> 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
>>> 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.