Sympy的Python Numba多项式根较低错误

时间:2017-12-16 11:00:23

标签: python sympy numba

我创建了一个函数,给定系数范围,构造具有这些系数的多项式,并输出所有根的列表。然而,Numba并不喜欢它。它是这样的:

Airflow

当我尝试运行它时,它输出一个神秘的:     AssertionError:对象失败(对象模式前端) 我不明白......有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

你的代码中有很多东西是Numba目前无法应付的。第一个是构建rangl的列表理解:

[np.linspace(i[0],i[1],math.floor((i[1]-i[0])/step)) for i in ranges]

您应该使用NumPy解决方案替换它:

rangl = np.empty((len(ranges), step))
for i in ranges:
    rangl[i] = np.linspace(i[0],i[1],math.floor((i[1]-i[0])/step))

Numba无法应对的第二件事是itertools.product。你可以用NumPy和for循环替换它。

一般情况下,尝试通过注释掉它的下半部分来减少代码,直到让Numba接受它,然后从上到下工作,看看哪些部分无法编译。要有条不紊,一步一步走,并尝试坚持简单的构造,如简单的for循环和数组。