• 検索結果がありません。

2.2 Sage I 11 factor Sage Sage exit quit 1 sage : exit 2 Exiting Sage ( CPU time 0m0.06s, Wall time 2m8.71 s). 2.2 Sage Python Sage 1. Sage.sage 2. sa

N/A
N/A
Protected

Academic year: 2021

シェア "2.2 Sage I 11 factor Sage Sage exit quit 1 sage : exit 2 Exiting Sage ( CPU time 0m0.06s, Wall time 2m8.71 s). 2.2 Sage Python Sage 1. Sage.sage 2. sa"

Copied!
12
0
0

読み込み中.... (全文を見る)

全文

(1)

情報処理

I

2017

年度)第

11

回目

1

数式処理システム

SageMath

とは

SageMath(以下,Sageと略す)は代数・幾何・数論・数値計算等の広範囲の数学をサポートする数式処理プ

ログラムです。実際に数学の研究の現場でも利用されています。SageはPython言語で書かれていて,Sage のプログラムはPythonの文法で書きます。Sageを使うことによって,行列の計算,数値計算,組み合わせ 論,特殊関数,微分方程式の解法等の様々な計算を簡単に行うことができます。フリーの数式処理システムと して有名なものにMaximaがありますが,Maximaの多くの関数はSageから呼び出して使うことができま す。Sageはフリーでオープンソースなソフトウェアで,だれでも自由に入手して使うことが可能です。Sage はLinux, Mac, Windowsで利用可能です*1

2

Sage

実行方法

Sageの実行方法は主に次の4種類あります:

1. インタラクティブ・シェル(端末からコマンドsageで起動するCUI)

2. Sageのプログラムが書いてあるファイルを呼び出して実行(端末でsage ファイル名.sageとする)

3. Sageノートブックを使う(インタラクティブ・シェルからnotebook()で起動) 4. Sageのインタラクティブシェルからロードする(sage:load(‘‘ファイル名.sage’’)) 以下では,まず,1と2について解説します。

2.1

Sage

のインタラクティブシェルの起動

SageがインストールされているPCでは,端末(ターミナル)からsageと入力することによってSageを 起動することができます。端末で

1 u s e r @ d e b i a n :~ $ s a g e # S a g e M a t hを 起 動$

と入力すると

1

-2 | S a g e M a t h V e r s i o n 7.2 , R e l e a s e D a t e : 2016 -05 -15 |

3 | T y p e " n o t e b o o k () " for the browser - b a s e d n o t e b o o k i n t e r f a c e . |

4 | T y p e " h e l p () " for h e l p. | 5 -6 s a g e : と表示され,Sageのインタラクティブ・シェルが起動します。ここではPythonのシェルと同じ事ができます が,それに加えてSageならではの機能が使えます。試しに1+2やfactor(2010)等と入力してみましょう: 1 s a g e : 1+2 2 3 3 s a g e : f a c t o r ( 2 0 1 0 ) 4 2 * 3 * 5 * 67 *1Windows へのインストールは若干面倒です。

(2)

2.2 Sageのプログラムを作成して実行する 情報処理I 第11回目

ここでfactorというのは,因数分解を行う関数で,Sageにははじめから組み込まれています。

Sageを終了して元の端末の状態に戻るには『exit』または『quit』を入力します。

1 s a g e : e x i t 2 E x i t i n g S a g e ( CPU t i m e 0 m0 .06 s , W a l l t i m e 2 m8 .71 s ).

2.2

Sage

のプログラムを作成して実行する

Pythonと同様に,Sageのプログラムをファイルに書いて端末から実行することができます。具体的な手順 は次の通りです。 1. Sageプログラムをテキストエディタで書いて保存。ファイル名は『ファイル名.sage』とします。 2. 端末を起動し,ファイルの保存されているディレクトリへ移動し, sage ファイル名.sage と入力する。*2 上の手順を試してみましょう。まず次のファイルを作ります。 ファイル名:testfactor.sage 1 a = f a c t o r ( 2 0 1 4 ) # 2 0 1 4の 因 数 分 解 の 結 果 を aと す る 2 p r i n t a # aを プ リ ン ト す る 。 そして,端末でファイルの位置までディレクトリを移動して次のように実行します: 1 $ s a g e t e s t f a c t o r . s a g e 2 2 * 19 * 53 3 $ この場合,Pythonの場合と同様に,出力したい値はprintで書かなければ表示されません。 Pythonと同じ事ですが,出力結果をファイルに保存したい場合,次のようにします: 1 $ s a g e t e s t f a c t o r . s a g e > t e s t f a c t o r . txt 2 $ すると実行したディレクトリにtestfactor.txtというファイルが作られて,実行結果がこのファイルに記 録されます。

