ターミナルエミュレータ上の Mathomatic | |
| 原作者 | ジョージ・ゲスライン2世 |
|---|---|
| 開発者 | ジョージ・ゲスライン2世 |
| 初回リリース | 1987年[1] |
| 最終リリース | 16.0.5 / 2012年10月21日 |
| 書かれた | C |
| エンジン | GitHub |
| オペレーティング·システム | クロスプラットフォーム、Unixライク |
| プラットフォーム | あらゆるコンピュータアーキテクチャ |
| サービス名 | マソマティック |
| 利用可能 | 英語 |
| タイプ | コンピュータ代数/数学システム |
| ライセンス | GNU 劣等一般公衆利用許諾書バージョン 2.1 |
| Webサイト | github.com/mfillpot/mathomatic |
Mathomatic [2]は、代数方程式を記号的に解いたり、簡約したり、結合したり、比較したりできる、フリーでポータブルな汎用 コンピュータ代数システム(CAS)です。また、標準的な算術演算に加えて、複素数、モジュラー、多項式演算を実行できます。記号計算(微分、極値、テイラー級数、多項式積分、ラプラス変換)、数値積分を実行でき、対数を除くすべての初等代数を扱うことができます。三角関数は、 GNU m4プリプロセッサを使用して、複素指数を使用して入力および操作できます。現在実装されていないのは、 f ( x )などの一般的な関数、任意精度および区間演算、および行列です。
特徴
Mathomaticは、初等代数を解く、微分する、簡略化する、計算する、視覚化する機能を備えています。[3]また、任意の数式に連続値やテスト値を代入し、近似値や簡略値を表示することで、合計、積、任意の長さの計算の自動表示も 実行できます。
中間結果 (作業内容を表示) は、事前に「set debug 1」と入力することで表示できます (セッションの例を参照)。これは、解法と Mathomatic のほぼすべてのコマンドで機能します。「set debug 2」は、実行された作業の詳細を表示します。
ソフトウェアには、 Mathomatic商標が認められているiOS [4]またはAndroid [5 ] を搭載したスマートフォンやタブレット向けのバージョンを除いてGUIは含まれていません。Mathomaticソフトウェアは、公式Mathomaticウェブサイト[6]で入手でき、寛容なフリーソフトウェアライセンス( GNU LGPL )により、他の種類のソフトウェアでの使用が認められています。 これはフリーソフトウェアライブラリとして、また、任意のオペレーティングシステムのターミナルエミュレータで実行できる、きれいな印刷出力を備えたカラーコマンドラインインターフェイスを使用する無料のコンソールモードアプリケーションとして入手できます。[3]コンソールインターフェイスはシンプルで、開始するには基本的な代数表記法を学ぶ必要があります。 すべての入出力は、一度に1行ずつのASCIIテキストです。デフォルトでは、入力は標準入力、出力は標準出力です。 Mathomaticは通常、入力を容易にするためにeditlineまたはGNU readlineでコンパイルされます。
プログラミング機能はありません。インタープリタは代数計算機のように動作します。式と方程式は、標準的な代数中置記法で入力します。簡単な英語のコマンドを入力することで、それらの演算が実行されます。
すべての数値演算は倍精度 浮動小数点であり、丸め誤差は追跡されないため、Mathomatic は天文学的な計算など、高精度を必要とするアプリケーションには適していません。可能であれば、多くの結果は正確になりますが、約 14 桁の精度の 記号数値計算には役立ちます。
Mathomatic は浮動小数点または整数演算コード生成ツールとして使用でき、方程式を簡略化してPython、C、Javaプログラミング言語の最適化された 代入文に変換します。出力は他のほとんどの数学プログラムと互換性を持たせることができますが、TeXおよびMathML形式の入出力は現在利用できません。Mathomatic 変数名で許可される ASCII 文字は設定可能で、TeX 形式の変数名を許可します。
Mathomatic ソース コードは、 APIを備えたシンボリック数学ライブラリとしてコンパイルでき、Mathomatic シンボリック数学エンジンを使用する必要がある C 互換プログラムにリンクできます。
セッションの例

