SageMathCloudを使ってみよう
Python Advent Calendar 2014 - Qiita 3日目の記事です。
タイトルの通り、SageMathCloudを使ってみようという話をします。
SageMathCloudとは?
すごく簡単に説明すると、クラウド(ブラウザ)上で、SageMathやiPython Notebook、LaTeX、Terminalなどが実行できます。
そもそもSageMathってなに?って思うかもしれませんが、SageMathはPythonベースのオープンソースでMathematicaみたいな数式処理のソフトウェアです。Mathematicaにはまだまだ適わない部分が多いらしい(使ったことない)ですが、無料というのはありがたいです。 SageMathは例によって環境構築ではまったりすることがあるので、SageMathCloudを利用すれば、いつでもどこでも使えて良い感じです。
SageMathを使ってみる
では、早速SageMathを使ってみます。大体チュートリアルに載ってることなので、詳しくはチュートリアル読んでくださいな。-> A Guided Tour — Sage Tutorial v6.4
- 変数宣言 (sympyみたいにシンボリックな操作ができます。)
x = var('x')
- 方程式を解く
solve(x^2 + 3*x + 2, x) -> [x == -2, x == -1]
diff(sin(x), x) -> cos(x)
integral(cos(x), x) -> sin(x)
- 2次元プロット
x, y=var("x", "y") contour_plot(-1/(sqrt(3*x**2+5*y**2))-1/(sqrt((2*x+0.4)**2+(y+0.2)**2))-1/(sqrt((2*x-0.2)**2+(2.5*y-0.5)**2)), (x,-1,1), (y,-1,1))
- 3次元プロット
x, y, z = var('x, y, z') implicit_plot3d(x^2 + y^2 + z^2 - 1, (x,-1, 1), (y,-1, 1), (z,-1, 1))
ほんとにちょっと触っただけですが、他にも行列演算とか多項式の展開とか色々できます。 わたしは物理シミュレーションをするときに、ポテンシャルを微分したり、等ポテンシャル面を描いたりするのに使います。