SageMath (한국어)
SageMath(구 Sage)는 Python을 주 언어로 사용하는 기호 수식 계산을 위해 작성된 프로그램이다. Maple, Matlab, 혹은 Mathematica과 같은 상용 프로그램을 대체하는 목적으로 개발되었다.
SageMath는 이하의 기능을 지원한다.
- 해석학: Maxima, SymPy를 사용.
- 선형대수학: GSL, SciPy, NumPy를 사용.
- 통계학: R (through RPy) 과 SciPy를 사용.
- 그래핑: matplotlib을 사용.
- IPython을 이용한 인터랙티브 쉘.
- PIL, SQLAlchemy 등의 Python 모듈에 대한 접근.
설치
- sagemath은 커맨드라인 버전을 포함한다.
- sagemath-doc은 HTML 레퍼런스와 커맨드라인에서의 인라인 도움말을 제공한다.
sage -i
를 이용하여 패키지를 설치할 필요는 없으며, 처음부터 SageMath를 pacman을 이용하여 설치하였다면 sage -i
를 사용한 패키지 설치는 동작하지 않을 것이다.사용법
SageMath는 주로 Python을 스크립팅 언어로 사용한다. 다만, 적절한 수식 계산을 위해 일부 문법이 수정되어 있다.
SageMath 커맨드라인
SageMath를 커맨드라인으로부터 기동하는 것이 가능하다:
$ sage
SageMath 커맨드라인에 관한 다양한 정보는 이 페이지로부터 확인할 수 있다.
이 커맨드라인은 IPython 쉘에 기반한 것으로, 인터랙티브 쉘의 기능을 온전히 사용할 수 있다. 이에 관한 자세한 사항은 커뮤니티 튜토리얼을 참고할 것. IPython Cookbook
Note, however, that it is not very comfortable for some uses such as plotting. When you try to plot something, for example:
sage: plot(sin,(x,0,10))
SageMath opens the plot in an external application.
Sage Notebook
SageMath를 이용하는 또 다른 방법은 Notebook(sage-notebookAUR)을 이용하는 것이다.
Notebook 서버를 커맨드라인으로부터 실행하려면:
$ sage -n jupyter
서버를 실행하였다면 브라우저에서 http://localhost:8080에 접속한 뒤 로그인하여 notebook에 접근할 수 있다.
개인 사용 용도로만 서버를 이용하는 경우, 로그인 과정을 생략하고 싶다면, 다음 명령을 사용하여 로그인하지 않고 브라우저를 자동 실행되도록 할 수 있다.
$ sage -c "notebook(automatic_login=True)"
Jupyter Notebook
SageMath also provides a kernel for the Jupyter notebook. To use it, launch the notebook with the command
$ jupyter notebook
and choose "SageMath" in the drop-down "New..." menu. The SageMath Jupyter notebook supports LaTeX output via the %display latex
command and 3D plots if jmol is installed.
Cantor
Cantor is an application included in the KDE Edu Project. It acts as a front-end for various mathematical applications such as Maxima, SageMath, Octave, Scilab, etc. See the Cantor page on the Sage wiki for more information on how to use it with SageMath.
Cantor can be installed with the cantor package or as part of the kde-applications or kde-education groups, available in the official repositories.
Optional additions
SageTeX
If you have TeX Live installed on your system, you may be interested in using SageTeX, a package that makes the inclusion of SageMath code in LaTeX files possible. TeX Live is made aware of SageTeX automatically so you can start using it straight away.
As a simple example, here is how you include a Sage 2D plot in your TEX document (assuming you use pdflatex
):
- include the
sagetex
package in the preamble of your document with the usual
\usepackage{sagetex}
- create a
sagesilent
environment in which you insert your code:
\begin{sagesilent} dob(x) = sqrt(x^2 - 1) / (x * arctan(sqrt(x^2 - 1))) dpr(x) = sqrt(x^2 - 1) / (x * log( x + sqrt(x^2 - 1))) p1 = plot(dob,(x, 1, 10), color='blue') p2 = plot(dpr,(x, 1, 10), color='red') ptot = p1 + p2 ptot.axes_labels(['$\\xi$','$\\frac{R_h}{\\max(a,b)}$']) \end{sagesilent}
- create the plot, e.g. inside a
float
environment:
\begin{figure} \begin{center} \sageplot[width=\linewidth]{ptot} \end{center} \end{figure}
- compile your document with the following procedure:
$ pdflatex <doc.tex> $ sage <doc.sagetex.sage> $ pdflatex <doc.tex>
- you can have a look at your output document.
The full documentation of SageTeX is available on CTAN.
Troubleshooting
TeX Live does not recognize SageTex
If your TeX Live installation does not find the SageTex package, you can try the following procedure (as root or use a local folder):
- Copy the files to the texmf directory:
# cp /opt/sage/local/share/texmf/tex/* /usr/share/texmf/tex/
- Refresh TeX Live:
# texhash /usr/share/texmf/ texhash: Updating /usr/share/texmf/.//ls-R... texhash: Done.