பைதான் சிக்கலான எண்களைக் கையாள ஒரு நிலையான வகையைக் கொண்டுள்ளது, இது COMPLEX வகையாகும். நீங்கள் எளிய கணக்கீடுகளைச் செய்ய விரும்பினால், நீங்கள் எந்த தொகுதிக்கூறுகளையும் இறக்குமதி செய்ய வேண்டியதில்லை, ஆனால் நீங்கள் நிலையான நூலக cmat ஐ இறக்குமதி செய்தால், நீங்கள் சிக்கலான எண்களுடன் தொடர்புடைய கணித செயல்பாடுகளையும் (அதிவேக, மடக்கை, முக்கோணவியல், முதலியன) பயன்படுத்தலாம்.
பின்வரும் உள்ளடக்கங்கள் மாதிரிக் குறியீட்டுடன் இங்கே விளக்கப்பட்டுள்ளன.
- சிக்கலான மாறிகளை உருவாக்கவும்
- உண்மையான மற்றும் கற்பனையான பகுதிகளைப் பெறுங்கள்:
real
,imag
பண்பு - இணைந்த சிக்கலான எண்களைப் பெறுங்கள்:
conjugate()
முறை - முழுமையான மதிப்பைப் பெறுங்கள் (அளவு):
abs()
செயல்பாடு (எ.கா. கணிதம், நிரலாக்கம், நிரலாக்கம்) - சரிவு (கட்டம்) பெறவும்:
math
,cmath
தொகுதி - துருவ ஒருங்கிணைப்பு மாற்றம் (துருவ வடிவ பிரதிநிதித்துவம்):
math
,cmath
தொகுதி - கலப்பு எண்களின் கணக்கீடு (நால்வகை, சக்திகள், சதுர வேர்கள்)
- சிக்கலான மாறிகளை உருவாக்கவும்
- கலப்பு எண்களின் உண்மையான மற்றும் கற்பனையான பகுதிகளைப் பெறுங்கள்:real,imagபண்பு
- இணைந்த சிக்கலான எண்களைப் பெறுங்கள்:conjugate()
- ஒரு கலப்பு எண்ணின் முழுமையான மதிப்பை (அளவை) பெறவும்:abs()
- ஒரு கலப்பு எண்ணின் சரிவை (கட்டம்) பெறவும்:math,cmathதொகுதி
- சிக்கலான எண்களின் துருவ ஒருங்கிணைப்பு மாற்றம் (துருவ முறையான பிரதிநிதித்துவம்):math,cmathதொகுதி
- கலப்பு எண்களின் கணக்கீடு (நால்வகை, சக்திகள், சதுர வேர்கள்)
சிக்கலான மாறிகளை உருவாக்கவும்
கற்பனை அலகை j ஆல் குறிக்கவும், பின்வருவனவற்றை எழுதவும், அது i அல்ல என்பதைக் கவனத்தில் கொள்ளவும்.
c = 3 + 4j
print(c)
print(type(c))
# (3+4j)
# <class 'complex'>
கற்பனையான பகுதி 1 ஆக இருந்தால், அதைத் தவிர்ப்பது பெயர் பிழையில் விளைகிறது. j என்ற பெயருடைய ஒரு மாறி முதலில் வரையறுக்கப்பட்டால், அது அந்த மாறியாகக் கருதப்படுகிறது.
1j
இதை வெளிப்படையாக இவ்வாறு கூற வேண்டும்.
# c = 3 + j
# NameError: name 'j' is not defined
c = 3 + 1j
print(c)
# (3+1j)
உண்மையான பகுதி 0 என்றால், அதைத் தவிர்க்கலாம்.
c = 3j
print(c)
# 3j
0 இன் கற்பனைப் பகுதியுடன் ஒரு சிக்கலான சிக்கலான வகையாக நீங்கள் ஒரு மதிப்பை வரையறுக்க விரும்பினால், 0 ஐ வெளிப்படையாக எழுதவும். கீழே விவரிக்கப்பட்டுள்ளபடி, சிக்கலான வகை மற்றும் முழு எண் வகை அல்லது மிதக்கும்-புள்ளி வகைக்கு இடையே செயல்பாடுகள் செய்யப்படலாம்.
c = 3 + 0j
print(c)
# (3+0j)
உண்மையான மற்றும் கற்பனையான பகுதிகளை மிதக்கும் புள்ளி மிதவை வகையாகக் குறிப்பிடலாம். அதிவேகக் குறியீடும் ஏற்கத்தக்கது.
c = 1.2e3 + 3j
print(c)
# (1200+3j)
இது “சிக்கலான (உண்மையான பகுதி, கற்பனை பகுதி)” போன்ற “சிக்கலான” வகையின் கட்டமைப்பாளரால் உருவாக்கப்படலாம்.
c = complex(3, 4)
print(c)
print(type(c))
# (3+4j)
# <class 'complex'>
கலப்பு எண்களின் உண்மையான மற்றும் கற்பனையான பகுதிகளைப் பெறுங்கள்:real,imagபண்பு
சிக்கலான சிக்கலான வகையின் உண்மையான மற்றும் கற்பனையான பகுதிகளை முறையே உண்மையான மற்றும் இமேக் பண்புகளுடன் பெறலாம். இரண்டும் மிதக்கும் புள்ளி மிதவை வகைகள்.
c = 3 + 4j
print(c.real)
print(type(c.real))
# 3.0
# <class 'float'>
print(c.imag)
print(type(c.imag))
# 4.0
# <class 'float'>
இது படிக்க மட்டுமே மற்றும் மாற்ற முடியாது.
# c.real = 5.5
# AttributeError: readonly attribute
இணைந்த சிக்கலான எண்களைப் பெறுங்கள்:conjugate()
கூட்டு சிக்கலான எண்களைப் பெற, conjugate() முறையைப் பயன்படுத்தவும்.
c = 3 + 4j
print(c.conjugate())
# (3-4j)
ஒரு கலப்பு எண்ணின் முழுமையான மதிப்பை (அளவை) பெறவும்:abs()
ஒரு கலப்பு எண்ணின் முழுமையான மதிப்பை (அளவை) பெற, உள்ளமைக்கப்பட்ட செயல்பாடு abs() ஐப் பயன்படுத்தவும்.
c = 3 + 4j
print(abs(c))
# 5.0
c = 1 + 1j
print(abs(c))
# 1.4142135623730951
ஒரு கலப்பு எண்ணின் சரிவை (கட்டம்) பெறவும்:math,cmathதொகுதி
கலப்பு எண்ணின் சரிவை (கட்டம்) பெற, கணிதம் அல்லது செமத் தொகுதியைப் பயன்படுத்தவும்.
செமத் தொகுதி என்பது சிக்கலான எண்களுக்கான கணிதச் சார்பு தொகுதி ஆகும்.
இது வரையறுத்தபடி தலைகீழ் தொடுகோடு செயல்பாட்டை math.atan2() கொண்டு கணக்கிடலாம் அல்லது சரிவை (கட்டம்) வழங்கும் cmath.phase() ஐப் பயன்படுத்தலாம்.
import cmath
import math
c = 1 + 1j
print(math.atan2(c.imag, c.real))
# 0.7853981633974483
print(cmath.phase(c))
# 0.7853981633974483
print(cmath.phase(c) == math.atan2(c.imag, c.real))
# True
இரண்டு சந்தர்ப்பங்களிலும், பெறக்கூடிய கோணத்தின் அலகு ரேடியன்கள் ஆகும். டிகிரிக்கு மாற்ற, math.degrees() ஐப் பயன்படுத்தவும்.
print(math.degrees(cmath.phase(c)))
# 45.0
சிக்கலான எண்களின் துருவ ஒருங்கிணைப்பு மாற்றம் (துருவ முறையான பிரதிநிதித்துவம்):math,cmathதொகுதி
மேலே குறிப்பிட்டுள்ளபடி, ஒரு கலப்பு எண்ணின் முழுமையான மதிப்பு (அளவு) மற்றும் சரிவு (கட்டம்) ஆகியவற்றைப் பெறலாம், ஆனால் cmath.polar() ஐப் பயன்படுத்தி, அவை ஒரு (முழுமையான மதிப்பு, சரிவு) டூபிளாகப் பெறலாம்.
c = 1 + 1j
print(cmath.polar(c))
print(type(cmath.polar(c)))
# (1.4142135623730951, 0.7853981633974483)
# <class 'tuple'>
print(cmath.polar(c)[0] == abs(c))
# True
print(cmath.polar(c)[1] == cmath.phase(c))
# True
துருவ ஆயத்தொலைவுகளிலிருந்து கார்ட்டீசியன் ஆயத்தொகுதிகளாக மாற்றுவது cmath.rect()ஐப் பயன்படுத்தி செய்யப்படுகிறது. cmath.rect(முழுமையான மதிப்பு, விலகல்) மற்றும் ஒத்த வாதங்கள் சமமான சிக்கலான சிக்கலான சிக்கலான வகையின் மதிப்புகளைப் பெற பயன்படுத்தப்படலாம்.
print(cmath.rect(1, 1))
# (0.5403023058681398+0.8414709848078965j)
print(cmath.rect(1, 0))
# (1+0j)
print(cmath.rect(cmath.polar(c)[0], cmath.polar(c)[1]))
# (1.0000000000000002+1j)
முழுமையான மதிப்புகள் மற்றும் சரிவு கோணங்களில் இருந்து cosine math.cos() மற்றும் sine math.sin() ஆகியவற்றால் கணக்கிடப்பட்ட முடிவுகளுக்கு உண்மையான மற்றும் கற்பனையான பகுதிகள் சமமானவை.
r = 2
ph = math.pi
print(cmath.rect(r, ph).real == r * math.cos(ph))
# True
print(cmath.rect(r, ph).imag == r * math.sin(ph))
# True
கலப்பு எண்களின் கணக்கீடு (நால்வகை, சக்திகள், சதுர வேர்கள்)
வழக்கமான எண்கணித ஆபரேட்டர்களைப் பயன்படுத்தி நான்கு எண்கணித செயல்பாடுகள் மற்றும் சக்தி கணக்கீடுகள் செய்யப்படலாம்.
c1 = 3 + 4j
c2 = 2 - 1j
print(c1 + c2)
# (5+3j)
print(c1 - c2)
# (1+5j)
print(c1 * c2)
# (10+5j)
print(c1 / c2)
# (0.4+2.2j)
print(c1 ** 3)
# (-117+44j)
சதுர மூலத்தை **0.5 உடன் கணக்கிடலாம், ஆனால் அது பிழையை அறிமுகப்படுத்துகிறது. cmath.sqrt() சரியான மதிப்பைக் கணக்கிடப் பயன்படுத்தலாம்.
print((-3 + 4j) ** 0.5)
# (1.0000000000000002+2j)
print((-1) ** 0.5)
# (6.123233995736766e-17+1j)
print(cmath.sqrt(-3 + 4j))
# (1+2j)
print(cmath.sqrt(-1))
# 1j
இது சிக்கலான வகைகள், எண்ணியல் வகைகள் மற்றும் மிதவை வகைகளுடன் எண்கணித செயல்பாடுகளையும் செய்ய முடியும்.
print(c1 + 3)
# (6+4j)
print(c1 * 0.5)
# (1.5+2j)