programming language/Julia
Julia 언어를 사용한 연립 방정식 계산
__observer__
2018. 5. 4. 12:06
반응형
최근에 시간이 조금 있어서 julia 언어를 공부하고 있습니다. Julia 를 공부하면서 드는 생각은 문법적으로 MATLAB 과 Python을 섞어 놓은 거 같다는 것입니다.
아래 포스팅에서 매트랩을 사용한 연립방정식 계산 방식에 대해서 소개 한 적이 있습니다.
http://iamaman.tistory.com/246
오늘은 위 포스팅에서 사용했던 예제에 대해 julia 를 사용하여 똑같이 계산해 보려고 합니다.
줄리아 역시 MATLAB과 마찬가지로 매트릭스 연산이 기본입니다. 인자간의 계산을 하기 위해서는 .(점) 을 붙여야 하는 것이죠.
MATLAB 에서 연립방정식의 해를 구하기 위해 \ 또는 / 를 사용했는데 Julia 에서도 완벽하게 똑같습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# AX = Y 의 X 를 구하는 경우 \ 연산을 사용 | |
A=[9 7 4; 5 16 8; 56 -2 21]; # A 값 정의 | |
Y=[12 ; -23 ; 17]; # Y 값 정의 | |
X = A\Y | |
println("AX = Y 의 X 계산") | |
println("A\Y: ",X) | |
X_inverse=inv(A)*Y | |
println("inv(A)*Y: ", X_inverse) | |
# XA = Y 의 X 를 구하는 경우 / 연산을 사용 | |
A=[9 7 4; 5 16 8; 56 -2 21]; # A 값 정의 | |
Y=[12 -23 17]; # Y 값 정의 | |
X = Y/A | |
println("XA = Y 의 X 계산") | |
println("Y/A: ", X) | |
X_inverse=Y*inv(A) | |
println("Y*inv(A): ", X_inverse) |
위 코드를 실행해 보면 다음과 같은 결과를 확인할 수 있습니다.
Julia 홈페이지의 벤치마크 결과를 보면 MATLAB 이나 Python 보다 속도가 월등히 빠른것을 볼 수가 있는데… 앞으로 계속해서 사용을 해 봐야 될 거 같습니다.
일단 조금만 접해봐도 MATLAB 이나 Python 을 다루어본 사람에게는 그냥 알고 있던 언어 같다는 느낌을 주고 배열 인덱스가 1부터 시작한다는 것과 slicing, for, if 등의 문법, 그리고 수치 연산과 관련된 것들은 MATLAB 과 유사한데 …. filter(), map() 등과 같은 함수나 리스트 내장 등과 같은 것들은 마치 Python 을 다루고 있는 듯한 느낌을 많이 받습니다. 참~~ 재미 있는 언어네요.
반응형