Quantcast
Channel: 気になるメモ メモφ(.. )
Viewing all articles
Browse latest Browse all 177

統合数式処理システム - Sage で遊んでみる。

$
0
0

 

www.sagemath.org

 

微分

sage: diff(sin(x), x)

cos(x)

 

高階微分

sage: diff(sin(2*x), x, 1)

2*cos(2*x)

sage: diff(sin(2*x), x, 2)

-4*sin(2*x)

sage: diff(sin(2*x), x, 3)

-8*cos(2*x)

 

級数展開

sage: cos(x).series(x,6)

1 + (-1/2)*x^2 + 1/24*x^4 + Order(x^6)

 

積分

sage: integrate(log(x), x)

x*log(x) - x

sage: integrate(2*x + sinh(x), x)

x^2 + cosh(x)

 

有限区間での積分

sage: integrate(cos(x), (x, -pi/2, pi/2))

2

 

広義積分

sage: integrate(exp(-x**2), (x, 0, oo))

1/2*sqrt(pi)

sage: integrate(exp(-x**2), (x, -oo, oo))

sqrt(pi)

 

方程式の解

sage: solve(x**4 - 1, x)

[x == I, x == -1, x == -I, x == 1]

 

連立方程式

sage: solve([x + 5*y - 2, -3*x + 6*y - 15], [x, y])

x == -3, y == 1

 

超越方程式

sage: solve(exp(x) + 1, x)

[x == I*pi]

 

因数分解

sage: factor(7786)

2 * 17 * 229

 

sage: factor(x^4 - 3*x^2 + 1)

(x^2 + x - 1)*(x^2 - x - 1)

 

 作図

sage: v = [(sin(x),x) for x in srange(-2*float(pi),2*float(pi),0.1)]

sage: line(v)

 

f:id:memomemokun:20150922215823p:plain

 

作図(3D)

sage: x, y = var('x,y')

sage: plot3d(x^2 + y^2, (x,-2,2), (y,-2,2))

f:id:memomemokun:20150922220207j:plain

 

 

 

webベースのノートブックを立ち上げる

 

sage: notebook()

The notebook files are stored in: sage_notebook.sagenb

┌────────────────────────────────────────────────┐

│                                                │

│ Open your web browser to http://localhost:8080

│                                                │

└────────────────────────────────────────────────┘

 

↓こんな画面が立ち上がります

f:id:memomemokun:20150922221602p:plain

 

 

Sageで自前のサーバアプリを作る

#!/usr/bin/env sage

def application(environ, start_response):
	output = "%s" % primes_first_n(1000)
	status = '200 OK'
	response_headers = [('Content-type', 'text/plain; charset=utf-8'),
						('Content-Length', str(len(output)))]
	start_response(status, response_headers)
	return output

from werkzeug import run_simple
run_simple('0.0.0.0', 8000, application)

 

↑ を実行して http://localhost:8000/ にアクセスすると2からから7919までの1000個の素数ブラウザーに表示されます。

 

f:id:memomemokun:20150922224055p:plain

 

その他

 

根はPythonなのでDBのアクセスやら、なんやらかんやら、自由自在に出来ちゃいます。

 

 

Sage (数式処理システム)

Sage (数式処理システム) - Wikipedia

 
SageMath
Sage logo
初版24 February 2005
最新版6.8 / 2015年7月26日(55日前)
プログラミング言語PythonCython
対応OSLinux/OS X/Windows(VM上)
プラットフォームPython
種別計算機代数
ライセンスGNU General Public License
公式サイトwww.sagemath.org
テンプレートを表示

 

SageMath (セイジ、以前はSage、SAGEと記した) は数学の幅広い処理を扱うソフトウェアである。扱う処理は計算機代数組み合わせ数値計算など多岐に及ぶ。工学的応用に加え基礎科学の研究もカバーする。

SageMath は2005年2月24日にフリーソフトウェアとして GNU General Public License の元で初版が公開された。その開発目的は MagmaMapleMathematica(いずれも計算機代数ソフトウェア)、MATLAB の代替となるフリーかつオープンソースなソフトウェアを提供することであった[1]。開発は、米ワシントン大学の数学准教授のウィリアム・スタイン (William Stein) が主導して始まった。

SageMath は Pythonプログラミング言語を使用しており,手続き型・関数型・オブジェクト指向によるプログラムの記述を行うことができる。

 

  • ノートブック形式で対話的に作業を行うインターフェイスを持つ。そのためそれまでの入力を確認したり再利用したりすることが簡便である。文字入出力と画像の両方が扱え、多くのウェブブラウザ(FirefoxOperaKonquerorSafari など) から利用できる。状況に応じて HTTPS 接続を行うこともでき、Sage のノートブックはネットワーク越しでも、ローカルでも扱うことができる。
  • IPython によるコマンドライン・インターフェイス
  • Python の導入による、手続き型、関数型、オブジェクト指向を両立するプログラミング
  • Maxima と SymPy を使った計算のサポート
  • スライダーなどの直観的な操作を備えた GUI[3]
  • ユーザーインタフェイスを追加するためのツールキット
  • データ、画像、動画、音声、CADGIS (地理情報システム)、ワープロ文書、医用データ形式の入出力
  • 数式の表示と LaTeX 文書の埋め込み[4]
  • Twisted によるネットワーク経由の SQLJava.NETC++FORTRAN の利用ツール (これによりHTTPNNTPIMAPSSHIRCFTP が利用可能となっている)
  • 外部ソフトウェア (MathematicaMagmaMaple など) を SageMath から呼び出し、処理結果や実行速度を比較する機能 (GNU TeXmacs のような、外部ソフトウェアへのフロント・エンドとして SageMath を利用できる)
  • 情報集約のための Wiki システムとして MoinMoin を備える
  • ユーザーから利用できる、テストの自動実行環境
  • Fortran、C、C++とCythonのコードの実行
演算
グラフ描画
  • データおよび関数の 2D および 3D プロット
  • グラフ (ノードとリンクからなる) の可視化と解析

 


Viewing all articles
Browse latest Browse all 177

Trending Articles