Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python สำหรับจำนวนเชิงซ้อน


มีรากจริงสองรากของจำนวนบวกเสมอ ตัวอย่างเช่น ถ้า x2 คือ 25 x คือ ±5 อย่างไรก็ตาม ถ้า x2 คือ -25 รากจริงไม่มีอยู่ สแควร์รูทของจำนวนลบใดๆ คือสแควร์รูทของค่าสัมบูรณ์คูณด้วยหน่วยจินตภาพ j =√−1

ดังนั้น √−25 =√25 𝑋−1 =√25 × √−1 =5j

จำนวนเชิงซ้อนประกอบด้วยองค์ประกอบจริงและจินตภาพ มันถูกแสดงเป็น x+yj ทั้ง x และ y เป็นจำนวนจริง Y คูณด้วยหน่วยจินตภาพสร้างส่วนจินตภาพของจำนวนเชิงซ้อน

ตัวอย่าง:3+2j, 10-5.5J, 9.55+2.3j, 5.11e-6+4j

Python มีประเภทข้อมูลที่ซับซ้อนในตัว วัตถุจำนวนเชิงซ้อนสามารถสร้างได้โดยการแทนค่าตามตัวอักษรดังนี้ −

>>> x =2+3j>>> พิมพ์(x)

วัตถุจำนวนเชิงซ้อนมีสองแอตทริบิวต์ จำนวนจริง (ส่งคืนองค์ประกอบจริง) และ ภาพ (ส่งคืนองค์ประกอบจินตภาพโดยไม่รวมหน่วยจินตภาพ j)

>>> x.real2.0>>> x.imag3.0

นอกจากนี้ยังมี conjugate() กระบวนการ. คอนจูเกตของจำนวนเชิงซ้อนมีส่วนประกอบจริงและองค์ประกอบจินตภาพเหมือนกันกับเครื่องหมายตรงข้าม ดังนั้นคอนจูเกตของ 2+3j คือ 2-3j

>>> x.conjugate()(2-3j)

Python ยังมีฟังก์ชัน complex() ในตัวซึ่งส่งคืนอ็อบเจกต์จำนวนเชิงซ้อน ฟังก์ชันนี้ใช้พารามิเตอร์สองตัว อย่างละตัวสำหรับองค์ประกอบจริงและจินตภาพ อาจเป็นตัวเลขประเภทใดก็ได้ (int, float หรือ complex)

>>> คอมเพล็กซ์(9,5)(9+5j)>>> คอมเพล็กซ์(-6, -2.5)(-6-2.5j)>>> คอมเพล็กซ์(1.5j, 2.5j)(-2.5+ 1.5j)

หากให้พารามิเตอร์เพียงตัวเดียว จะถือว่าเป็นองค์ประกอบจริง องค์ประกอบจินตภาพจะถือว่าเป็นศูนย์

>>> ซับซ้อน(15)(15+0j)

ฟังก์ชันนี้ยังสามารถรับสตริงเป็นอาร์กิวเมนต์ได้หากมีการแสดงตัวเลข

>>> ซับซ้อน('51')(51+0j)>>> ซับซ้อน('1.5')(1.5+0j)

การบวกและการลบของจำนวนเชิงซ้อนนั้นคล้ายกับจำนวนเต็มหรือทศนิยม ส่วนจริงและส่วนจินตภาพมีการบวก/ลบแยกกัน

>>> a =6+4j>>> b =3+6j>>> a+b(9+10j)>>> a-b(3-2j)

สำหรับการคูณ ให้พิจารณาจำนวนเชิงซ้อนเป็นทวินามและคูณแต่ละเทอมในจำนวนแรกด้วยแต่ละเทอมในจำนวนที่สอง

a =6+4jb =3+2jc =a*bc =(6+4j)*(3+2j)c =(18+12j+12j+8*-1)c =10+24j
>

ในคอนโซล Python ผลลัพธ์จะตรวจสอบสิ่งนี้ −

>>> a =6+4j>>> b =3+2j>>> a*b(10+24j)

การหารจำนวนเชิงซ้อนทำได้ดังนี้ -

ให้ตัวเลขทั้งสองเป็น

a =2+4j

b =1-2j

และเราต้องการคำนวณ a/b

รับคอนจูเกตของตัวส่วนซึ่งก็คือ 1+2j

คูณตัวเศษและส่วนด้วย คอนจูเกต ของตัวส่วนเพื่อให้ได้ผลหาร

c =a/bc =(2+4j)*(1+2j)/(1-2j)(1+2j)c =(2+4j+4j+8*-1)/(1+2j) -2j-4*-1)c =(-6+8j)/5c =-1.2+1.6j

