2009/10/06からのアクセス回数 8915
sageのnotebookをどう活用するか、試行錯誤した結果をお知らせします。 ここでご紹介するワークシートは、以下のURLでみることができます。
http://www.sagenb.org/pub/1029/
最初にワークシートを作成します。
右上の「Edit」タグをクリックすると、以下のような画面になります。
{{{と}}}で囲まれた部分がsageの入力と出力部分です。
{{{id=0| /// }}}
このsageの入力部分以外には、htmlタグを使ってHTMLの文章を挿入することができます。
<html> <h3>ノートブックのメモ</h3> ノートブックには、HTMLのhtmlタグで括ってメモを入力することができます。 右上の「Edit」タグをクリックしてsageの入出力部分({{{と}}}に囲まれている部分)以外 の部分にメモを入力します。 </html>
HTMLのメモでは、文章中に$で囲んでlatexの式を挿入することができます。latexについては、 ここを参考にしました。
例えば、xの自乗の和を表すときには、
$\sum_{i = 1}^{n} x_{i}^{2}$
数式を表示する場合には、$の代わりに$$を使います。デフォルトでは数式が中央そろえになって出力されるので、spanタグのmathクラスを使って左そろえにします。
例えば、
<span class="math"> $$ \begin{eqnarray} f(z) &=& (z-x_1)(z-x_2) \cdots (z-x_n) \\ &=& z^n - \sigma_1 z^{n-1} + \sigma_2 z^{n-2} - \cdots + (-1)^n \sigma_n \end{eqnarray} $$ <span>
とすると、
となります。
ノートブックの入力部で#から行末までがコメントなります(pythonの文法)。 コメントには、日本語も使えます。
例)
# これは、コメントです。
されでは、実際にnotebookからsageを動かしてみましょう。
sageでの四則演算は、数値ではなく式として扱われます。 1 + 2を入力し、評価する(evaluateリンクをクリックするかシフトキーを押したままリターンを押す)と、単に3と出力されますが、
1+2
と入力すると、
3
と表示されます。
1/2 + 1/3は、5/6と分数で返します。
1/2 + 1/3
5/6
5/6の分数を数値として出力するには、Nまたはn関数を使います。
N(5/6)
0.833333333333333
sageでは、入力の処理に、pythonインタプリタを使っています。 notebookでは、mathmaticaのような前の結果を再利用する特殊な表現ありませんが、pythonの変数に結果を代入することによってどこでもその変数を参照することができます。
a = 1/2 + 1/3 n(a, digits=5)
0.83333
1/2 + 1/3
0.83333
前の入力は、_で表すことができます。
N(_)
0.833333333333333
文字列は、シングルクォートまたはダブルクォートで括って表します。文字列はpython内部でunicodeで保持されるため、'こんにちは'とだけ入力すると、文字化けしたような出力がでます。 日本語の文字列を正しく表示するには、print文を使います。
'hello'
'hello'
'こんにちは'
'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf'
s = 'こんにちは' print s
こんにちは
sageの関数は、関数名の後に?を付けてヘルプを表示することができます。?を2個付けるとさらに詳しいヘルプが表示されます。
abs?
関数名やpythonの変数の属性は、タブキーで補完することができます。
pl[タブキー]
とすると補完の候補が以下のように表示されます。マウスまたはカーソルで選択します。
数式でよく使う表現として、
があります。最初に複素数ですが、Iで虚数単位を表します。
例えば、1 + 5*Iは、実数部が1で虚数部が5の複素数を表します。
r1 = 1 + 5*I
type関数で型を調べることができます。
type(r)
<class 'sage.interfaces.r.R'>
r1の共役複素数r2を定義し、
r2 = 1 - 5*I
r1とr2の積は、1−(5i)2=1+25 で26となります。
r1*r2
26
円周率πは、piで表すことができます。
pi
pi
自然体数の底eは、exp(n)で表します。
exp(1)
e
数式処理の初歩として、
を試してみます。 最初に展開です。f1にを代入し、展開します。
f1 = (x - 1)*(x^2 - 1); f1
(x - 1)*(x^2 - 1)
f2 = expand(f1); f2
x^3 - x^2 - x + 1
次に展開されたf2を因数分解します。 ですから、答えは、
になります。
factor(f2)
(x - 1)^2*(x + 1)
分数の式も簡単に、因数分解できます。
f3 = 1/(x+2)+1/(x-2); factor(f3)
2*x/( (x - 2)*(x + 2) )
最後に簡素化で不要な項を取り除きます。
f4 = I + x - x; simplify(f4)
I
式をきれいに表示するには、view関数を使用します。
view(f1)
view(f2)
view(f3)
最後に、数式を2次元のグラフにプロットしてみます。
2次元グラフには、plot関数を使用します。 plot関数のもっとも単純な呼び出し方法は、
plot(関数, 最小値, 最大値)
です。
例として、y=cos(x)のグラフを−2π から2πまで描画してみます。
plot(cos, -2*pi, 2*pi)
sage/インストールのSageオンラインを使って簡単にsageをお手持ちのFirfox(ブラウザ)から試すことができます。
是非、実際にsageを使い勝手を試してみてください。
皆様のご意見、ご希望をお待ちしております。