라즈베리파이(RPi)에서 수치 해석툴을 적용하려고 scilab 과 octave의 장점을 검색해 보았더니 둘 다 장점이 비슷한 것 같다. 어떤 논문에서는 octave를 최고로 언급하기도 한다.


"요약하면, Octave가 가장 지속 가능한 Matlab의 대안이라고 결론을 내렸다. 그 이유는 테스트 결과 (문법적인 측면에서) Matlab과 완전히 호환되며 성능 또한 상당히 좋기 때문이다"


"In summary, we conclude that Octave is the best viable alternative to Matlab because it was not only fully compatible (in terms of syntax) with Matlab in our tests, but it also performed very well."



 그런데 수치해석 툭들을 검색 하는 중에 의외의 대안이 눈에 띄었다. 바로


  • python + numpi / scipy + matplotlib


이다. 어떤 교수가 이렇게 언급해 놓았다.


Francesca Mazzia · Università degli Studi di Bari Aldo Moro


"내 수업(이탈리아 Bari 대학교)에서  Octave, Scilab, R 을 모두 사용해 보았다지만 지금은 파이썬의 넘파이(numpy)와 사이파이(scipy)를 사용한다. 과학 계산에서 pythonxy(윈도우)와 spyder(리눅스)는 훌륭한 통합개발환경이다. 나는 내 포트란 90 코드와의 인터페이스를 개바랬는데 Matlab보다 훨씬 더 쉬었다. 아직도 연구를 위해서 Matlab을 사용하기는 하지만 파이썬은 훌륭한 대안이다. 내 학생들도 좋아한다..." 2013년 1월 31일


"I used in my courses (University of Bari, Italy), Octave, Scilab and R, but now I'm using Python, with numpy and scipy. Pythonxy in Windows and spyder for Linux are good ide for scientific computing. I developed some Python interface for my FORTRAN 90 codes and was easier than in matlab. I still use Matlab for research, but I think Python is a good alternative, my students like it ...." Jan 31, 2013


  이후에 관심이 생겨서 더 조사해 보았는데 python이 과학계산 분야에서 의외로 광범위하게 사용되고 있음을 알게 되었다. Matlab은 앞으로는 어떻게 될 지 모르겠지만(뭐 윈도우도 무료가 되느니 마느니 하는 시대인데) 아직은 고가라 학부 수업에서 사용하기에는 부적합하다.


 개인적으로 scilab은 익히는데 상당히 시간이 많이 걸렸다. (한마디로 제대로 사용하려면 어렵다.) 하지만 python은 그 특유의 쉽고 간결한 문법과 많은 리소스들, 다양한 모듈들로 인해서 훨씬 익히기가 용이했다.


  단적인 예를 들어서 아두이노로 시리얼 통신을 하는 프로그램(모터의 지령지를 준다든가 센서값을 읽어들인다든가 하는 일들을 하기 위해서)을 작성하기 위해서는 시리얼통신을 수행하는 모듈이 있어야되는데 scilab은 마땅한게 없다. (matlab도 어렵기는 마찬가지임.) 하지만 파이썬은 잘 동작하는 모듈이 있어서 바로 사용하는데 아무런 문제가 없었다. 이 정도로 막강하다. 더군다나 numpy같은 수치해석 모듈과 scipy 같은 과학계산 모듈을 모두 무료로 아무 제한 없이 사용할 수 있으니 더 이상 큰 장점이 없다.


  만약 수치해석 툴이 필요하다면 파이썬을 공부해 볼 것을 강력히 추천한다.

[#00089]


Posted by 살레시오
,