Computer >> 컴퓨터 >  >> 프로그램 작성 >> 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
>>> type(x)

복소수 개체에는 실수 속성이 두 개 있습니다. (실제 구성 요소를 반환) 및 img (허수 단위 j를 제외한 허수 구성 요소를 반환)

>>> x.real
2.0
>>> x.imag
3.0

conjugate()도 있습니다. 방법. 복소수의 켤레는 부호가 반대인 실수 성분과 허수 성분이 같습니다. 따라서 2+3j의 켤레는 2-3j입니다.

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

파이썬에는 또한 복소수 객체를 반환하는 내장 complex() 함수가 있습니다. 이 함수는 실수 및 허수 성분에 대해 각각 하나씩 두 개의 매개변수를 취합니다. 모든 숫자 유형(int, float 또는 complex)일 수 있습니다.

>>> complex(9,5)
(9+5j)
>>> complex(-6, -2.5)
(-6-2.5j)
>>> complex(1.5j, 2.5j)
(-2.5+1.5j)

매개변수가 하나만 주어지면 실수 성분으로 처리되고 허수 성분은 0으로 간주됩니다.

>>> complex(15)
(15+0j)

함수는 숫자 표현을 포함하는 경우 문자열을 인수로 사용할 수도 있습니다.

>>> complex('51')
(51+0j)
>>> complex('1.5')
(1.5+0j)

복소수의 덧셈과 뺄셈은 정수나 실수의 덧셈과 뺄셈과 비슷합니다. 실수부와 허수부가 따로따로 가감됩니다.

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

곱셈의 경우 복소수를 이항으로 간주하고 첫 번째 숫자의 각 항에 두 번째 숫자의 각 항을 곱합니다.

a = 6+4j
b = 3+2j
c = a*b
c = (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

/b를 계산하고 싶습니다.

1+2j인 분모의 켤레 구하기

분자와 분모에 켤레 곱하기 나눗셈의 결과를 얻기 위한 분모의

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

다음 Python 콘솔 세션은 위의 처리를 확인합니다.

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

cmath 모듈

파이썬 표준 라이브러리의 수학 모듈에 정의된 수학 함수는 부동 소수점 숫자를 처리합니다. 복소수의 경우 Python 라이브러리에 cmath 모듈이 포함되어 있습니다.

복소수 z =x+yj는 데카르트 표현입니다. 내부적으로는 모듈러스 r(내장 abs() 함수에 의해 반환됨)과 위상각 Φ(파이로 발음됨)로 극좌표로 표현되며, 이는 x축과 x를 다음과 연결하는 선 사이의 라디안 단위입니다. 기원. 다음 다이어그램은 복소수의 극좌표 표현을 보여줍니다 -

복소수용 파이썬 프로그램

cmath 모듈의 기능을 사용하면 데카르트 표현을 극 표현으로 또는 그 반대로 변환할 수 있습니다.

극() - 이 함수는 복소수의 데카르트 표기법의 극좌표 표현을 반환합니다. 반환 값은 모듈러스와 위상으로 구성된 튜플입니다.

>>> import cmath
>>> a = 2+4j
>>> cmath.polar(a)
(4.47213595499958, 1.1071487177940904)

모듈러스는 abs() 함수에 의해 반환됩니다.

>>> abs(a)
4.47213595499958

단계() − 이 함수는 x축과 a를 결합하는 세그먼트 사이의 반시계 방향 각도를 반환합니다. 원산지. 각도는 라디안으로 표시되며 π와 -π 사이입니다.

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

직사각형() − 이 함수는 극성 형식, 즉 모듈러스 및 위상으로 표현된 복소수의 데카르트 표현을 반환합니다.

>>> cmath.rect(4.47213595499958, 1.1071487177940904)
(2.0000000000000004+4j)

cmath 모듈은 math 모듈에 정의된 모든 수학 함수에 대한 대안을 포함합니다. 아래와 같이 삼각함수와 대수함수가 있습니다 -

cmath.sin() − 이 함수는 라디안으로 표시되는 위상각에 대한 사인 삼각비를 반환합니다.

>>> import cmath
>>> a = 2+4j
>>> p = cmath.phase(a)
>>> cmath.sin(p)
(0.8944271909999159+0j)

유사하게, 다른 비율 cos(), tan(), asin(), acos() 및 atan()에 대한 함수는 cmath 모듈에 정의되어 있습니다.

cmath.exp() − math.exp()와 유사하게 이 함수는 x가 복소수이고 e가 2.71828인 경우 ex를 반환합니다.

>>> 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 모듈에 정의된 다양한 기능도 살펴보았습니다.