Utilizarea numerelor complexe în python [închis] (Programare, Python, Numere Complexe)

I159 a intrebat.

Sunt un începător în matematică. Acum mă adâncesc în tipurile de date Python. Nu înțeleg cum se utilizează un număr complex. Vă rog să-mi dați exemple de utilizare a numerelor complexe în Python.

Comentarii

  • Cum spui că ești începător în matematică, poți scrie ce vrei să faci în notații matematice? –  > Por mmmmmmmm.
  • 16

  • Nu cred că acest subiect ar fi trebuit să fie închis. De asemenea, mi s-a părut derutant faptul că python a folosit sintaxa imaginară „j”, comună în inginerie, în detrimentul sintaxei mai intuitive „i”, comună în matematică, statistică, R, etc. Primul răspuns de mai jos a făcut o treabă bună de introducere a acestui aspect. –  > Por Mittenchops.
  • Se pare că este un docbug legitim pe Python că help(complex) nu arată niciun exemplu, spre deosebire de, de exemplu, ` import decimal; help(decimal)` – –  > Por smci.
2 răspunsuri
rob mayoff

În python, puteți pune ‘j’ sau ‘J’ după un număr pentru a-l face imaginar, astfel încât să puteți scrie cu ușurință literali complecși:

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

Sufixul ‘j’ provine din ingineria electrică, unde variabila ‘i’ este folosită de obicei pentru curent. (Raționamentul se găsește aici.)

Tipul unui număr complex este complex, , și puteți utiliza tipul ca și constructor dacă preferați:

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

Un număr complex are câțiva accesori încorporați:

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

Mai multe funcții încorporate acceptă numere complexe:

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

Modulul standard cmath are mai multe funcții care gestionează numere complexe:

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

Comentarii

  • ‘i’ este, de asemenea, utilizat de matematicieni, fizicieni și aproape toți ceilalți oameni de știință. Dacă acest lucru nu este suficient de confuz, unii folosesc ‘i’ pentru a reprezenta rădăcina pătrată „pozitivă” a lui unu, în timp ce ‘j’ este rădăcina pătrată „negativă” a lui unu. Astfel, i == -j. FYJ… –  > Por jvriesem.
Abhijit

Următorul exemplu pentru numere complexe ar trebui să fie de la sine înțeles, inclusiv mesajul de eroare de la sfârșit

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