2の1000乗、(x+y+z)^10の展開、x^10-1の因数分解などの数値計算・数式計算を可能にする数学ツールは、これまで高価であったり、PCへのインストールが容易ではなかったりと専門家御用達でした。

 ここに来て気軽に扱える高性能数学ツールが登場してきました。通信環境の高速化・クラウド環境の普及などインターネット環境の発達のおかげです。

 私が使っているものを紹介してみようと思います。

[JBpressの今日の記事(トップページ)へ]

MathStudio

 「MathStudio」はPomegranate Appsが開発している数式処理システムで、計算式を入力するだけで数値計算、代数計算、3Dグラフ描画などができます。

 アプリをインストールしても使うことができますが、お薦めはWeb上で動くものです。http://mathstud.io/にアクセスすれば“すぐに”使うことができます。

 トップページには何がどのように実行できるかが一目瞭然になるように実例のラインナップが何十もスタンバイされています。

 入力済みの数式の最後にカーソルを移動してエンター・キーを押すだけで本当に“すぐに”試すことができるようになっています。

 あまりの親切さに驚くばかりです。インタフェースは英語ですが、あまりの使い勝手の良さに苦になることはありません。

MathStudio(Web版)


 マニュアルも分野別、アルファベット順に整理されていて、膨大な数のライブラリへのアクセスがスピーディに行えます。

 1+1の算数から、ゼータ関数の世界まで数学世界を思い存分満喫できる内容の豊富さが特徴です。

 四則、三角関数、行列、代数演算、微分積分、フーリエ解析、複素数、論理演算、2Dグラフ、3Dグラフ、タイム・グラフ、プログラミング、統計、ベクトル、単位換算、…

 数々の数学のテキストに挫折した人でも、高度に洗練された数学ツールMathStudioで遊びながら高度な数学を覗くことができます。

MathStudio(3Dグラフ表示)


WolframAlpha

 数式処理ソフトで有名なのが「Mathematica」です。私も1990年代から使っていました。高性能・高機能の分、高価です。理論物理学・数学・計算機の研究者であるスティーブン・ウルフラム(1959-)が1988年に最初のバージョンをリリースして以来、今日まで数学ソフトの最先端を牽引しています。

 2009年にウルフラムが公開したのが「WolframAlpha」です。ウルフラムがcomputational knowledge engineと説明する質問応答オンラインシステムで、Web上でもアプリでも使用できます。

 http://www.wolframalpha.comにアクセスすると、1行のテキストフィールドがトップページに現れます。

 ここに数式を入力すれば即座に計算結果を返してくれます。2の1000乗を求める場合には「2^1000」と入力してテキストフィールド右端の「=」をクリックします。

 次がその結果です。302桁の結果と1.0715…×10^301が表示されています。

Wol


f

ramAlpha


 WolframAlphaのエンジンこそMathematicaです。1500万行のMathematicaコードで書かれています。したがって、WolframAlphaではMathematicaのコマンドも実行できます。

 連載「ついに、リーマンゼータの零点を見る」で紹介したのが次のMathematicaのコマンドです。

Plot[RiemannSiegelZ[t], {t, 0, 100}]
ZetaZero[{1, 2, 3}] // N

 次がその結果です。

リーマンゼータの零点(実部)のグラフ


リーマンゼータの零点


 150年以上昔にリーマンが行った計算を現代の私たちはコーヒーをすすりながら手にすることができることに感激せずにはいられません。

 WolframAlphaの凄さはこれだけではありません。自然言語の質問にも答えることができます。

 試しに「How old was Einstein in 1905?」(1905年時点でアインシュタインは何歳か?)と入力してみると次のように「24歳」と答えてくれます。

 もう1つ紹介したいWolframAlphaの機能があります。「Step-by-Step Solutions」です。

 WolframAlphaのトップページにあるStep-by-Step Solutionsに進みます。次に1行テキストフィールドに「factor x^4+4」(x^4+4を因数分解せよ)を入力すると、次のように結果までの途中計算のすべてを見ることができます。

Step-by-Step Solutions


 これらはWolframAlphaの機能の一端でしかありません。WolframAlphaを通してMathematicaの進化の凄さを実感することができます。

手書き関数電卓MyScript CalculatorとMyScript MathPad

 どちらもiOS & Androidアプリです。「MyScript Calculator」は手書き入力の電卓です。

 四則、カッコ()、分数、べき乗、指数・対数・三角関数、平方根など手書き入力した数式を認識し計算してくれる関数電卓です。

 タブレット端末にアプリをインストールすればすぐに使うことができます。指で数式を書いて一呼吸置くと自動認識して数式が清書され、=とともに計算結果が表示されます。

 計算精度は小数点以下6桁なので、高度な使い方は期待できませんが手書き数式の自動認識&自動計算の風景はそれだけ新鮮に映ります。