การติดตามเซสชันคอนโซล Python จะยืนยันการรักษาด้านบน

>>> a =2+4j>>> b =1-2j>>> a/b(-1.2+1.6j)

โมดูล cmath

ฟังก์ชันทางคณิตศาสตร์ที่กำหนดไว้ในโมดูลคณิตศาสตร์ของเลขทศนิยมของกระบวนการไลบรารีมาตรฐานของ Python สำหรับจำนวนเชิงซ้อน ไลบรารี Python มีโมดูล cmath

จำนวนเชิงซ้อน z =x+yj คือ การแทนค่าคาร์ทีเซียน มันถูกแสดงภายในในพิกัดเชิงขั้วด้วยโมดูลัส r (ตามที่ส่งคืนโดยฟังก์ชัน abs() ในตัว) และมุมเฟส Φ (ออกเสียงว่า phi) ซึ่งเป็นมุมทวนเข็มนาฬิกาในหน่วยเรเดียน ระหว่างแกน x และเส้นเชื่อม x กับ ต้นทาง. แผนภาพต่อไปนี้แสดงการแทนค่าเชิงขั้วของจำนวนเชิงซ้อน -

โปรแกรม Python สำหรับจำนวนเชิงซ้อน

ฟังก์ชันในโมดูล cmath ช่วยให้สามารถแปลงการแทนค่าคาร์ทีเซียนเป็นการแทนค่าเชิงขั้วและในทางกลับกันได้

ขั้ว() − ฟังก์ชันนี้คืนค่าการแสดงขั้วของสัญกรณ์คาร์ทีเซียนของจำนวนเชิงซ้อน ค่าที่ส่งคืนคือทูเพิลที่ประกอบด้วยโมดูลัสและเฟส

>>> นำเข้า cmath>>> a =2+4j>>> cmath.polar(a)(4.47213595499958, 1.1071487177940904)

โปรดทราบว่าโมดูลัสถูกส่งกลับโดยฟังก์ชัน abs()

>>> abs(a)4.47213595499958

เฟส() − ฟังก์ชันนี้จะคืนค่ามุมทวนเข็มนาฬิการะหว่างแกน x และการรวมส่วน a ที่มีต้นกำเนิด มุมจะแสดงเป็นเรเดียนและอยู่ระหว่าง π และ -π

>>> cmath.phase(a)1.1071487177940904z =x+yjΦ

rect() − ฟังก์ชันนี้คืนค่าการแทนค่าคาร์ทีเซียนของจำนวนเชิงซ้อนที่แสดงในรูปแบบขั้ว เช่น ในโมดูลัสและเฟส

<ก่อนหน้า>>>> cmath.rect(4.47213595499958, 1.1071487177940904)(2.0000000000000004+4j)

โมดูล cmath มีทางเลือกอื่นสำหรับฟังก์ชันทางคณิตศาสตร์ทั้งหมดที่กำหนดไว้ในโมดูลคณิตศาสตร์ มีฟังก์ชันตรีโกณมิติและลอการิทึมตามที่อธิบายไว้ด้านล่าง -

cmath.sin() − ฟังก์ชันนี้ส่งคืนอัตราส่วนตรีโกณมิติไซน์สำหรับมุมเฟสที่แสดงเป็นเรเดียน

>>> นำเข้า cmath>>> a =2+4j>>> p =cmath.phase(a)>>> cmath.sin(p)(0.8944271909999159+0j)

ฟังก์ชันสำหรับอัตราส่วนอื่นๆ cos(), tan(), asin(), acos() และ atan() ถูกกำหนดไว้ในโมดูล cmath

cmath.exp() − คล้ายกับ math.exp() ฟังก์ชันนี้จะคืนค่า ex โดยที่ x เป็นจำนวนเชิงซ้อน และ e คือ 2.71828

>>> cmath.exp(a)(-1.1312043837568135+2.4717266720048188j)

cmath.log10() − ฟังก์ชันนี้คำนวณค่าบันทึกของจำนวนเชิงซ้อนที่มีฐานเป็น 10

>>> a =1+2j>>> cmath.log10(a)(0.3494850021680094+0.480828578784234j)

cmath.sqrt() − ฟังก์ชันนี้จะคืนค่ารากที่สองของจำนวนเชิงซ้อน

>>> cmath.sqrt(a)(1.272019649514069+0.7861513777574233j)

ในบทความนี้ เราได้เรียนรู้คุณลักษณะที่สำคัญของชนิดข้อมูลจำนวนเชิงซ้อนของ Python และวิธีการคำนวณทางคณิตศาสตร์ นอกจากนี้เรายังได้สำรวจฟังก์ชันต่างๆ ที่กำหนดไว้ในโมดูล cmath