GNU Calc - 貧乏人の Mathmatica のバックアップ(No.4)

更新


公開メモ

高度な数学的計算を行えるフリーソフトです

  • 非常に高い精度での数値計算
  • 数式計算
  • 行列計算

などなど、非常に多機能なソフトがフリーで使えます。

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-# cCalc の起動
qCalc の終了
C-xcemacs の終了
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 を計算する
Ppi

行列・ベクトル

行列は、ベクトルを要素に持つベクトルとして記述する。

'[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ベクトルをばらばらにする

コメント





Counter: 11128 (from 2010/06/03), today: 1, yesterday: 0