Vijesti o Tehnologiji, Recenzije i Savjeti!

Kompleksni broj u Pythonu –

U matematici, a složeni broj je bilo koji broj koji se može izraziti u obliku a + bi, gdje su ‘a’ i ‘b’ realni brojevi. Ovdje je ‘i’ simbol koji se naziva imaginarna jedinica i mora zadovoljiti jednadžbu ‘i2 = −1′. To je tako, jer nijedan “pravi” broj neće zadovoljiti tu jednadžbu. Jedinica ‘i’ također je prvi put postala poznata kao imaginarni broj kod Renéa Descartesa. Stoga u ovom članku zavirimo u kompleksni broj u Pythonu.

Dakle, kompleksni broj je bilo koji broj oblika a + bi, gdje su a i b realni brojevi, a i*i = -1. Sada ćemo vidjeti da u Pythonu postoji više načina za stvaranje takvog kompleksnog broja.

Kompleksni brojevi u Pythonu

  • Možemo izravno koristiti sintaksu a + bj za stvaranje kompleksnog broja.
>>> a = 14 + 4j
>>> print(a)
(14+4j)
>>> print(type(a))
<class 'complex'>
  • Također možemo koristiti kompleksnu klasu za stvaranje kompleksnog broja
>>> a = complex(14, 4)
>>> print(type(a))
<class 'complex'>
>>> print(a)
(14+4j)

Realni i imaginarni dijelovi u kompleksnom broju

Kao što je gore objašnjeno, svaki kompleksni broj (a + bj) ima dva važna dijela: realni dio (a) i imaginarni dio (b) zbog imaginarne jedinice ‘i’.

Također možemo koristiti naredbu number.real da dobijemo realni dio broja i naredbu number.imag da dobijemo imaginarni dio kompleksnog broja.

>>> a
(14+4j)
>>> a.real
14.0
>>> a.imag
4.0

Što je konjugat kompleksnog broja?

Konjugat kompleksnog broja a + bj općenito se definira kao komponenta a – bj. Može se koristiti funkcija number.conjugate() da se također dobije konjugat kompleksnog broja.

>>> a
(14+4jj)
>>> a.conjugate()
(14-4j)

Razne aritmetičke operacije

Slično realnim brojevima, aritmetičke operacije zbrajanja, oduzimanja, množenja i dijeljenja mogu se izvoditi s kompleksnim brojevima. Idemo vidjeti kako.

a = 14 + 4j
b = 7 + 2j
print('Addition =', a + b)
print('Subtraction =', a - b)
print('Multiplication =', a * b)
print('Division =', a / b)

Izlaz:

Addition = (21+6j)
Subtraction = (7-2j)
Multiplication = (98+8j)
Division = (2+0j)

Ovdje je važna točka da usporedba dva kompleksna broja nije moguća. Pojedinačno se mogu uspoređivati ​​samo njihovi realni i imaginarni dijelovi, budući da se radi o stvarnim brojevima. Pogledajmo to uz pomoć primjera.

>>> a
(14+4j)
>>> b
(7+2j)
>>> a < b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'complex' and 'complex'

Faza kompleksnog broja

Kompleksni broj možemo prikazati u ravnini, kao vektor koji se sastoji od dvije komponente koje se sastoje od realne i imaginarne osi. Dakle, realni i imaginarni dio čine dvije komponente vektora.

Vektor kompleksnog broja

Kut u luku vektora i realne osi općenito je poznat kao faza ili također argument kompleksnog broja.

Tako,

faza(broj) = arctan(imaginarni_dio / stvarni_dio) …………. gdje je arctan tan inverzna matematička funkcija.

Dakle, da vidimo kako dobiti fazu kompleksnog broja u Pythonu.

import cmath
import math

a = 14 + 4j

# Using cmath module
phase = cmath.phase(a)
print('cmath Module value is : ', phase)

# Using math module
phase = math.atan(a.imag/a.real)
print('Math Module value is : ', phase)

Izlaz:

cmath Module value is : 0.27829965900511133
Math Module value is : 0.27829965900511133

Također, za pretvaranje radijana u stupnjeve možemo koristiti biblioteku NumPy u Pythonu.

import cmath
import numpy as np

