Mathematica パッケージ

Mathematica の最も重要な特徴のひとつに拡張性が非常に高いということがある.数学関数や他の標準的な機能が組み込まれてはいるが,Mathematica 言語を使うことで,機能性をさらに向上することが可能になっている.

ほとんどの計算は標準版 Mathematica の持つ組込み関数で十分間に合う.しかし特殊な分野の計算は組み込まれていない関数を必要とする場合がある.

そのようなとき,必要な関数がパッケージに入っているかもしれない.パッケージは Mathematica 言語で書かれたプログラムファイルであり,Mathematica に特定の応用分野について「教授する」定義の集まりから構成されている.

<<packageMathematica パッケージを読み込む

Mathematica パッケージの読込み

パッケージに入っている関数を使うには,まず,パッケージを Mathematica に読み込ませる必要がある.やり方の詳細に関しては「外部プログラム」を参照してほしい.パッケージを参照する際に必要となる名前の指定に関する約束事が説明してある.

Mathematica にパッケージを読み込ませる.
In[1]:=
Click for copyable input
関数ProvablePrimeQは,このパッケージで定義されている.
In[2]:=
Click for copyable input
Out[2]=

パッケージ間での関数名の衝突のような問題に関連した微妙なことが多数ある.これは「コンテキストとパッケージ」で詳しく触れる.ここで言及しておきたいのは,まだ読み込まれていないパッケージの中にある関数を参照してはならないということである.誤って参照してしまうと,Mathematica は重複した名前についての警告メッセージを表示し,最後に定義したものを使う.つまり,自分が使いたい関数が使われないということである.パッケージの関数を使うのである.このようなときは,Remove["name"]を実行すると,パッケージの関数を除去することができる.

Remove["name"]誤って定義した関数を除去

競合している関数の除去

パッケージを追加することで Mathematica の機能を拡張できるということは,裏を返せばどこまでが「Mathematica 本来の部分」か,というような境界ができないことを示している.実際には,パッケージの関数と組込み関数の間には全く違いがない.

Mathematica の中核システムに組み込まれている関数の多くは Mathematica パッケージで提供される.それでも,一部の Mathematica システムを除いて,これらのパッケージは Mathematica が起動すると同時に先読みされるので,関数は常に使える状態にある.

Mathematica 本来の部分をさらに不明確にするものとして,次の機能がある.「パッケージの自動読込み」でやり方を説明するが,パッケージにある関数を参照するたびに関数の定義がパッケージから自動的に読み込まれるようにすることができる.関数が参照されなければ,関数は存在しないままだが,一度参照されると,その定義はパッケージから自動的に読み込まれる.

便宜上,Mathematica 本来の部分とは,すべての Mathematica システムに共通な関数からなる部分ととらえればよいだろう.ここでは,これらの関数を中心に解説していくことにする.

それでも,ほとんどの Mathematica のオペレーティングシステム別バージョンには標準でいくつかのパッケージが添付されているため,より多くの関数が定義済みになっている.それらの関数を使うには,パッケージを手動で読み込ませる必要がある.

Mathematica 7標準パッケージの情報はドキュメントセンターで得ることができる.

1.gif

適当な Mathematica のシステム設定を行うことで,このようなパッケージを先読みさせたり,必要なときに自動的に読み込ませることも可能である.そうすると,組込み関数と同様に扱える関数が多くなるが,Mathematica システムのレファレンスページではこのような関数については説明しない.

最後に,パッケージとノートブックの関係について触れておく.これらはともに使用中のコンピュータシステムにファイルとして保存され,また Mathematica に読み込ませることができる.両者の違いは,ノートブック文書は表示される(ノートブックフロントエンドを使って)ためにあるのに対して,パッケージは Mathematica への入力のためにある,ということである.それでも,実際,多くのノートブックはパッケージとみなされる部分を含み,それらは Mathematica の入力として使われる一連の定義を持っている.また,ノートブックの自動保存に対応するパッケージの設定もある.

New to Mathematica? Find your learning path »
Have a question? Ask support »