줄리아에서 복소수 사용하는 법
개요
코드
허수 im
julia> z = 3 + 4im
3 + 4im
im
은 순허수 $i = \sqrt{-1}$ 를 나타낸다. 우리가 상식적으로 사용하는 사칙연산은 모두 사용할 수 있다.
julia> typeof(z)
Complex{Int64}
julia> typeof(3.0 + 4.0im)
ComplexF64 (alias for Complex{Float64})
타입을 체크해보면 같은 복소수라도 어떤 복소수로 이루어져있는지가 다르다. 마치 추상대수에서 정수인 경우 $\mathbb{Z} [i]$, 혹은 실수인 경우 $\mathbb{R} [i]$ 로 구분하는 느낌과 비슷하다.
실수부, 허수부 real()
, imag()
julia> real(z)
3
julia> imag(z)
4
켤레복소수, 모듈러스 conj()
, abs()
julia> conj(z)
3 - 4im
julia> abs(z)
5.0
한편 여기서 모듈러스 abs()
는 딱히 복소수에 대해 새로이 정의하지 않고 절대값 그대로 사용되었음에 주목하라. 줄리아는 다형성polymorphism을 가져서 이러한 설계가 네이티브하게 잘 되어있다.
일반 복소함수
julia> cos(z)
-27.034945603074224 - 3.851153334811777im
julia> log(z)
1.6094379124341003 + 0.9272952180016122im
당연하지만 절대값이 그러했듯 삼각함수와 로그 함수는 복소수 $\mathbb{C}$ 에서도 잘 정의되고, 줄리아에서도 별도의 조작 없이 바로 사용할 수 있다.
전체코드
z = 3 + 4im
real(z)
imag(z)
conj(z)
abs(z)
cos(z)
log(z)
환경
- OS: Windows
- julia: v1.7.0