解決とコード生成の例。作業内容が示されています。
1-> x = (a+1)*(b+2)
#1: x = (a + 1)*(b + 2)
1-> デバッグ1を設定
成功。
1-> bを解く
レベル 1: x = (a + 1)*(b + 2)
方程式の両辺から「(a + 1)*(b + 2)」を減算します。
レベル1: x - ((a + 1)*(b + 2)) = 0
方程式の両辺から「x」を引くと次のようになります。
レベル1: -1*(a + 1)*(b + 2) = -1*x
方程式の両辺を「-1」で割ります。
レベル1: (a + 1)*(b + 2) = x
方程式の両辺を「a + 1」で割ります。
レベル1: b + 2 = x/(a + 1)
方程式の両辺から「2」を引くと、次のようになります。
レベル1: b = (x/(a + 1)) - 2
解決完了:
レベル1: b = (x/(a + 1)) - 2
解決成功:
x
#1: b = ------- - 2
(a + 1)
1-> code C ; Cプログラミング言語コードを出力する
b = ((x/(a + 1.0)) - 2.0);
1-> variables C ; Cコンパイラの変数を定義する
ダブルx;
ダブルA;
ダブルb;
1->
歴史
Mathomaticの開発は、1986年にGeorge Gesslein IIによって、コンピュータ化された数学の実験として開始されました。[7]もともとはMS-DOS用にMicrosoft Cで書かれていました。バージョン1と2は、1987年[1]と1988年[8]にニューヨーク州ロチェスターのDynacompによってDOS用の科学ソフトウェア製品として公開されました。その後、2D方程式グラフ作成プログラムとともにシェアウェア、次に電子メールウェアとしてリリースされました。世紀の変わり目に、MathomaticはLinuxのGNU Cコンパイラに移植され、フリーソフトウェアになりました。グラフ作成プログラムは中止され、方程式の2D / 3Dグラフ作成は現在gnuplotで行われています。
「Mathomatic」という名前は「math」と「automatic」を組み合わせた造語であり、 [3]人工知能の初期の実験であったRog-O-Maticの命名と自動化に触発されました。
2013年2月24日の著者の死去により開発は中止された。[9]
利用可能なプラットフォーム
Mathomaticは、 MinGWを使用したMicrosoft Windowsを含む、ほぼすべてのプラットフォームで利用できます。[ 10] Mac OS X、[11] [12] iOS 、[4] Android 、[5] DSLinuxおよびスタンドアロンのNintendo DSで利用できます。 [13] Fedora Linux、[14] Slackware、[15] Debian、[16] Ubuntu 、[ 17 ] Gentoo Linux、[18]およびすべての主要なBSD Unixディストリビューション[19] [20] [21]には、Mathomaticが自動的にインストール可能なパッケージとして含まれています。 Emscriptenを使用したJavaScriptへのポートがあり、MathomaticをWebブラウザーで実行できます。[22]ポートはすべて別の個人によって保守されています。
要件
ソースからビルドするには、標準のPOSIX Cライブラリを備えたCコンパイラが必要です。MathomaticをGCC CコンパイラまたはUnix系オペレーティングシステム用のTiny Cコンパイラでコンパイルする場合、ソースコードを変更する必要はありません。Mathomaticはコンパイラ固有のコードを使用しないため、通常はどのCコンパイラでも簡単にコンパイルできます。Mathomatic Symbolic Math Libraryを使用すると、プログラミング言語を混在させることができ、オペレーティングシステムに依存しません。[23]
Mathomatic は、少なくとも 1 MBの空きRAMを持つ任意のコンピュータに移植できます。Mathomatic の標準ディストリビューション[6] のメモリ要件は、方程式スペースのサイズと入力された式の数に応じて、最大 400 MB にデフォルト設定されます。方程式スペースは、必要に応じて割り当てられる固定サイズの配列であり、そのサイズはコンパイル時または起動時に設定されます。メインプロンプトで入力された各代数式または方程式は、方程式スペースに格納されます。
Mathomatic は、アセンブリ言語プログラムのように、メモリ移動を伴うほとんどの記号操作を行うように書かれています。そのため、新しいLLVMバックエンドで使用すると Mathomatic がクラッシュします。新しい LLVM バックエンドは、標準 C ライブラリ関数memmove(3) を好まないようです。Mathomatic を LLVM バックエンドを使用する C コンパイラで使用するには、C コンパイラのコマンド ラインで "-O0" を使用してすべての最適化を無効にします。そうしないと、回帰テストが無限にループします。これは間違いなく LLVM の最適化バグです。この最適化エラーをデバッグしようとしている人のために、Mathomatic は、LLVM が (32^.5) を 4*(2^.5) などに簡略化して最適化すると失敗し、毎回無限ループに入ります。
参照
- コンピュータ代数システムの比較
- Maxima – 同様の機能を備えたより完全なCAS、これも無料
参考文献
- ^ ab ソフトウェアカタログ: マイクロコンピュータ。sGoogle ブックス (2007 年 2 月 6 日)。2011 年 11 月 29 日閲覧。
- ^ 「Mathomatic - フリーソフトウェアディレクトリ」. directory.fsf.org . 2023年2月28日閲覧。
- ^ abc George Gesslein II (2012年6月29日). 「Mathomaticユーザーガイド」. Mathomatic公式ドキュメント. 2012年7月22日時点のオリジナルよりアーカイブ。 2012年7月13日閲覧。
- ^ ab Mathomatic for iOS. Itunes.apple.com. 2012年3月10日閲覧。
- ^ ab Mathomatic for Android. Play.google.com. 2012年7月13日閲覧。
- ^ ab Mathomatic ウェブサイトで見つかりました。Mathomatic.org。2011 年 11 月 29 日閲覧。
- ^ George Gesslein II (2012年6月29日). 「Mathomaticユーザーガイド」. Mathomatic公式ドキュメント(履歴) . 2012年7月22日時点のオリジナルよりアーカイブ。 2012年7月13日閲覧。
- ^ Intelligent Instruments & Computer. Google ブックス. 2011 年 11 月 29 日閲覧。
- ^ “ジョージ・ジョン・ゲスライン二世”.イサカジャーナル。 2013 年 2 月 26 日。2021 年11 月 6 日に取得。
- ^ Mathomatic MS-Windows ポート Archived 31 January 2016 at the Wayback Machine . Mathomatic.org (4 November 2011). 2011 年 11 月 29 日閲覧。
- ^ Mathomatic Mac OS X ポート Archived 31 January 2016 at the Wayback Machine . Mathomatic.org (2011 年 11 月 4 日). 2011 年 11 月 29 日閲覧。
- ^ MacPorts からの Mathomatic Mac OS X 移植版
- ^ Mathomatic が Nintendo DS に移植されました。Wayback Machineに 2007 年 10 月 28 日にアーカイブされました。Blog.davr.org (1999 年 2 月 22 日)。2011 年 11 月 29 日に閲覧。
- ^ Fedora の Mathomatic パッケージ。Admin.fedoraproject.org。2011 年 11 月 29 日閲覧。
- ^ SlackBuilds の Mathomatic の公式 Slackware ポート。Slackbuilds.org。2011 年 11 月 29 日閲覧。
- ^ Debian のすべての Mathomatic パッケージ。Packages.debian.org。2012 年 8 月 31 日閲覧。
- ^ Ubuntu Linux のすべての Mathomatic パッケージ。Launchpad.net。2011 年 11 月 29 日閲覧。
- ^ Gentoo パッケージ /package/sci-mathematics/mathomatic. Packages.gentoo.org (2011 年 11 月 25 日). 2011 年 11 月 29 日閲覧。
- ^ Mathomatic の OpenBSD CVS ツリー
- ^ NetBSD pkgsrc Mathomatic の CVS ツリー
- ^ Mathomatic の FreeBSD CVS ツリー
- ^ 「Mathomatic in JavaScript」。2014年1月14日時点のオリジナルよりアーカイブ。 2013年8月4日閲覧。
- ^ George Gesslein II (2012年6月29日). 「Mathomatic ユーザーガイド」. Mathomatic 公式ドキュメント (開発者情報) . 2012年7月22日時点のオリジナルよりアーカイブ。 2012年7月13日閲覧。
- ORMS 上の Mathomatic