3

Sage

Web

ページについて

Sageに関する情報は公式ウェブサイト http://www.sagemath.org/ から得ることができます。トップページのメニューから次の情報にアクセスできます:

• Try Sage Online : インターネットからSage利用することができます。

• Documentation : SageやPythonに関する説明書やチュートリアル。解説ビデオなどもあります。

(3)

• Download : Sageのダウンロード(インストール方法はOSによって異なります)。

• Sage Feature Tour : いろいろな活用方法が紹介されています。

4

他の環境での

Sage

の利用

4.1

SageMathCloud

イ ン タ ー ネ ッ ト に 接 続 さ れ て い る 環 境 で は Sage の Online 版 が 使 え ま す 。Sage の Web サ イ ト http://www.sagemath.org/へ行き,Try Sage Onlineをクリックします。自分用のアカウントを作成して サインインすれば,Sageノートブックが利用できるようになります。

4.2

Windows

Sage

をインストールする

WindowsへのSageのインストールは少し手間がかかります。インストールは次のようして行います。

1. まずOracle VM VirtualBox(無料)をダウンロードします。Googleなどで検索すればすぐに出てき

ます。Virtualboxのインストール方法は通常のWindowsアプリケーションと同様です。 2. つぎに http://www.sagemath.org/download-windows.html から近そうなサーバーを選んでsage-xx.ovaをダウンロードします(xxはバージョンによって異なり ます。現時点ではversion 7.2が最新です)。ダウンロードが完了したら適当なフォルダに移動しておき ます。 3. sage-xx.ovaをダブルクリックするとVirtualboxが起動します。とくに変えたい場所がなければそ

のままimportします。Virtualboxマネージャーからsage-xxをダブルクリックして起動します。 4. メッセージがいくつも出ますが,気にせず『はい』を押して進みましょう。

5. VirtualBoxの画面でSage notebookが表示されますが,こちらは使いません!

6. Windowsで ウェブブラウザ(Firefoxが最適)を起動してアドレス入力欄にhttp://localhost:8000 と入力すると大学のPCと同様にSage notebookが起動します。*3

4.3

Mac

での利用

以下はhttp://www.sagemath.org/mirror/osx/README.txtの解説を翻訳したものです*4

自宅のPCがMax OS Xの場合,インストールは次のように行います。

1. まずSageのWebサイトのdownloadから適当なサーバーを選んでsageのdmgファイルをダウン

ロードします。新しいmacならCPUはintelだと思いますので,intelをクリック,OSのバージョン が10.10で64bitマシンならsage-xx-x86_64-Darwin-OSX-10.10_x86_64-app.dmgをダウンロー ドします。ファイル名に-appがついているのは通常のMacのアプリケーションとして起動するファイ ルで,-appがついていないものは,伝統的なUnix command-lineとして起動するファイルだそうで

*3VirtualBox の画面で Sage が起動しているのに,ブラウザがつながらない場合は,すでに Windows が 8000 番ポートを他 のプロセスで使用していることが考えられます。この場合,VirtualBox の設定でネットワーク>ポートフォワーディング の設定で,guestsage のホストポートの 8000 番となっている部分を 8080 番などの使われていないポートに変更してから http://localhost:8080 と接続すると解決します。

(4)

情報処理I 第11回目

す。おそらく通常は名前に-appがついているものをダウンロードすればよいとおもいます。

2. dmgファイルをダブルクリックします。

3. sageフォルダーを適当にアプリケーションのフォルダにドラッグします。

4. finderでコピーしたsageフォルダーへ移動して『sage』のアイコンをダブルクリック。

5. Select to run it with ”Terminal”:

Choose Applications, then select ”All Applications” in the ”Enable:” drop down. Change the ”Applications” drop down

