Mathematica

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
Mathematica
Mathematica logistic bifurcation.png
Mathematica 8.0.0 GNU/Linux版のフロントエンド
開発元 ウルフラム・リサーチ
初版 1988年6月23日[1]
最新版 9.0.1 / 2013年01月30日(14か月前) (2013-01-30
プログラミング言語 C/C++JavaWolfram
プラットフォーム クロスプラットフォーム (list)
対応言語 英語、中国語、日本語
種別 数式処理システム数値解析、情報視覚化、統計処理、ユーザインタフェース生成
ライセンス プロプライエタリ
公式サイト www.wolfram.com/mathematica/
テンプレートを表示

Mathematica(マセマティカ)は、スティーブン・ウルフラムが考案し広く使われている数式処理システムウルフラム・リサーチ社の、ウルフラムが率いる数学者とプログラマのチームが開発し、同社が販売している。Mathematica は項書き換えを基本として、複数のパラダイムをエミュレートするプログラミング言語としても強力である。

概要[編集]

ウルフラムと彼のチームは1986年から新たな数式処理システムの開発を開始し、1988年にその最初のバージョンをリリースした。ウルフラムは当初、このシステムを Omega、のちに PolyMath と呼んでいたが、当時 NeXT 社の社長であったスティーブ・ジョブズに相談したところ「ダサい名前だ」と一蹴され、なにか一般的な語をロマンチックに表現したもの、例えばトリニトロンのような名前が良いとして「Mathematica」と名付けられた[2]

歴代の Mathematica のロゴに使われているのは「スパイキー」と呼ばれる三次元多面体で、初代 Mathematica では大二十面体、それ以降のバージョンでは双曲二十面体を装飾したものが使われている[3][4]

プログラミング言語としての Mathematica は、項書き換えを基本として関数型手続き型の両方をサポートするマルチパラダイム・プログラミング言語である。Mathematica は、ウルフラムらが1979年頃に開発した Symbolic Manipulation Program を起源とし[5]プログラミング言語 ALGOLLISPAPL、および、数式処理システム Macsyma の影響を受けている[6][7]

Mathematica は C/C++ および Java で実装されているが、拡張可能なライブラリはすべて Wolfram 言語で書かれている。実際、新しいコード(Wolfram 言語で書かれたテキストファイル)は Mathematica の「パッケージ(.m ファイル)」として追加される。Mathematica には3,000以上の高度に洗練された組み込み関数が用意されており[8]、それらをビルディング・ブロックとして組み合わせていくことで、簡単にプログラムを作ることができる。

システムとしての Mathematica は、Wolfram 言語を解釈し実際に計算を実行する「カーネル」と、その計算結果を表示する「フロントエンド」の2つの部分から構成される。カーネルとフロントエンドの間の通信には「MathLink」 プロトコルが使われる。

Mathematica の最新バージョンは 9.0.1(2013年1月30日リリース)で、様々なコンピュータシステム上で利用可能となっている。

機能[編集]

調整可能なパラメータで描画したディニの曲面英語版

Mathematica には次のような機能がある[9]

インターフェイス[編集]

システムとしての Mathematica は、演算を実行する「カーネル」と、ユーザーとの対話を行う「フロントエンド」の2つの部分から構成される。カーネルとフロントエンドは独立に起動し、「MathLink」と呼ばれるプロトコルを使って通信している。実際、Mathematica を起動した時点ではカーネルは起動しておらず、フロントエンドで最初の計算が実行された時にはじめてカーネルが起ち上がる。このため、Mathematica を起動して最初の計算では通常に比べて少し時間を要する。

ノートブック[編集]

フロントエンドは Mathematica システムの GUI を担当する部分で、自動構文カラーリング、入力補完、デバッガなどの開発ツールの機能があり、一般的なワードプロセッシング機能の大部分もサポートしている。Mathematica の標準的なフロントエンドである「ノートブック」は対話型のドキュメントで、データ・数式・テキスト・コード・演算結果・グラフィックス・表・GUI コンポーネント・アニメーション・音声などを混在させることができる。ノートブックはウルフラム・リサーチ社の共同創始者であるセオドア・グレイ英語版によって設計され、Mathematica 2.0 より採用された。

一つのノートブックの中でデータの処理から可視化、さらに文書作成までをシームレスに行えることが、Mathematica の最大の利点の一つである。ノートブックにおいては、ユーザーの入力(テキストと Mathematica コード)やカーネルの演算結果(グラフィックやサウンドも含む)はすべて階層化された「セル」に納められ、文書のアウトライン化やセクション分割が容易に行える。ノートブックとその中身は、すべて Mathematica の式で記述されており、Mathematica のプログラムで生成・修正・解析することが可能である。この機能を使って TeXXML といった他のフォーマットへの変換も可能である。

代替フロントエンド[編集]

Mathematica 標準のノートブック以外にも、代替のフロントエンドが存在する。2006年には Eclipse ベースの IDEWolfram Workbench が登場した。プロジェクトベースのコード開発ツールとなっており、リビジョン管理、デバッグ、プロファイル、評価などの機能がある。また Mathematica には、テキスト型インターフェースが同梱されており、UNIX コマンドラインから直接カーネルを呼び出し対話することも可能である[10]

計算可能なデータ[編集]

Mathematica で利用できるリアルタイム気象データを用いた流線プロット(StreamPlot)の例。

Mathematica には一貫したフレームワークで管理されたデータ群が含まれており、即座に計算に使用できる。それらデータはモデル評価などの目的でプログラムから使用でき、ウルフラム・リサーチにあるデータサーバに自動アクセスして最新データに更新できる[11]。株価や気象などのデータはリアルタイムに配信される。

計算可能なデータには次のようなものがある。

  • 数学データ: 195の多面体の98種類の属性データ、5300のグラフの282種類の属性データ、6つの結び目の64種類の属性データ、21の格子の38種類の属性データ
  • 化学データ: 44,000 の化合物の101種類の属性データ、118の元素の86種類の属性データ、1000の亜原子粒子の35種類の属性データ、3200の同位体の33種類の属性データ
  • 天文学データ: 52の測地座標系の32種類の属性データ、156,000 の天体の99種類の属性データ
  • 地政学データ: 240カ国の223種類の属性データ、164,000の世界各地の都市の14種類の属性データ
  • 言語データ: 149,000の英単語の37種類の属性データ、他の26の言語の辞書
  • 生命科学データ: 40,000のヒト遺伝子の41種類の属性データ、27,000のタンパク質の30種類の属性データ
  • 金融データ: 146,000の銘柄や金融商品の74の属性データ(履歴とリアルタイム)
  • 気象データ: 22,000の世界各地の観測地点における43の属性データ(履歴とリアルタイム)
  • Wolfram Alpha のデータ: Wolfram Alpha からの兆を越える多数のデータ

高性能計算[編集]

1999年のバージョン4でパックアレー[12]、2003年のバージョン5で疎行列を導入し[13]GNU Multi-Precision Library を採用して高精度演算が可能となり、高性能計算向け機能が拡張された。

バージョン5.2 (2005) では、マルチコアコンピュータ上で動作する際に自動的にマルチスレッド化する機能を追加した[14]。このバージョンから CPU 毎に最適化されたライブラリを採用している。また、ClearSpeed などのサードパーティ製高速化ハードウェアが Mathematica をサポートしている[15]

2002年、異機種混在型クラスターやマルチプロセッサシステムでのユーザレベルの並列計算を可能にする gridMathematica をリリース[16]。2008年には、並列計算技術は通常の Mathematica ライセンスに含まれるようになり、Windows HPC Server 2008Microsoft Compute Cluster ServerSun Grid をサポートするようになった。

2010年から CUDA および OpenCL 対応の GPU ハードウェアをサポート。またバージョン8ではC言語コードを生成でき、Intel C++ CompilerVisual Studio 2010 のコンパイラで動的にコンパイルできる。

他のアプリケーションとの接続[編集]

MathLink プロトコルは、Mathematica のカーネルとフロントエンド間の通信だけでなく、任意のアプリケーションとカーネルとの通信にも使われる。Mathematica は豊富な機能を備えているが、他のプログラムの機能を利用したり、古いコードにアクセスするためにいくつかのインタフェースが開発されてきた。

C、Java、.NET、データベース、R との接続[編集]

ウルフラム・リサーチ社は Mathematica カーネルとの MathLink による通信を行うアプリケーション開発者向けに C 言語での開発キットを無料で配布している[17]

J/Link.NET/Link は、それぞれ、MathLink をベースにした Java および .NET 用のコンポーネントである。J/Link を使うと、Java プログラムから Mathematica に計算を依頼することができ、Mathematica プログラムが Java のクラスをロードし、Java オブジェクトを操作したりメソッドを呼び出したりできる。そうすると、例えば Mathematica から Java の GUI を構築できる。同様に、.NET/Link を使えば .NET プログラムと同様のことが可能になる。

DatabaseLinkSQL データベースを扱うためのツールキットで、JDBC 接続と ODBC 接続をサポートしている。RLink は統計解析向けプログラミング言語 R と交信し Mathematica 内から R のコードを実行するもので、バージョン 9 から正式にサポートされた。

その他の接続[編集]

その他に Mathematica と接続できるプログラミング言語としては、Haskell[18]AppleScript[19]Racket[20]Visual Basic[21]Python[22]Clojure[23] がある。数学関係のソフトウェアでは、OpenOffice.org Calc[24][リンク切れ]Microsoft Excel[25]MATLAB[26][27][28]SINGULAR[29]Origin[30]に接続可能である。

Mathematica はリアルタイムのデータストリームを受け付けることもでき、LabVIEW[31]、金融関係用[32][リンク切れ]、GPIB (IEEE 488)[33]USB[34]、シリアル接続[35]などの方法がある。HID デバイスからの入力を自動的に検出して読み込むこともできる。最近では LEGO マインドストームで作ったロボットを Bluetooth 通信を介して操作する試みもなされている[36]

2014年1月6日、ウルフラム・リサーチ社は、Wolfram 言語と外部装置の接続利用促進に向けたプロジェクト Wolfram Connected Devices Project を起ち上げた[37][38]

アプリケーション配布[編集]

Mathematica で書かれたアプリケーションを配布するための手段がいくつか用意されている。

  • Wolfram CDF Player
    • 計算可能ドキュメント形式(CDF)でセーブされた Mathematica プログラムを実行できる無料のプレイヤーである。
    • 代表的なウェブブラウザへのプラグインも含まれている。
    • Mathematica の標準形式のファイルも閲覧可能だが、実行はできない。
  • Wolfram Player Pro
    • Mathematica のアプリケーションを実行可能なランタイム版 Mathematica である。
    • コードの作成・編集はできない。
  • webMathematica
    • ウェブブラウザがリモートの Mathematica サーバのフロントエンドとして機能できるようにする。
    • ユーザーの書いたアプリケーションにブラウザ経由で任意のプラットフォームからアクセスすることを可能にする。
    • Mathematica への完全なアクセスを提供することはできない。

Mathematica のコードは C 言語のコードに変換したり、DLL を自動生成することも可能である。また、閲覧に限ったファイルの共有には HTML や LaTeX 書式での出力が便利である。数式は MathML に変換することで他のソフトウェアとやりとりできる。

対応プラットフォームとライセンス[編集]

Mathematica 9 は、Microsoft Windows(XP SP3・Vista・7・8)、Apple OS XLinux の各種バージョンで動作する[39]。どのプラットフォームも64ビット版をサポートしている。過去にサポートしていた OS としては、NeXTSTEPSolarisAIXConvexHP-UXIRIXMS-DOSOS/2UltrixWindows Me などがある。

ライセンス[編集]

Mathematica はプロプライエタリなシステムであり[40]、設定価格は比較的高めである。日本での商用版シングルユーザーライセンスの販売価格は423,500円で、これには、並列計算用の追加のカーネル、1年間のプレミアサービス、家庭での利用を許可するライセンス、Wolfram Lightweight Grid ManagerWolfram WorkbenchwebMathematica Amateur Edition のライセンスが含まれる[41]。一方で、政府機関、非営利組織、教育機関、学生、家庭用に向けては低価格を設定している[42]。例えば、学生向けの製品(内容は正規品と同じ)は正規価格の5%程度で購入できる[43]。教育機関向けライセンスで契約した場合、学生は家庭でも Mathematica を利用可能である。指定された数の Mathematica をネットワーク上で同時に起動できるネットワークライセンスも用意されている[44]

Mathematica の価格設定は地域によっても大きく異なる。米国においては、商用版2,495ドル、学生版140ドル(日本では25,000円)、家庭版295ドル(日本では67,000円)となっており、日米で倍近い価格差が生じている。

無料バンドル[編集]

2013年11月21日、ウルフラム・リサーチ社とラズベリーパイ財団は、すべての Raspberry Pi に Wolfram 言語と Mathematica 10 のパイロット版を無料でバンドルすることを発表した[45][46]。これにより、Raspberry Pi の計算速度の問題は残るものの、Mathematica の全機能を実質25ドル(Raspberry Pi Model A のボード1枚の価格)で利用できることになった。Mathematica がコンピュータに無料でバンドルされるのは、1988年の NeXT 以来、25年ぶり2度目の出来事である。

2014年1月6日、ウルフラム・リサーチ社とインテル社は、2014年夏頃に発売予定の SD カードサイズコンピュータ Intel Edison に Wolfram 言語と Mathematica を標準搭載すると発表した[47]

リリース履歴[編集]

ウルフラム・リサーチからリリースされた Mathematica のバージョンは以下の通り[48]:

バージョン リリース日 主な新機能
Mathematica 1.0 1988年6月23日 初代 Mathematica。Macintosh のサポート。NeXT 社製のすべてのコンピュータにバンドル
Mathematica 1.2 1989年8月1日 Macintosh フロントエンド。リモートカーネル。初歩的微分方程式の求解。Statistics および Graphics パッケージの追加。3D グラフィックスの新しいオプションと機能の追加。
Mathematica 2.0 1991年1月15日 MathLink プロトコル。標準フロントエンド「ノートブック」。グラフィックスの装飾機能の追加。文字列・ファイル操作。
Mathematica 2.1 1992年6月15日 Macintosh 用 MathLink。Windows 3.1 のサポート。
Mathematica 2.2 1993年6月1日 Windows 用 MathLink。Linux のサポート。X 用フロントエンド、オンラインマニュアル。Macintosh と NeXT 用の関数ブラウザ。
Mathematica 3.0 1996年9月3日 数式タイプセット。数多くの新しい特殊関数
Mathematica 4.0 1999年5月19日 スペルチェック機能。20種類以上のデータ、画像、サウンドデータのインポート・エキスポート。ネットワークライセンス管理システム。
Mathematica 4.1 2000年11月2日 Mac OS X のサポート。J/Link による Java の統合。リアルタイム 3D グラフィックス。
Mathematica 4.2 2002年11月1日 スライドショースタイル。XML 対応。XHTML への書き出し。
Mathematica 5.0 2003年6月12日 疎行列のサポート。.NET/Link による .NET Framework との統合。クイックスタート。
Mathematica 5.1 2004年10月25日 SQL 接続のサポート。Excel ファイルのインポート・エキスポート。Web サービスのサポート。クラスタ分析ベンチマークツール MathematicaMark。
Mathematica 5.2 2005年6月20日 64ビット対応。マルチコアSSH リモート接続。
Mathematica 6.0 2007年5月1日 動的インタラクティブ機能。数学物理学化学金融地理言語学のオンラインデータベースへのアクセス。
Mathematica 6.0.1 2007年7月5日 Mathematica ドキュメントセンター。「ノートブックを評価」メニュー。Mathematica 関数の例題およびチュートリアル。
Mathematica 6.0.2 2008年2月25日 バーチャルブック(Mathematica ブックの電子版)。関数ナビゲータ。Intel Mac での64ビット対応。
Mathematica 6.0.3 2008年6月23日
Mathematica 7.0 2008年11月18日 組込みの並列高性能計算。ゲノムタンパク質気象のオンラインデータベースへのアクセス。測地および GIS データ。
Mathematica 7.0.1 2009年3月5日 基本数学・数学授業・文章作成のアシスタントパレットの日本語化。チュートリアル、「How to」ガイド、スクリーンキャスト。ドキュメントに含まれる数千に及ぶ新規例題。gridMathematica Server との統合。
Mathematica 8.0 2010年11月15日 Wolfram Alpha との統合。自由形式言語入力。CDF(計算可能ドキュメント形式)。CUDAOpenCL の組込みサポート。C コードの自動作成。3D 画像のテクスチャマッピング。Mathematica ホームエディション。
Mathematica 8.0.1 2011年3月7日
Mathematica 8.0.4 2011年10月24日
Mathematica 9.0.0 2012年11月28日 入力予測インターフェイス。ソーシャルネットワーク分析。主要なデータサイエンス確率統計の新機能。3D 立体画像処理機能。インタラクティブゲージ。Google マップ などの Web API に対応。R との統合。スライドショースタイルの刷新。
Mathematica 9.0.1 2013年1月30日

[編集]

方程式 ex = x2 + 2 において x = -1 を開始点としてその根を数値的に求める。

In[1]:= FindRoot[Exp[x] == x^2 + 2, {x, -1}]
Out[1]= {x -> 1.3190736768573652}

次の例では、インデックスの原点を0とする 6 × 6 の行列ij 番目のエントリの値が ij であり、0のエントリを1に置き換えたものの行列式を求めている。そのような行列式は0である。

In[2]:= Det[Array[Times, {6, 6}, 0] /. 0 -> 1]
Out[2]= 0

一般的なプログラミング言語と大きく異なる点として、Mathematica ではリストのインデックスが 1 から始まることに注意が必要である。

マルチパラダイムと一つの言語[編集]

Mathematica はマルチパラダイム・プログラミング言語であり、一つの問題に対して複数のアプローチを取ることが可能である。

ただし、以下の例で見るように、Mathematica の組み込み関数を有効に使うことで、問題を簡潔に表現することができる。また、Mathematica の組み込み関数は、適切なアルゴリズムを用い、高度に最適化され、かつ C 言語で実装されているため、同じ機能を持つユーザー定義関数に比べて計算速度が圧倒的に速い[49]。したがって、Mathematica プログラミングにおいては、組み込み関数を最大限に利用することが重要である。

ここでは簡単な例として、最大公約数 GCD(x, y) のテーブルを作る問題を考える(ここで、1 ≤ x ≤ 5、1 ≤ y ≤ 5 とする)。これには、少なくとも次の4つのアプローチが考えられる。

1. 関数型のアプローチ:

In[3]:= Array[GCD, {5, 5}]
Out[3]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}

