실 업무를 리눅스로.... 7. [내 노트북은 전문 공학 계산기... (공학 계산 환경을 구축 하라)]

[size=150:1e4hbymz]3. 난관 극복 및 실무기
3.6 전문 공학용 계산기로 활용[/size:1e4hbymz]

그동안 많은 시간이 흘렸습니다.
오늘은 조금 특별한 프로그램을 사용 하여 볼까 합니다.

[size=150:1e4hbymz][b:1e4hbymz]가. SAGE 를 통한 수치 해석[/b:1e4hbymz][/size:1e4hbymz]

수학과나 공학 쪽으로 연구 하시는 분들이나, 직업이 있으신 분들은 MATLAB, Mathematica,Maple 등의 솔루션을 들어보거나 사용 하고 게실 것입니다.
허나, 위 솔루션들의 가격은 무지 비쌉니다. 특히, 저와 같은 회사에서 쓰기에는 그 비용 또한 만만치 않습니다.

윈도우즈 라이센스는 구매를 하여 사용 하고 있으나, 시스템을 리눅스로 바꿈과 동시에, 이를 대처 할 수 있는 솔루션이 필요로 하였습니다.

이에, 찾아낸 솔루션이 바로 SAGE-MATH 입니다.

[url:1e4hbymz]http://www.sagemath.org/[/url:1e4hbymz]

Sage는 웹을 이용하여 사용하실 수 있는 수학연산시스템입니다.

정말 멋진 툴입니다.

아래 화면을 우선 보면…

[attachment=10:1e4hbymz]screenshot92.png[/attachment:1e4hbymz]

와 같이 웹베이스로 수치 계산을 풀어 낼 수 있습니다.

Sage의 Notebook 시스템(The Sage Notebook)을 이용하셔서, 워크시트를 제작하고, 그 워크시트에서 Sage명령과 Python명령들을 직접 실행해 보실 수 있습니다. 이러한 워크시트는 여러사람과 동시에 제작이 가능하며, 또한 다른사람에게 공개할 수 있으며, 인터액티브(Interactive) 기능을 활용하셔서 수학적 개념을 이해하기 쉽게 활용하실 수 있습니다.

폭넓은 수학분야의 활용
Sage-Math는 기본적인 미적분학과 기초적인 수학으로부터 시작하여, 정수론, 암호론, 가환대수, 군론, 그래프이론, 수치해석적 선형대수학에 이르기까지 다양한 수학분야에 편리하게 활용하실 수 있습니다.

오픈소스(Open Source)지향의 소프트웨어
Sage는 오픈소스(Open Source)를 지양하기에 기존의 유명한 수학소프트웨어들인 Magma, Maple, Mathematica, MATLAB과 같은 소프트웨어와 차별화되고, 이러한 소프트웨어들과 비슷한 수준의 공개된 수학패키지들을 포함하고 있어서, 그 활용도는 매우 뛰어납니다.

Sage를 통한 심화된 수학연구로의 활용
Sage는 여러분이 다른 수학프로그램을 사용하는데에도 결정적으로 기여하고 있습니다. 특히, Sage에는 GAP,GP/PARI, Maxima, Singular와 같은 수학연구에 많이 사용되는 핵심 라이브러리를 기본적으로 내장하고 있습니다.

자, 이에, 그 설치 방법을 보겠습니다.

설치는 크게 3가지 방법이 있습니다.

첫째, 시넵틱 패키지 관리자를 통한 방법
두번째, 바이러리를 사용
세번째, 소스 컴파일

첫번째…
가장 손쉬운 방법이기도 하죠…

[attachment=9:1e4hbymz]screenshot91.png[/attachment:1e4hbymz]

sagemath 패키지를 설치를 하기만 하시면 됩니다. 허나, 버전이 낮군요…

현재 가장 최신 버전은 4.1.1 버전 입니다.

두번째… 바이러리 사용 방법

[url:1e4hbymz]http://ftp.kaist.ac.kr/sage/linux/index.html[/url:1e4hbymz]

여러분들게 저는 이 방법을 권장 해 드립니다.

단순하게. 설치 디렉토리를 만들어 놓고 풀기만 하시면 됩니다.

세번째 방법… 소스 컴파일…
자신의 하드웨어에 맞게 컴파을을 해줍니다.

[url:1e4hbymz]http://ftp.kaist.ac.kr/sage/src/index.html[/url:1e4hbymz]

간단하게, 설치 디렉토리에 풀어 놓고 make 만 해주면 됩니다.
단. 이 경우 여러 설치 파일이 우선 설치가 되어야 합니다.
필수 설치 파일은 gcc, g++, make, m4, perl, ranlib, and tar 입니다.
제 노트북 CPU가 Dual core T9500 @ 2.60GHz 인데… 한시간이 넘게 걸리는 군요…

[size=150:1e4hbymz][b:1e4hbymz]나. 세부 설치…[/b:1e4hbymz][/size:1e4hbymz]

우선 환경 변수에 sage path를 걸어 줍니다.

여기까지 하시면… 콘솔상에서 sage 라 치시면 계산을 할 수 있는 창이 열립니다.

[attachment=8:1e4hbymz]screenshot93.png[/attachment:1e4hbymz]

여기까지 하시더라도 sage를 통하여 계산을 할 수가 있죠…
허나, sage의 가장 강력한 기능중 하나가 바로 WEB을 통하여 인터페이스를 사용 할 수 있다는 것입니다.

sage를 WEB 인테페이스로 띄우기 위해서는 아래와 같이 sage가 설치된 디렉토리 안에 notebook.py 파일을 하나 만들어 줍니다.

