• 검색 결과가 없습니다.

복소수의 4칙 연산

N/A
N/A
Protected

Academic year: 2022

Share "복소수의 4칙 연산"

Copied!
23
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

Python과 함께 배우는 신호 해석

제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

박섭형

한림대학교 전자공학과

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 1

(2)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

배울 내용

복소수의 기본 개념 복소수의 표현 오일러 (Euler) 공식 복소수의 대수 연산 1의 N 승근

Python에서 복소수 다루기

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 2

(3)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복소수의 4칙 연산

복소수의 덧셈과 뺄셈에는 직각좌표계 표현을 사용하고, 곱셈과 나눗셈에는 극좌표 표현을 사용하는 것이 편리하다.

두 복소수 z1= a + jb = r1e1와 z2= c + jd = r2e2에 대한 사칙 연산은 다음과 같다.

(1) 덧셈 : z1+ z2= a + jb + c + jd = (a + c) + j(b + d)

z1+ z2는 벡터 z1과 z2를 두 변으로 갖는 평행사변형의 대각선에 해당한다.

ℜe{z}

ℑm{z}

z1=a + jb z2=c + jd

0

z = z1+z2

a

c a + c

b d b + d

그림 2.1:두 복소수의 덧셈을 설명하는 그림.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 3

(4)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복소수의 4칙 연산

(2) 뺄셈 : z1− z2= a + jb− (c + jd) = (a − c) + j(b − d) z1− z2는 z1−z2의 덧셈으로 이해할 수 있다.

ℜe{z}

ℑm{z}

z1=a + jb z2=c + jd

−z2=−c − jd 0

z = z1− z2

a

−c ac− c

b d

−d b− d

그림 2.2:두 복소수의 뺄셈을 설명하는 그림.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 4

(5)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복소수의 4칙 연산

(3) 곱셈 :

직각좌표계 표현을 사용하여 두 복소수의 곱셈을 계산하면 다음과 같다.

z1z2 = (a + jb)(c + jd)

= ac + jad + jbc− bd

= (ac− bd) + j(ad + bc)

극좌표계 표현을 사용하여 두 복소수의 곱셈을 계산하면 다음과 같다.

z1z2 = r1e1r2e2= r1r2ej(θ12)

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 5

(6)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복소수의 4칙 연산

ℜe{z}

ℑm{z}

z1= r1e1

r1 z2= r2e2

r2

θ1 θ2

θ = θ1+ θ2 r = r1r2

0

z = z1· z2= r1r2ej(θ12)

그림 2.3:두 복소수의 곱셈을 설명하는 그림.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 6

(7)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복소수의 4칙 연산

(4) 나눗셈 :

직각좌표계 표현을 사용하여 두 복소수의 나눗셈을 계산하면 다음과 같다.

z1

z2

= z1

z2

z2 z2

= a + jb c + jd·c− jd

c− jd

= (a + jb)(c− jd)

(c + jd)(c− jd) (2.31)

= (ac + bd) + j(bc− da) c2+ d2

= ac + bd

c2+ d2 + jbc− da c2+ d2

극좌표계 표현을 사용하여 두 복소수의 나눗셈을 계산하면 다음과 같다.

z1

z2

= r1e1 r2e2 =r1

r2

ej(θ1−θ2)

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 7

(8)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복소수의 4칙 연산

ℜe{z}

ℑm{z}

z1= r1e1 r1

z2= r2e2 r2

θ1 θ2

θ = θ1− θ2

r =r1 r2 0

z =z1 z2=r1

r2ej(θ1−θ2)

그림 2.4:두 복소수의 나눗셈을 설명하는 그림.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 8

(9)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

켤레 (Conjugate) 복소수

z = a + jb = re일 때, z 의 켤레 복소수를 z라 하며, z= a− jb = re−jθ이다.

또한 (z)= z이다. 다음 그림은 복소수 z 와 z 의 켤레 복소수 z를 설명하는 그림이다.

ℜe{z}

ℑm{z} z = a + jb = re r

z=a− jb = re−jθ r

θ

−θ 0

그림 2.5:복소수 z 와 z 의 켤레 복소수 z를 설명하는 그림.

복소수 z 의 켤레 복소수는 실수축을 중심으로 z 와 대칭 위치에 있다. 즉, 서로 켤레인 두 복소수는 크기가 같고 각도만 부호가 반대이다.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 9

(10)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복수소의 제곱

허수 j 의 거듭 제곱은 다음과 같다.

j0= 1. (2.32)

j1= j. (2.33)

j2 =−1. (2.34)

j3= j2· j = −j. (2.35)