手書き関数電卓MyScript Calculator


 「MyScript MathPad」は手書き数式認識だけで数値計算はしてくれません。MyScript Calculatorでは扱うことができない高度な数学記号および文字に対応しています。

 清書された数式は画像ファイル(png)としてエクスポートすることで、ワープロソフトに貼りつけるなど外部で使用できます。

MyScript MathPad


数式処理システム REDUCE

 数式処理システムには「Mathematica」、「Maple」、「Sage」、「Maxima」などがあります。中でもREDUCEは1960年代にアンソニー・C・ハーンによって開発が始められ、販売もされていました。2008年にオープンソース化され誰でも手軽に使用できるようになりました。

 私も愛用しています。最近では連載「Σの呪縛を解くシリーズ第2弾「ファウルハーバーの定理」」でΣの計算をREDUCEによって行いました。

 次の画面のように、入力はテキストで行います。結果は見やすい自然数式表示です。

 例えば、図の3行目に次のような入力があります。

3: decompose(x^8-88*x^7+…+234)

 これは、xの8次式を簡略化せよという命令です。結果は次のようにuとvとxを用いた表示です。

u2+25u+234, u=v2+10v, v=x2-22x

 xの8次式が「uの2次式、uはvの1次式、vはxの2次式」と変数変換されれています。

REDUCE(MacOSX版)


 REDUCEにはこのような手計算では途方に暮れるような数式処理のコマンドやパッケージが膨大に装備されています。

 その様子はソフトウェアに添付されるマニュアルを見れば一目瞭然です。2017年1月版の「REDUCE User's Manual」は1009ページあります。



