Computer >> Máy Tính >  >> Lập trình >> Python

Số phức trong Python?

Một số phức được tạo ra từ các số thực. Số phức trong Python có thể được tạo bằng cách sử dụng câu lệnh gán trực tiếp hoặc bằng cách sử dụng hàm complex ().

Số phức được sử dụng chủ yếu khi chúng ta đang sử dụng hai số thực. Ví dụ, một mạch điện được xác định bằng điện áp (V) và dòng điện (C) được sử dụng trong hình học, tính toán khoa học và giải tích.

Cú pháp

 phức tạp ([thực [, tưởng tượng]]) 

Tạo một số phức đơn giản trong python

>>> c =3 + 6j>>> print (type (c)) >>> print (c) (3 + 6j)>>>>>> c1 =complex (3 , 6)>>> print (type (c1)) >>> print (c1) (3 + 6j) 

Từ kết quả trên, chúng ta có thể thấy số phức trong python thuộc loại phức. Mỗi số phức bao gồm một phần thực và một phần ảo.

Số phức trong Python- Thuộc tính và hàm

>>> #Complex Number:>>> c =(3 + 6j)>>>>>> #Real Phần của số phức>>> print ('Số phức:Phần thực là =', c. real ) Số phức:Phần thực là =3.0>>>>>> #Imaginary Phần của số phức>>> print ('Số phức:Phần ảo là =', c. Virtual) Số phức:Phần ảo là =6.0>>>>>> #Conjugate of complex number>>> print ('Phức hợp:Phần liên hợp =', c. Liên hợp ()) Số Phức hợp:Phần liên hợp =(3-6j) 

Các phép tính toán học về số phức

Chúng ta có thể thực hiện các phép tính toán học đơn giản trên các số phức:

>>> # số phức đầu tiên>>> c1 =3 + 6j>>> # Số phức thứ hai>>> c2 =6 + 15j>>>>>> #Addition>>> print ("Phép cộng hai số phức =", c1 + c2) Phép cộng hai số phức =(9 + 21j)>>>>>> #Subtraction>>> print (" Phép trừ hai số phức =", c1 - c2) Phép trừ hai số phức number =(-3-9j)>>>>>> #Multiplication>>> print ("Phép nhân hai số phức =", c1 * c2) Phép nhân hai số phức =(-72 + 81j)>>>>>> #Division>>> print ("Phép chia hai số phức =", c1 / c2) Phép chia hai số phức =(0,4137931034482759-0,03448275862068964j) 

Tuy nhiên, các số phức không hỗ trợ các toán tử so sánh như <,>, <=, => và nó sẽ thông qua thông báo TypeError:

>>> c2 <=c2Traceback (lần gọi gần đây nhất):Tệp "", dòng 1, trong  c2 <=c2TypeError:'<=' không được hỗ trợ giữa các phiên bản của 'complex' và 'phức tạp' 

Mô-đun cmath Python

Mô-đun cmath trong Python cung cấp quyền truy cập vào các hàm toán học cho các số phức. Hãy cùng xem xét một số tính năng quan trọng của số phức bằng cách sử dụng hàm mô-đun toán học.

Giai đoạn của số phức

Pha của một số phức là góc giữa trục thực và vectơ biểu diễn phần ảo.

Pha được trả về bởi mô-đun toán học và cmath tính bằng radian và chúng tôi sử dụng hàm numpy.degrees () để chuyển đổi nó thành độ.

 import cmath, math, 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), 'radian. Degrees =', numpy.degrees (cmath.phase (-4-4j))) # chúng ta có thể lấy phase bằng toán học .atan2 () function tooprint ('Giai đoạn số phức sử dụng math.atan2 () =', math.atan2 (2, 1)) 

Kết quả

 4+ 4j Pha =0,7853981633974483 Giai đoạn theo độ =45,0-4-4j Pha =-2,356194490192345 radian. Độ =-135.0 Pha số đơn giản sử dụng math.atan2 () =1.1071487177940904 

hằng số mô-đun cmath

Có một số hằng số có sẵn trong mô-đun cmath được sử dụng trong các phép tính số phức:

 import cmathprint ('π =', cmath.pi) print ('e =', cmath.e) print ('tau =', cmath.tau) print ('Positive infinity =', cmath.inf) print ('Phức hợp dương infinity =', cmath.infj) print ('NaN =', cmath.nan) print ('NaN Complex =', cmath.nanj) 

Kết quả

 π =3,141592653589793e =2,718281828459045tau =6,283185307179586Positive infinity =infPositive Complex infinity =infjNaN =nanNaN Complex =nanj 

Chức năng nguồn và nhật ký

Mô-đun cmath () cung cấp một số hàm hữu ích cho các phép toán lôgarit và lũy thừa:

 import 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)) 

Kết quả

 e ^ c =(-1.1312043837568135 + 2.4717266720048188j) log2 (c) =(1.1609640474436813 + 1.5972779646881088j) log10 (c) =(0.3494850021680094 + 0.48082857871384234j) sqrt (c)> 

Hàm lượng giác

 import cmathc =2 + 4jprint ('arc sin value:\ n', cmath.asin (c)) print ('arc cosine value:\ n', cmath.acos (c)) print ('arc tangent value của số phức c:\ n ', cmath.atan (c)) print (' sin value:\ n ', cmath.sin (c)) print (' cosine value:\ n ', cmath.cos (c)) print ('Giá trị tiếp tuyến:\ n', cmath.tan (c)) 

Kết quả

 giá trị sin cung:(0.4538702099631225 + 2.198573027920936j) giá trị cosin cung:(1.1169261168317741-2.198573027920936j) Giá trị tiếp tuyến cung của số phức c:(1.4670482135772953 + 0.2005866241312354891138-11 giá trị sin :( -11.36423470640106-24.814651485634187j) Giá trị tiếp tuyến:(- 0.0005079806234700387 + 1.0004385132020523j) 

Hàm Hyperbolic

 import cmathc =2 + 4jprint ('Inverse hyperbolic sin:\ n', cmath.asinh (c)) print ('Inverse hyperbolic cosine value:\ n', cmath.acosh (c)) print ('Inverse giá trị tiếp tuyến hyperbolic:\ n ', cmath.atanh (c)) print (' Giá trị sin hyperbol:\ n ', cmath.sinh (c)) print (' Giá trị cosin hyperbol:\ n ', cmath.cosh (c) ) print ('Giá trị tiếp tuyến hyperbol:\ n', cmath.tanh (c)) 

Kết quả

 Giá trị sin hyperbol nghịch đảo:(2,183585216564564 + 1,096921548830143j) Giá trị cosin hyperbol nghịch đảo:(2,198573027920936 + 1,1169261168317741j) Giá trị tiếp tuyến hyperbol nghịch đảo:(0,09641562020299617 + 1,37200823827827827 giá trị cosinj39616 - 1,37200827827827827827827827827827827827827827827847 :(- 2.4591352139173837-2.744817006792154j) Giá trị tiếp tuyến của hyperbol:(1.0046823121902348 + 0.03642336924740368j)