如何将多项式与其他多项式因式分解?

How to factor polynomial with other polynomials?

这是一道除法算法题。考虑多项式 f=-4x^4y^2z^2+y^6+3z^5 和多项式 G={y^6-z^5, x*z-y^2, x*y^4-z^4, x^2*y^2-z^3 *x^3-z^2}

如何计算关于 G 的因子 f 以满足线性组合 f=\sum_i C_i*G_i


我知道余数为零但不知道上面公式中的系数C_i,例如Macaulay2

这可能与关于理想的更一般的数学问题有关here

也许只做一个重复的多项式除法就足够了,某事 像这样(粗略的伪代码..)

order G lexicographically
total_rest = 0
coefficients = {g[0]:None, g[1]:None,...}
while f > 0:
    for g in G:
        quotient, reminder = f / g     # polynomial division
        coefficients[g] += quotient
        if reminder == 0:
             return      # We are done. f was devisible by G.
        f = reminder
    total_rest += lt(f)    #  lt: leading term 
    f -= lt(f)

# Now it should hold that 
# f = coefficient[g]*g + ... + total_rest

这是一个非常晚的回复。您可能已经有了答案,但无论如何,答案就在这里。 "//" 使用除法算法计算系数。

R=QQ[x,y,z,MonomialOrder=>Lex];
f=-4*x^2*y^2*z^2+y^6+3*z^5;
I=ideal(x*z-y^2,x^3-z^2);
G=gb(I);
f//(gens G)
o5 = {6} | 0             |
     {2} | 3x2z2-xy2z-y4 |
     {5} | 0             |
     {4} | 0             |
     {3} | -3z3          |

所以

f=-4*x^2*y^2*z^2+y^6+3*z^5

=0*(y^6-z^5)+(3*x^2*z^2-x*y^2*z-y^4)(xz-y^2)+0*(xy^4-z^4)+0(x^2*y^2-z^3)+(-3*z^ 3)*(x^3-z^2).

另一个技巧是复制并粘贴您的代码,以便其他人可以复制并粘贴它。如果您 post 一张图片,那么我们必须手动输入。如果你在每行前放置四个空格,那么它将显示为代码,就像我在这里所做的那样。