SAGE

提供: MacWiki
移動: 案内検索

Sage とは?[編集]

SageとはGPLでライセンスされているオープンソースの数学ソフトウェアシステムです。 Sageは既に存在する様々のオープンソースパッケージはPythonをベースとした共通のインタフェースで利用できるようにパッケージしたものです。

SageはPackageのひとつにmaximaを採用しており、数式計算が可能です。また、Mathematica のNotebook風のWeb interfaceを提供しています。 Windows, Linux, Mac OS X, Solaris, FreeBDSなどのプラットフォームで可動します。

Mac OS X 用パッケージ[編集]

  • パッケージ版のファイルは公式サイトより入手できる。(例えば sage-4.2-OSX-32bit-10.4-i386-Darwin.dmg )
  • Terminal.app上で動くが、Mac OS X アプリケーションの形になっており、普通は「アプリケーション」ディレクトリにコピーすることが想定されている。
    • Sageの起動(特に初回)は時間がかかる。起動するとプロンプト(sage: )が出る。アプリケーションアイコン(/Applications/sage/sage)をダブルクリックで起動しても良い。
$ hdiutil mount /Users/me/Downloads/sage-5.2-OSX-64bit-10.6-x86_64-Darwin.dmg
$ cp -R -P /Volumes/sage-5.2-OSX-64bit-10.6-x86_64-Darwin/sage /Applications
$ export SAGE_ROOT=/Applications/sage
$ open $SAGE_ROOT/sage


$ file $SAGE_ROOT/sage
/Applications/sage/sage: a bash script text executable
$ $SAGE_ROOT/sage -v
Sage Version 5.2, Release Date: 2012-07-25


起動用シェルスクリプト例

$ cat /usr/local/bin/sage
#!/bin/sh
$SAGE_ROOT/sage $@
exit 0


  • 起動した時のTerminal画面例は:
$ sage
----------------------------------------------------------------------
| Sage Version 4.2, Release Date: 2009-10-24                          |
| Type notebook() for the GUI, and license() for information.        |
----------------------------------------------------------------------
sage: 
sage: quit
Exiting SAGE (CPU time 0m0.06s, Wall time 3m59.16s).
$


注意点など

  • パッケージ版は,R (sage -R で起動できる)の package の更新などが正常に機能しないことがあるようだ。

ソースからビルド[編集]

ソースからビルドする説明文書


/Applications ディレクトリにソースを置いて、make を実行。ビルドできたコマンドを起動。

$ mv sage-5.3.tar /Applications
$ cd /Applications; tar xvf sage-5.3.tar
$ cd sage-5.3; make
 :
 :
$ export SAGE_ROOT=/Applications/sage-5.3
$ $SAGE_ROOT/sage


注意点など

  • tex環境等は MacTeX等を事前にインストールしたほうが良い
  • make に要する時間は,CPUコア数も少なく非力なマシンでは特に長い
  • make の前に,環境変数を十分にクリーンに整頓したほうが良い(PATH, LIBRARY_PATH,...)
  • make 時には、ソースを置いたディレクトリ,環境変数,各種のコマンドのパス等を取り込み,作られるファイル内に書き込む。ビルドされた sage はそれらに依存して動作する。


Python環境[編集]

SageのPython環境とsite-packagesを調べる

$ $SAGE_ROOT/local/bin/python
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import distutils.sysconfig
>>> print distutils.sysconfig.get_python_lib()
/Applications/sage/local/lib/python2.7/site-packages
>>> 


プログラミング[編集]

  • SAGE の標準的整数型は Integer 型(Python の int 型ではなくて)。なお関数 gen_legendre_P(l,m,x) の位数 m はInteger 型で渡さないとエラーとなる。
$ cat legendre.sage
var('x')
l = 3
#for m in srange(l + 1): # Sage's 'Integer' type
for m in range(l + 1): # Python's 'int' type
    print 'P(', l, ',', m, ') =', gen_legendre_P(l, Integer(m), x)
sys.exit()
$ sage legendre.sage
P( 3 , 0 ) = 5/2*(x - 1)^3 + 15/2*(x - 1)^2 + 6*x - 5
P( 3 , 1 ) = -3/2*sqrt(-x^2 + 1)*(5*(x - 1)^2 + 10*x - 6)
P( 3 , 2 ) = -15*(x^2 - 1)*x
P( 3 , 3 ) = 15*sqrt(-x^2 + 1)*((x^2 - 1)*x^2 - x^2 + 1)/(x^2 - 1)
  • なお上記で、legendre.py という中間ファイルが自動的に作られた後、SAGE内蔵のPython環境がそれを実行している(下記と同じ)。
$ sage -python legendre.py
  • プロットする例:

自動的に temporaryファイル(PNG)が作られ、Previewで開かれる。

$ cat plot.sage
p1 = plot(sin, -pi, pi, rgbcolor='blue')
p2 = plot(cos, -pi, pi, rgbcolor='red')
plts = p1 + p2
#plts = Graphics()
#plts += p1 + p2
plts.show()
sys.exit()
$ sage plot.sage

リンク[編集]

公式サイト http://www.sagemath.org/