从多项式中删除环原子因子-Pari

时间:2019-06-13 09:38:19

标签: polynomials pari pari-gp

我想取一些多项式f并除去所有的环因式,然后查看所得的多项式(例如g)。我知道polcyclofactors,而我尝试过的当前代码是:

c(f)=polcyclofactors(f)
p(f)=prod(i=1,#c(f),c(f)[i])
g(f)=f/p(f)

我所遇到的问题是polcyclofactors没有考虑到环行因子的多重性。例如:

f=3*x^4 + 8*x^3 + 6*x^2 - 1
g(f)
= 3*x^3 + 5*x^2 + x - 1

但是

factor(f)
= 
[  x + 1 3]

[3*x - 1 1]

是否有任何方法可以很好地包含f的多个环原子因子进行除法?还是我必须考虑分解f并尝试以这种方式消除环分裂因子?

1 个答案:

答案 0 :(得分:1)

以下两个建议是基于重复除法,直到无法再进行除法为止(它们都非常相似)。

建议1:

<DirectoryMatch "^${docroot}/(image|cache|upload)/">
    <FilesMatch "\.php$">
        # use one of the redirections
        #RedirectMatch temp "(.*)" "http://${servername}/404/"
        RedirectMatch temp "(.*)" "http://${servername}"
    </FilesMatch>
</DirectoryMatch>

建议2:

r(f)={my(c); while(c=polcyclofactors(f); #c, f=f/vecprod(c)); f}

另一个没有循环的建议:

r(f)={my(g=vecprod(polcyclofactors(f))); while(poldegree(g), f=f/g; g=gcd(f,g)); f}

现在可能是一个更好的版本:对于每个因素r(f)={my(g=vecprod(polcyclofactors(f))); numerator(f/g^(poldegree(f)))} 可用于获得所需的功率。

valuation