복소수 연산

복소수 연산 (Complex Arithmetic)

복소수를 다룰 때 가장 자주 필요한 건 크기(magnitude), 각도(argument), 켤레(conjugate), 그리고 실수부·허수부를 떼어내는 일이에요. Octave의 복소수 함수들은 이런 기본 연산들을 한 함수씩 제공해요.

출처: 문서

본문

이 문서에서 나오는 함수들을 설명할 때, z는 복소수 x + iy이고 여기서 isqrt (-1)로 정의돼요.

abs — 크기(magnitude)

z = abs (x)

x의 크기를 계산해요. 크기는 |z| = sqrt (x^2 + y^2)로 정의돼요. 예를 들어 보죠.

abs (3 + 4i)
     ⇒  5

함께 보면 좋은 함수: arg.

arg (일명 angle) — 각도(argument)

theta = arg (z)
theta = angle (z)

z의 각도, 즉 argument를 라디안 단위로 계산해요. theta = atan2 (y, x)로 정의돼요. 예를 들어 보죠.

arg (3 + 4i)
     ⇒  0.92730

함께 보면 좋은 함수: abs.

conj — 켤레 복소수

zc = conj (z)

z의 복소 켤레를 돌려줘요. conj (z) = x - iy로 정의돼요.

함께 보면 좋은 함수: real, imag.

cplxpair — 켤레 쌍으로 정렬

zsort = cplxpair (z)
zsort = cplxpair (z, tol)
zsort = cplxpair (z, tol, dim)

숫자 z들을 실수부가 증가하는 순서대로 복소 켤레 쌍으로 정렬해요. 각 쌍 안에서는 허수부가 음수인 복소수가 먼저 놓여요. abs (imag (z)) / abs (z) < tol인 모든 실수들은 복소 쌍들보다 뒤에 배치돼요. tol은 [0, 1) 범위의 가중 인자로 쌍을 맞추는 허용 오차를 결정해요. 기본값은 100 * eps이고, 주어진 복소 쌍에 대한 결과 허용 오차는 tol * abs (z(i))예요.

기본적으로 복소 쌍은 z의 첫 번째 비단일 차원(non-singleton dimension)을 따라 정렬돼요. dim을 지정하면 그 차원을 따라 정렬해요.

일부 복소수를 쌍으로 만들 수 없으면 오류를 신호해요. 모든 복소수가 (허용 오차 내에서) 정확한 켤레가 아니어도 오류를 신호해요. 실수부는 같고 허수부만 다른 쌍들 사이에는 정의된 순서가 없다는 점에 주의하세요.

cplxpair (exp (2i*pi*[0:4]'/5)) == exp (2i*pi*[3; 2; 4; 1; 0]/5)

imag — 허수부

y = imag (z)

z의 허수부를 실수로 돌려줘요. 함께 보면 좋은 함수: real, conj.

real — 실수부

x = real (z)

z의 실수부를 돌려줘요. 함께 보면 좋은 함수: imag, conj.

더 알아보기

  • 복소수를 처음 다룬다면 복소 데이터 타입 항목부터 보면 좋아요.
  • 각 함수의 세부 동작과 함께 쓰이는 삼각함수·지수함수도 이어서 살펴보세요.