○より数学的なソフトウェア

私の作成しているcgtkcalcは今の所、行列の計算が出来ず、しかも
行列を計算できるようにするということは、CUI版を作るというこ
とで当初の目的から逸脱しますし、労力が必要です。
ここでは、有名かつ本格的な計算用ソフトウェアを紹介します。
いずれも逆行列A^-1、行列式det(A)等が簡便に計算できます。
また、計算の専門家が作成されたものなので、信頼性も高いでしょう。
ただし、Γ関数などの特殊関数でも複素数を扱えるのは、この中では GP/PARI だけです。


●Octave
Wisconsin-Madison大学化学工学部のJohn W. Eaton氏が開発されている。
有名なMATLABと互換性の高い数式処理ソフト。
ほとんど手直し無しでMATLABのプログラムが動く。
様々な処理の出来る高級なソフトウェア。
計算するだけならば、例えば、
ブラ・ベクトルは
x=[0+5i 1+2i 2+3i]
ケット・ベクトルは
y=[0+3i 1+1i 2]'
等と入力する。
内積の計算は、
x*y
外積は、
y*x
と、違和感無く計算できる。

入手方法:http://www.rpmfind.net で octave を検索すれば楽に入手できる。
VinePlusの中にもあるので、ftp://ftp.ring.gr.jpのVinePlus のミラー等からも入手できる。
一次配布元は、http://www.che.wisc.edu/octave


●genius
GNOMEの開発者の一人でもあるGeorge Lebl氏の手によるソフト。
おそらく簡便で最も使いやすい計算ソフトであると思われる。
小さいのでダウンロードしやすい。
著名なGNU MP ライブラリを使用している。
行列の要素をカンマ[,]で区切る必要がある。
例えば、
ブラ・ベクトルは
x=[0+5i, 1+2i, 2+3i]
ケット・ベクトルは
y=[0+3i, 1+1i, 2]'

入手方法:http://www.jirka.org/genius.html が開発元のサイトである。過去には一時期、
http://ofset.sourceforge.net/drgenius/index.html にもマージされていたそうである。
別途 gmp パッケージが必要だが、ほとんどのディストリビューションの
CD-ROMに含まれている。


●GP/PARI CALCULATOR
The PARI Group-フランスのBordeaux I大学A2X研究所のChristian Batut、Dominique Bernardi、Henri Cohen、
Michel Olivier各氏-が開発されている。
任意精度で凡ゆる計算ができるPARIライブラリと、アプリケーションの数式処理ソフトGP
のセット。ともかく精度が必要な場合は重宝する。
様々な処理の出来る高級なソフトウェアで、単純な計算に使うのは勿体ない。
特殊関数から行列、数値積分に至るまで全ての関数が引数に複素数をとれる。
虚数単位が I で表されることには注意が必要。

入手方法:http://pari.math.u-bordeaux.fr/ からソースを入手してmakeする。

x86_64での注意点:
多くのディストリビューションではライブラリが/somewhere/lib ではなく、
/somewhere/lib64 に置いてある。参考までに、Fedora Core 3 for x86_64では、

./Configure

実行後にOlinux-x86_64ディレクトリのMakefileを以下のように書き換える必要があった。

[akira@localhost Olinux-x86_64]$ diff Makefile Makefile~
12c12
< CC         = /usr/bin/gcc33
---
> CC         = /usr/bin/gcc
14c14
< CFLAGS     = -O3 -DGCC_INLINE -Wall -Wno-implicit -fPIC -fomit-frame-pointer 
---
> CFLAGS     = -O3 -DGCC_INLINE -Wall -Wno-implicit -fomit-frame-pointer 
16c16
< LDFLAGS    = -O3 -DGCC_INLINE -Wall -Wno-implicit -fPIC -fomit-frame-pointer   -Xlinker -export-dynamic
---
> LDFLAGS    = -O3 -DGCC_INLINE -Wall -Wno-implicit -fomit-frame-pointer   -Xlinker -export-dynamic
71c71
< # PLOTLIBS=-L/usr/X11R6/lib64 -lX11
---
> #  PLOTLIBS=-L/usr/X11R6/lib64 -lX11
75c75
< RLLIBS    = -L/usr/lib64 -lreadline -lncurses
---
> RLLIBS    = -L/usr/lib -lreadline -lncurses

戻る