このアプローチは、表現が抽象的ではあるが、組み込み関数の性能を十分に引き出しており、簡潔で計算速度も速い。Array は引数として任意の関数を許容する(名前があるかどうかを問わない)ので、スロット #n を使って、& の後に対応する関数を記述することができる。したがって、上記の関数は Array[GCD[#1, #2]&, {5, 5}] とも記述できるが、Mathematica ではそれを上記のように省略してもよいようになっている。

2. APL 的なアプローチ:

In[5]:= Outer[GCD, Range[5], Range[5]]
Out[5]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}

ここで、OuterRange はそれぞれ APL の外積演算子とイオタ演算子に対応している。OuterArray と同様、引数として任意の関数を許容する。

3. Table を使うアプローチ:

In[4]:= Table[GCD[x, y], {x, 1, 5}, {y, 1, 5}]
Out[4]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}

Table は任意の次元の表を作るのに使われる標準的な関数である。このアプローチは、GCD の取る引数が明示的で、直感的に理解しやすい。反面、上記1・2に比べると計算速度で若干劣る。

4. 手続き型のアプローチ:

In[6]:=
    lst1 = {}; (* 空のリストを初期化 *)
    For[i = 1, i <= 5, i++,
        lst2 = {}; 
        For[j = 1, j <= 5, j++,
            lst2 = Append[lst2, GCD[i, j]]
        ]; 
        lst1 = Append[lst1, lst2]; (* 部分リストを繋ぐ。これが行となる *)
    ];
    lst1
