两个多项式的最大公约数 - 简化多项式

时间:2017-11-23 10:29:43

标签: python arrays numpy jupyter-notebook polynomial-math

此函数用于确定两个多项式的最大公约数。我的问题是:

在第9行中,如果数组中的所有条目相同,我想从多项式g中排除一个因子,例如:

(4/9)*x**2 + (4/9)*x + (4/9)
--> (4/9)*(x**2 + x + 1).

我写了函数checkIfEntriesAreIdentical。此函数返回False,尽管数组条目明显相同。该函数在此数组上具体失败:

array([ 0.44444444, 0.44444444, 0.44444444])

为什么函数会返回False
以下是两个功能:

import numpy as np

def gcdPoly(f, g):

while remainderIsLeft(np.polydiv(f, g)):
    temporary = f
    f = g
    g = np.polydiv(temporary, g)[1][:]
    if entriesAreIdentical(g):
        g = simplifyFunction(g)

return g

def entriesAreIdentical(f):
    return all(np.abs(x) == np.abs(f[0]) for x in f)

0 个答案:

没有答案