児玉 です.

From: Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp>
Subject: [ruby-math:00198] Re: Polynomial of multi variable
Date: Mon, 31 Jan 2000 11:50:36 +0900
Message-ID: <200001310250.LAA11134 / blade.nagaokaut.ac.jp>
> |多変数多項式クラス PolynomialM(polynomialm.rb) を作ってみました.
> 
> すばらしい。先を越されてしまいました。

言い出してみると, 結構居るんですね.

> えーっ!グレブナ−ベ−スを計算するなんて、かなり高度なプログラミング
> だと思います。(^^; 完成が待ち遠しいです。

いや, 手元の教科書を引写しただけ.
Lisa/Asir(グレブナ−ベ−ス計算ではほぼ最高速を誇る)の
野呂さんによると, 高速化には教科書的ではない,状況毎のつじつま合わせの
ノウハウがいろいろあるようです.

プログラミングが高度と云うより,
やはり, Ruby の柔軟性を褒めるべきでしょう.
1変数のときも,
数値の代入のつもりで作った substituteで多項式の代入も出来ちゃうし,
いつのまにか, 意図する以上のプログラムができてる.

# (x+1)^2 に x^2+1 を代入するなら.
# print "(x+1)^2".to_poly.substitute("x^2+1".to_poly) ,"\n"  で
# x^(4)+4x^(2)+4   って感じ

試用していただけるなら, 1変数版と一緒にまとめて
ftp.math.kobe-u.ac.jp/pub/knot/polynomial-ruby.tar
に置いています.
$ ruby polynomialm.rb
ってやると, 思いっきり, "!!! experimental !!!" って書き出しますが.

-- 
K.Kodama(kodama / kobe-kosen.ac.jp)