to ”Utilities”. On the left, scroll and select ”Terminal”. Click ”Open”, then in the next dialog select ”Update”.

6. SageのWindowがポップアップします。

7. Sage ノ ー ト ブ ッ ク を 起 動 す る 場 合 は ,notebook() と タ イ プ し ,firefox か safari で URL: http://localhost:8000を入力します。

5

Sage

ノートブック

端末からSageを起動してからSageのコマンドラインで次のように入力してみましょう: 1 s a g e : n o t e b o o k () するとfirefoxなどのウェブブラウザ*5が起動し次のような画面が現れます。これがSageのノートブックで す。初回起動時にパスワードが聞かれますが,適当に覚えやすいものを入力しておきます*6

この画面でworksheetが開いていなければ,New Worksheetをクリックして開きます。最初にワークシー トの名前を決めます。Sageのプログラムは四角い枠(セル)の中に書きます。試しに1 + 2を計算してみま しょう。セルに1+2と書き,次のどちらかの方法でセルに書かれたプログラムを実行します。

• shift+enter

セルの左下にあるevaluateをクリック

Sageノートブックを終了するには,ブラウザを閉じnotebook()と入力した端末でctrl+cを押すとSageの インタラクティブシェルに戻ります。exitと入力すればSageが終了します。

*5Firefox の代わりに Iceweasel となっているかもしれません

*6毎年,授業でユーザーネームとパスワードを忘れる人がいるので,ここでは共通になるように,username = admin, password = sagesage としてください。

(5)

6

Sage

での数の取り扱い

6.1

四則演算

Sageの四則演算は,基本的にはPythonと同じすが,記号『/』は異なります。整数a, bに対してPython2 ではa/bは商を返しましたが,Sageではa/bが割り切れないときには,有理数a/bとなります。また,冪の 記号はPythonではaba**bでしたが,Sageでは『a^b』のように書きます。

a + b → a+b a− b → a-b a× b → a*b a

b → a/ba b → a^b

6.2

数の表示

Sageでは自然数,有理数,有限体を取り扱うことができ,無理数は形式的に取り扱うことができます。円 周率πはpi,自然対数の底eはe,虚数単位iはiで表されます。次の命令を順次実行して確認してみま しょう: 1 pi 実行結果の例 pi 数値を表示するにはn()という命令を使います: 1 n ( pi ) 実行結果の例 3.14159265358979 円周率を30桁だけ表示するには: 1 n ( pi , d i g i t s = 3 0 ) 実行結果の例 3.141592653589793238462643383279502884197 自然対数の底についても同様に 1 n ( e ) 実行結果の例 2.71828182845905 平方根(square root)は次のようになります: 1 s q r t (3) 実行結果の例 sqrt(3) 平方根の計算は厳密に行われ 1 s q r t ( 3 ) * s q r t (3) 実行結果の例 3 となります。eやpiと同様に3の近似値はn(sqrt(3))で計算します。

(6)

6.3 Sageで文字nを使うときの注意 情報処理I 第11回目

6.3

Sage

で文字

n

を使うときの注意

Sageでは文字nに,n(a)で『aの数値を返す』という命令があらかじめ割り当てられているので,文字n は特に理由がなければ使わないようにしましょう。

6.4

複素数

Sageでは虚数単位iはIで表され,複素数5 + 3iは5+3*Iのように表します。複素数の計算は実数の場合 と同じように行うことができます。 1 s a g e : ( 5 + 3 * I )^2 2 30* I + 16 3 s a g e : a = 5 + 3 * I ; a . c o n j u g a t e () # 複 素 共 役 4 -3* I + 5 5 s a g e : exp ( pi * I ) 6 -1 # E u l e rの 公 式 が 使 え る

6.5

数学定数

Sageではじめから定義されている数学定数はeπの他には次のようなものがあります。 名前 数学記号 Sageの記法 定義

黄金比(golden ratio) ϕ golden ratio 1 +

5 2 オイラーの定数(Euler’s constant) γ euler_gamma lim

n→∞ ( nk=1 1 k − ln(n) )

カタランの定数(Catalan’s constant) K catalan

k=1

(−1)n (2n + 1)2.

双子素数の定数(twin prime) C2 twinprime

p≥3;素数 p(p− 2) (p− 1)2

6.6

数の精度

数値計算をするときには常にどの精度で計算するのかを気にする必要があります。Sageで取り扱うことが できる代表的な数の型に次のようなものがあります。 名前 Sageの記号 Sageの英語名 意味 精度 整数 ZZ Integer Ring 整数のつくる環 厳密 有理数 QQ Rational Field 有理数体 厳密

代数的数 QQbar Algebraic Field Qの代数閉包 厳密

形式的な環 SR Symbolic Ring 形式的な環(ほぼ体) 厳密 実数(53bit) RR Real Field with 53 bits of precision 53ビットの実数 近似

実数(53bit) RDF Real Double Field 倍精度浮動小数点実数 近似

複素数(53bit) CC Complex Field with 53 bits of precision 53ビットの複素数 近似

実数(400bit) RealField(400) 400ビットの実数 近似

これらは必要に応じて使い分けます。高精度で計算すると少ない誤差で計算できますが,多くの計算時間がか かります。上記以外にもZ/pZQ[5]などさまざまな環や体を取り扱うことができます。以下を実行して 確かめてみましょう:

(7)

1 s a g e : ZZ 2 I n t e g e r R i n g # 名 前 が 出 て き ま す 。QQ , RR , S R等 で も 同 様 3 s a g e : 5 in ZZ # 5は 整 数 か ? 4 T r u e 5 s a g e : 1.5 in ZZ 6 F a l s e 7 s a g e : 1.5 in QQ # 1.5は 有 理 数 か ? 8 T r u e 9 s a g e : s q r t (2) in QQ # ル ー ト2は 有 理 数 で は な い 。 10 F a l s e 11 s a g e : s q r t (2) in Q Q b a r # ル ー ト2は 代 数 的 数 で あ る 。 12 T r u e 13 s a g e : x = var (’ x ’) # xを 形 式 的 な 文 字 と 定 義 す る 。 14 s a g e : x in SR # 形 式 的 に 取 り 扱 え る 文 字 15 T r u e 円周率の精度は次のようになります: 1 p r i n t pi 2 p r i n t RDF ( pi ) 3 p r i n t RR ( pi ) 4 p r i n t R e a l F i e l d ( 2 0 0 ) ( pi ) 実行結果の例 pi 3.14159265359 3.14159265358979 3.1415926535897932384626433832795028841971693993751058209749 誤差が生じるのは次のような場合です, 1 s a g e : a = RR ( pi ); exp ( a * I ) 2 - 1 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 . 2 2 4 6 4 6 7 9 9 1 4 7 3 5 e - 1 6 * I 厳密にはeiπ =−1なので実数となるはずなのに,上の実行結果では虚数部分1.22464679914735e-16*Iが 残っています。これは数値計算から生じる誤差で,この絶対値は10−16i程度なので非常に小さいですが,答 えが実数でないために,以降のプログラムにエラーが生じることがあります。例えば実数値関数のグラフ描画 (plot)を使用としたときに関数の値に虚部ががあると,それがどんなに小さくてもエラーとなります。複素 数値を含む関数の数値計算を取り扱う場合は,そのような注意を常にしておかなければなりません。

7

ノートブックの出力の整形

ノートブック画面のTypesetにチェックマークを入れると,命令の実行結果が数学の書式で整形された形 で出力されます。Typesetにチェックマークを入れてからセルで次を実行してみましょう: 1 i n t e g r a l ( sin ( x )* e ^ x , x ) Typesetにチェックマークを入れない場合はどのように表示されるだろうか?(試してみてください)

8

カーネルの初期化

Sage notebookではa=3と入力すると,aが3であるという情報を持ち続けています。次にa=5と入力

すれば,aの値は5に変わります。Sageが記憶している 変数の情報をリセット するにはノートブックから 『Action...』→『Restart worksheet』をクリックします。

(8)

情報処理I 第11回目

図1 出力結果:Typeset

9

Sage

ノートブックの補完機能

端末では,ディレクトリ名やファイル名を途中まで入力してTabキーを押すとキーワードが 自動的に補完 されますが,Sageノートブックも同様の機能を持っています。Sageノートブックでdifと入力してTabキー を押してみましょう。diffとdifferences の2つの候補が出てきます。diffeまで入力してからTabキー を押すと,differencesが自動的に出てきます。ここでdiffは微分をする命令で,differencesは数列の 差をとる命令です。

10

Sage

ワークシートの保存

Sageノートブックのワークシートはファイルに保存することができます。ワークシートはSage worksheet 形式(sws)で保存されます。ワークシートの保存はWebブラウザ*7でファイルをダウンロードと同じ要領で 行います*8Sage worksheetを保存する手順は次の通りです*9

1. Sageワークシートを開いている状態で,[File...] → [Save worksheet to a file...]を順にクリック。 2. 保存するファイル名を聞かれるので,入力してOKボタンを押す。 3. Webブラウザで通常のファイルのダウンロードの画面になるので,『ファイルを保存する』を指定して OKボタンを押す。 4. 保存するフォルダを指定する。 今回はファイル名をsage01.swsとして,『他のフォルダ』のデスクトップを選び,デスクトップにある ディレクトリdataproc1に保存しておきましょう。ファイル名の拡張子はswsです。拡張子を変えてはいけ *7いまは firefox *8(ファイル→名前を付けてページを保存) ではありません! *9その前にブラウザの設定を編集し,ダウンロードの設定で『ファイルごとに保存先を指定する』となるようにしておきましょう。

(9)

ません。

次に,ファイルに保存したworksheetのファイルを読む込む手順は次の通りです。 1. Sage notebookのトップページの左上にあるuploadをクリックする。

2. Browse your computer to select a file to upload: の下の「参照」を押して,読み込むファイルを選択 3. ファイルを選んだら [upload]ボタンを押す。

11

Sage

のヘルプ

命令の後に『?』を書いて実行すると,その命令の使い方が表示されます。次を実行してみましょう: 1 sum? 和sumの使い方とその例が表示されたはずです。さらに関数sumを定義しているソースコードを表示するに は次のようにします: 1 sum??

12

Sage

ワークシートの活用

12.1

ワークシートのソースとその編集

Sageノートブックのセルの欄外にはWord のようにタイトルや説明などを書くことができます。こ こではその方法を紹介しましょう。まずSageノートブックを開きNew Worksheetを作ります。タブに

『Worksheet』と『Edit』という項目がありますが,これらクリックすることでワークシートとそのソースを 切り替えます。 それではEditを押してみましょう。すると次のようなものが表示されます。 1 2 {{{ id =1| 3 4 /// 5 }}} これがワークシートのソースです。Worksheetのタブをクリックすると先ほどのワークシートに戻ります。 さて,試しにWorksheetのセルに 1 i n t e g r a t e ( sin ( x ) , x ) と入力して実行してから,Editタブをクリックしてソースを表示してみましょう。するとソースは次のよう に変わっています:

(10)

12.1 ワークシートのソースとその編集 情報処理I 第11回目 1 # こ こ は 欄 外 2 {{{ id =1| # こ こ か ら 一 つ 目 の 項 目 が は じ ま る 3 i n t e g r a t e ( sin ( x ) , x ) # セ ル の 内 容 4 /// # 入 力 と 出 力 の 区 切 り 5 - cos ( x ) # セ ル の 実 行 結 果 6 }}} # 項 目 終 了 7 # こ こ は 欄 外 8 {{{ id =2| # 2つ 目 の 項 目 の 始 ま り 9 # 二 つ 目 の セ ル の 内 容 10 /// # 区 切 り 11 }}} # 2つ め の 項 目 の 終 わ り {{{id=1|の直後に,一つ目のセルの内容と実行結果が追加されているのがわかります。また,二つ目のセル が自動的に作られたのでその文だけソースが増えています。さて,上のテキストの1行目に 1 $ \ sin ( x ) $ の 積 分 と書いて,『Save changes』のボタンをクリックすると内容が更新されてワークシートが表示されます。下の 図の矢印の部分のようになっていたら成功です: このようにして,セルの欄外にタイト ルを書いたり,解説や補足を書くことが できます。また,簡単なLATEX の形式で 数式を書くこともできます。数式を書く と き は LATEX と 同 じ よ う に ド ル マ ー ク $ $で 囲 む か \[ \] の 中 に 書 き ま す 。 \begin{equation}...\end{equation} 環境を使うこともできます。セルの欄外に はhtml形式を使うことができます。例え ばhtmlのコマンドを使って見出しを付け ることで見やすいワークシートを作ることができます:

(11)

上のワークシートのソースは次のようになっています: 1 < h1 >1. 積 分< / h1 > 2 < h2 > 1 . 1 不 定 積 分 </ h2 > 3 不 定 積 分 $ \ int \ sin ( x ) dx$ を 計 算 す る 4 5 {{{ id =1| 6 i n t e g r a t e ( sin ( x ) , x ) 7 /// 8 - cos ( x ) 9 }}} 10 11 < h2 > 1.2 定 積 分 </ h2 > 12 定 積 分$ \ i n t _ 0 ^\ pi \ sin ( x ) dx $ を 計 算 す る 13 14 {{{ id =2| 15 i n t e g r a t e ( sin ( x ) , x ,0 , pi ) 16 /// 17 2 18 }}} 19 20 \ b e g i n { e q u a t i o n } 21 \ i n t _ 0 ^\ i n f t y \ f r a c { 1 } { 1 + x ^4} dx = \ f r a c {\ pi } { 2 \ s q r t { 2 } } 22 \ end { e q u a t i o n } 23 24 {{{ id =3| 25 i n t e g r a t e ( 1 / ( 1 + x ^4) , x ,0 , oo ) 26 /// 27 1 / 4 * pi * s q r t (2) 28 }}} 29 30 {{{ id =4| 31 32 /// 33 }}} 上のソースでは,<h1>見出し1</h1>で1番目の見出しを書いています,2番目の見出しは<h2> ... </h2> で囲んで書きます。Worksheetではhtml形式のタグはすべて使えるのでフォントサイズを変えたり,太字に したり,色を付けたりすることもできます。htmlの書き方はインターネットにいくらでもあるので必要に応 じて調べてみましょう。

12.2

Sage

ワークシートのドキュメントとしての機能

(12)

情報処理I 第11回目 上のように,Sageワークシートのソース を直接編集して,欄外にドキュメントを書 くことができますが,もっと便利な方法が あります。右の図のように,セルの外側に マウスカーソルを置くと青紫色の線が現れ ます:このとき, Shift +マウス左クリック を押すと,次の図のようにテキスト編集画 面が現れます。 ここにテキストを書いてフォントの種類やサイズを変えたり,番号付けしたり,LATEX形式で数式を書いた りすることができます。 画像ファイルを貼り付けることもできます。記入したら,『Save Changes』をクリックすれば編集が反映さ れます。また,すでに編集した欄外の項目であれば,ダブルクリックするだけでテキスト編集画面が現れます。 このように,Sage Worksheetは,計算できる上に,ドキュメント形式としても十分な機能を持ってるので, 計算可能なドキュメント であるといえます。

13

今日の課題

今日作成したSageのワークシートを提出してください。ファイル名はsagews01.swsとすること。ファイ ル名を間違えていたら0点とします。

図 1 出力結果: Typeset

参照

関連したドキュメント

1) 特に力を入れている 2) 十分である 3) 課題が残されている. ] 1) 行っている <選択肢> 2) 行っていない

ICレコーダーの本体メモリーには、ソフトウェアSound Organizer 2が保存されて います。Sound Organizer 1.6をお使いの方も、必ずSound Organizer

Even when there is no critical line initially, if the pas- sage of the wave front decelerates the mean flow significantly, a critical line may be induced, leading to a

この課題のパート 2 では、 Packet Tracer のシミュレーション モードを使用して、ローカル

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

この chart の surface braid の closure が 2-twist spun terfoil と呼ばれている 2-knot に ambient isotopic で ある.4個の white vertex をもつ minimal chart

現行の HDTV デジタル放送では 4:2:0 が採用されていること、また、 Main 10 プロファイルおよ び Main プロファイルは Y′C′ B C′ R 4:2:0 のみをサポートしていることから、 Y′C′ B

2リットルのペットボトル には、0.2~2 ベクレルの トリチウムが含まれる ヒトの体内にも 数十 ベクレルの