a= 14 + 4j

# Using cmath module
phase = cmath.phase(a)
print('cmath Module in Radians : ', phase)
print('Phase in Degrees is : ', np.degrees(phase))

Izlaz:

cmath Module in Radians :  0.27829965900511133
Phase in Degrees is :  15.945395900922854

Note : Kako biste saznali više o matematičkom modulu u pythonu, zavirite ovdje.


Pravokutne i polarne koordinate

Složeni brojevi kada se žele zapisati u formate pravokutnih koordinata ili polarnih koordinata, stoga mogu koristiti funkcije cmath.rect() i cmath.polar().

import cmath
a = 14 + 4j
polar_coordinates = cmath.polar(a)
print(polar_coordinates)
(14.560219778561036, 0.27829965900511133)

modulus = abs(a)
phase = cmath.phase(a)
rect_coordinates = cmath.rect(modulus, phase)
print(rect_coordinates)
(14+3.9999999999999996j)

Trigonometrijske funkcije

import cmath

a = 14 + 3j

print('Sine is :', cmath.sin(a))
print('Cosine is :', cmath.cos(a))
print('Tangent is :', cmath.tan(a))

print('ArcSin is :', cmath.asin(a))
print('ArcCosine is :', cmath.acos(a))
print('ArcTan is :', cmath.atan(a))

Izlaz:

Sine is : (9.973100027667153+1.3698163499280331j)
Cosine is : (1.3766240951593778-9.923780591523466j)
Tangent is : (0.0013494480654275465+1.0047826282517973j)
ArcSin is : (1.359201617569979+3.353538253537821j)
ArcCosine is : (0.21159470922491766-3.353538253537821j)
ArcTan is : (1.5025950245944228+0.014567227030993942j)

Hiperboličke funkcije

Neke hiperboličke funkcije u cmath modulu su sljedeće:

import cmath

a = 14 + 3j

print('Hyperbolic Sine value is :', cmath.sinh(a))
print('Hyperbolic Cosine value is :', cmath.cosh(a))
print('Hyperbolic Tangent value is :', cmath.tanh(a))

print('Inverse Hyperbolic Sine value is :', cmath.asinh(a))
print('Inverse Hyperbolic Cosine value is :', cmath.acosh(a))
print('Inverse Hyperbolic Tangent value is :', cmath.atanh(a))

Izlaz:

Hyperbolic Sine value is : (-595284.6088509279+84855.76313714073j)
Hyperbolic Cosine value is : (-595284.608851751+84855.7631370234j)
Hyperbolic Tangent value is : (0.9999999999986721-3.8639811012496763e-13j)
Inverse Hyperbolic Sine value is : (3.3557631233109295+0.21059529257293394j)
Inverse Hyperbolic Cosine value is : (3.353538253537821+0.21159470922491766j)
Inverse Hyperbolic Tangent value is : (0.06838439126640407+1.556094682692894j)

Razne funkcije

Također postoje neke ugrađene funkcije za provjeru vrste složenog broja. Odnosno, je li konačan, beskonačan ili čak nan. Jesu li dva takva broja blizu također se može provjeriti.

>>> print(cmath.isfinite(14 + 3j))
True

>>> print(cmath.isinf(14 + 3j))
False

>>> print(cmath.isinf(cmath.inf + 3j))
True

>>> print(cmath.isnan(14 + 3j))
False

>>> print(cmath.isnan(cmath.nan + 3j))
True

>>> print(cmath.isclose(2+2j, 2.01+1.9j, rel_tol=0.05))
True

>>> print(cmath.isclose(2+2j, 2.01+1.9j, abs_tol=0.005))
False

ZAVRŠNE RIJEČI

U ovom članku smo tako duboko zaronili u svijet kompleksnih brojeva. Dakle, vidjeli smo kako rukovati složenim brojevima u Pythonu. Također, koje se sve funkcije, metode mogu implementirati na kompleksne brojeve. Koja se operacija može izvesti s ovim brojevima i također primjena cmath modula. Dakle, vidjeli smo sve ovo uz pomoć dosta nevjerojatnih i znalačkih primjera. U nadi i iščekivanju da su teme koje se ovdje obrađuju prilično jasne i da će vam također biti korisne.