จำนวนเชิงซ้อนถูกสร้างขึ้นจากจำนวนจริง สามารถสร้างจำนวนเชิงซ้อนของ Python ได้โดยใช้คำสั่งการกำหนดโดยตรงหรือโดยใช้ฟังก์ชันเชิงซ้อน ()
จำนวนเชิงซ้อนซึ่งส่วนใหญ่ใช้ในกรณีที่เราใช้จำนวนจริงสองจำนวน ตัวอย่างเช่น วงจรไฟฟ้าที่กำหนดโดยแรงดัน (V) และกระแส (C) ใช้ในเรขาคณิต การคำนวณทางวิทยาศาสตร์ และแคลคูลัส
ไวยากรณ์
ซับซ้อน([จริง[, ภาพ]])
การสร้างจำนวนเชิงซ้อนอย่างง่ายใน python
>>> c =3 +6j>>> print(type(c))>>> print(c)(3+6j)>>>>>> c1 =complex(3) ,6)>>>> print(type(c1)) >>> print(c1)(3+6j)
จากผลลัพธ์ข้างต้น เราจะเห็นได้ว่าจำนวนเชิงซ้อนของหลามนั้นเป็นประเภทเชิงซ้อน จำนวนเชิงซ้อนแต่ละจำนวนประกอบด้วยส่วนจริงหนึ่งส่วนและส่วนจินตภาพหนึ่งส่วน
Python Complex Numbers- คุณลักษณะและฟังก์ชัน
>>> #จำนวนเชิงซ้อน:>>> c =(3 + 6j)>>>>>>> #ส่วนจริงของจำนวนเชิงซ้อน>>> print('Complex Number:Real Part is =', c. real )จำนวนเชิงซ้อน:ส่วนจริงคือ =3.0>>>>>> #จินตภาพส่วนหนึ่งของจำนวนเชิงซ้อน>>>> พิมพ์('จำนวนเชิงซ้อน:ส่วนจินตภาพคือ =', c. imag)จำนวนเชิงซ้อน:ส่วนจินตภาพคือ =6.0>>>>>> #คอนจูเกตของจำนวนเชิงซ้อน>>> print('Complex Number:conjugate Part =', c. conjugate())Complex Number:conjugate Part =(3-6j)
การคำนวณทางคณิตศาสตร์ของจำนวนเชิงซ้อน
เราสามารถคำนวณทางคณิตศาสตร์อย่างง่ายเกี่ยวกับจำนวนเชิงซ้อนได้:
>>> #จำนวนเชิงซ้อนตัวแรก>>> c1 =3 + 6j>>> #จำนวนเชิงซ้อนที่สอง>>> c2 =6 + 15j>>>>>> #Addition>>> print("การบวกของสอง จำนวนเชิงซ้อน =", c1 + c2) การบวกจำนวนเชิงซ้อนสองจำนวน =(9+21j)>>>>>> #Subtraction>>> print("การลบจำนวนเชิงซ้อนสองตัว =", c1 - c2) การลบของสองจำนวนเชิงซ้อน number =(-3-9j)>>>>>> #Multiplication>>> print("การคูณของจำนวนเชิงซ้อนสองตัว =", c1 * c2) การคูณของจำนวนเชิงซ้อนสองตัว =(-72+81j)>>>>>> #Division>>> print("หารสองจำนวนเชิงซ้อน =", c1 / c2) ส่วนของจำนวนเชิงซ้อนสองตัว =(0.4137931034482759-0.03448275862068964j)
อย่างไรก็ตาม จำนวนเชิงซ้อนไม่รองรับตัวดำเนินการเปรียบเทียบ เช่น <,>, <=, => และจะผ่านข้อความ TypeError:
>>> c2 <=c2Traceback (การโทรล่าสุดครั้งล่าสุด):ไฟล์ "" บรรทัดที่ 1 ใน c2 <=c2TypeError:'<=' ไม่รองรับระหว่างอินสแตนซ์ของ 'complex' และ 'ซับซ้อน'
โมดูล Python cmath
โมดูล Python cmath ให้การเข้าถึงฟังก์ชันทางคณิตศาสตร์สำหรับจำนวนเชิงซ้อน มาดูคุณสมบัติที่สำคัญบางอย่างของจำนวนเชิงซ้อนโดยใช้ฟังก์ชันโมดูลคณิตศาสตร์กัน
เฟสของจำนวนเชิงซ้อน
เฟสของจำนวนเชิงซ้อนคือมุมระหว่างแกนจริงกับเวกเตอร์ที่แทนส่วนจินตภาพ
เฟสที่ส่งคืนโดยโมดูลคณิตศาสตร์และ cmath อยู่ในหน่วยเรเดียน และเราใช้ฟังก์ชัน numpy.degrees() เพื่อแปลงเป็นองศา
นำเข้า cmath, คณิตศาสตร์, numpyc =4+ 4j# phasephase =cmath.phase(c)print('4+ 4j Phase =', phase)print('Phase in Degrees =', numpy.degrees(phase)) print('-4-4j Phase =', cmath.phase(-4-4j), 'radians. Degrees =', numpy.degrees(cmath.phase(-4-4j)))# เราสามารถรับเฟสได้โดยใช้คณิตศาสตร์ .atan2() ฟังก์ชั่น tooprint('ขั้นตอนของจำนวนเชิงซ้อนโดยใช้ math.atan2() =', math.atan2(2, 1))
ผลลัพธ์
4+ 4j Phase =0.7853981633974483Phase in Degrees =45.0-4-4j Phase =-2.356194490192345 เรเดียน องศา =-135.0 เฟสตัวเลขที่ซับซ้อนโดยใช้ math.atan2() =1.1071487177940904
ค่าคงที่โมดูล cmath
มีค่าคงที่สองสามค่าในโมดูล cmath ที่ใช้ในการคำนวณจำนวนเชิงซ้อน:
import cmathprint('π =', cmath.pi)print('e =', cmath.e)print('tau =', cmath.tau)print('ค่าอินฟินิตี้บวก =', cmath.inf)print ('บวกเชิงซ้อนอินฟินิตี้ =', cmath.infj)print('NaN =', cmath.nan)print('NaN Complex =', cmath.nanj)
ผลลัพธ์
π =3.141592653589793e =2.718281828459045tau =6.283185307179586 อินฟินิตี้บวก =infPositive Complex อินฟินิตี้ =infjNaN =nanNaN คอมเพล็กซ์ =nanj
ฟังก์ชั่นเปิดเครื่องและบันทึก
โมดูล cmath() มีฟังก์ชันที่เป็นประโยชน์สำหรับการดำเนินการลอการิทึมและกำลัง:
นำเข้า cmathc =1 + 2jprint('e^c =', cmath.exp(c))print('log2(c) =', cmath.log(c, 2))print('log10(c) =', cmath.log10(c))print('sqrt(c) =', cmath.sqrt(c))
ผลลัพธ์
e^c =(-1.1312043837568135+2.4717266720048188j)log2(c) =(1.1609640474436813+1.5972779646881088j)log10(c) =(0.3494850021680094+0.480828578784234j)sqrt(c) =(1.27201964951406957+0.78615)>ฟังก์ชันตรีโกณมิติ
นำเข้า cmathc =2 + 4jprint('arc sine value:\n ', cmath.asin(c))print('arc cosine value :\n', cmath.acos(c))print('arc tangent value ของจำนวนเชิงซ้อน c :\n', cmath.atan(c))print('ค่าไซน์:\n', cmath.sin(c))print('ค่าโคไซน์:\n', cmath.cos(c)) print('tangent value:\n', cmath.tan(c))ผลลัพธ์
ค่าไซน์อาร์ค:(0.4538702099631225+2.198573027920936j)ค่าอาร์คโคไซน์ :(1.1169261168317741-2.198573027920936j)ค่าอาร์คแทนเจนต์ของจำนวนเชิงซ้อน c :(1.4670482135772953+0.20058661813123432j)3184176611127) ค่าไซน์ -11.36423470640106-24.814651485634187j)ค่าแทนเจนต์:(-0.0005079806234700387+1.0004385132020523j)ฟังก์ชันไฮเปอร์โบลิก
นำเข้า cmathc =2 + 4jprint('ค่าไฮเปอร์โบลิกไซน์ผกผัน:\n', cmath.asinh(c))print('ค่าไฮเปอร์โบลิกโคไซน์ผกผัน:\n', cmath.acosh(c))print('Inverse ค่าไฮเปอร์โบลิกแทนเจนต์:\n', cmath.atanh(c))print('ค่าไฮเปอร์โบลิกไซน์:\n', cmath.sinh(c))print('ค่าไฮเปอร์โบลิกโคไซน์:\n', cmath.cosh(c) )print('ค่าไฮเปอร์โบลิกแทนเจนต์:\n', cmath.tanh(c))ผลลัพธ์
ค่าไฮเปอร์โบลิกไซน์ผกผัน:(2.183585216564564+1.096921548830143j)ค่าไฮเปอร์โบลิกโคไซน์ผกผัน:(2.198573027920936+1.1169261168317741j)ค่าไฮเปอร์โบลิกแทนเจนต์ผกผัน:(0.09641562020299617+1.3715351039616865j)ค่าไฮเปอร์โบลิก:16947jperbolic) :(-2.4591352139173837-2.744817006792154j)ค่าไฮเปอร์โบลิกแทนเจนต์:(1.0046823121902348+0.03642336924740368j)