REDUCE User's Manual(2017年1月版)


 REDUCEは元々、物理学のために開発されました。それはマニュアル、チャプター18が「高エネルギー物理学の計算」とあることからも分かります。

 50年以上にわたり開発が続けられている数式処理システムREDUCEは無料です。ぜひみなさんのPCにインストールして使ってみましょう。

 Sourceforge(https://sourceforge.net/projects/reduce-algebra/files/)からダウンロードできます。

bc(UNIX)

 私が日常電卓代わりに使っているのが「bc」です。bcはUNIXのコマンドなのでUNIX環境であれば誰でも使えます。

 現在のMacintoshの正体はUNIXマシンです。アプリケーションの中にある「ターミナル」を実行させるだけでMacがUNIXでできていることが実感できます。

 現在、UNIXはLinuxおよびLinuxディストリビューション(Debian、Ubuntu、Red Hat、Fedoraなど)のOSがPCで無料かつ容易に使えます。

 これらUNIX系OSをインストールしたマシンであればすぐにbcは使えます。ターミナルで「bc」と入力するだけです。次のように表示されます。

bcを起動したところ


 bcは任意精度計算言語と説明されるように数値計算が非常に得意です。2の1000乗も10000乗も瞬時に計算可能です。

2^10000の計算結果


 bcは指数・対数・三角関数など最小限の関数を持ち、プログラミングもできるのでカスタマイズすると使い勝手のよい高性能電卓に変身します。

 私が自分で定義しているのは次の4つの関数です。p(a,b)(aのb乗)、fac(n)(nの階乗)、log(a,b)(log_a b)、そしてram(x)(1914年のラマヌジャンのπ公式)。

/* Ramanujan Pi fomula 1914 */
define ram(x) {
auto m,q;
q=0;
for (m=0;m<=x;m++) q=q+(((fac(4*m))/(((4^m)*(fac(m)))^4))*((26390*m+1103)/(99^(4*m))));
return (1/(((2*sqrt(2))/9801)*q))
}

ram(x)のプログラム

 次はその実行の様子です。

カスタマイズ関数


 連載「円周率πを速く正確に計算する公式集」で紹介した高野喜久雄のπ公式も次の2行入力するだけでπを10万桁計算できます。

scale=100000
(12*a(1/49)+32*a(1/57)-5*a(1/239)+12*a(1/110443))*4

高野喜久雄のπ公式で10万桁計算する

 これだけ強力な電卓がbcです。Macユーザーの方はさっそくターミナルでbcを使ってみましょう。

数式文書作成ツール TeX

 文書作成で困るのが数式です。PCワープロソフトには数式エディターを搭載するものもありますが、操作・作業がいちいち面倒なのが玉に瑕。

 どんな数式でも自由自在に表示を可能にしてくれるツールが「TeX(テフ、テック)」です。

 本連載の数式もTeXを用いて作成しています。正確にはLaTeX(ラテフ、ラテック)と呼ばれるTeXの改良版です。

 組版システムTeXは米国の数学者ドナルド・クヌース(1938-)によって開発されました。1976年に自身の著書の数式表示の酷さに憤慨したことがきっかけでした。

 組版は白地の紙に黒のインクの配置の仕方、つまり0と1の世界だと捉えたクヌースは数式が美しく表示できる組版システムの開発を決意します。

 世界中の組版を調べ上げ、商業品質の強力な組版システムの開発を行います。かくして最初のバージョン“3”がリリースされたのが1989年でした。

 以来、TeXは世界中の研究者の手によって改良が加えられ今日まで進化を続けてきました。

TeX文書(ソースファイル)


TeX文書(PDFファイル)


 TeXでは文書をプログラミングしながら作成します。ソースファイルはプレイン・テキストです。これをTeXプログラムにかける(タイプセットする)とPDF文書が完成します。

 一見面倒に思えますが、目次、ページ、章・セクション、数式のナンバリングなどが自動、数式・記号が自在編集というワープロソフトでは実現できない生産性と品質の高さが得られます。

 そして、TeXが高品質である最大の理由がフォントにあります。クヌースは組版技術とともにフォントを作成するためのシステム「METAFONT」も開発し、Computer Modernと呼ばれる書体をデザインしたのです。

 数学では、ローマ字、ギリシャ文字、ラテン文字、キリル文字など多くの種類の文字と膨大な数の記号が用いられます。

TeXフォント


 数式の書き方はシンプルです。例えば、分数であれば「¥frac{分子}{分母}」、Σであれば「\sum_{n=1}^{n}」、定積分であれば「\int_{-1}^{1}」のように書きます。

 さて、TeXのお作法が分かれば、MyScript MathPadとWolframAlphaの連携プレイを楽しむことができます。

 MyScript MathPadに手書きで「Σ」を入力すると、綺麗な「Σ」が表示されます。LaTeXでエクスポートできます。「Σ」は「\sum」とテキストで変換されます。

 それをWolframAlphaの1行テキストフィールドに入力すれば「Σ」の計算をしてくれます。WolframAlphaはTeXコードも認識してくれます。

 高度な手書きの数式でも計算できる連携プレイはなかなかエキサイティングです。

MyScript MathPad LaTeXフォーマットでエクスポート


 TeXは一度インストールできてしまえば使い勝手は悪くありません。問題は高機能であるがゆえのインストールの面倒さです。

 昔に比べれば今のTeXインストールは格段に進化しています。しかし、使いこなすにはUNIXの知識がどうしても必要になります。

 1/65536ポイント(約0.000005mm)単位で文字位置調整ができて、美しい数式を表示できるTeXは無料です。

 これまで紹介した数学ソフトのようにTeXもWeb上でできれば便利です。ありました!Cloud LaTeX(https://cloudlatex.io/)というサービスです。

 東京大学大学院情報理工学系研究科、本位田真一教授の研究室のOB、学生が中心となって開発しているシステムだそうです。さっそく使って見ましたが非常によくできています。Web上だけで最新のTeXを“すぐに”使うことができることに感激しました。

 ところで、私の机の上にはスティーブ・ジョブズがアップルを追われて作った「NeXT」が現役で動いていてTeXも使えます。

 ディスプレイ・ポストスクリプトの美しい画面に美しい数式を映し出したくてTeXを苦労してインストールしました。

 今回紹介した数学ツールの特徴はWeb上で使えることです。インストール必要なし、専門知識も必要なし、インターネットにつながっていれば誰でも気軽に高性能数学ツールを使うことができる時代が到来しました。

 改めてWebの発明の偉大さが分かります。世界初のウェブサイトとウェブ・サーバーが動いたのがNeXTなのです。数式処理ソフトMathematicaもNeXTで動き始めました。

 最新のMacとイーサネットで容易につながっているNeXTを眺めながら思うのは、スティーブ・ジョブズが数学ツール発展にも大きな影響を与えたことです。

 今回紹介した以外にも数学ツールは数え切れないほどあります。自分に合った数学ツールを探しに出かけましょう。

NeXTSTEPで動くLaTeX


 

筆者:桜井 進