簡體   English   中英

多元多項式的 sympy 除法

[英]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 ,因此在我看來,我們應該能夠找到1px的商。

更多細節

假設我正在處理一個真正的多元多項式環,並說我想將一些多項式p表示為p=aq+r對於一些非零多項式a和一些r deg(r)<deg(q) 度數 (deg) 我的意思是總度數,即用x替換所有變量時得到的單變量多項式的度數。 例如, xy^2的總度數為 3。雖然這樣的對(q,r)可能不存在,但如果確實存在,它是唯一的給定(p,a) 這是一個證明:

對某些r st 說p=aq+rp=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+yf(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM