1 Mathematica の基本
MathematicaとはWolfram Research社が開発 したソフトウェアであり,端的に説明すると色々 な計算を自動で行い,その結果を出力してくれ るというものである.Mathematicaで計算でき ることには「微分」や「積分」,「方程式の解を 求める」,「行列式を求める」など,高度な計算 も含まれるため,使いこなせれば非常に有用な プログラムである.Mathematicaの日本語公式 ホームページのURLは
http://www.wolfram.com/mathematica/
index.ja.html なので,興味ある人は見てみると良い.
便利である一方,機能が多種にわたるので使 いこなすには覚えることも多い.特に,複雑な 計算をさせる場合はプログラムを書くかのよう な入力をしなくてはならないこともある.この 節では,Mathematicaの基本的な操作法の解説 と簡単な計算を行う.
なお,このプリント,および今後配布する Mathematicaに関するプリントは以下の書籍を 参考にしながら作成した.
1. 日本Mathematicaユーザー会 編著,
「入門Mathematica」,東京電機大学出版局 2. Sal Mangano著,松田裕幸 訳,
「Mathematicaクックブック」,オライリー・
ジャパン
1.1 Mathematica
の起動とファイルの保 存
まずは,Mathematicaを起動する.
しばらくすると真っ白なウィンドウが開く.こ の状態になったら実際に使える状態になったの だが,色々と書き始める前にファイルの保存の 仕方を確認する.
ウィンドウ上部にあるメニューで「ファイル」
→「保存」をクリックするとウィンドウが出て くるので保存する場所を選び,ファイル名を
「math」と入力した後に「保存」をクリックす ると選択した場所にファイルが新たに現れる.
一度Mathematicaを閉じて先ほど保存したフ ァイルのディレクトリを開こう.先ほど保存し
たファイルは「math.nb」となっているはずであ る.nbはnote bookの略でMathematicaのファ イルは「*.nb」として保存される.math.nbを ダブルクリックしてみよう.Mathematicaが自 動的に起動し,math.nbが開く(何も書いてい ないので真っ白なウィンドウが出てくるはずで ある).
1.2
基本操作と簡単な例
簡単な式であればMathematicaは直感的な入力 のみで使うことができる.例えば,1+1を計算 させてみよう.以後,「· · ·」と入力する,と書い てあったら実際に入力するのは「」で囲まれた
· · ·の部分だけであり,括弧自身は入力しない.
1. キーボードで直接「1+1」と入力する.
2. キーボードで「Shift」を押しながら「Enter」 を押す(以後この操作を「Shift+Enter」と 省略したり,「実行する」,あるいは「評価 する」と言ったりする).
上の2ステップを行うとウィンドウ内の表示が
In[1]:= 1+1 Out[1]:= 2
になるはずである.「In」はinput(入力)の略で自 分が入力したものである.それに対して「Out」 はoutput(出力)の略で入力に対するMathe-
maticaの答え(評価結果)を表している.横に
数字が付いているのは,入力と出力のペアが分 かるように番号を割り振っているのである.
そのまま続けてキーボードで「1+2」と入力 し,「Shift+Enter」すると以下のようになるはず
である.
In[1]:= 1+1 Out[1]:= 2 In[2]:= 1+2 Out[2]:= 3
In・Outの横の数字が1つ増えたことが確認で きる.以後,Mathematicaに評価をさせる度に この番号が増えていく.
上の四角内に記述したように,画面に表示さ れるべきものを今後も上のような角の丸い四角 で囲って記す.ただし,In[x]/Out[x]のxに入る 数字は,それまでにMathematicaに何回評価を 実行させたかによって異なるのでこの数字がプ リントの表示と一致しなくても本質的ではない.
重要なのは,同じ数字が付いているInとOutが ちゃんと対応する入力・出力にそれぞれなって いるかを確認することである.
これを考慮して以後,画面の表示を記述する 際には基本的にIn/Outの横の数字は1として 記述し,複数の入出力を同時に表示する必要が ある場合にのみ必要に応じて数を増やして記述 する.
1.3
セル
ウィンドウの右端を見ると,]のような記号がい くつかあることに気づく.Mathematicaでは入 力や出力を「セル」と呼ばれる単位でまとめて 管理する.例えば今の場合,
In[1]:= 1+1 は1つのセルに記入されていて,
Out[1]:= 2
もまた別のセルになっている.Mathematicaは デフォルトの設定では入力とそれに対応する出 力のセルを自動的にグループに分ける.今の場 合,右端も含めて画面の表示を書くと
In[1] : = 1 + 1 ]
Out[1] : = 2 ]
のようになるが,2つの小さい]は入力・出力そ れぞれのセルを表し,大きい]はそれらがグルー プになっていることを表す.特に,入力が書い てあるセルを「入力セル」,出力が書いてあるセ ルを「出力セル」という.
それぞれクリックするとそのセル,あるいは グループを選択した状態になる.大量の計算や 長い数式などを整理するのに便利であるが,当 面は必要ないときはセルには言及せずにプリン トでも省略する.
なお,計算式を一度実行すると次に入力する 際には新しいセルが作られて,そこに入力する ようになるが,既存のセルをクリックして修正 や付け足しをすることもできる.「Shift+Enter」 を行うと,現在選択されている入力セルの内容 が実行される.
1.4
基本操作のまとめ
これまでのことをまとめると,Mathematicaで は
Mathematicaにやってほしいことを入力
⇓
「Shift+Enter」
⇓
結果が出力される
が基本的な流れである.後は,「Mathematicaに やってほしいことをどのように入力すればよい のか?」ということが今後のテーマとなる.
1.5
エラーや操作ミスなど
様々な計算を試す前に,間違った入力(Mathe-
maticaが認識できない入力)を実行させようと
するとどうなるか確認しよう.
1.5.1 中途半端な数式
例えば,「1+」と入力して実行させてみよう.す ると,以下のような表示で
In[1]:= 1+
In[1]の+記号がハイライトされているはずで
ある.Mathematicaでは評価させた際に,認識 できないところがあるとその部分をハイライト してくれるので,ハイライトされている部分を 見ながら入力を直そう.今の場合は,「何を足す のか」が指定されていないので適当な数字を書 き足して実行すれば問題なく結果が出力される.
例えば,3を書き足せば
In[1]:= 1+3 Out[1]:= 4
のようになる.
1.5.2 全角による入力
全角で式を入力するとどうなるだろうか? 例え ば,全角で「1+1」と入力して実行すると
In[1]:=1+1 Out[1]:=1+1
となる.1+を入力したときと違い,エラーを出 すのではなく,入力したことがそのまま出力さ れた.これは,全角で入力するとMathematica は「1+1」を数式ではなく,文字として認識 し,特に評価することがないのでそのままを出 力したのである.同じ要領で,半角入力でも単語 を入力すると入力した単語をそのまま返す.例 えば「Mathematica」と入力すると
In[1]:= Mathematica Out[1]:= Mathematica
のようになる.後に扱うが,Mathematicaは変
数を含む式を変数のまま変形したりできる.お そらくその都合で文字を入力すると文字をその まま返すようになっているのだろうと思われる.
したがって,Mathematicaに評価をさせるた めには入力モードが全角になっていないかに注 意が必要である(Mathematicaを使う上で全角 入力が必要になることは基本的にない).
1.6
簡単な計算
Mathematicaの大まかな操作方法が分かったと ころで,早速色々と計算させてみよう.まず,以 下に基本的な演算や記号の入力法を列挙する.
1.6.1 演算・記号の入力法・関数
以下の表のa, bは実際に使用するときは数字を 当てはめて使おう(アルファベットのまま入力 しても問題はないが何も評価してくれない).
演算・記号 入力法
a+b a+b
a−b a - b
a×b a∗b
a÷b a/b
ab a^b
i(虚数単位) I(大文字のi) π(円周率) Pi
e(ネピア数) E
次に,よく使う関数を表にまとめる.
関数 入力法
|a|(絶対値) Abs[a]
logab Log[a,b]
logeb(自然対数) Log[b]
√a Sqrt[a]
sina Sin[a]
cosa Cos[a]
tana Tan[a]
Mathematicaは「加減乗除の計算順序」や「括 弧で囲まれたものを先に計算する」などのルー ルも組み込まれているので数式を見たまま入力 すれば望みの計算をしてくれる.
上の表に挙げたもの以外にも関数や記号はた くさんあるが,全て挙げるのは不可能なのでもっ
と知りたい人はプリントの最後に解説するドキュ メントセンターを使って調べてみよう.
表からも分かるように基本的にどの関数も
関数名[引数]
の形で入力して使うようになっている.また,
Mathematicaにおいてはこれら「関数」が基本 要素であり,特定の計算をさせるために必要な 関数を選び出し,組み合わせることによって望 みの計算をさせるのである.
その最も単純な例が,2つ以上の関数を合成 することである.例えばlog|a|を計算させるに は Log[Abs[a]] と入力すればよい.
課題 1.1. Mathematicaに以下の2つの計算を させ,結果が違うことを確認せよ.
2×3 + 4÷2 2×(3 + 4)÷2
課題 1.2. R3の2つの点(1,2,3)と(−1,3,0) の間のユークリッド距離をMathematicaに計算 させよ.
ただし,R3の2点(x1, x2, x3)と(y1, y2, y3)の 間のユークリッド距離は
vu ut∑3
i=1
(xi−yi)2
である.
1.7
もう少し複雑な計算
これまでは「1つの計算式を入力してそれを実 行する」,ということを行ってきたが,もう少し 込み入った計算もできるので見てみよう.
1.7.1 複数個の計算式
まず,一つの入力セルに複数の計算式を入力し て実行させることができる.以下のように入力 してみよ.なお,改行をするには「Enter」を押
せばよい.
1+1
2+2
この状態で実行すると以下のようになるはずで ある.
In[1]:= 1+1 2+2
]
Out[1]:= 2 ]
Out[2]:= 4 ]
1つのセルに2つの計算式を入れたので結果が 2つ出力された.その関係で,Outの番号がIn の番号とずれてしまうが,ウィンドウの右端を みると,3つのセルが1つのグループとしてちゃ んとまとめられていることが分かる.
1.7.2 変数を用いた省略
一連の計算過程で,表示の長い値をいちいち入 力するのは面倒である.例えば円周率の近似値
として3.14159を使って計算する式が大量にあ
る場合,
x=3.14159 3∗x
x^2
の よ う に 入 力 す れ ば ,Mathematica は x が
3.14159として定義されたことを認識し,後に
続く計算式においてx = 3.14159を代入して計
算してくれる.上の例を実行すると
In[1]:= x=3.14159 3∗x x^2
Out[1]:= 3.14159 Out[2]:= 9.42477 Out[3]:= 9.86959
のようになる.最初の出力はxの値を返してい るだけである.また,一度xに値を定めると,値 を再定義するまでMathematicaはxの値を保存 する.新しいセルに
x-2
と入力して実行してみよう.すると,このセル 内ではxの値を定めていないにも関わらず,ちゃ んと1.14159という値を出力する.
一度値を定めた変数の中身を消すためには
Clear[変数]
を実行すればよい.今の場合
Clear[x]
3*x
を実行すると
In[1]:= Clear[x]
3*x Out[1]:= 3 x
のように,xを値の決まっていない変数として の評価結果が出力された.
1.8
困ったときのドキュメントセンター
次回以降より複雑なMathematicaの使い方を解 説するが,関数の使い方を調べたり,プリント で解説しきれない事柄を自分で調べるための方 法を解説する.ウィンドウ上部にあるメニューで「ヘルプ」→
「ドキュメントセンター」をクリックすると新し いウィンドウが開き,ドキュメントセンターの メニューが表示される.使い方としては大きく 分けて2通りある.
1. 検索フォームにキーワードを入力して検索 する
検索すると関連する項目がリストアップさ れ,クリックして進んでいけば個別の関数 に関する説明や具体的にどのように入力し て使うのかの例を交えた解説をみることが できる.使いたい関数の名前はわかってい るが細かい入力方法が分からない場合に有 効な方法である.
2. 最初のメニューをたどりながら探す メニューに表示されているいくつかのカテ ゴリーを選んでいき,最終的に必要な関数 の解説ページにたどり着く方法である.こ れは,「こういうことをやりたい」というの が分かっているが,どの関数を用いれば可 能かが分からないときに有効である.
分からなくなったらとりあえず ドキュメントセンターで調べよう!