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