Out[6]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}

これは C 言語FORTRAN などで馴染み深いアプローチであるが、組み込み関数を使った場合(上記1~3)に比べるとコードが冗長である。また、手続き型のアプローチは計算速度が遅くボトルネックになりやすいので、実際の Mathematica プログラミングにおいては注意が必要である。

すべては「式」である[編集]

Mathematica は「すべては式である(Everything is an expression.)」という思想のもとに設計されている[50]。ここで言う「式(Expression)」とは、アトムと関数である。

Mathematica において、数式・リスト・グラフィックスを含むすべてのオブジェクトは head[e1, e2, ...] という共通の基本構造を持つ。そして、この構造は入れ子にすることができる(つまり、e1e2 もまたこの構造を持つことができる)。したがって、どんなに複雑なオブジェクトでも、この基本構造とその再帰的な繰り返しで表現することが可能である。

例えば、x^4+1 という式を入力すると、出力は以下のように表示される。

In[7]:= x^4 + 1
Out[7]= 1+x4

FullForm を使うと、この式の完全形(Mathematica における内部表現)を見ることができる。

In[8]:= FullForm[x^4 + 1]
Out[8]= Plus[1, Power[x, 4]]

上記の例では、Plushead であり、Power[x, 4] が入れ子になっている。x のような記号も実は Symbol["x"] という構造を持っている。

