这个问题与@unutbu在SymPy cannot lambdify Product
给出的答案有关我想对产品的衍生产品进行简化。例外是global name 'Derivative' is not defined
,我假设与Product
类似,即没有为此定义的打印机功能。所以我开始尝试插入一个自定义函数:
import sympy.printing.lambdarepr as SPL
def _print_Derivative(self, expr):
# implementation
SPL.NumPyPrinter._print_Derivative = _print_Derivative
但我立即陷入困境,因为expr
参数看起来像Derivative(Product(x*z[i], (i, 0, _Dummy_4019)), x)
,即Product
(即使正确计算并且打印得很好)似乎没有lambda表示。我认为,鉴于衍生物是由SymPy计算的,我只需要关注产品的扩展(带有循环),但我不确定。由于我对SymPy的实施不够了解,我很难弄清楚如何正确地做到这一点。