j4= j3· j = −j · j = −(−1) = 1. (2.36) 즉, 임의의 정수 k 에 대해서 다음 관계식이 성립한다.

j4k= 1. (2.37)

j4k+1= j. (2.38)

j4k+2=−1. (2.39)

j4k+3=−j. (2.40)

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 10

(11)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복수소의 제곱

ℜe{z}

ℑm{z}

0

j4k= 1 j4k+1= j

j4k+2=−1

j4k+3=−j

그림 2.6:j 의 정수 제곱의 그래프.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 11

(12)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복수소의 제곱

복소수 z = re와 정수 k 에 대해서 zk은 다음과 같이 표현된다.

zk= (

re)k

= rkejkθ. (2.41)

ℜe{z}

ℑm{z}

0

z0= 1 z1 z2 z3 z4

z5

z6

z7 z8 z9

θ θ θ θ θ θ

θ θ θ

(a) z = 0.95eπ5일 때.

ℜe{z}

ℑm{z}

0

z0= 1 z1 z2 z3

z4

z5

z6

z7 z8

z9 θ

θ θ θ θ θ

θ θ θ

(b) z = 1.05eπ5일 때.

그림 2.7:복소수의 거듭 제곱의 그래프.

그림 2.7 (a) 의 경우에는 복소수 z 의 크기가 1보다 작기 때문에 k 가 증가할수록 zk의 크기가 감소하고, (b) 의 경우에는 복소수 z 의 크기가 1보다 크기 때문에 k 가 증가할수록 zk의 크기가 증가하는 것을 볼 수 있다.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 12

(13)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

복수소의 제곱

z1 = 0.95ejπ5, z2= 1.05ejπ5라 하고, x1[n] = zn1, x2[n] = zn2이라고 하자. x1[n]x2[n]의 그래프를 3 차원 공간에서 그려보면 다음과 같다.

(a) x1[n] = (

0.95eπ5

)n (b) x2[n] = (

1.05eπ5 )n

그림 2.8:복소수의 거듭 제곱 시퀀스의 그래프.

이 그림을 n 축을 정면으로 오게 해서 복소수 평면으로 투영을 하면 그림 2.7과 같다.한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 13

(14)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

1의 N 승근

다음과 같은 복소 방정식의 해를 구해보자.

zN= 1, (2.42)

여기에서 N 은 정수이다.

이 방정식의 해를 구하기 전에 다음의 관계식을 이해해야 한다.

1 = ej2πn, (2.43) 여기에서 n 은 정수이다.

식 (2.12) 의 해는 다음과 같은 방법으로 구할 수 있다.

z = re라고 하면, zN= (re)N

= rNejNθ이 되므로, 식 (2.12)는 다음과 같이 쓸 수 있다.

rNejNθ= ej2πn. (2.44)

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 14

(15)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

1의 N 승근

이 식이 성립하기 위해서는 rN= 1과 Nθ = 2πn 이 되어야 하므로, 다음 두 식이 성립한다.

r = 1, (2.45)

θ =

Nn, (2.46)

여기에서 n = 0, 1,· · · , N − 1이다.

따라서 식 (2.12) 의 해는 다음과 같은 N 개의 복소수이다.

z = ejNn= (

ejN)n

, n = 0, 1,· · · , N − 1. (2.47)

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 15

(16)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

1의 N 승근

예제 2.1

다음 z 에 대한 방정식의 해를 극좌표형식으로 구하라.

z5= 1. (2.48)

이 방정식의 해는 모두 5 개로, zn= ejNn, n = 0, 1, 2, 3, 4이다.

ℜe{z}

ℑm{z}

0

z1= ej5

z21= ej5

z31= ej5

z14= ej5 z51= 1

(a) z1= e5 .

ℜe{z}

ℑm{z}

0 z2= ej5

z22= ej5

z23= ej12π5

z42= ej16π5

z52= 1

(b) z2 = e5 .

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 16

(17)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

1의 N 승근

ℜe{z}

ℑm{z}

0

z3= ej5

z32= ej5

z33= ej12π5

z43= ej16π5

z35= 1

(c) z2= e5.

ℜe{z}

ℑm{z}

0

z4= ej5

z24= ej5

z34= ej12π5

z44= ej16π5

z54= 1

(d) z4 = e5 .

그림 2.9:z5= 1의 해 중에서 z0= 1을 제외한 나머지 네 개의 거듭 제곱의 그림.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 17

(18)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

Python에서 복소수 다루기 예

>>> z1 = 1 + 1j; z2 = 2 - 1j

>>> z1+z2 (3+0j)

>>> z1-z2 (-1+2j)

