紫藤貴文さんがCLISP向けに作成された「行列計算ライブラリー」を,xyzzyで動く様に移植したものが置いてあります。
このLISPを導入すると,xyzzyで行列の加算,乗算,逆行列の計算,固有値の計算等ができる様になります。又,行列の各要素へ値を代入するのに,より短いコードを使へる様になります。
注意: このプログラムには,「特定の行列に対して,正しい逆行列を返さない」既知のバグがあります(但し,回避方法もあります)。(m* (m-1 A) A)
(Aは行列)を評価するなどして,結果が正しいか確かめることを御奨めします。
時間があったら改善したいとは思いますが、精度が重要な場合には、MATLAB などの専用のソフトを使った方がいいと思います。
追記: 回避方法として,行列の要素を倍精度の浮動小数点に変換してから計算させる方法があります。このプログラムは特に指定しない限り,整数,分数又はデフォルト精度の浮動小数点で計算しますので,倍精度を強制することで,精度を確保できる可能性があります。
簡単に倍精度を指定するには,(setq *read-default-float-format* 'double-float)
として浮動小数点のデフォルト精度を倍精度にする方法や,小数を入力する際に,末尾にd0を附ける方法があります。(例: 3.939
⇒ 3.939d0
)
書庫に含まれる(matrix.html
を除く)全てのファイルについて、著作権抛棄とします。
Public Domain: Please feel free to reproduce or edit
※私(空拇)が直接,紫藤さんにライセンスについて伺ったところ,次の様な御返事を戴けました。寛大な紫藤さんの応対に感謝致します。
紫藤のページをお読みいただきありがとうございます。
このサイトにあるプログラムは全て Public Domain と考えてください。