GNU Calc - 貧乏人の Mathmatica
高度な数学的計算を行えるフリーソフトです†
- 非常に高い精度での数値計算
- 数式計算
- 行列計算
などなど、非常に多機能なソフトがフリーで使えます。
Emacs というエディタ上で走るソフトです†
emacs は、主に unix 系の os で広く使われている高機能エディタです。
calc は emacs 上で動きます。
GNU Emacs FAQ 日本語訳:
http://www.bookshelf.jp/texi/emacs-faq/emacs-faq.html
GNU Calc に関する情報†
GNU Emacs Calc 2.02 マニュアル(日本語訳):
http://www.biwa.ne.jp/~tanaka/Calc/Texinfo/Texi2html/calc-jp_toc.html
Debian (lenny) へのインストール†
etch までは Debian のディストリビューションに含まれていたのだけれど、 lenny には含まれていないので、手作業でインストールすることになる。
まず、emacs がまだインストールされていなければインストールする。
次に、Debian -- etch の calc パッケージに関する詳細:
http://packages.debian.org/ja/etch/calc
の右の部分から
- calc_2.02f.orig.tar.gz
- calc_2.02f-28.diff.gz
を適当なフォルダにダウンロードし、解凍し、パッチを当てて、make install する。
途中、default というファイルが見つからないと言われる場合には、 空の /usr/share/emacs/site-lisp/default を作成してやる必要がある。
LANGUAGE:Console > sudo aptitude install emacs > cd > mkdir calc > wget http://ftp.de.debian.org/debian/pool/main/c/calc/calc_2.02f.orig.tar.gz > wget http://ftp.de.debian.org/debian/pool/main/c/calc/calc_2.02f-28.diff.gz > ls calc_2.02f-28.diff.gz calc_2.02f.orig.tar.gz > tar fxz calc_2.02f.orig.tar.gz > ls calc-2.02f.orig/ calc_2.02f-28.diff.gz calc_2.02f.orig.tar.gz > cd calc-2.02f.orig > gunzip -c ../calc_2.02f-28.diff.gz > patch -p1 > sudo make install error: the file "default" not found > ls /usr/share/emacs/site-lisp/default > sudo touch /usr/share/emacs/site-lisp/default > ls /usr/share/emacs/site-lisp/default /usr/share/emacs/site-lisp/default > sudo make install
起動&基本†
LANGUAGE:Console > emacs
として emacs を起動してから、書き込み可能なバッファ上で Esc => # を入力する。 (Esc キーを押して、離してから # を入力)そして、c を入力。
これで、もっとも一般的なインターフェースで Calc が立ち上がる。
Calc から抜けるには q を押す。
emacs から抜けるには Ctrl+X C。
その他の基本的なキーをまとめておく。
M-# c | Calc の起動 |
q | Calc の終了 |
C-xc | emacs の終了 |
C-g | コマンド入力途中や、引数入力中にコマンド入力を取り消す |
U | アンドゥー |
D | リドゥー |
TAB | スタック上の2つを入れ替え |
M-TAB | スタック上の3つを入れ替え |
d [ | スタックの中での移動 |
d ] | スタックの中での移動 |
` | スタック先頭の書き換え |
BS | スタック先頭を削除 |
RET | スタック先頭の複製 |
? ? | 利用可能なコマンドの一覧を表示する(続けて ? を押すことで次ページへ) |
文字 ? | "文字"から始まるコマンドについて一覧を表示する(続けて ? を押すことで次ページへ) |
s 数字 | 数字で識別される一時変数(q1など)にスタック先頭を格納 |
r 数字 | 数字で識別される一時変数(q1など)から値を取り出す |
s s 文字列 | 文字列で識別される変数にスタック先頭を格納(式でも使える) |
s r 文字列 | 文字列で識別される変数から値を取り出す |
' 数式 | 数式を1行で入力する |
数値接頭辞†
C-u 数字 コマンド | コマンドを先頭の 数字 個の項に適用する(1 2 3 4 C-u 3 + は 1 9 になる) |
M-数字 コマンド | コマンドを先頭の 数字 個の項に適用する(1 2 3 4 C-u 3 + は 1 9 になる) |
C-u - 数字 コマンド | コマンドを先頭の 数字 個の項のそれぞれに適用する(1 2 3 4 C-u - 3 + は 5 6 7 になる) |
M-数字 M-数字 コマンド | 数字は複数桁でもOK |
逆ポーランド記法†
パラメータをスタックに積んでおいて後から演算子を入力する。
1 2 + | 1+2 を計算 |
_1 2 + | -1+2 を計算(単項演算子の - は _ として入力) |
1 n 2 + | n で符号を反転できるので、これでも良い |
x sin REG | 先頭の sin を計算する |
P | pi |
行列・ベクトル†
行列は、ベクトルを要素に持つベクトルとして記述する。
'[1 2 3] | 横ベクトルの基本形 |
'[1,2,3] | 横ベクトルの基本形2 |
'[[1] [2] [3]] | 縦ベクトル |
'[1 2 3] v t | 転置を使って縦ベクトル |
1 2 3 M-3 v p | ばらばらに入力してからパックする |
'[1 2 3] v u | ベクトルをばらばらにする |