>>> z1*z2 (3+1j)

>>> z1/z2 (0.2+0.6j)

>>> z1.conjugate() (1-1j)

>>> z2.real 2.0

>>> z2.imag -1.0

>>> abs(z1) 1.4142135623730951

>>>

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 18

(19)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

complex() 함수

complex() 함수는 실수를 복소수로 변환하는 함수이다.

>>> complex(3) (3+0j)

>>> complex(3,4) (3+4j)

>>> a=3

>>> b=4

>>> complex(3) (3+0j)

>>> complex(a) (3+0j)

>>> complex(a,b) (3+4j)

>>>

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 19

(20)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

cmath 모듈 이용하기

cmath 모듈은 복소수와 관련된 함수와 π 와 e 상수를 제공하는 모듈이다.

polar() 함수 : 직각좌표 형식의 복수소를 극좌표 형식의 복소수로 바꾸어 실수부와 허수부를 리스트로 반환하는 함수

rect(,) 함수 : 두 개의 매개 변수를 각각 크기와 위상으로 받아들여 직각좌표 형식의 복소수로 반환해 주는 함수

phase 함수 : 직각좌표 형식의 복소수의 위상을 계산하는 함수 이 세함수에 사용되는 매개 변수와 반환값은 모두 radians

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 20

(21)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

cmath 모듈 이용 예

>>> import cmath

>>> z1 = 1 + 1j

>>> z2 = 2 - 1j

>>> z3 = cmath.polar(z1)

>>> z3

(1.4142135623730951, 0.7853981633974483)

>>> z4 = cmath.rect(1., cmath.pi/2)

>>> z4

(6.123233995736766e-17+1j)

>>> cmath.phase(z4) 1.5707963267948966

>>>

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 21

(22)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

각의 단위 변환

각도에서 degree와 radian을 서로 변환할 때는 math 모듈의 degrees()와 radians() 함수를 사용한다. 참고로 상수 π 는 cmath는 물론이고 math 모듈에도 포함되어 있다.

>>> import math

>>> math.degrees(math.pi) 180.0

>>> math.radians(90) 1.5707963267948966

>>>

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 22

(23)

Python 과 함께 배우는 신호

해석 박섭형

복수소의 대수 연산 1의 N 승근 Python 에서 복소수 다루기

Sympy를 이용한 방정식의 해 구하기 예

Sympy 모듈의 solve() 함수를 사용하여 z3= 1, z4= 1, z5= 1의 해를 구하는 예이다.

>>> import sympy

>>> z = sympy.Symbol('z')

>>> sympy.solve(z**4-1,z)

[-1, 1, -I, I]

>>> sympy.solve(z**5-1,z) [1,

-1/4 + sqrt(5)/4 - I*sqrt(sqrt(5)/8 + 5/8),

-1/4 + sqrt(5)/4 + I*sqrt(sqrt(5)/8 + 5/8),

-sqrt(5)/4 - 1/4 - I*sqrt(-sqrt(5)/8 + 5/8),

-sqrt(5)/4 - 1/4 + I*sqrt(-sqrt(5)/8 + 5/8)]

>>> sympy.solve(z**3-1,z)

[1, -1/2 - sqrt(3)*I/2, -1/2 + sqrt(3)*I/2]

>>>

Sympy에서 복소수의 기본단위인 j 를 나타내는 심볼은 I이다.

한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 23

참조

관련 문서

높은 학생을 선발하여서 장학금을 수여한다. 가장 평점이 높은 학생을 찾아서 학생의 이름과 학번, 평점을 화면에 출력하는 프로그램을 작성하여 보자.. 복소수를

„ 정의: 단사 함수이고 동시에 전사 함수인 함수를. 전단사 함수(one-to-one correspondence

교재: 모던웹을 위한 JavaScript Jquery 입문,

– 웨이블릿 변환(wavelet transform) 함수 사용하여 신호 (signal)를 시간과 진동수 측면에서 양측 모두 좋은 신호로 분해하여 압축 성능 을 높인

더 이상 점수는 입력되지 않는다..  마지막에

Ø 컴퓨터 : 부품 A로부터 상속받아 부품 B, 부품 C를 만든 경우, 모두 f라는 기능

EMP 테이블에서 hiredate 가 가장 최근인 사원의 입사일과 입사한지 가장 오래된 사원의 입사일을 출력 하는 쿼리문을 작성..

z 멱급수 해법으로 얻을 수 있는 유명한 특수함수 : 베셀 함수 ( Bessel function ), 르장드르 함수 ( Legendre function ), 가우스 ( Gauss ) 의 초기화함수(