リストも Listhead とする同様の構造である。例えば、x^4+1{1, x^4} という2つの表現は、外見はまったく異なるが、完全形で見れば headPlusList かの違いしかない。

この基本構造により、リストとは無関係の普通の式をリスト演算子で処理することができる。

In[9]:= Expand[(Cos[x] + 2 Log[x^11])/13][[2, 1]]
Out[9]= 2/13

逆も同様で、リストを普通の式のように扱うこともできる。

In[10]:= Map[Apply[Log, #]&, {{2, x}, {3, x}, {4, x}}]
Out[10]= {Log[x]/Log[2], Log[x]/Log[3], Log[x]/Log[4]}

ここで、Apply は第二引数の head を第一引数で指定されたものに置換する関数である。また、Map は関数型言語によく見られる高階関数 map である。

Mathematica では、数学的オブジェクトがリスト構造と等価であるため、組み込み関数のいくつかは「スレッディング」可能であり、特に指定しなくてもリスト上の各要素にマップされるときにマルチスレッド化される。実際、Apply は次のような場合にマルチスレッド化される。

In[11]:= Apply[Log, {{2, x}, {3, x}, {4, x}}, 1]
Out[11]= {Log[x]/Log[2], Log[x]/Log[3], Log[x]/Log[4]}

第三引数 1 により、Apply によって置換するのがリストの最初のレベルであることが指定され、これは前述の例と等価である。

脚注[編集]

  1. ^ Wolfram, Stephen (Jun. 23, 2008), “Mathematica Turns 20 Today”, Wolfram Blog, http://blog.wolfram.com/2008/06/23/mathematica-turns-20-today/ 2012年5月16日閲覧。 
  2. ^ Wolfram, Stephen (Oct. 6, 2011), “Steve Jobs: A Few Memories”, WolframAlpha Blog, http://blog.wolframalpha.com/2011/10/06/steve-jobs-a-few-memories/ 2012年5月16日閲覧。 
  3. ^ Weisstein, Eric W., “Spykey”, Wolfram MathWorld, http://mathworld.wolfram.com/Spikey.html 
  4. ^ Trott, Michael (May 22, 2007), “Making the Mathematica 6 Spikey”, Wolfram Blog, http://blog.wolfram.com/2007/05/22/making-the-mathematica-6-spikey/ 
  5. ^ Pollack, Andrew (Jun. 24, 1988), “A Top Scientist's Latest: Math Software”, The New York Times, http://query.nytimes.com/gst/fullpage.html?res=940DE5DA173AF937A15755C0A96E948260 
  6. ^ Wolfram, Steven (Jun. 6, 2013), “There Was a Time before Mathematica”, Wolfram Blog, http://blog.wolfram.com/2013/06/06/there-was-a-time-before-mathematica/ 
  7. ^ Sharma, Jai (Feb. 21, 2010), “Programming Language Influences”, Jai's Blog, http://www.jaisharma.info/static/choice/images/projects/lineage.svg 
  8. ^ “アルファベット順のリスト”, Mathematica ガイド, Wolfram Research, Inc., http://reference.wolfram.com/mathematica/guide/AlphabeticalListing.html 
  9. ^ “Wolfram Mathematica ドキュメントセンター”, Wolfram Mathematica, Wolfram Research, Inc., http://reference.wolfram.com/mathematica/guide/Mathematica.html 
  10. ^ “テキスト型インターフェイスを使った入出力”, Mathematica チュートリアル, Wolfram Research, Inc., http://reference.wolfram.com/mathematica/tutorial/UsingATextBasedInterface.html 
  11. ^ “科学・技術データ”, Mathematica ガイド, Wolfram Research, Inc., http://reference.wolfram.com/mathematica/guide/ScientificAndTechnicalData.html 2012年5月16日閲覧。 
  12. ^ “パックアレー”, Wolfram テクノロジーガイド, Wolfram Research, Inc., http://www.wolfram.com/technology/guide/PackedArrays/ 
  13. ^ “疎(スパース)配列”, Wolfram テクノロジーガイド, Wolfram Research, Inc., http://www.wolfram.com/technology/guide/SparseArrays/ 
  14. ^ “マルチコアのサポート”, Wolfram テクノロジーガイド, Wolfram Research, Inc., http://www.wolfram.com/technology/guide/MulticoreSupport/ 
  15. ^ “ClearSpeed Advance(TM) Accelerator Boards Certified by Wolfram Research; Math Coprocessors Enable Mathematica Users to Quadruple Performance.”, Business Wire, (Jun 27, 2006), http://www.thefreelibrary.com/ClearSpeed+Advance(TM)+Accelerator+Boards+Certified+by+Wolfram...-a0147498410 
  16. ^ Sellers, Dennis (Nov. 20, 2002), “gridMathematica offers parallel computing solution”, MacWorld, http://www.macworld.com/news/2002/11/20/mathematica/index.php 
  17. ^ Todd, Daniel (Jun. 15, 1992), “New Mathematica: faster, leaner, linkable and QuickTime-compatible: MathLink kit allows ties to other apps.(2009年1月12日時点のインターネット・アーカイブ)”, MacWeek, http://web.archive.org/web/20090112043927/http://www.accessmylibrary.com/coms2/summary_0286-9256461_ITM 
  18. ^ “mathlink: Write Mathematica packages in Haskell”, hackage.haskell.org, http://hackage.haskell.org/package/mathlink 
  19. ^ “Mathlink for AppleScript”, uni software plus, http://www.unisoftwareplus.com/products/mathlinkosax/ 
  20. ^ Zhu, Chongkai, “MrMathematica: Calling Mathematica from PLT Scheme (Racket)”, http://www.cs.utah.edu/~czhu/SchemeLink/mrmma.html 
  21. ^ “Mathematica for ActiveX”, Episoft, Inc., http://library.wolfram.com/infocenter/TechNotes/4710/ 
  22. ^ Konerding, David (Feb 16, 1998), “PYML (Python Mathematica interface)”, http://library.wolfram.com/infocenter/MathSource/585/ 
  23. ^ Sheldon-Coulson, Garth, “Clojuratica : An Interface Between Clojure and Wolfram Mathematica”, http://clojuratica.weebly.com/ 
  24. ^ “CalcLink”, Lauschke Consulting, http://www.lauschkeconsulting.com/calclink.html 
  25. ^ “Wolfram Mathematica Link for Excel”, Wolfram Research, Inc., http://www.wolfram.com/products/applications/excel_link/ 
  26. ^ “MATLink”, http://matlink.org/ 
  27. ^ Barrowes, Ben, “Mathematica Symbolic Toolbox for MATLAB - Version 2.0”, MathWorks, http://www.mathworks.com/matlabcentral/fileexchange/6044-mathematica-symbolic-toolbox-for-matlab-version-2-0 
  28. ^ Germundsson, Roger, “MaMa: Calling MATLAB from Mathematica with MathLink”, Wolfram Research, Inc., http://library.wolfram.com/infocenter/MathSource/618/ 
  29. ^ Kauers, Manuel, “An Interface between Mathematica and Singular”, http://www.risc.uni-linz.ac.at/people/mkauers/publications/kauers06m.pdf 
  30. ^ “Interface Links Origin And Mathematica Software”, Electronic Design, http://electronicdesign.com/Articles/ArticleID/1323/1323.html 
  31. ^ “Mathematica Link to Labview”, BetterView Consulting, http://www.bettervi.com/mlink/index.html 
  32. ^ “DDFLink”, Lauschke Consulting, http://www.lauschkeconsulting.com/ddfplus.html 
  33. ^ “GPIB Interface to Mathematica (GITM)”, (Mar 26, 2013), http://sourceforge.net/projects/gitm/ 
  34. ^ “BTopTools for Mathematica Extends Data Acquisition Capabilities to the Lab Environment”, Wolfram Research, Inc., (Oct. 7, 2008), http://www.wolfram.com/news/btoptools.html 
  35. ^ Hu, Zhe, “Interfacing Hardware with Mathematica”, http://library.wolfram.com/infocenter/MathSource/6380/ 
  36. ^ Cousineau, Denis (Mar., 2013), “Controlling Robots Built with the LEGO® MINDSTORMS® NXT Brick”, The Mathematica Journal, http://www.mathematica-journal.com/2013/03/controlling-robots-built-with-the-lego-mindstorms-nxt-brick/ 
  37. ^ Wolfram, Stephen (Jan. 6, 2014), “Launching the Wolfram Connected Devices Project”, Wolfram Blog, http://blog.stephenwolfram.com/2014/01/launching-the-wolfram-connected-devices-project/ 
  38. ^ “Using Connected Devices”, Wolfram Language Guide, Wolfram Research, Inc., http://reference.wolfram.com/language/guide/UsingConnectedDevices.html 
  39. ^ “Mathematica 9 の動作環境と利用可能なプラットフォーム”, Wolfram Mathematica, Wolfram Research, Inc., http://www.wolfram.com/products/mathematica/platforms/ 
  40. ^ “Wolfram Mathematica ライセンス契約”, Wolfram Mathematica, Wolfram Research, Inc., http://www.wolfram.com/terms/MathematicaLicenseAgreement.pdf 
  41. ^ “Wolfram Premier Service”, Wolfram Mathematica, Wolfram Research, Inc., http://www.wolfram.com/mathematica/how-to-buy/premier-service.html 
  42. ^ “Mathematica 9 ライセンスの購入方法”, Wolfram Mathematica, Wolfram Research, Inc., http://www.wolfram.com/mathematica/how-to-buy/?a=1 
  43. ^ “Mathematica 学生用ライセンス”, Wolfram Mathematica, Wolfram Research, Inc., http://www.wolfram.com/products/student/mathforstudents/licenses.html 
  44. ^ “Mathematica システム管理”, Mathematica チュートリアル, Wolfram Research, Inc., http://reference.wolfram.com/mathematica/tutorial/MathematicaSystemAdministrationOverview.html 
  45. ^ Wolfram, Stephen (Nov. 21, 2013), “Putting the Wolfram Language (and Mathematica) on Every Raspberry Pi”, Wolfram Blog, http://blog.wolfram.com/2013/11/21/putting-the-wolfram-Language-and-mathematica-on-every-raspberry-pi/ 
  46. ^ “The Wolfram Language and Mathematica on Raspberry Pi, for Free”, Rapsberry Pi Blog, (Nov. 21, 2013), http://www.raspberrypi.org/archives/5282 
  47. ^ “Wolfram to Bring World’s Most Sophisticated Programming Language to New Intel SD-Card-Sized Computer”, Wolfram Research, Inc., (Jan. 7, 2014), http://company.wolfram.com/news/2014/wolfram-language-on-intel-edison/ 
  48. ^ “Mathematica バージョン履歴”, Wolfram Mathematica, Wolfram Research, Inc., http://www.wolfram.com/products/mathematica/quickrevisionhistory.html 
  49. ^ “How Do I Make My Mathematica Programs Run Faster?”, Mathematica HowTo, Wolfram Research, Inc., http://library.wolfram.com/howtos/faster/ 
  50. ^ “すべては式”, Mathematica チュートリアル, Wolfram Research, Inc., http://reference.wolfram.com/mathematica/tutorial/EverythingIsAnExpression.html 

参考文献[編集]

  • スティーブン・ウルフラム、白水 重明(訳) 『Mathematica - A System for Doing Mathematics by Computer, Second Edition(日本語版)』 アジソン・ウエスレイ・パブリッシャーズ・ジャパン、1992年ISBN 4795296146
  • 榊原 進 『はやわかり Mathematica 第3版』 共立出版、2010年ISBN 978-4320122482

関連項目[編集]

外部リンク[編集]