![](/img/trans.png)
[英]Using div() on multivariate polynomials in Sympy: incorrect remainder?
[英]sympy division of multivariate polynomials
為什么 sympy 不划分這個多項式?
>>> import sympy as sp
>>> x,y = sp.symbols("x y")
>>> print(sp.div(y+x,y))
(0, x + y)
我期待答案是(1,x)
因為商是1
余數是x
。 我怎樣才能同情划分多項式?
我想要將一些多項式p
表示為p=aq+r
其中r
是余數, q
是商, a
是除數。 在上面的示例中,請注意y+x=1*x+y
,因此在我看來,我們應該能夠找到1
是p
與x
的商。
更多細節
假設我正在處理一個真正的多元多項式環,並說我想將一些多項式p
表示為p=aq+r
對於一些非零多項式a
和一些r
deg(r)<deg(q)
。 度數 (deg) 我的意思是總度數,即用x
替換所有變量時得到的單變量多項式的度數。 例如, xy^2
的總度數為 3。雖然這樣的對(q,r)
可能不存在,但如果確實存在,它是唯一的給定(p,a)
。 這是一個證明:
對某些r
st 說p=aq+r
和p=aq'+r'
。 deg(r)<deg(a)
並假設q≠q'
。 通過減去這些方程並重新排列,我們得到a(q-q')=r'-r
。
請注意,因為q-q'≠0
,所以我們有deg(a)≤deg(a(q-q'))=deg(r-r')
。 因此,因為deg(r)<deg(a)
,我們可以得出結論deg(a)≤deg(r')
。 因此,如果存在這樣的r
,則此r
是唯一的。
我指出這一點是為了表明我要求的計算是明確定義的。 在我看來,能夠進行多元多項式除法是 sympy 應該支持的自然特征。 如果我在這里錯了,請告訴我為什么。
看這里
給定一個符號族 () 或其他合適的對象,包括數字,通過重復加法、減法和乘法從它們派生的表達式在生成器中稱為多項式表達式。
您需要指定生成器。 因為給定表達式y+x
,機器無法確定哪個變量是生成器。 它可以是f(y) = x+y
或f(x) = x+y
。
你需要告訴它生成器的順序是 [x,y]。
print(sp.div(y+x, y,gens=[x,y]))
# (0, x + y)
如果將生成器的順序設置為 [y,x]。
print(sp.div(y+x, y,gens=[y,x]))
# (1, x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.