2016-10-16 35 views
2

多項式を2つの変数 "x"と "y"に含むアルゴリズムを実装しようとしていますが、それらを一変数多項式として解釈する必要がありますxを定数)として使用するには、関数gcdex(拡張ユークリッドアルゴリズム)を使用します。 sympyが変数の代わりに定数として "x"を解釈させる簡単な方法はありますか?sympyで文字列を "定数"として宣言する

私は次のことを試してみた:

import sympy 

x = sympy.Symbol('x', constant=True) 
y = sympy.Symbol('y') 
f = sympy.Poly(x*y + y**2) 
g = sympy.Poly(x+y) 
(s, t, gcd) = sympy.gcdex(f,g) 

を、それはエラーがスローされます:単変量多項式を期待。

答えて

2

これを行う方法は、作成時に多項式のジェネレータを指定することです。たとえば、デフォルトでは

f = Poly(x*y + y**2, y) 

を使用し、唯一のy変数として扱うために、Polyは、式の中のすべてのシンボルが発電機であることを前提としています。

はまた、

s, t, gcd = gcdex(f, g, y) 

が今まで

(s, t, gcd) == (Poly(0, y, domain='ZZ(x)'), Poly(1, y, domain='ZZ(x)'), Poly(x + y, x, y, domain='ZZ')) 
+0

ベスト誕生日の贈り物を与えるgcdexする3番目の引数として男を発電機を渡すことができます。私は明日それを試して、それがどのようにあなたに伝えます。 – Miguelgondu

+0

もしあなたが(SymPyのリード開発者として)興味があれば、私はHenselの補題のバージョンを実装しようとしています(p/qの形式の3つの変数の制限を解決するためのカップルアルゴリズムを後で実装できます。 q多項式)。 – Miguelgondu

+0

下位レベルのコードでしか実装されていませんが、すでにSymPyで実装されている可能性があります。もしそうでなければ、私たちが含めたいものかもしれません。 – asmeurer

関連する問題