|
|
|
|
|
|
|
|
|
|
|
工学系のためのMathematica入門 |
|
小田部 荘司 著 |
|
3,600円 |
|
A5 240頁 |
|
4-87653-300-8 C3055 |
|
|
|
|
|
|
|
|
|
|
|
|
Mathematicaがすぐれた数式処理システムであるという事は、Mathematicaを作り上げたスティーブン・ウルフラム自身が書いたリファレンスにとどまらず、多数の文献が出版され多くのユーザーが用いていることからもわかる。これらの文献を整理してみると、大きくリファレンス、入門書、専門書と分けることができるであろう。リファレンスはウルフラム自身が書いた本が大著ではあるが、正確でありMathematicaの全てのことを網羅しているので不可欠である。専門書には主に数学者からのものが多く、数学の内容をグラフィカルに捉えたり、手続き型の処理言語と比べて別なプログラミング(パターンマッチ、リスト)を利用する方法を紹介しているものが多い。最近は工学者からもう少し具体的に特定の問題を扱った解説もされてきている。
一方、入門書は単純にコマンドを概説したものからセミナーなどで用いられる実践的なものまで幅広く出版されている。Mathematicaのバージョン3.0では今までのファンクション・ブラウザを高度にして、ウルフラムのリファレンスの内容が全て読めるようになった。これは章やコマンドの相互参照も簡単にできるために、非常に便利になった。現在は英語のみであるが日本語訳されたものも同様に利用できるものと考えられる。したがって単純なコマンドの解説書は必要性はかなり低くなった。しかしその他のすぐれた入門書は多数のコマンドを丁寧に解説するために内容が豊富であり、その全体を理解するのに時間がかかる。また一度入門書をマスターしてしまうとその本の価値がほとんどなくなってしまう。
そこで、特殊なコマンドの紹介を排除して基本的なコマンドのうち頻繁に使われるコマンドを組み合わせたさまざまな使い方について解説したハンドブックが入門者にもある程度の習熟したユーザにも便利であると考えられる。また実際に基本的なコマンドを組み合わせることによりかなりの問題を解くことができるが、入門書では相互のコマンドを単独には解説するもののコマンドの組み合わせについては詳しくは述べられないことが多い。したがってMathematicaを少し使うことができるが深くは使えないということになってしまう。
このようなことがおこる原因の一つは、ウルフラムのリファレンスが高度に抽象化された解説を行っているからである。つまりどのような応用でもできるように抽象化されて書かれているので正確ではあるが、初学者には具体的な活用例を見いだすことができない。しかしあまり具体的な事例についての解決策を示しているだけでは、一度読んだだけで参考にはならない本になってしまう。したがって適切な例についていくつか詳しく説明することによりより一般に適用することを利用者に理解してもらう方法が良いと思われる。
本書の特徴
本書はこうした背景をもとに、まったく初めてMathematicaを使う初学者から中級のMathematicaユーザーを対象に、基本的なコマンドの解説から始まってコマンドを組み合わせることにより具体的な事例を使って問題を解く方法を示す。したがって入門書であり、あとから手元に置いてリファレンスとして用いることができる参考書としても役に立つように書かれる。
この際、具体的な事例に何を選ぶかが問題になるが、筆者の講義の経験から必要と思われるものを選び、また工学においてデータ処理をする立場から解説を行っている。
筆者の講義のでは計算処理とアニメーションを二本立てにして課題としていた。その経験よりアニメーションは非常に簡単なものから複雑なものまで幅広く、アニメーションを理解することによりMathematicaの理解が深まることが分かったとのことである。したがって本書の著者の講義経験に基づき入門書としては珍しくアニメーションについて詳しく解説が行われているのが本書の特徴となっている。
類書との比較
Mathematicaの初学者を対象とした入門書には、前述のようにコマンドの解説や紹介だけで終わっているものから、プログラミングを含んだ中級者まで解説をするものまで幅広くある。しかしファンクション・ブラウザーがMathematicaバージョン3では大幅に機能が向上したのでコマンドの紹介だけの入門書は意味を持たない。しかし読んだ後に参考書として使ってもらえるためには中級者までの解説が必要だが、その際にはあまり内容が丁寧に高度なところまで行くと、内容が豊富になりすぎて、専門書になってしまう。
本書はこの点からまったくの初めてのユーザーからすこしMathematicaを使用したがまだ自分の思っていることをすべてできるところまで行っていない初学者を対象に解説を進めている。また中級者にはあとあとMathematicaを使っていく上での参考書として役に立つように配慮されている。特にアニメーションを使うことによりMathematicaのより深い理解と使い方を知ってもらうことができる。また工学を学ぶユーザに便利なようにMathematicaをもちいてデータ処理ができる例を示している。このために後半ではリスト、ファイル処理、プログラミングを解説している。
本書の構成
1 Mathematicaを使ってみよう
2 ノートブックの使い方
3 計算処理
4 グラフィックス
5 リストを扱う
6 ファイルの入出力
7 プログラミング
1 Mathematicaを使ってみよう
まず第1章ではMathematicaがきちんとインストールされているという状態から、とにかくMathematicaを使ってみてもらいMathematicaの可能性を知ってもらう。この章では典型的なMathematicaの使い方をあまり詳しく解説することはなしに、例で示すことによりMathematicaに興味を持ってもらい、本書の導入部分となっている。
2 ノートブックの使い方
次に第2章ではMathematicaを本格的に使う前に、ノートブックと呼ばれるMathematicaのインタフェース部分を解説する。この章を設けたのは、ある程度Mathematicaを使っている人でも入力の仕方を見ているとノートブックで準備されている便利な入力方法をほとんど使っておらず、使い方の解説が必要と思われるからである。実際、ノートブックはMathematicaの重要な特徴の一つであり、他の言語においてはいくつかのファイルを準備して一つの問題を解かないといけないのに対して、Mathematicaではノートブックの上でほとんど全ての情報を取り扱うことができる。したがってMathematicaのノートブックの使い方を習熟することによりMathematicaを長く使う上で便利になると考えられる。
具体的には、ノートブックへの入力の仕方、ヘルプ・ブラウザの使い方、章立ての作り方、グラフの座標の読みとり方、等を解説している。
3 計算処理
第3章ではMathematicaの最もよく使われている機能である、「計算処理」について解説を行っている。 Mathematicaの計算機能は多数の関数を用いて、数学に必要な計算をほぼ網羅している。これらは膨大ではあるが、使いやすくするための工夫がいくつかされており、その点を理解すると全体を掴みやすい。まずそうした関数を総括するような概説を行っている。
そののち具体的な計算処理として、数、式の処理、方程式の解、極限値、微分積分、べき級数展開などを扱っている。
さらに後半のプログラミングの章まで読まなくても、ほぼMathematicaが使えるように、関数の定義の仕方などの基本的な応用の方法を示している。このことにより次の章まで読めば、初歩的なところはわかり、実際に役に立てることができるようになるはずである。
4 グラフィックスおよびアニメーション
Mathematicaが世に出始めたときに、計算処理能力の高さの他にグラフィックスが素晴らしいという点で注目を集めた。計算処理システムは他にもいくつかあったがそれらは計算処理をするためだけであって、結果は別のプログラムを使って表示しなければならなかった。
それに対してMathematicaはノートブックというインタフェースに強力なグラフィックス機能を持たせて出た計算結果をその場でグラフィックスとして表示させることができる。さらにコンピュータディスプレイ上の特徴をいかして、アニメーションを行うことができる。これは視覚的に非常に分かりやすく、他人に意図を伝えやすい。したがって教育の面から非常に期待されている機能である。この章ではグラフィックおよびアニメーションについて解説を行っている。
特にアニメーションは入門書では概説しかされないことが多く、少し複雑なアニメーションをしようとすると難しい。確かにアニメーションをするためにはいくらかの理解が必要であるが、それらを知ることにより、さらに深くMathematicaを使うことが可能となる。したがって本書では基本的ではあるが実践的なアニメーションの解説を行っている。
5 リストを扱う
ここからの章は初学者には難しく、若干Mathematicaでの経験を必要とするかも知れない。リストはMathematicaでデータをまとめて扱うためにあるが、数や変数にとどまらず、全ての表現を扱うことができる。リストを扱うための関数も非常に数が多く、リストを理解することによりMathematicaにおけるプログラミングの一端を見ることができる。いったん配列にデータをまとめておくと、いくつものデータを一度に処理することができるようになる。このため、手続き型のプログラミング言語ではループを使って表現していたところを一つのコマンドで済ませてしまうことができることが多い。
これは手続き型のプログラムに慣れているユーザには発想の転換を求められる。しかしこれまでプログラムを考えるときに、手続き型に自分の考え方を合わせていて考えており、実はMathematicaのプログラミングの仕方の方が問題解決の思考と一致していることに気がつくだろう。
本章ではリストを使うことによりどのような利点があり、また手続き型のプログラムと対応していくつかの例題を示し、両者の比較をおこなっている。この解説によりユーザはリストを用いる従来の手続き型のプログラミングとMathematicaでの扱い方の両方を学ぶことができる。
6 ファイルの入出力
Mathematicaではノートブックの上でほとんどの仕事を済ませることができるが、もちろん他のファイルとの入出力をすることができ、他のプログラムで計算されたデータあるいは実験などで得られたデータを読みとり、計算処理をして、また他のファイルに書き出すという応用ができる。Mathematicaでは高級な入出力から低レベルの入出力の関数まで準備されているが、本書では入門書という事で簡単に扱える入出力について解説することにする。しかし基本的なデータ処理をするには十分であると考えられる。
7 プログラミング
本書の最終章ではプログラミングについて解説を行っている。Mathematicaのプログラミングにはパターンマッチングを用いた高度なプログラミングが用意されているが、初学者にはかなり困難であり経験を必要とするので、これについては省かれているが、ここではデータ処理に必要と思われる、関数定義、純関数、高次の関数といった他の言語ではあまりなじみのないものを最初に紹介する。そののちプログラミングの方法として、ネスト、ループ、再帰表現について解説を行っている。これらをうまく組み合わせることにより、データ処理をするに当たってより自然に思考をプログラムに換えていくことができる。
これらの応用の具体的な例として、工学で必要となる実験や理論のデータを変換したり解析したりする方法を示している。そしてMathematicaを使ったデータ処理を行う方法について述べられている。 |
|
|
|
|
|
|
|