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

更新


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[公開メモ]]

#contents

* 高度な数学的計算を行えるフリーソフトです [#he6ebd28]

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

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

* Emacs というエディタ上で走るソフトです [#g4668e7b]

emacs は、主に unix 系の os で広く使われている高機能エディタです。

calc は emacs 上で動きます。

GNU Emacs FAQ 日本語訳:~
http://www.bookshelf.jp/texi/emacs-faq/emacs-faq.html ~

* GNU Calc に関する情報 [#x2a8f21c]

GNU Emacs Calc 2.02 マニュアル(日本語訳):~
http://www.biwa.ne.jp/~tanaka/Calc/Texinfo/Texi2html/calc-jp_toc.html ~

* Debian (lenny) へのインストール [#n0eec85e]

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

* 起動 [#fcc38327]
* 起動&基本 [#fcc38327]

 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行で入力する|

* 数値接頭辞 [#pc19ddd9]

|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|

* 逆ポーランド記法 [#wa5d3d42]

パラメータをスタックに積んでおいて後から演算子を入力する。

|1 2 +|1+2 を計算|
|_1 2 +|-1+2 を計算(単項演算子の - は _ として入力)|
|1 n 2 +|n で符号を反転できるので、これでも良い|
|x sin REG|先頭の sin を計算する|
|P|pi|

* 行列・ベクトル [#b9a26b0b]

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

|'[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: 9657 (from 2010/06/03), today: 1, yesterday: 0