[code:1e4hbymz] from sage.all import *

notebook(‘sage_notebook’,
port=8000, accounts=True, address=‘<IP Address>’,
ulimit=‘-u 100 -v 300000 -t 360’,
open_viewer=False, timeout=120,secure=False) [/code:1e4hbymz]

주의 : 여기서, <IP Address> 라 함은 자신의 컴퓨터의 IP 주소 입니다.
secure=False 는 http:// 를 통하여 접속을 한다는 것입니다.
만일 https:// 를 통하여 서비스를 하고자 하신다면 secure=True 로 바꾸어 주시면 됩니다.

이후, sage-python notebook.py 라 실행을 하시면 "admin"에 대한 패스워드 계정을 묻습니다.

[attachment=5:1e4hbymz]screenshot96.png[/attachment:1e4hbymz]

설정이 완료가 된 뒤 웹브라우저를 통하여 접속을 하시면 Sage 웹 인터페이스를 보실 수 있습니다.

[code:1e4hbymz]http://IP Address:8000[/code:1e4hbymz]

[attachment=7:1e4hbymz]screenshot94.png[/attachment:1e4hbymz]

초기에 입력을 하셨던 패스워드로 로그인을 하시면…

[attachment=6:1e4hbymz]screenshot95.png[/attachment:1e4hbymz]

와 같이 sage 웹 인터페이스에 로그인이 가능 합니다.

이제 부터 여러분들은 마음것 수치 계산을 하시면 됩니다.

[size=150:1e4hbymz][b:1e4hbymz]다. 실 활용 예[/b:1e4hbymz][/size:1e4hbymz]

이제, 실 활용 예를 보겠습니다.

세 꼭지점 (0,0),(1,-1),(1,1)을 갖는 삼각형을 (1,2)만큼 평행이동한 선형변환의 이미지를 그려라. 또 y축에 대한 반사, 60도 회전변환에 의한 이미지를 그려라.

라는 문제가 있다고 한다면…

먼저 세 꼭지점을 점으로 갖는 삼각형을 그립니다. show라는 함수는 그래프를 그려주는 함수이고, line은 각 점을 연결하는 선을 말하며, 그리고 P11, P12, P13로 각 꼭지점의 값을 보여주고 있습니다.

[attachment=4:1e4hbymz]screenshot98.png[/attachment:1e4hbymz]

다음으로 (1,2)만큼 평행이동한 선형변환의 이미지를 그리는데…

[attachment=3:1e4hbymz]screenshot99.png[/attachment:1e4hbymz]

다음으로 y축에 대한 반사 이미지를 그린다.

[attachment=2:1e4hbymz]screenshot100.png[/attachment:1e4hbymz]

마지막으로 60도 회전변환에 의한 이미지를 그린다.

[attachment=1:1e4hbymz]screenshot101.png[/attachment:1e4hbymz]

이 예제에서 구한 이미지를 한 그래프에 표시해 보면…

[attachment=0:1e4hbymz]screenshot102.png[/attachment:1e4hbymz]

이처럼 Maple처럼 상용 프로그램이 아닌 무료 Open Software에서도 충분히 수행할 수 있습니다.
더욱이 웹 인터피에스를 제공 하므로 인터넷만 연결된 곳 어디서나 볼 수 있어 그 가치는 매우 높습니다.

정말 대단하십니다.
전 sage써보고 언어 배워야 하는거 같아서 그냥
matlab이랑 mathematica 불법으로 구해서 사용하고 있는데,
반성이 되는군요.

좋은 프로그램인것 같네요.
전 matlab 대신에 octave , scilab 을 사용하고 있고, mathematica 대신에 maxima를 사용중인데
한번 위의 프로그램을 써봐야 겠군요.

maxima 랑 비교해볼때 어떤가요?

저도 Octave를 사용하고 있었는데
Matlab이 학교 학생 1년 라이센스로 30달러면 구입가능더군요.
그래서 그냥 Matlab을 사서 쓰고 있답니다.
프로젝트가 Matlab 소스가 더 많아서 그런면도 있고요.
한국대학은 모르겠는데 미국 대학은 대학생에 대한 혜택이 무지 많은거 같아요.
제가 한국에서는 학교에서 이렇게 학생 라이센스를 지원하는 것을 본적이 없으니^^
참고로 저희학교는 Maple이나 MS-office는
학교학생이면 아무조건없이 다운이 가능해 쓸수 있다는^^
물론 합법적으로…

우와 오랜만에 학교 싸이트를 봐서 반갑네요!
kaist 수학과에서는 주로 maple (학교 라이선스) 또는 matlab을 사용하고 있지만
2년 전에 U Minnesota에서 오신 Dan Drake라는 방문교수님이 sage를 추가로 소개한 것으로 기억합니다.
연구실에 우분투 스티커가 큼직하게 붙어 있었고 제가 우분투를 쓰게 된 가장 큰 계기를 준 분이죠. :)
지금도 그분이 관리하고 계실 겁니다.

와우! 이거슨 춫현!!!

아닛, 춫현 버튼이 없다!!! OTL

마음으로 추천 드립니다~ :D

웹 인터페이스에서만 그림을 그릴 수 있나요?
최신 버젼 우분투 패키지를 만들어 보려고 하는데 혹시 이미 만들어 놓으신 분 계신가요?
우분투 패키지를 한번도 만들어 보지 않아서 잘 될 지 모르겠네요.
공부 겸 만들어 봐야 겠습니다.

[quote="namhoonkim":3onotgek]Feed my sheeps[/quote:3onotgek]

밥주세요…

농담입니다…

off topic 이라서 죄송…